Copyright: Copyright © 1990-1998 ESRI, Inc.


Error message displayed when a topic is not found
Topic not available

Sorry, the topic you chose to display is not available in ArcView's help system.

To see ArcView's Help Contents, Index, and Find tabs, please click the Help Topics button.


ArcView Class Hierarchy

     Obj

          AddressStyle

          Application

          AttrUpdate

               AttrRange

               AttrSingle

          BandStatistics

          ChartDisplay

          ChartPart

               Axis

                    XAxis

                    YAxis

               ChartLegend

               Title

          Classification

          Codepage

          Collection

               BitMap

               Dictionary

               Interval

                    Duration

               List

                    Clipboard

                    GraphicList

                    GraphicSet

                    SymbolList

                    Template

               NameDictionary

               Stack

          Color

          ColorMap

          Control

               Button

               Choice

               ControlSet

                    ButtonBar

                    Menu

                         Popup

                    MenuBar

                    PopupSet

                    ToolBar

               LabelButton

               Space

               Tool

                    ToolMenu

          CoordSys

          Coverage

          Date

          DBICursor

          DDEClient

          DDEServer

          Digit

          Display

               ListDisplay

               MapDisplay

               PageDisplay

          DLL

          DLLProc

          Doc

               Chart

               Layout

               Project

               SEd

               Table

               View

          DocGUI

          DocWin

          ExtensionObject

               DocumentExtension

               LegendExtension

               SrcExtension

               ThemeExtension

          Field

          File

               LineFile

               TextFile

          FileName

          Font

          FontManager

          Graphic

               Frame

                    LegendFrame

                    PictureFrame

                         DocFrame

                    ViewFrame

               GraphicGroup

                    NorthArrow

               GraphicShape

                    GEdgeRec

                    GNodeRec

                    GShapeRec

               GraphicText

                    GraphicLabel

                    SplineText

               ScaleBarFrame

          Help

          Icon

          ImageLegend

               MultiBandLegend

               SingleBandLegend

          ImageLookup

               IdentityLookup

               IntervalLookup

               LinearLookup

          ImgSrc

               ImgCat

               ImgDLL

               ISrc

          INFODir

          Labeler

          Layer

          Legend

          Librarian

          Library

          LockMgr

          MatchCand

          MatchCase

          MatchField

          MatchKey

          MatchPref

          MatchSource

          ModalDialog

               AreaOfInterestDialog

               AutoLabelDialog

               EventDialog

               ExtensionWin

               FileDialog

               GeocodeDialog

               IconMgr

               LocateDialog

               MatchPrefDialog

               NorthArrowMgr

               PageSetupDialog

               ProjectionDialog

               ReMatchDialog

               ScriptMgr

               SourceDialog

               SourceManager

               StanEditDialog

               SummaryDialog

               TemplateMgr

               ThemeOnThemeDialog

          MsgBox

          ODB

               Extension

          PageManager

          Palette

          Pixmap

          Printer

          Prj

               Albers

               Cassini

               EqualAreaAzimuthal

               EqualAreaCylindrical

               EquidistantAzimuthal

               EquidistantConic

               EquidistantCylindrical

               Hammer

               Lambert

               Mercator

               Miller

               Mollweide

               NewZealand

               ObliqueMercator

               Perspective

                    Gnomonic

                    Nearside

                    Orthographic

                    Stereographic

               Robinson

               RSO

               Sinusoid

               TransverseMercator

          RPCClient

          RPCServer

          Script

               EncryptedScript

          Shape

               Circle

               Ellipse

               GeoCurve

               Line

                    LineM

                         LineZ

               MultiPoint

                    MultiPointM

                         MultiPointZ

                    PolyLine

                         Polygon

                              Annotation

                              PolygonM

                                   PolygonZ

                                        MultiPatch

                         PolyLineM

                              PolyLineZ

               Oval

               Point

                    PointM

                         PointZ

               Rect

                    RectM

                         RectZ

          Spheroid

          SQLCon

          SrcName

               DynName

               GeoName

               XYName

          Stipple

          Symbol

               ChartSymbol

                    ColumnChartSymbol

                    PieChartSymbol

               Fill

                    CompositeFill

                    RasterFill

                    VectorFill

               Marker

                    BasicMarker

                    CompositeMarker

               Pen

                    BasicPen

                    CompositePen

                         CompositeArcInfoPen

                    VectorPen

                         VectorPenArrow

                         VectorPenDiamond

                         VectorPenDot

                         VectorPenHash

                         VectorPenHollow

                         VectorPenMarker

                         VectorPenScallop

                         VectorPenScrub

                         VectorPenSlant

                         VectorPenVertexMarker

                         VectorPenZigZag

               TextSymbol

          SymbolWin

          System

          TextComposer

          TextPositioner

               PointTextPositioner

               PolygonTextPositioner

               PolyLineTextPositioner

          TGraphic

          Theme

               FTheme

               ITheme

          Threshold

          TOC

          Units

          Value

               Boolean

               EnumerationElt

               Nil

               Number

               String

                    Pattern

          Vector

          VTab

               FTab

          Window

               IdentifyWin

               ImageWin

               QueryWin

               SQLWin

               TextWin


AddressStyle
Discussion	Example

 An AddressStyle defines a style of address and the method for geocoding.

Inherits From

Obj

Class Requests

AddressStyle

ClearStyles

FindBestStyle ( aThemeFTab ) :  AddressStyle

FindStyle ( anAddressStyleName ) :  AddressStyle

GetDefStylesODB  :  FileName

GetStyles ( aFile ) :  List

SaveStyles ( aFile )

Instance Requests

Accessing AddressStyle Attributes

GetDefOffset  :  Number

GetDefSqueeze  :  Number

GetMatchFields  :  List

GetMaxScore  :  Number

GetMKeyZone  :  String

GetName  :  String

GetXDelimiter  :  String

GetXMaxScore  :  Number

HasIntersections  :  Boolean

HasZone  :  Boolean

SetDefOffset ( offsetValue )

SetDefSqueeze ( squeezeValue )

__________

See also

MatchSource
MatchCand
MatchCase


ClearStyles (AddressStyle)
ClearStyles

Clears the list of AddressStyles. If you have modified the default address styles and want to get the new styles from a file, you should clear the styles in the current ArcView session first using this ClearStyles request.

Syntax

AddressStyle.ClearStyles


FindBestStyle (AddressStyle)
FindBestStyle

Finds and gets the best matching address style for the specified feature table. The table is the FTab associated with the theme you want to make matchable.

Syntax

AddressStyle.FindBestStyle (aThemeFTab)

Returns

AddressStyle


FindStyle (AddressStyle)
FindStyle

Finds the AddressStyle named anAddressStyleName from the list of address styles. If the address styles have not previously been loaded, the default address style database $AVHOME/geocode/addstyle.db is searched.

To make a theme matchable by creating a MatchSource, you use the FindStyle request to return an address style and apply it to the MatchSource. If aMatchSource.Make is called multiple times inside of a loop, the FindStyle request needs to be run inside the loop as well. In another word, rerun FindStyle for each MatchSource you want to make.

Syntax

AddressStyle.FindStyle (anAddressStyleName)

Returns

AddressStyle


GetDefStylesODB (AddressStyle)
GetDefStylesODB

Gets the default file name for the address style database. By default, this file is $AVHOME/geocode/addstyle.db.

Syntax

AddressStyle.GetDefStylesODB

Returns

FileName


GetStyles (AddressStyle)
GetStyles
Example

Gets the list of address styles defined in aFile. These address styles are then accessed with the FindStyle or FindBestStyle requests. You can alter address styles and then save the new list to a data base with the SaveStyles request.

Syntax

AddressStyle.GetStyles (aFile)

Returns

List


SaveStyles (AddressStyle)
SaveStyles
Example

Saves the current AddressStyles to aFile.

Syntax

AddressStyle.SaveStyles (aFile)


GetDefOffset (AddressStyle)
GetDefOffset

Gets anAddressStyle's default offset value.

Syntax

anAddressStyle.GetDefOffset

Returns

Number


GetDefSqueeze (AddressStyle)
GetDefSqueeze

Gets anAddressStyle's default squeeze value.

Syntax

anAddressStyle.GetDefSqueeze

Returns

Number


GetMatchFields (AddressStyle)
GetMatchFields

Gets the list of MatchFields in anAddressStyle.

Syntax

anAddressStyle.GetMatchFields

Returns

List


GetMaxScore (AddressStyle)
GetMaxScore

Gets anAddressStyles's maximum score value.

Syntax

anAddressStyle.GetMaxScore

Returns

Number


GetMKeyZone (AddressStyle)
GetMKeyZone

Gets anAddressStyle's MatchKey zone field name.

Syntax

anAddressStyle.GetMKeyZone

Returns

String


GetName (AddressStyle)
GetName

Gets anAddressStyle's name.

Syntax

anAddressStyle.GetName

Returns

String


GetXDelimiter (AddressStyle)
GetXDelimiter

Gets anAddressStyle's intersection delimiter.

Syntax

anAddressStyle.GetXDelimiter

Returns

String


GetXMaxScore (AddressStyle)
GetXMaxScore

Gets anAddressStyles's intersection maximum score value.

Syntax

anAddressStyle.GetXMaxScore

Returns

Number


HasIntersections (AddressStyle)
HasIntersections

Returns TRUE if anAddressStyle contains an intersections component.

Syntax

anAddressStyle.HasIntersections

Returns

Boolean


HasZone (AddressStyle)
HasZone

Returns TRUE if anAddressStyle contains a zone component.

Syntax

anAddressStyle.HasZone

Returns

Boolean


SetDefOffset (AddressStyle)
SetDefOffset

Sets anAddressStyle's default offset value.

Syntax

anAddressStyle.SetDefOffset (offsetValue)


SetDefSqueeze (AddressStyle)
SetDefSqueeze

Sets anAddressStyle's default squeeze value.

Syntax

anAddressStyle.SetDefSqueeze (squeezeValue)


Albers
Discussion	Example

 This class implements the Albers Equal-Area Conic projection.

Inherits From

Prj

Class Requests

Creating Albers Projections

CanDoSpheroid  :  Boolean

Make ( anExtent ) :  Albers

Instance Requests

Projecting and unprojecting points

ProjectPt ( aPoint ) :  Boolean

UnProjectPt ( aPoint ) :  Boolean

Albers Projection Parameters

Recalculate

ReturnCentralMeridian  :  Number

ReturnFalseEasting  :  Number

ReturnFalseNorthing  :  Number

ReturnLowerStandardParallel  :  Number

ReturnReferenceLatitude  :  Number

ReturnUpperStandardParallel  :  Number

SetCentralMeridian ( aLongitude )

SetFalseEasting ( value )

SetFalseNorthing ( value )

SetLowerStandardParallel ( lowerLatitude )

SetReferenceLatitude ( aLatitude )

SetUpperStandardParallel ( upperLatitude )

__________

See also

CoordSys
View
Spheroid


CanDoSpheroid (Albers)
CanDoSpheroid

Returns TRUE if a class of projections supports arbitrary spheroids and FALSE if it only supports the sphere. The Albers class always returns TRUE.

Syntax

Albers.CanDoSpheroid

Returns

Boolean


Make (Albers)
Make
Example

Creates an Albers Equal Area Conic projection. anExtent is the bounding rectangle of the area being projected. Use decimal degrees for the coordinates of anExtent.

Syntax

Albers.Make (anExtent)

Returns

Albers


ProjectPt (Albers)
ProjectPt
Example

Projects the point aPoint. Returns TRUE if aPoint is visible, FALSE otherwise; however, this always returns a point.

Syntax

anAlbers.ProjectPt (aPoint)

Returns

Boolean


UnProjectPt (Albers)
UnProjectPt
Example

Unprojects the point aPoint. Returns TRUE if aPoint can be unprojected, FALSE otherwise; however, this always returns a point.

Syntax

anAlbers.UnProjectPt (aPoint)

Returns

Boolean


Recalculate (Albers)
Recalculate

Updates the internal parameters of the projection. This must be called after changing any parameters of the Albers projection.

Syntax

anAlbers.Recalculate


ReturnCentralMeridian (Albers)
ReturnCentralMeridian

Returns the central meridian as a longitude in degrees.

Syntax

anAlbers.ReturnCentralMeridian

Returns

Number


ReturnFalseEasting (Albers)
ReturnFalseEasting

Returns the value of x at the central meridian.

Syntax

anAlbers.ReturnFalseEasting

Returns

Number


ReturnFalseNorthing (Albers)
ReturnFalseNorthing

Returns the value of y at the central meridian.

Syntax

anAlbers.ReturnFalseNorthing

Returns

Number


ReturnLowerStandardParallel (Albers)
ReturnLowerStandardParallel

Returns the lower of the two latitudes, in degrees, at which there is no distortion in scale or shape.

Syntax

anAlbers.ReturnLowerStandardParallel

Returns

Number


ReturnReferenceLatitude (Albers)
ReturnReferenceLatitude

Returns the latitude in degrees at which y is 0.

Syntax

anAlbers.ReturnReferenceLatitude

Returns

Number


ReturnUpperStandardParallel (Albers)
ReturnUpperStandardParallel

Returns the upper of the two latitudes in degrees at which there is no distortion in scale or shape.

Syntax

anAlbers.ReturnUpperStandardParallel

Returns

Number


SetCentralMeridian (Albers)
SetCentralMeridian
Example

Sets the central meridian to aLongitude. aLongitude is a longitude in degrees.

Syntax

anAlbers.SetCentralMeridian (aLongitude)


SetFalseEasting (Albers)
SetFalseEasting
Example

Sets the value of x at the central meridian.

Syntax

anAlbers.SetFalseEasting (value)


SetFalseNorthing (Albers)
SetFalseNorthing
Example

Sets the value of y at the central meridian.

Syntax

anAlbers.SetFalseNorthing (value)


SetLowerStandardParallel (Albers)
SetLowerStandardParallel
Example

Sets the lower of the two latitudes at which there is no distortion in scale or shape. The two latitudes may not be on opposite sides and equidistant from the equator. lowerLatitude is in degrees.

Syntax

anAlbers.SetLowerStandardParallel (lowerLatitude)


SetReferenceLatitude (Albers)
SetReferenceLatitude
Example

Sets the latitude at which y is 0. aLatitude is a latitude in degrees.

Syntax

anAlbers.SetReferenceLatitude (aLatitude)


SetUpperStandardParallel (Albers)
SetUpperStandardParallel
Example

Sets the upper of the two latitudes at which there is no distortion in scale or shape. The two latitudes may not be on opposite sides and equidistant from the equator. upperLatitude is in degrees.

Syntax

anAlbers.SetUpperStandardParallel (upperLatitude)


Annotation

 An annotation is a kind of polygon that also contains text. The polygon represents the minimum bounding region covered by the text when that text is rendered with the specified ARC/INFO text symbol.

An annotation also has a PolyLine that is the base line for the text string. If the PolyLine has only one point, then the text is displayed in a straight line at an angle determined by the annotation's text symbol.

All properties of an annotation object are read-only.

Attributes

Text.The annotation's text.

Polyline.The PolyLine object that defines the baseline for the annotation's text.

Height.The height of the annotation.

Symbol.The ARC/INFO symbol number used to define the size, appearance, and possibly rotation angle of this annotation.

Inherits From

Polygon

Instance Requests

Generic Object Requests

= anObj :  Boolean

AsString  :  String

Getting and Setting Attributes

GetBaseline  :  PolyLine

GetHeight  :  Number

GetLevel  :  Number

GetSymbol  :  Number

GetText  :  String


= (Annotation)
=

Returns TRUE if anAnnotation and anObj are equal, otherwise returns FALSE.

Syntax

anAnnotation = anObj

Returns

Boolean


AsString (Annotation)
AsString

Returns a String describing anAnnoShape.

Syntax

anAnnotation.AsString

Returns

String


GetBaseline (Annotation)
GetBaseline

Gets the PolyLine that defines the baseline for anAnnotation.

Syntax

anAnnotation.GetBaseline

Returns

PolyLine


GetHeight (Annotation)
GetHeight

Returns the character height of anAnnotation's text.

Syntax

anAnnotation.GetHeight

Returns

Number


GetLevel (Annotation)
GetLevel

Returns the annotation level for anAnnotation.

Syntax

anAnnotation.GetLevel

Returns

Number


GetSymbol (Annotation)
GetSymbol

Returns the symbol number of anAnnotation.

Syntax

anAnnotation.GetSymbol

Returns

Number


GetText (Annotation)
GetText

Returns the text string property of anAnnotation.

Syntax

anAnnotation.GetText

Returns

String


Application
Related Topics

 ArcView has only one instance of this class - the ArcView application itself. In Avenue scripts this object is referenced by the keyword 'av'. Starting from av, you can chain together a sequence of requests which will lead to almost any other object that currently exists in the application. More technically, av is the root object in the active ArcView object model and the starting point for navigating the model.

The application object lets you

  Manage document windows and icons
  Execute scripts
  Control the status bar
  Enable/Disable Customization

On invocation, the application reads the system default project and then, if it exists, the user default project. These files are special projects that contain the scripts and GUIs that define the user interface and environment.

An application may have only one active project. The project contains the documents you work with in ArcView as well as customized scripts and GUIs.

From Application, you can manipulate the ArcView window itself or the document windows within the application. From Avenue, you can tile or cascade open windows or you can arrange the icons of minimized windows. The application knows the active document, its DocGUI and window.

The Run request executes the named script. DelayedRun is similar, but queues the script for a specified time span before executing it. Avenue scripts may be defined in the current project, the user default project, any loaded extensions and the system default project. FindScript searches for a named script in same places as Run does. So does FindGUI.

The status bar shows status messages and marks the progress of operations. From Avenue you can set and clear messages or set the value of the progress bar.

An Application may have only one RPC or DDE server. (see DDE and RPC)

Global Variables

Global variables in Avenue exist within the scope of the session. Global variables are NOT saved to the project file. Global variables retain their values unless they are explicitly reset. For example,

  _myGlobal = NIL

You can remove all global variables with av.ClearGlobals.

Global variables open the door to dangerous misuse of memory. An object remains in the application as long as it is referenced; an object is referenced by another object or by a variable. For example, you COULD do something like this:

   _save = av.GetProject

thereby attaching to _save the entire contents of the project. If you were to open a new project, the objects comprising the old project would NOT be destroyed because a reference to the old project remains. Thus all objects for TWO projects would reside in memory. Even with less obvious and seemingly innocuous use of globals, you can eat away precious memory resources. The default Project.Open and Project.New scripts remove all global variables when a project is opened or created. Developers who wish to share global variables across projects within the application should modify these scripts.

For more details on global variables and scripts, refer to the class help for Scripts.

Attributes

Name. The application name appears in the ArcView title bar. Its default value is "ArcView", but the user may modify it with SetName.

Project. The application may have only one project. This project includes all documents pertinent to a unit of work.

ActiveDoc. The active document is the document that is highlighted in the application.

ActiveGUI. The active GUI is the GUI associated with the active document. The user interacts with the active document through the active GUI.

ActiveWin. The active window is the window containing the active document.

Helping. Helping indicates if the context sensitive help is enabled.

User default project. The optional default project created by the user resides in $HOME/default.apr and includes scripts and GUIs that are not in the system defaults file.

System default project. The default project that defines system scripts and GUIs for ArcView resides in $AVHOME/etc/default.apr.

Customizable. Customization may be switched off with the SetCustomizable request. Customization is creating new scripts and creating or modifying GUIs.

If IsCustomizable returns FALSE, the customization panel cannot be invoked through either the GUI or through the request aProject.Customize. Also, when IsCustomizable is FALSE, you cannot create a new Script Editor. If IsCustomizable is FALSE when the Project.Open request executes the Script Editor icon does NOT display in the project window. You can add SetCustomizable( FALSE ) to your project's startup script to remove the Script Editor icon.

Inherits From

Obj

Instance Requests

Exiting the Application

Quit

Executing a Script

DelayedRun ( aScriptName, anObj, aDelay )

Run ( aScriptName, anObj ) :  Obj

Finding things

FindDoc ( aDocName ) :  Doc

FindGUI ( aGUIName ) :  DocGUI

FindGUIsFor ( aClass ) :  List

FindScript ( aScriptName ) :  Script

GetGUI  :  String

Managing Global Variables

ClearGlobals

Managing the Application Window

Maximize

Minimize

Move ( X, Y )

MoveTo ( X, Y )

Resize ( Width, Height )

Restore

ReturnExtent  :  Point

ReturnOrigin  :  Point

Managing Windows Within the Application

ArrangeIcons

CascadeWindows

TileWindows

Controlling the Status Bar

About

ClearMsg

ClearStatus

ClearWorkingStatus

GetShowStatus  :  Boolean

SetShowStatus ( flag )

SetStatus ( aPercent ) :  Boolean

SetWorkingStatus  :  Boolean

ShowMsg ( aHelpString )

ShowStopButton

Getting and Setting Attributes

GetActiveDoc  :  Doc

GetActiveGUI  :  DocGUI

GetActiveWin  :  DocWin

GetExtensionWin  :  ExtensionWin

GetLegendLineFlatness  :  Number

GetName  :  String

GetProject  :  Project

GetSymbolWin  :  SymbolWin

GetSysDefault  :  Project

GetTocWidthScale  :  Number

GetUserDefault  :  Project

Help  :  Help

IsCustomizable  :  Boolean

IsHelping  :  Boolean

SetCustomizable ( canCustomize )

SetHelping ( isHelping )

SetLegendLineFlatness ( aPerCent )

SetName ( aName )

SetTocWidthScale ( aScalingWidth )

Accessing license information

GetLicensedSite  :  String

GetLicensedUser  :  String

GetSerialNumber  :  String

Getting and Setting the Version

GetVersion  :  String

Miscellaneous

GetCodepageConvert  :  Boolean

ProcessAllInvals

PurgeObjects

SetCodepageConvert ( boolean )

SetErrorReporting ( isReporting )

UseWaitCursor

__________

See also

Project
Doc
DocWin
DocGUI


Quit (Application)
Quit

Exits the application.

Syntax

av.Quit


DelayedRun (Application)
DelayedRun

 Finds the Avenue script called aScriptName and executes it after aDelay, in seconds. anObj becomes the object referenced by the SELF keyword in the called script (see av.run for more explanation). aDelay is a time in seconds and it must be an integer value.

DelayedRun allows you to create scripts that execute on intervals. The script includes a DelayedRun request on itself. For example, the following script - named SaveProject - causes ArcView to save the project every 5 minutes.

  'SaveProject
  av.GetProject.Save     'assumes project is already named
  av.ShowMsg( "Project saved...")
  av.DelayedRun( "SaveProject", nil, 300)
To stop this chain of execution, rename or delete SaveProject.

You can simulate an asynchronous IAC Server with av.DelayedRun.

Syntax

av.DelayedRun (aScriptName, anObj, aDelay)


Run (Application)
Run

 Finds the Avenue script called aScriptName and executes it.

To find aScriptName, the application searches the current project first, then the User Default, and finally, the System Default. If it finds no script named aScriptName, it does nothing.

anObj becomes the object referenced by the SELF keyword in the called script. ArcView uses anObj to tell the script of the owner object. For example, SELF is the activating Control for scripts executed on a control event. The Avenue programmer may use anObj to pass values to the called script.

For example, execute the script named MyScript and pass it a list.

     results = av.Run( "MyScript", { 5, "red", theView } )

MyScript might include something like this...

     ' get values from argument list
     myNum = SELF.Get( 0 )
     myString = SELF.Get( 1 )
     myDoc = SELF.Get( 2 )

     ' other statements

     ' return a result
     return  "OKAY"
You can return values back to the calling script through the return statement. The result of the run request is the object specified by the return request in the called script or, if no return statement is used, the last object created in the called script.

The SELF object may also be used to return values to the calling script. SELF must be a "complex" object (not a string, number, or boolean). For example,

  myList = List.Make
  myList.Add( TRUE )
  returnValue = av.run( "script2", myList )
  msgbox.ListAsString( myList, "script2 results", "TEST")

And script2 would include some lines like...

  SELF.Add( "success!" )
  SELF.Add( 37 )

Syntax

av.Run (aScriptName, anObj)

Returns

Obj


FindDoc (Application)
FindDoc

Search the project and extensions for aDocName. Return the nil object if it isn't found.

Syntax

av.FindDoc (aDocName)

Returns

Doc


FindGUI (Application)
FindGUI

 Finds the GUI named aGUIName. FindGUI searches the current project first, then the User Default, then any loaded extensions, and finally, the System Default. If aGUIName is not found, FindGUI returns Nil.

Syntax

av.FindGUI (aGUIName)

Returns

DocGUI


FindGUIsFor (Application)
FindGUIsFor

Finds all GUIs in the system that are currently associated with instances of aClass. In case DocGUIs in different parts of the system have the same name only one of them is added. The following rules determine which one:

   - A DocGUI from the current project is always added to the list
   - A DocGUI from the user's default project is added
      if a DocGUI with the same name isn't already in the list
   - Ditto for DocGUIs in extensions
   - Ditto for DocGUIs in the system default project

For example, there are typically view DocGUIs in the system default project and in the current project. This request would return only the view docgui in the current project. To obtain the view docgui located in the system default project, use av.GetSysDefault.FindGUIsFor(View).

Syntax

av.FindGUIsFor (aClass)

Returns

List


FindScript (Application)
FindScript

 Finds the script named aScriptName. FindScript searches the current project first, then the User Default, then any loaded extensions, and finally, the System Default. If aScriptName is not found, FindScript returns Nil.

Syntax

av.FindScript (aScriptName)

Returns

Script


GetGUI (Application)
GetGUI

Returns the name of the GUI used by the application. The application GUI is visible when no project is open.

Syntax

av.GetGUI

Returns

String


ClearGlobals (Application)
ClearGlobals

Removes all global variables.

Syntax

av.ClearGlobals


Maximize (Application)
Maximize

 Resizes ArcView's window to occupy the entire extent of the screen.

Syntax

av.Maximize


Minimize (Application)
Minimize

 Replaces ArcView's window with an iconic representation.

Syntax

av.Minimize


Move (Application)
Move

 Moves ArcView's window relative to its current position. X and Y are in pixels.

Syntax

av.Move (X, Y)


MoveTo (Application)
MoveTo

 Moves ArcView's window to the specified position. X and Y are in pixels.

Syntax

av.MoveTo (X, Y)


Resize (Application)
Resize

 Resizes ArcView's window to the specified Width and Height in pixels.

Syntax

av.Resize (Width, Height)


Restore (Application)
Restore

 Restores ArcView's iconified or maximized window.

Syntax

av.Restore


ReturnExtent (Application)
ReturnExtent

 Returns the extent of ArcView's window. The extent is in pixels.

Syntax

av.ReturnExtent

Returns

Point


ReturnOrigin (Application)
ReturnOrigin

 Returns the origin of ArcView's window. The position is in pixels.

Syntax

av.ReturnOrigin

Returns

Point


ArrangeIcons (Application)
ArrangeIcons

Arranges the icons of minimized windows.

Syntax

av.ArrangeIcons


CascadeWindows (Application)
CascadeWindows

Cascades the open windows.

Syntax

av.CascadeWindows


TileWindows (Application)
TileWindows

Tiles the open windows.

Syntax

av.TileWindows


About (Application)
About

Displays the About ArcView dialog.

Syntax

av.About


ClearMsg (Application)
ClearMsg

Clears the message area.

Syntax

av.ClearMsg


ClearStatus (Application)
ClearStatus

Clears the status bar.

Syntax

av.ClearStatus


ClearWorkingStatus (Application)
ClearWorkingStatus

Clears the working status bar.

Syntax

av.ClearWorkingStatus


GetShowStatus (Application)
GetShowStatus

Returns a bool indicating whether or not the status bar will be drawn. Use the request av.SetShowStatus to control display of the status bar.

Syntax

av.GetShowStatus

Returns

Boolean


SetShowStatus (Application)
SetShowStatus

Sets whether or not the status bar will be drawn. Using av.SetShowStatus(FALSE) will cause ArcView not to display the status bar in any operation.

Syntax

av.SetShowStatus (flag)


SetStatus (Application)
SetStatus

Sets the status bar progress. aPercent is an integer between 0 and 100. Call SetStatus(0) to initialize the status bar and clear out any string displayed. Successive calls increment the status bar. When 100 is reached, the status bar is cleared. Successive calls with the same percent will not be redrawn. SetStatus returns FALSE when the user cancels the operation with the STOP button and otherwise TRUE. For example,

  av.ShowStopButton
  for each i in 0..1000

    ' do another portion of the work

    progress = (i/1000) * 100
    doMore = av.SetStatus( progress )
    if (not doMore) then
      break
    end
  end

Syntax

av.SetStatus (aPercent)

Returns

Boolean


SetWorkingStatus (Application)
SetWorkingStatus

Sets the status bar showing working status. Use this when you don't know how much of the work is done. Call ClearWorkingStatus to initialize the status bar and clear out any string displayed. Successive calls move the status bar forward until it reaches the end and then the direction is reversed. The width of the status bar stays the same as it toggles between forward and backward movement. SetWorkingStatus returns FALSE when the user cancels the operation with the STOP button and otherwise TRUE. For example,

  av.ShowStopButton
  while (not solved)

    ' do another portion of the work

    doMore = av.SetWorkingStatus
    if (not doMore) then
      break
    end
  end

It is up to the client's responsibility to decide how often to call SetWorkingStatus. If there are too many iterations, then if could be called, say, every 100th iteration.

Syntax

av.SetWorkingStatus

Returns

Boolean


ShowMsg (Application)
ShowMsg

Displays aHelpString in the message area.

Syntax

av.ShowMsg (aHelpString)


ShowStopButton (Application)
ShowStopButton

Makes a button visible near the status bar. If the user clicks on this button, the next call to SetStatus will return FALSE. Clear the stop button by hitting STOP from the GUI, by issuing the ClearStatus request or by setting the status to 100 percent.

Syntax

av.ShowStopButton


GetActiveDoc (Application)
GetActiveDoc

 Gets the active document. The active document is the document you are currently working with in the Project. GetActiveDoc returns Nil if no there is no active document.

Syntax

av.GetActiveDoc

Returns

Doc


GetActiveGUI (Application)
GetActiveGUI

 Gets the active document's GUI. GetActiveGUI returns Nil if there is no active document.

Syntax

av.GetActiveGUI

Returns

DocGUI


GetActiveWin (Application)
GetActiveWin

 Gets the active document's window. GetActiveWin returns Nil if there is no active document.

Syntax

av.GetActiveWin

Returns

DocWin


GetExtensionWin (Application)
GetExtensionWin

Gets the Extension Window.

Syntax

av.GetExtensionWin

Returns

ExtensionWin


GetLegendLineFlatness (Application)
GetLegendLineFlatness

Returns the flatness factor of line symbology in TOC, Legends, and the Symbol Window. Return values range form 0 to 100, with 100 indicating a completely flat line and 0 indicating to disply the line symbol with default ArcView settings. This value is applied to newly created projects.

Syntax

av.GetLegendLineFlatness

Returns

Number


GetName (Application)
GetName

Gets the application name. The name defaults to ArcView.

Syntax

av.GetName

Returns

String


GetProject (Application)
GetProject

 Gets the current Project. Returns NIL if there is no current project.

Syntax

av.GetProject

Returns

Project


GetSymbolWin (Application)
GetSymbolWin

Gets the Symbol Window.

Syntax

av.GetSymbolWin

Returns

SymbolWin


GetSysDefault (Application)
GetSysDefault

Gets the System Default Project.

Syntax

av.GetSysDefault

Returns

Project


GetTocWidthScale (Application)
GetTocWidthScale

Return the scaling width factor applied to a TOC. This value is applied to newly created projects.

Syntax

av.GetTocWidthScale

Returns

Number


GetUserDefault (Application)
GetUserDefault

Gets the User Default Project.

Syntax

av.GetUserDefault

Returns

Project


Help (Application)
Help

Gets the system help object.

Syntax

av.Help

Returns

Help


IsCustomizable (Application)
IsCustomizable

 Returns TRUE if Avenue customization may take place. Customization refers to the Customize dialog box which lets the user create and modify user interface controls, and the script editor/debugger which lets you create, modify, execute, and debug scripts.

Syntax

av.IsCustomizable

Returns

Boolean


IsHelping (Application)
IsHelping

Returns TRUE if help mode is enabled.

Syntax

av.IsHelping

Returns

Boolean


SetCustomizable (Application)
SetCustomizable

 If canCustomize is TRUE, Avenue customization can take place. If FALSE, customization is disabled. Customization refers to the Customize dialog box which lets the user create and modify user interface controls, and the script editor/debugger which lets you create, modify, execute, and debug scripts.

If Customization is off, then you cannot invoke the Customization panel or create a new Script Editor. If Customization is OFF when the Project opens (project.open executes), then no Script Editor icon appears in the Project Window; you must re-open the project with Customization on for the Script Editor icon to re-display.

Syntax

av.SetCustomizable (canCustomize)


SetHelping (Application)
SetHelping

Activates and deactivates help mode; sets the value of IsHelping.

Syntax

av.SetHelping (isHelping)


SetLegendLineFlatness (Application)
SetLegendLineFlatness

Sets the flatness factor of line symbology in TOC, Legends, and the Symbol Window. This value is applied to newly created projects.

Syntax

av.SetLegendLineFlatness (aPerCent)


SetName (Application)
SetName

 Sets the application name to aName; aName displays in the application window title.

Syntax

av.SetName (aName)


SetTocWidthScale (Application)
SetTocWidthScale

Set the scaling width factor applied to a TOC. This value applies to newly created projects.

Syntax

av.SetTocWidthScale (aScalingWidth)


GetLicensedSite (Application)
GetLicensedSite

 Returns the name of the organization that installed ArcView.

Syntax

av.GetLicensedSite

Returns

String


GetLicensedUser (Application)
GetLicensedUser

 Returns the name of the user who installed ArcView.

Syntax

av.GetLicensedUser

Returns

String


GetSerialNumber (Application)
GetSerialNumber

 Returns the serial number of ArcView.

Syntax

av.GetSerialNumber

Returns

String


GetVersion (Application)
GetVersion

Returns the version number of ArcView.

Syntax

av.GetVersion

Returns

String


GetCodepageConvert (Application)
GetCodepageConvert

Returns true if codepage conversion is enabled.

Syntax

anAppl.GetCodepageConvert

Returns

Boolean


ProcessAllInvals (Application)
ProcessAllInvals

Process any pending invalidations.

Syntax

anAppl.ProcessAllInvals


PurgeObjects (Application)
PurgeObjects
Discussion

Triggers a pass of the garbage collector. A garbage collection pass is an event (like a mouse down event, or a key click event). This event is triggered every 20 seconds from ArcView's main event loop. A garbage collection pass may also be triggered from within loops in an Avenue script if at least 2400 objects have been created since the last activation of the garbage collector.

This default behavior should be sufficient for most ArcView applications. You may use this request, however, to force a pass of the garbage collector if you have created a few (less than 2400) large objects that you would like to have immediately destroyed.

An object will be removed through garbage collection if it has no references.

Syntax

anAppl.PurgeObjects


SetCodepageConvert (Application)
SetCodepageConvert

Turn on or off the codepage conversion.

Syntax

anAppl.SetCodepageConvert (boolean)


SetErrorReporting (Application)
SetErrorReporting

ArcView uses a modal dialog to report runtime errors and warnings. If isReporting is FALSE, this dialog will be disabled and error messages will be logged. See MsgBox.SetErrorReporting for more details.

Syntax

av.SetErrorReporting (isReporting)


UseWaitCursor (Application)
UseWaitCursor

Changes the cursor for ArcView's window to the wait cursor. Issue this request before beginning a lengthy Apply event script to indicate a "busy state" to the end-user.

Syntax

av.UseWaitCursor


AreaOfInterestDialog

 This class provides a dialog for specifying an Area Of Interest (AOI). You may set the Area Of Interest for a View to be the extent of the view, the extent of a theme in the view, the visible extent of the view's display, or you can manually specify the area of extent.

Inherits From

ModalDialog

Class Requests

AreaOfInterestDialog

Show ( aView ) :  Rect

__________

See also

Prj
View


Show (AreaOfInterestDialog)
Show

 Shows the AreaOfInterest dialog box. If aView has an Area Of Interest (AOI), it is shown as the current in the dialog. If you choose OK, and a new, valid Area Of Interest was specified, the Area Of Interest is returned. Otherwise, Nil is returned.

    AreaOfInterestDialog.Show(av.FindDoc("My Library Themes"))

Syntax

AreaOfInterestDialog.Show (aView)

Returns

Rect


PolyLine
Related Topics

 A PolyLine is a set of one or more line segments called parts. Each line segment contains 2 or more points.

Attributes

Parts.A PolyLine contains one or more parts or line segments. These parts are discontinuous. The request CountParts returns the number of parts in the PolyLine. Each part is defined by a list of 2 or more points describing the line segment. See PolyLine.Make for an example.

Inherits From

MultiPoint

Inherited By

Polygon
PolyLineM

Class Requests

Making PolyLines

Make ( aListofListofPoints ) :  PolyLine

MakeEmpty  :  PolyLine

MakeNull  :  PolyLine

Instance Requests

Converting a PolyLine

AsLine  :  Line

AsList  :  List

AsMultiPoint  :  MultiPoint

AsPolyLine  :  PolyLine

ReturnBuffered ( aDistance ) :  Polygon

Generic Object Requests

= anObj :  Boolean

AsString  :  String

Getting and Setting Attributes

Along ( aPercentage ) :  Point

CountParts  :  Number

GetDimension  :  Number

IsEmpty  :  Boolean

IsNull  :  Boolean

IsSelfIntersecting  :  Boolean

PointPosition ( aPoint ) :  Number

ReturnCenter  :  Point

Manipulating a PolyLine

Clean  :  PolyLine

ReturnDensified ( aStepSize ) :  PolyLine

Snap ( aShape, snapDistance ) :  Boolean

Relating two shapes

Contains ( aShape ) :  Boolean

Intersects ( aShape ) :  Boolean

QueryPointDistance ( aPoint, aDistance ) :  Number

Transforming a PolyLine

Connect  :  PolyLine

Explode  :  List

Flip  :  PolyLine

FlipPart ( aPart ) :  PolyLine

LineIntersection ( anotherShape ) :  PolyLine

PointIntersection ( anotherShape ) :  MultiPoint

QueryConnected ( result ) :  PolyLine

ReShape ( anotherPolyLine ) :  PolyLine

ReturnClipped ( aRect ) :  Shape

ReturnConnected  :  PolyLine

ReturnDifference ( anotherShape ) :  PolyLine

ReturnMerged ( aShape ) :  PolyLine

ReturnOffset ( anOffset ) :  PolyLine

ReturnProjected ( aPrj ) :  Shape

ReturnUnprojected ( aPrj ) :  Shape

Split ( aShape ) :  List

SplitLines ( anotherPolyLine ) :  List

__________

See also

Point
Circle
Oval
Rect
Line
Shape
PolyLineTextPositioner


Make (PolyLine)
Make

Makes a PolyLine from aListofListofPoints. This example creates a PolyLine with three parts.

 myLine = PolyLine.Make( {{0@0, 1@1, 2@2, 3@3},
                          {1@2, 1@3, 1@4},
                          {0@3, 2@1, 1@2, 3@0}} )

Syntax

PolyLine.Make (aListofListofPoints)

Returns

PolyLine


MakeEmpty (PolyLine)
MakeEmpty

Makes the empty PolyLine.

Syntax

PolyLine.MakeEmpty

Returns

PolyLine


MakeNull (PolyLine)
MakeNull

Makes the NULL PolyLine.

Syntax

PolyLine.MakeNull

Returns

PolyLine


AsLine (PolyLine)
AsLine

Returns a line that approximates the shape of aPolyLine.

Syntax

aPolyLine.AsLine

Returns

Line


AsList (PolyLine)
AsList

Returns aPolyLine as a list containing lists of points.

Syntax

aPolyLine.AsList

Returns

List


AsMultiPoint (PolyLine)
AsMultiPoint

Returns the vertices of aPolyLine as a MultiPoint.

Syntax

aPolyLine.AsMultiPoint

Returns

MultiPoint


AsPolyLine (PolyLine)
AsPolyLine

Returns a clone of aPolyLine.

Syntax

aPolyLine.AsPolyLine

Returns

PolyLine


ReturnBuffered (PolyLine)
ReturnBuffered

Returns a buffer Polygon representing aPolyLine buffered by aDistance. You can use the Shape.SetBufferResolution request to set the buffer resolution preference which defines the smoothness of buffers.

Syntax

aPolyLine.ReturnBuffered (aDistance)

Returns

Polygon


= (PolyLine)
=

Returns TRUE if aPolyLine and anObj are equal, otherwise returns FALSE.

Syntax

aPolyLine = anObj

Returns

Boolean


AsString (PolyLine)
AsString

Returns a string describing aPolyLine. The string contains the keyword PolyLine, the number of parts and for each part, the number of points in it and the X,Y of each point. For example, this script creates the following PolyLine.

 myLine = PolyLine.Make( {{0@0, 1@1, 2@2, 3@3},
                          {1@2, 1@3, 1@4},
                          {0@3, 2@1, 1@2, 3@0}} )
 MsgBox( myLine.AsString, "")

 PolyLine
 3
 4
 0,0
 1,1
 2,2
 3,3
 3
 1,2
 1,3
 1,4
 4
 0,3
 2,1
 1,2
 3,0

Syntax

aPolyLine.AsString

Returns

String


Along (PolyLine)
Along

Returns a point at aPercentage along aPolyLine.

Syntax

aPolyLine.Along (aPercentage)

Returns

Point


CountParts (PolyLine)
CountParts

Returns the number of parts of aPolyLine. A part is the number of discontinuous line segments in the PolyLine.

Syntax

aPolyLine.CountParts

Returns

Number


GetDimension (PolyLine)
GetDimension

Returns 1. In ArcView, points have dimension 0, lines have dimension 1 and polygons have dimension 2. Only shapes with dimension 1 or greater have a length. Only shapes with dimension 2 have an area.

Syntax

aPolyLine.GetDimension

Returns

Number


IsEmpty (PolyLine)
IsEmpty

Returns TRUE if aPolyLine is empty, otherwise returns FALSE.

Syntax

aPolyLine.IsEmpty

Returns

Boolean


IsNull (PolyLine)
IsNull

Returns TRUE if aPolyLine is NULL or empty, otherwise returns FALSE.

Syntax

aPolyLine.IsNull

Returns

Boolean


IsSelfIntersecting (PolyLine)
IsSelfIntersecting

Returns TRUE if aPolyLine is self-intersecting, otherwise returns FALSE.

Syntax

aPolyLine.IsSelfIntersecting

Returns

Boolean


PointPosition (PolyLine)
PointPosition

Returns the position (percentage) of aPoint along aPolyLine. aPoint is not necessarily a vertex in a part of aPolyLine.

Syntax

aPolyLine.PointPosition (aPoint)

Returns

Number


ReturnCenter (PolyLine)
ReturnCenter

Returns the center point of aPolyLine. The returned point is a point in one of the parts. If aPolyLine has only one part with two points, one of the points is returned. Use ReturnDensified on two point PolyLines before using ReturnCenter to return a more accurate center.

Syntax

aPolyLine.ReturnCenter

Returns

Point


Clean (PolyLine)
Clean

Returns aPolyLine cleaned by applying Connect request. A clean PolyLine contains no nodes where only two parts meet - these nodes are removed in the cleaning process to connect the parts.

Syntax

aPolyLine.Clean

Returns

PolyLine


ReturnDensified (PolyLine)
ReturnDensified

Returns a PolyLine with a point every aStepSize along aPolyLine. The densify algorithm tries to introduce uniformly-spaced vertices for each line segment by first calculating how many points to insert, then divides the segment into that many equal parts. This process guarantees that no segment will be longer than aStepSize.

In the following script, this text is returned. In the first segment of this example polyline, ArcView determines that 6 vertices need to be added, then spreads those 6 vertices evenly between the existing vertices. In the second segment, 2 vertices are added between the existing vertices.

 PolyLine
 2
 10
 0,0
 3.33333,3.33333
 6.66667,6.66667
 10,10
 13.3333,13.3333
 16.6667,16.6667
 20,20
 23.3333,23.3333
 26.6667,26.6667
 30,30
 5
 1,20
 1,25
 1,30
 1,35
 1,40

 aLine = PolyLine.Make( {{0@0, 10@10, 20@20, 30@30},
                        {1@20, 1@30, 1@40}} )
 dLine = aLine.ReturnDensified( 5 )
 MsgBox.Report( dLine.AsString, "" )

Syntax

aPolyLine.ReturnDensified (aStepSize)

Returns

PolyLine


Snap (PolyLine)
Snap

Snaps the vertices of aPolyLine to vertices of aShape within snapDistance. Returns TRUE if snapping occurred, otherwise returns FALSE.

Syntax

aPolyLine.Snap (aShape, snapDistance)

Returns

Boolean


Contains (PolyLine)
Contains

Returns TRUE if aPolyLine contains aShape, otherwise returns FALSE.

Syntax

aPolyLine.Contains (aShape)

Returns

Boolean


Intersects (PolyLine)
Intersects

Returns TRUE if aPolyLine intersects aShape, otherwise returns FALSE.

Syntax

aPolyLine.Intersects (aShape)

Returns

Boolean


QueryPointDistance (PolyLine)
QueryPointDistance

Queries the distance between aPolyLine and aPoint into aDistance. It is a quick way to determine which side of aPolyLine aPoint is on: if aDistance is reported as positive, aPoint is on the left side of aPolyLine; if negative, aPoint is on the right; if zero, aPoint is on aPolyLine.

   ' Create a PolyLine and a Point and add them to existing View1
   theView     = av.FindDoc("View1")
   theGList    = theView.GetGraphics
   thePolyLine = PolyLine.Make({{1@0, 1@1, 1@2, 1@3}})

   ' Try using different values for thePoint
   thePoint    = -2@2
   theGList.Add(GraphicShape.Make(thePoint))
   theGList.Add(GraphicShape.Make(thePolyLine))

   ' Figure out the distance
   theDistance  = 0
   thePolyLine.QueryPointDistance(thePoint,theDistance)
   theDistance2 = thePoint.Distance(thePolyLine)

   ' Figure out what side the point is on
   if (theDistance < 0) then where = "on the right of" end
   if (theDistance = 0) then where = "on" end
   if (theDistance > 0) then where = "on the left of" end

   ' Report the results
   MsgBox.Info("The point is"++where++"the line at a distance of"++
     theDistance.ABS.AsString+".","Using QueryPointDistance")
   MsgBox.Info("The point is a distance of"++theDistance2.AsString++
     "from the line.", "Using Shape Distance")

Syntax

aPolyLine.QueryPointDistance (aPoint, aDistance)

Returns

Number


Connect (PolyLine)
Connect

Returns aPolyLine, with optimized number of parts. If end points of parts in a PolyLine are considered nodes in a graph, the resulting PolyLine has no nodes of valence two. This means that if two parts of aPolyLine share a particular node, these two parts will be merged into one part. If three parts of aPolyLine share a particular node, these three parts will remain as separate parts.

Syntax

aPolyLine.Connect

Returns

PolyLine


Explode (PolyLine)
Explode

Returns a list of single-part PolyLines representing aPolyLine.

 ' Make theTheme editable, then select some features, then run this
 theView  = av.GetActiveDoc
 theTheme = theView.GetEditableTheme
 theFTab  = theTheme.GetFTab
 theFTab.BeginTransaction
 fldShape = theFTab.FindField("shape")
 sel = theFTab.GetSelection.GetNextSet(-1)
 theShp = theFtab.ReturnValue(fldShape,sel)
 aList = theShp.Explode
 ' For this example, attributes are not preserved
 for each f in aList
   rec = theFTab.AddRecord
   theFTab.SetValue(fldShape,rec,f)
 end
 theFTab.RemoveRecord(sel)
 theFTab.UpdateSelection
 theFtab.EndTransaction
 theTheme.Invalidate(TRUE)

Syntax

aPolyLine.Explode

Returns

List


Flip (PolyLine)
Flip

Reverses the order of vertices in aPolyLine. In the following script, this text is returned:

 Polyline
 2
 3
 1,2
 1,3
 2,3
 2
 2,5
 3,6

 Polyline
 2
 2
 3,6
 2,5
 3
 2,3
 1,3
 1,2

 aLine = PolyLine.Make({ {1@2, 1@3, 2@3}, {2@5, 3@6} })
 MsgBox.Report(aLine.AsString, "")
 flipLine = aLine.Flip
 MsgBox.Report(flipLine.AsString, "")

Syntax

aPolyLine.Flip

Returns

PolyLine


FlipPart (PolyLine)
FlipPart

Reverses the order of vertices in aPart of aPolyLine. aPart is the index number (0, 1, 2, etc). The following script whichs flips the order of the vertices in the second part of the line (index 1), the following text is returned:

 Polyline
 2
 3
 1,2
 1,3
 2,3
 2
 2,5
 3,6

 Polyline
 2
 3
 1,2
 1,3
 2,3
 2
 3,6
 2,5

 aLine = PolyLine.Make({ {1@2, 1@3, 2@3}, {2@5, 3@6} })
 MsgBox.Report(aLine.AsString, "")
 flipLine = aLine.FlipPart(1)
 MsgBox.Report(flipLine.AsString, "")

Syntax

aPolyLine.FlipPart (aPart)

Returns

PolyLine


LineIntersection (PolyLine)
LineIntersection

Intersects aPolyLine and anotherShape into a new PolyLine shape which represents the line segment that aPolyLine and anotherShape have in common.

Syntax

aPolyLine.LineIntersection (anotherShape)

Returns

PolyLine


PointIntersection (PolyLine)
PointIntersection

Intersects aPolyLine and anotherShape into a new MultiPoint shape that captures the intersection points.

Syntax

aPolyLine.PointIntersection (anotherShape)

Returns

MultiPoint


QueryConnected (PolyLine)
QueryConnected

Returns in result a PolyLine equivalent to aPolyLine, with optimized number of parts. If end points of parts in a PolyLine are considered nodes in a graph, the resulting PolyLine has no nodes of valence two. This means that if two parts of aPolyLine share a particular node, these two parts will be merged into one part. If three parts of aPolyLine share a particular node, these three parts will remain as separate parts.

Syntax

aPolyLine.QueryConnected (result)

Returns

PolyLine


ReShape (PolyLine)
ReShape

Returns a PolyLine resulting from replacing old sub-paths in aPolyLine with alternative path in anotherPolyLine.

Syntax

aPolyLine.ReShape (anotherPolyLine)

Returns

PolyLine


ReturnClipped (PolyLine)
ReturnClipped

Returns aPolyLine clipped to aRect. The result will be NULL if aPolyLine and aRect do not intersect.

Syntax

aPolyLine.ReturnClipped (aRect)

Returns

Shape


ReturnConnected (PolyLine)
ReturnConnected

Returns new PolyLine equivalent to aPolyLine, with optimized number of parts. If end points of parts in a PolyLine are considered nodes in a graph, the resulting PolyLine has no nodes of valence two. This means that if two parts of aPolyLine share a particular node, these two parts will be merged into one part. If three parts of aPolyLine share a particular node, these three parts will remain as separate parts.

Syntax

aPolyLine.ReturnConnected

Returns

PolyLine


ReturnDifference (PolyLine)
ReturnDifference

Subtracts anotherShape from aPolyLine into a new shape. It corresponds to set operation Difference where shapes are treated as point-sets. If Shapes are viewed as bitmaps, this would be an 'aShape AND (NOT anotherShape)' operation. aShape's dimensionality must be less or equal to anotherShape's dimensionality. The result will always have the dimensionality of aShape.

Syntax

aPolyLine.ReturnDifference (anotherShape)

Returns

PolyLine


ReturnMerged (PolyLine)
ReturnMerged

Merges aPolyLine and aShape into a new PolyLine. aShape must be a Line or PolyLine.

Syntax

aPolyLine.ReturnMerged (aShape)

Returns

PolyLine


ReturnOffset (PolyLine)
ReturnOffset

Returns a new PolyLine which is the left or right linear offset of the aPolyLine. The offset is towards the left when aOffset < 0 and is towards the right when anOffset > 0.

Syntax

aPolyLine.ReturnOffset (anOffset)

Returns

PolyLine


ReturnProjected (PolyLine)
ReturnProjected

Returns aPolyLine projected by aPrj. The result may be a different kind of shape or have more points than the original in order to be visually pleasing.

Syntax

aPolyLine.ReturnProjected (aPrj)

Returns

Shape


ReturnUnprojected (PolyLine)
ReturnUnprojected

Returns aPolyLine unprojected from aPrj. The result may be a different kind of shape or have more points than the original in order to be visually pleasing.

Syntax

aPolyLine.ReturnUnprojected (aPrj)

Returns

Shape


Split (PolyLine)
Split

Returns a list of PolyLines resulting from splitting aPolyLine with aShape. Depending on dimensionality of aShape, it is treated as a MultiPoint or as a PolyLine.

Syntax

aPolyLine.Split (aShape)

Returns

List


SplitLines (PolyLine)
SplitLines

Returns a list of two lists: the first corresponds to the results of splitting aPolyLine with anotherPolyLine; and the second results from splitting anotherPolyLine with aPolyLine.

Syntax

aPolyLine.SplitLines (anotherPolyLine)

Returns

List


PolyLineM
Example	Related Topics

 A PolyLineM is a set of one or more linear features called parts. Each linear feature is represented by 2 or more (x,y,m) points.

Attributes

Parts.A PolyLineM contains one or more parts. These parts are discontinuous. The request CountParts returns the number of parts in the PolyLineM. Each part is defined by a list of 2 or more (x,y,m) points describing the line segment. See PolyLineM.Make for an example.

Inherits From

PolyLine

Inherited By

PolyLineZ

Class Requests

Making PolyLineMs

Make ( aListofListofPoints ) :  PolyLineM

MakeNull  :  PolyLineM

Instance Requests

Converting a PolyLineM

AsList  :  List

AsPolyLine  :  PolyLine

@ ( zValue ) :  PolyLineZ

Generic Object Requests

= anObj :  Boolean

AsString  :  String

IsMeasured  :  Boolean

Getting and Setting Attributes

ReturnMBB  :  RectM

Setting and Getting M and for segmentation

GetLengthsAtM ( aMeasure ) :  List

GetM  :  List

GetMAtLength ( aLength ) :  List

GetMAtPosition ( aPercentage ) :  List

GetMForPoint ( aPointIndex ) :  Number

GetPartStartEndM ( partId ) :  List

GetPositionsAtM ( aMeasure ) :  List

InterpolateMBetween ( basePtsList ) :  PolyLineM

InterpolateNilM  :  PolyLineM

LineEvent ( from, to, offset ) :  PolyLineM

MMultiply ( aValue ) :  PolyLineM

MOffset ( anOffset ) :  PolyLineM

PointEvent ( measure, offset ) :  MultiPointM

SetM ( aListOfM ) :  PolyLineM

SetMAsLength  :  PolyLineM

SetMAtLength ( aLength, aMValue ) :  Number

SetMAtPosition ( aPercentage, aMValue ) :  Number

SetMForPoint ( aPointIndex, aMValue ) :  PolyLineM

SetMToNil  :  PolyLineM

SetPartStartEndM ( partId, mStart, mEnd ) :  PolyLineM

Transforming a PolyLineM

Clean  :  PolyLineM

Explode  :  List

Flip  :  PolyLineM

FlipPart ( aPart ) :  PolyLineM

ReturnConnected  :  PolyLineM

ReturnDensified ( aStepSize ) :  PolyLineM

ReturnMerged ( aShape ) :  PolyLineM

ReturnOffset ( anOffset ) :  PolyLineM

ReturnProjected ( aPrj ) :  Shape

ReturnUnprojected ( aPrj ) :  Shape

__________

See also

PointM
RectM
LineM
MultiPointM
PolygonM


Make (PolyLineM)
Make

Makes a PolyLineM from aListofListofPoints. This example creates a PolyLineM with three parts.

 myLine = PolyLineM.Make( {{0@0&0, 1@1&1, 2@2&2, 3@3&3},
                          {1@2&4, 1@3&3, 1@4&2},
                          {0@3&5, 2@1&5, 1@2&5, 3@0&5}} )

Syntax

PolyLineM.Make (aListofListofPoints)

Returns

PolyLineM


MakeNull (PolyLineM)
MakeNull

Makes the NULL PolyLineM.

Syntax

PolyLineM.MakeNull

Returns

PolyLineM


AsList (PolyLineM)
AsList

Returns aPolyLineM as a list containing lists of points.

Syntax

aPolyLineM.AsList

Returns

List


AsPolyLine (PolyLineM)
AsPolyLine

Returns a PolyLine representation of aPolyLineM.

Syntax

aPolyLineM.AsPolyLine

Returns

PolyLine


@ (PolyLineM)
@

Returns a PolyLineZ with the x, y points and the m buffer preserved. A coordinate zValue is set for all the points.

Syntax

aPolyLineM.@ (zValue)

Returns

PolyLineZ


= (PolyLineM)
=

Returns TRUE if aPolyLineM and anObj are equal, otherwise returns FALSE.

Syntax

aPolyLineM = anObj

Returns

Boolean


AsString (PolyLineM)
AsString

Returns a string describing aPolyLineM. The string contains the keyword PolyLineM, the number of parts and, for each part, the number of points. Each point has an x, y and M value. For example, this script creates the following PolyLineM.

 myLine = PolyLineM.Make( {{0@0&0, 1@1&1, 2@2&2, 3@3&3},
                          {1@2&4, 1@3&3, 1@4&2},
                          {0@3&5, 2@1&5, 1@2&5, 3@0&5}} )
 msgbox.info( myLine.AsString, "")

 PolyLineM
 3
 4
 0,0,0
 1,1,1
 2,2,2
 3,3,3
 3
 1,2,4
 1,3,3
 1,4,2
 4
 0,3,5
 2,1,5
 1,2,5
 3,0,5

Syntax

aPolyLineM.AsString

Returns

String


IsMeasured (PolyLineM)
IsMeasured

Returns TRUE if the M buffer exists.

Syntax

aPolyLineM.IsMeasured

Returns

Boolean


ReturnMBB (PolyLineM)
ReturnMBB

Returns the MBB of aPolyLineM. The MBB is the minimum bounding box aPolyLineM.

Syntax

aPolyLineM.ReturnMBB

Returns

RectM


GetLengthsAtM (PolyLineM)
GetLengthsAtM

Returns a list of lengths corresponding to the M value.

Syntax

aPolyLineM.GetLengthsAtM (aMeasure)

Returns

List


GetM (PolyLineM)
GetM

Returns a list containing lists of M values of aPolyLineM.

Syntax

aPolyLineM.GetM

Returns

List


GetMAtLength (PolyLineM)
GetMAtLength

Return the list of M values corresponding to aLength along aPolylineM.

Syntax

aPolyLineM.GetMAtLength (aLength)

Returns

List


GetMAtPosition (PolyLineM)
GetMAtPosition

Returns the list of M values corresponding to the aPercentage along aPolyLineM.

Syntax

aPolyLineM.GetMAtPosition (aPercentage)

Returns

List


GetMForPoint (PolyLineM)
GetMForPoint

Returns the M value of aPolyLineM corresponding to the point index. If aPointIndex cannot be found, Number Null is returned.

Syntax

aPolyLineM.GetMForPoint (aPointIndex)

Returns

Number


GetPartStartEndM (PolyLineM)
GetPartStartEndM

Returns a list composed of the m values of the first and the last vertices of the partId. An empty list is returned when partId does not exist.

A partId is the index number of aPolyLineM's parts.

Syntax

aPolyLineM.GetPartStartEndM (partId)

Returns

List


GetPositionsAtM (PolyLineM)
GetPositionsAtM

Returns a list of positions corresponding to the M value. If aMeasure does not exist, an empty list is returned.

Syntax

aPolyLineM.GetPositionsAtM (aMeasure)

Returns

List


InterpolateMBetween (PolyLineM)
InterpolateMBetween

Interpolate the m values between the base points using the length to interpolate the new m values.

The base points are the index numbers of the vertices that make up aPolyLineM.

Syntax

aPolyLineM.InterpolateMBetween (basePtsList)

Returns

PolyLineM


InterpolateNilM (PolyLineM)
InterpolateNilM

Interpolate the Number Null (or 'nil ) m values of aPolyLineM between two regular m values using the length.

Syntax

aPolyLineM.InterpolateNilM

Returns

PolyLineM


LineEvent (PolyLineM)
LineEvent

Returns a PolyLineM object corresponding to a linear event with a from measure, a to measure and an offset. Depending on the m values in aPolyLineM, this request may return a multi-part PolyLineM. If the offset is negative the events are on the left of the PolyLineM.

Syntax

aPolyLineM.LineEvent (from, to, offset)

Returns

PolyLineM


MMultiply (PolyLineM)
MMultiply

Multiply all the m values of aPolyLineM by aValue.

Syntax

aPolyLineM.MMultiply (aValue)

Returns

PolyLineM


MOffset (PolyLineM)
MOffset

Offset all the m values of aPolyLineM by anOffset.

Syntax

aPolyLineM.MOffset (anOffset)

Returns

PolyLineM


PointEvent (PolyLineM)
PointEvent

Returns a MultiPointM object corresponding to the point events at a measure and an offset. Depending on the m values in aPolyLineM, this request may return more than one point in the resultant MultiPointM. The points are at a lateral offset. If the offset is negative the events are on the left of the PolyLineM.

Syntax

aPolyLineM.PointEvent (measure, offset)

Returns

MultiPointM


SetM (PolyLineM)
SetM

Reset the M values of aPolyLineM with the values included in aListOfM.

aListOfM is a list containing lists of M values.

 pl = PolyLineM.Make({{0@0&0, 1@0&1, 2@0&2,3@0&3,4@0&4,5@0&5},
                    {5@1&5,5@2&5,5@3&5}})
 pl.SetM({{1,2,3,4,5,6},{7,8,9}})

Syntax

aPolyLineM.SetM (aListOfM)

Returns

PolyLineM


SetMAsLength (PolyLineM)
SetMAsLength

Set the m values of aPolyLineM corresponding to the length from the beginning of aPolyLineM to the vertex.

Syntax

aPolyLineM.SetMAsLength

Returns

PolyLineM


SetMAtLength (PolyLineM)
SetMAtLength

Add a new vertex at aLength and set its m value with aMValue. If a vertex already exists at this length, then just set its m value with aMValue. Returns the index of the vertex modified or created. If aLength cannot be found, -1 is returned.

Syntax

aPolyLineM.SetMAtLength (aLength, aMValue)

Returns

Number


SetMAtPosition (PolyLineM)
SetMAtPosition

Add a new vertex at aPercentage and set its m value with aMValue. If a vertex already exists at this percentage, then just set its m value with aMValue. Returns the index of the vertex modified or created. If aPercentage cannot be found, -1 is returned.

Syntax

aPolyLineM.SetMAtPosition (aPercentage, aMValue)

Returns

Number


SetMForPoint (PolyLineM)
SetMForPoint

Set the M value for the given point index and return aPolyLineM.

Syntax

aPolyLineM.SetMForPoint (aPointIndex, aMValue)

Returns

PolyLineM


SetMToNil (PolyLineM)
SetMToNil

Set the M values of aPolyLineM to Null Numbers (or 'nil').

Syntax

aPolyLineM.SetMToNil

Returns

PolyLineM


SetPartStartEndM (PolyLineM)
SetPartStartEndM

 Set the m values for the first vertex and the last vertex of a partId and interpolate the m values for the other vertices using the length between the vertices.

A partId is the index number of aPolyLineM's parts.

Syntax

aPolyLineM.SetPartStartEndM (partId, mStart, mEnd)

Returns

PolyLineM


Clean (PolyLineM)
Clean

Returns aPolyLineM cleaned by applying ReturnConnected request. See ReturnConnected for more information.

Syntax

aPolyLineM.Clean

Returns

PolyLineM


Explode (PolyLineM)
Explode

Returns a list of single-part PolyLineMs representing aPolyLineM.

Syntax

aPolyLineM.Explode

Returns

List


Flip (PolyLineM)
Flip

Reverses the order of vertices in aPolyLineM. In the following script, this text is returned:

 PolylineM
 2
 3
 1,2,1
 1,3,2
 2,3,3
 2
 2,5,4
 3,6,5

 PolylineM
 2
 2
 3,6,5
 2,5,4
 3
 2,3,3
 1,3,2
 1,2,1

 aLine = PolyLineM.make({{1@2&1, 1@3&2, 2@3&3}, {2@5&4, 3@6&5}})
 msgBox.Report(aLine.AsString, "")
 aLine.Flip
 msgBox.Report(aLine.AsString, "")

Syntax

aPolyLineM.Flip

Returns

PolyLineM


FlipPart (PolyLineM)
FlipPart

Reverses the order of vertices in aPart of aPolyLineM. aPart is the index number (0, 1, 2, etc). The following script whichs flips the order of the vertices in the second part of the line (index 1), the following text is returned:

 PolylineM
 2
 3
 1,2,1
 1,3,2
 2,3,3
 2
 2,5,4
 3,6,5

 PolylineM
 2
 3
 1,2,1
 1,3,2
 2,3,3
 2
 3,6,5
 2,5,4

 aLine = PolyLineM.make({ {1@2&1, 1@3&2, 2@3&3}, {2@5&4, 3@6&5} })
 msgBox.Report(aLine.AsString, "")
 aLine.FlipPart(1)
 msgBox.Report(aLine.AsString, "")

Syntax

aPolyLineM.FlipPart (aPart)

Returns

PolyLineM


ReturnConnected (PolyLineM)
ReturnConnected

Returns new PolyLineM equivalent to aPolyLineM, with optimized number of parts. If end points of parts in a PolyLineM are considered nodes in a graph, the resulting PolyLine has no nodes of valence two. This means that if two parts of aPolyLine share a particular node and if the M values of the nodes are the same, these two parts will be merged into one part. If three parts of aPolyLine share a particular node, these three parts will remain as separate parts.

Syntax

aPolyLineM.ReturnConnected

Returns

PolyLineM


ReturnDensified (PolyLineM)
ReturnDensified

Returns a PolyLineM with a point every aStepSize along aPolyLineM. The M values are interpoleted for the new points. In the following script, this text is returned:

 PolyLineM
 2
 10
 0,0,0
 3.33333,3.33333,3.33333
 6.66667,6.66667,6.66667
 10,10,10
 13.3333,13.3333,13.3333
 16.6667,16.6667,16.6667
 20,20,20
 23.3333,23.3333,23.3333
 26.6667,26.6667,26.6667
 30,30,30
 5
 1,20,5
 1,25,5
 1,30,5
 1,35,5
 1,40,5

 aLine = PolyLineM.Make( {{0@0&0, 10@10&10, 20@20&20, 30@30&30},
                        {1@20&5, 1@30&5, 1@40&5}}
 dLine = aLine.ReturnDensified( 5 )
 msgbox.report( dLine.AsString, "")

Syntax

aPolyLineM.ReturnDensified (aStepSize)

Returns

PolyLineM


ReturnMerged (PolyLineM)
ReturnMerged

Merges aPolyLineM and aShape into a new PolyLineM.

aShape can be Line, LineM, LineZ, PolyLine, PolyLineM or PolyLineZ.

Syntax

aPolyLineM.ReturnMerged (aShape)

Returns

PolyLineM


ReturnOffset (PolyLineM)
ReturnOffset

Returns a new PolyLineM which is the left or right linear offest of aPolyLineM. The offset is towards the left when aOffest < 0 and is towards the right when anOffset > 0. The M values of the offseted PolylineM will be the same as aPolyLineM.

Syntax

aPolyLineM.ReturnOffset (anOffset)

Returns

PolyLineM


ReturnProjected (PolyLineM)
ReturnProjected

Returns aPolyLineM projected by aPrj. aPolyLineM will be the same kind of shape and have the same number of points.

Syntax

aPolyLineM.ReturnProjected (aPrj)

Returns

Shape


ReturnUnprojected (PolyLineM)
ReturnUnprojected

Returns aPolyLineM unprojected from aPrj. aPolyLineM will be the same kind of shape and have the same number of points.

Syntax

aPolyLineM.ReturnUnprojected (aPrj)

Returns

Shape


PolyLineZ

 A PolyLineZ is a set of one or more linear features called parts. Each linear feature is represented by 2 or more (x,y,z) points.

Attributes

Parts.A PolyLineZ contains one or more parts. These parts are discontinuous. The request CountParts returns the number of parts in the PolyLineZ. Each part is defined by a list of 2 or more (x,y,z) points describing the line segment. See PolyLineZ.Make for an example.

Inherits From

PolyLineM

Class Requests

Making PolyLineZs

Make ( aListofListofPointZs ) :  PolyLineZ

MakeNull  :  PolyLineZ

Instance Requests

Converting a PolyLineZ

AsList  :  List

Generic Object Requests

= anObj :  Boolean

AsString  :  String

HasZ  :  Boolean

IsMeasured  :  Boolean

Getting and Setting Attributes

ReturnCenter  :  PointZ

ReturnMBB  :  RectZ

Transforming a PolyLineZ

Clean  :  PolyLineZ

Explode  :  List

Flip  :  PolyLineZ

FlipPart ( aPart ) :  PolyLineZ

QueryZOffset ( anotherPolyLineZ, aOffset ) :  PolyLineZ

QueryZScale ( anotherPolyLineZ, aScale ) :  PolyLineZ

ReturnConnected  :  PolyLineZ

ReturnDensified ( aStepSize ) :  PolyLineZ

ReturnMerged ( aShape ) :  PolyLineZ

ReturnOffset ( anOffset ) :  Shape

ReturnProjected ( aPrj ) :  Shape

ReturnUnprojected ( aPrj ) :  Shape

ZMove ( moveX, moveY, moveZ ) :  PolyLineZ

ZOffset ( aOffset ) :  PolyLineZ

ZScale ( aScale ) :  PolyLineZ

Setting and Getting M and for segmentation

SetMAtLength ( aLength, aMValue ) :  Number

SetMAtPosition ( aPercentage, aMValue ) :  Number

__________

See also

PointZ
Circle
Oval
Rect
Line
Shape


Make (PolyLineZ)
Make

Makes a PolyLineZ from aListofListofPointZs. This example creates a PolyLineZ with three parts.

 myLine = PolyLineZ.Make( {{0@0@0, 1@1@1, 2@2@2, 3@3@3},
                          {1@2@4, 1@3@3, 1@4@2},
                          {0@3@5, 2@1@5, 1@2@5, 3@0@5}} )

Syntax

PolyLineZ.Make (aListofListofPointZs)

Returns

PolyLineZ


MakeNull (PolyLineZ)
MakeNull

Makes the NULL PolyLineZ.

Syntax

PolyLineZ.MakeNull

Returns

PolyLineZ


AsList (PolyLineZ)
AsList

Returns aPolyLineZ as a list containing lists of pointZs.

Syntax

aPolyLineZ.AsList

Returns

List


= (PolyLineZ)
=

Returns TRUE if aPolyLineZ and anObj are equal, otherwise returns FALSE.

Syntax

aPolyLineZ = anObj

Returns

Boolean


AsString (PolyLineZ)
AsString

Returns a string describing aPolyLineZ. The string contains the keyword PolyLineZ, the number of parts and for each part, the number of points in it and the X,Y,Z of each point. For example, this script creates the following PolyLineZ.

 myLine = PolyLineZ.Make( {{0@0@0, 1@1@1, 2@2@2, 3@3@3},
                          {1@2@4, 1@3@3, 1@4@2},
                          {0@3@5, 2@1@5, 1@2@5, 3@0@5}} )
 msgbox( myLine.AsString, "")

 PolyLineZ
 3
 4
 0,0,0
 1,1,1
 2,2,2
 3,3,3
 3
 1,2,4
 1,3,3
 1,4,2
 4
 0,3,5
 2,1,5
 1,2,5
 3,0,5

Syntax

aPolyLineZ.AsString

Returns

String


HasZ (PolyLineZ)
HasZ

Returns TRUE because aPolyLineZ has Z coordinates.

Syntax

aPolyLineZ.HasZ

Returns

Boolean


IsMeasured (PolyLineZ)
IsMeasured

Returns TRUE if aPolyLineZ has Measure coordinates, otherwise returns FALSE.

Syntax

aPolyLineZ.IsMeasured

Returns

Boolean


ReturnCenter (PolyLineZ)
ReturnCenter

Returns the center point of aPolyLineZ. The returned pointZ has the xy coordinates of one of the points in aPolyLineZ while its z value is the mean between the min and max heights of aPolyLineZ.

Syntax

aPolyLineZ.ReturnCenter

Returns

PointZ


ReturnMBB (PolyLineZ)
ReturnMBB

Returns the MBB of aPolyLineZ. The MBB is the minimum bounding box surrounding aPolyLineZ.

Syntax

aPolyLineZ.ReturnMBB

Returns

RectZ


Clean (PolyLineZ)
Clean

Returns aPolyLineZ cleaned by applying ReturnConnected request. See ReturnConnected for more information.

Syntax

aPolyLineZ.Clean

Returns

PolyLineZ


Explode (PolyLineZ)
Explode

Returns a list of single-part PolyLineZs representing aPolyLineZ.

Syntax

aPolyLineZ.Explode

Returns

List


Flip (PolyLineZ)
Flip

Reverses the order of vertices in aPolyLineZ. In the following script, this text is returned:

 PolylineZ
 2
 3
 1,2,1
 1,3,2
 2,3,3
 2
 2,5,4
 3,6,5

 PolylineZ
 2
 2
 3,6,5
 2,5,4
 3
 2,3,3
 1,3,2
 1,2,1

 aLine = PolyLineZ.make({ {1@2@1, 1@3@2, 2@3@3}, {2@5@4, 3@6@5} })
 msgBox.Report(aLine.AsString, "")
 flipLine = aLine.Flip
 msgBox.Report(flipLine.AsString, "")

Syntax

aPolyLineZ.Flip

Returns

PolyLineZ


FlipPart (PolyLineZ)
FlipPart

Reverses the order of vertices in aPart of aPolyLineZ. aPart is the index number (0, 1, 2, etc). The script listed below, which flips the order of vertices in the second part of the line (index 1), returns the following text:

 PolylineZ
 2
 3
 1,2,1
 1,3,2
 2,3,3
 2
 2,5,4
 3,6,5

 PolylineZ
 2
 3
 1,2,1
 1,3,2
 2,3,3
 2
 3,6,5
 2,5,4

 aLine = PolyLineZ.make({ {1@2@1, 1@3@2, 2@3@3}, {2@5@4, 3@6@5} })
 msgBox.Report(aLine.AsString, "")
 flipLine = aLine.FlipPart(1)
 msgBox.Report(flipLine.AsString, "")

Syntax

aPolyLineZ.FlipPart (aPart)

Returns

PolyLineZ


QueryZOffset (PolyLineZ)
QueryZOffset

Queries aPolyLineZ into anotherPolyLineZ altering it's z values by adding aOffset.

Syntax

aPolyLineZ.QueryZOffset (anotherPolyLineZ, aOffset)

Returns

PolyLineZ


QueryZScale (PolyLineZ)
QueryZScale

Queries aPolyLineZ into anotherPolyLineZ altering it's z values by multiplying with aScale.

Syntax

aPolyLineZ.QueryZScale (anotherPolyLineZ, aScale)

Returns

PolyLineZ


ReturnConnected (PolyLineZ)
ReturnConnected

Returns new PolyLineZ equivalent to aPolyLineZ, with optimized number of parts. If end points of parts in a PolyLineZ are considered nodes in a graph, the resulting PolyLineZ has no nodes of valence two. This means that if two parts of aPolyLineZ share a particular node and if the Z and/or M values of the nodes are the same, these two parts will be merged into one part. If three parts of aPolyLineZ share a particular node, these three parts will remain as separate parts.

Syntax

aPolyLineZ.ReturnConnected

Returns

PolyLineZ


ReturnDensified (PolyLineZ)
ReturnDensified

Returns a PolyLineZ with a point every aStepSize along aPolyLineZ. In the following script, this text is returned:

 PolyLineZ
 2
 10
 0,0,0
 3.33333,3.33333,3.33333
 6.66667,6.66667,6.66667
 10,10,10
 13.3333,13.3333,13.3333
 16.6667,16.6667,16.6667
 20,20,20
 23.3333,23.3333,23.3333
 26.6667,26.6667,26.6667
 30,30,30
 5
 1,20,5
 1,25,5
 1,30,5
 1,35,5
 1,40,5

 aLine = PolyLineZ.Make( {{0@0@0, 10@10@10, 20@20@20, 30@30@30},
                        {1@20@5, 1@30@5, 1@40@5}}
 dLine = aLine.ReturnDensified( 5 )
 msgbox.report( dLine.AsString, "")

Syntax

aPolyLineZ.ReturnDensified (aStepSize)

Returns

PolyLineZ


ReturnMerged (PolyLineZ)
ReturnMerged

Merges aPolyLineZ and aShape into a new PolyLineZ. aShape must be a Line, PolyLine, or one of their subclasses.

Syntax

aPolyLineZ.ReturnMerged (aShape)

Returns

PolyLineZ


ReturnOffset (PolyLineZ)
ReturnOffset

Returns a new PolyLine which is the left or right linear offest of the aPolyLineZ. The offset is towards the left when aOffest < 0 and is towards the right when anOffset > 0. If aPolyLineZ has no measures and vertices aren't added as a result of the offset, the result will be a PolyLineZ. If aPolyLineZ is measured, or vertices are added, then the Z values will be removed and a PolyLineM or a PolyLine will be returned.

Syntax

aPolyLineZ.ReturnOffset (anOffset)

Returns

Shape


ReturnProjected (PolyLineZ)
ReturnProjected

Returns aPolyLineZ projected by aPrj. The result will be the same kind of shape and have the same number of points as aPolyLineZ.

Syntax

aPolyLineZ.ReturnProjected (aPrj)

Returns

Shape


ReturnUnprojected (PolyLineZ)
ReturnUnprojected

Returns aPolyLineZ unprojected from aPrj. The result will be the same kind of shape and have the same number of points as aPolyLineZ.

Syntax

aPolyLineZ.ReturnUnprojected (aPrj)

Returns

Shape


ZMove (PolyLineZ)
ZMove

Moves aPolyLineZ by moveX, moveY and moveZ and returns it. The x, y and z moves are applied to each point in the PolyLineZ.

Syntax

aPolyLineZ.ZMove (moveX, moveY, moveZ)

Returns

PolyLineZ


ZOffset (PolyLineZ)
ZOffset

Offsets aPolyLineZ z values by aOffset.

Syntax

aPolyLineZ.ZOffset (aOffset)

Returns

PolyLineZ


ZScale (PolyLineZ)
ZScale

Multiplies aPolyLineZ z values by aScale.

Syntax

aPolyLineZ.ZScale (aScale)

Returns

PolyLineZ


SetMAtLength (PolyLineZ)
SetMAtLength

No supported for a PolyLineZ. Return -1.

Syntax

aPolyLineZ.SetMAtLength (aLength, aMValue)

Returns

Number


SetMAtPosition (PolyLineZ)
SetMAtPosition

Not supported for a PolyLineZ. Return -1.

Syntax

aPolyLineZ.SetMAtPosition (aPercentage, aMValue)

Returns

Number


AttrRange

 An AttrRange is a concrete class to define the update procedures for range attributes when a split or union operation is performed on records in a feature table. Range attributes are defined by two table fields.

Inherits From

AttrUpdate

Enumerations

AttrRangeTypeEnum

Class Requests

Making AttrRange objects

Make ( anFTab, aField, PairedField, aRangeTypeEnum ) :  AttrRange

Instance Requests

Getting and setting AttrRange attributes

GetPairedField  :  Field

GetRangeType  :  AttrRangeTypeEnum

SetPairedField ( aField )

SetRangeType ( aRangeTypeEnum )

__________

See also

AttrUpdate


Make (AttrRange)
Make

 Makes an attribute update rule to update aField and PariedField on anFTab of type aRangeTypeEnum.

Syntax

AttrRange.Make (anFTab, aField, PairedField, aRangeTypeEnum)

Returns

AttrRange


GetPairedField (AttrRange)
GetPairedField

 Gets the paired field for anAttrRange.

Syntax

anAttrRange.GetPairedField

Returns

Field


GetRangeType (AttrRange)
GetRangeType

 Gets the range type enum for anAttrRange.

Syntax

anAttrRange.GetRangeType

Returns

AttrRangeTypeEnum


SetPairedField (AttrRange)
SetPairedField

 Sets aField to anAttrRange's paired field.

Syntax

anAttrRange.SetPairedField (aField)


SetRangeType (AttrRange)
SetRangeType

 Sets the range type for anAttrRange to aRangeTypeEnum.

Syntax

anAttrRange.SetRangeType (aRangeTypeEnum)


AttrRangeTypeEnum

 Enumerated type for range type attribute updating in line themes. The range type determines how attributes are updated when features are split with anFtheme.SplitLines or unioned with anFtheme.unionSelected.

   Range updates are performed on numeric attributes only.

#ATTR_RANGETYPE_ADDRESS

 Treats the paired fields as address ranges. The parity of the values is maintained, so if the address range is even the results will be even values, and if the address range is odd the results will be odd values.

#ATTR_RANGETYPE_CONTINUOUS

 Treats the paired fields as continuous values. The parity of the values is not maintained, so resulting values in the range can be even or odd.


AttrSingle

 An AttrSingle is a concrete class to define the update procedures for single attributes when a split or union operation is performed on records in a feature table.

Inherits From

AttrUpdate

Enumerations

AttrUnionRuleEnum

AttrSplitRuleEnum

Class Requests

Making AttrSingle objects

Make ( anFTab, aField, aUnionRuleEnum, aSplitRuleEnum ) :  AttrSingle

Instance Requests

Getting and setting AttrSingle attributes

GetSplitRule  :  AttrSplitRuleEnum

GetUnionRule  :  AttrUnionRuleEnum

SetSplitRule ( aSplitRuleEnum )

SetUnionRule ( aUnionRuleEnum )

__________

See also

AttrUpdate


Make (AttrSingle)
Make

 Makes an attribute aware rule to update aField on anFTab using aUnionRuleEnum and aSplitRuleEnum.

Syntax

AttrSingle.Make (anFTab, aField, aUnionRuleEnum, aSplitRuleEnum)

Returns

AttrSingle


GetSplitRule (AttrSingle)
GetSplitRule

 Gets the split rule ENUM for anAttrSingle.

Syntax

anAttrSingle.GetSplitRule

Returns

AttrSplitRuleEnum


GetUnionRule (AttrSingle)
GetUnionRule

 Gets the union rule ENUM for anAttrSingle.

Syntax

anAttrSingle.GetUnionRule

Returns

AttrUnionRuleEnum


SetSplitRule (AttrSingle)
SetSplitRule

 Sets the split rule for anAttrSingle to aSplitRuleEnum.

Syntax

anAttrSingle.SetSplitRule (aSplitRuleEnum)


SetUnionRule (AttrSingle)
SetUnionRule

 Sets the union rule for anAttrSingle to aUnionRuleEnum.

Syntax

anAttrSingle.SetUnionRule (aUnionRuleEnum)


AttrUnionRuleEnum

 Enumerated type for rules used in union attribute updating. The rule determines how attribute values are handled when the selected features are unioned with anFTheme.UnionSelected.

   Updates on non-numeric attributes may apply ATTR_UNIONRULE_BLANK
and ATTR_UNIONRULE_COPY rules only.   Updates on numeric attributes may apply any rule.

#ATTR_UNIONRULE_BLANK

 Attribute is blank.

#ATTR_UNIONRULE_COPY

 Copy attributes over from original.

#ATTR_UNIONRULE_PROPORTION

 Attribute values will be proportioned using a area-weight for polygons or length-weight for polylines.

#ATTR_UNIONRULE_ADD

 Sum the attributes.

#ATTR_UNIONRULE_AVERAGE

 Average the attributes.

#ATTR_UNIONRULE_SHAPEAREA

 Calculate the value based on the shape's area.

#ATTR_UNIONRULE_SHAPELENGTH

 Calculate the value based on the shape's length. For Polygon shapes, length represents the shape's perimeter.


AttrSplitRuleEnum

 Enumerated type for rules used in split attribute updating. The rule determines how attribute values are handled when features are split with anFtheme.SplitLines for Line themes or anFtheme.Split for Polygon themes.

   Updates on non-numeric attributes may apply ATTR_SPLITRULE_BLANK
and ATTR_SPLITRULE_COPY rules only.   Updates on numeric attributes may apply any rule.

#ATTR_SPLITRULE_BLANK

 Attribute is blank.

#ATTR_SPLITRULE_COPY

 Copies attributes over from original.

#ATTR_SPLITRULE_PROPORTION

 Attribute values will be proportioned using a area-weight for polygons or length-weight for polylines.

#ATTR_SPLITRULE_SHAPEAREA

 Calculates the value based on the shape's area.

#ATTR_SPLITRULE_SHAPELENGTH

 Calculates the value based on the shape's length. For Polygon shapes, length represents the shape's perimeter.


AttrUpdate

 An AttrUpdate is an abstract class to define the update procedures for attributes when a split or union operation is performed on records in a feature table.

Inherits From

Obj

Inherited By

AttrRange
AttrSingle

Class Requests

Making AttrUpdate objects

MakeDefault ( UpdateSubclass, aField, anFTab ) :  AttrUpdate

Creating default AttrUpdate objects

AddMissingRules ( aRuleList, anFTab )

ReturnDefaultRules ( anFTab ) :  List

Instance Requests

Getting/setting AttrUpdate rule properties

GetField  :  Field

HasField ( aField ) :  Boolean

__________

See also

AttrSingle
AttrRange


MakeDefault (AttrUpdate)
MakeDefault

 Makes a default attribute update rule object of class UpdateSubclass for aField and anFTab. Default values are applied if they can be found in the defaults database.

Syntax

AttrUpdate.MakeDefault (UpdateSubclass, aField, anFTab)

Returns

AttrUpdate


AddMissingRules (AttrUpdate)
AddMissingRules

 Creates new rules in aRuleList for any field in anFTab which does not have a valid rule or is being used as a paired field.

Syntax

AttrUpdate.AddMissingRules (aRuleList, anFTab)


ReturnDefaultRules (AttrUpdate)
ReturnDefaultRules

 Returns a list of default update rules for anFTab.

Syntax

AttrUpdate.ReturnDefaultRules (anFTab)

Returns

List


GetField (AttrUpdate)
GetField

 Gets anAttrUpdate's field.

Syntax

anAttrUpdate.GetField

Returns

Field


HasField (AttrUpdate)
HasField

 Returns true if anAttrUpdate has aField.

Syntax

anAttrUpdate.HasField (aField)

Returns

Boolean


Date

 A Date is a labeled point in time.

A Date object includes both date and time information: year, month, day, hours, minutes, seconds, and milliseconds. You can create date objects using the current date/time or with specified values. You can perform arithmetic operations on dates and compare them. You can retrieve various components of a date: century, year, month, week, day, day-of-week, day-of-year, hours, minutes, seconds, and milliseconds. You can define the format for the string representation of dates for all date objects and for an individual date object.

Date objects can represent dates and times in the far future or the far past. It has been tested in the range from 4715 BC to the year 9999 AD. It can handle dates beyond these points, but may not produce consistent results for all requests.

Format

Date objects can be presented to the user in many different formats. The mechanism for specifying formats is the format string. There are two possible components to the format string: a date part and a time part. A format string can contain either or both.

General Notes regarding Formats:

A format string consists of value plugs and value separators. A value separator is any character which isn't a value plug.

The value plugs used to specify date and time components are case sensitive.

A backwards slash, \ , can be used as an escape character. The single character immediately following it will not be interpreted as a value plug.

Some value plugs can abut other value plugs. Some require a separator character for proper interpretation. For output only, any value plugs can be abutted to any other. For input, value plugs that specify a number of characters can directly abut other value plugs that have the same restriction. In addition, value plugs that specify a text replacement, such as a month name, a day name, etc. can also abut. Note that no error messages may be produced if you abut non-abuttable plugs, but the values returned are likely to be incorrect.

The Date Format:

You format dates by specifying how the year, month, and day appear to the user. A date value plug is one of:

    M    - the month as an integer from 1 to 12
    MM   - same as 'M', two digits with leading zeros
    MMM  - the short form of the month name
    MMMM - the long form of the month name

    d    - the day of the month as an integer from 1 to 31
    dd   - same as 'd', two digits with leading zeros
    ddd  - the short form of the day name
    dddd - the long form of the day name

    y      - the year without century
    yy     - same as 'y', two digits with leading zeros
    yyy    - the year with century, four digits with leading zeros
    yyyy   - same as 'yyy'
    yyyyy  - the year with century, not restricted to four digits

    c    - the century, without a leading zero
    cc   - the century, with a leading zero for single digit centuries
    w    - week of the year (Week 0 is first week with a Thursday)
    ww   - week of the year, two digits with leading zeros
    D    - numeric day of the week (Sunday = 1), one digit always
    AD   - AD or BC string depending upon the year
    CE   - CE or BCE string depending upon the year
    J    - Julian Day (days since January 1, 4713 BC)
    j    - day of the year
    jj   - day of the year, three digits with leading zeros

Notes About Date Formats:

When using the AD or CE value plug, all years will be presented as positive numbers with the appropriate AD/BC or CE/BCE indicator added. There is no year 0 when using these value plugs. The year immediately preceding 1 AD is 1 BC. If neither of these value plugs are specified then the year 1 is preceded by the year 0, then the year -1, etc. Note that AD and CE are equivalent, as are BC and BCE.

Years without centuries ('y' and 'yy' format plugs without a 'c' or 'cc' in the same format string) are by default handled in a way to assume the century that is most likely. This assumption uses cut-off points about fifty years in the past and fifty years in the future (a moving window that changes each year). The year specified is assumed to be in that range. For instance, if it is now 1998 and a year 01 is specified, the 01 is assumed to be 2001. If a year 85 is specified, then it is assumed to be 1985. This assumption can be changed by calling the SetAssumedBestCentury request with a parameter of false. If this is done then it is always assumed to be the current century (01 is interpreted as 1901).

A specific date can be specified in four ways. The first is the normal way with year, month, and day-of-month (for example the format string "yyyy MMMM dd"). The second way is with the year and day-of-year (for example, the format string "yyyy jj"). The third way is with the year, week, and day-of-week (for example, the format string "yyyy ww D"). The last way is with the Julian Day (format 'J') which specifies a specific day number since January 1, 4713 BC.

All dates starting from 15 October 1582 and into the future are displayed using the Gregorian calendar system. All dates in the past and up to 04 October 1582 are displayed using the Julian calendar system. Dates from 05 October 1582 through 14 October 1582, inclusive, are not recognized and a * will create nil date objects.

The Time format:

You format times by specifying how hours, minutes, and seconds appear to the user. Its value plugs are:

    m    - the minute as an integer from 00 to 59
    s    - the seconds value as an integer from 00 to 59
    s.s  - the seconds with milliseconds, 00.000

    h    - the hour as an integer from 1 to 12
    hh   - same as 'h', but with leading zero instead of blank
    hhh  - the hour from 0 to 23
    hhhh - same as 'hhh', but with leading zero instead of blank

    AMPM - locale specific AM or PM string
    TZ   - the locale specific time zone string.
    ITZ  - ISO format time zone string (+0800, -0500, etc.)

Notes About Time Formats:

When converting times there are two one-hour periods during the year when the conversion is ambiguous. Since time information is stored internally in UTC (Coordinated Universal Time) and the times parsed from strings are assumed to be in the Local time a conversion must take place. This conversion has two points of ambiguity related to the transitions to and from Daylight Savings Time. In the Spring there is an hour in Local time that does not exist. Clocks are set ahead one hour at 0200, so the hour from 0200 to 0259 in Local time has no corresponding UTC time. The results of converting times during this period are undefined. Likewise, in the Fall there is an hour in Local time that repeats itself. Clocks are set back an hour at 0200, so the hour from 0100 to 0159 repeats itself. There is no way to determine if the first or second instance of this hour is being converted to UTC so the first is always assumed.

Setting Date Formats:

The SetDefFormat request on Date alters the default date format for the duration of the ArcView application. Specify a date format for the duration of an executing script by sending the script object the SetDateFormat request. Modify the date format for an individual date object by sending it the SetFormat request.

Null Dates

A null date object is created by sending the request MakeNull to the Date class. Null date objects are also created when an error occurs when interpreting a date string. One can see if a date object is the null date by sending it the request IsNull. Most Date requests that return number will return a nil if called with a null date.

Inherits From

Obj

Class Requests

Dates

GetDefFormat  :  String

IsAssumedBestCentury  :  Boolean

Make ( dateString, formatString ) :  Date

MakeFromJulianDay ( aJulianDay, aNumber ) :  Date

MakeFromNumber ( aNumber ) :  Date

MakeNull  :  Date

Now  :  Date

SetAssumedBestCentury ( aBoolean )

SetDefFormat ( aFormatString )

Instance Requests

Date Arithmetic

+ aDuration :  Date

- aDurationOrAnotherDate :  Obj

.. anotherDate :  Duration

< anotherDate :  Boolean

<= anotherDate :  Boolean

= anotherDate :  Boolean

> anotherDate :  Boolean

>= anotherDate :  Boolean

FormattedEquals ( anotherDate, formatString ) :  Boolean

IncrementByDays ( aNumber ) :  Boolean

IncrementByHours ( aNumber ) :  Boolean

IncrementByMinutes ( aNumber ) :  Boolean

IncrementByMonths ( aNumber ) :  Boolean

IncrementBySeconds ( aNumber ) :  Boolean

IncrementByWeeks ( aNumber ) :  Boolean

IncrementByYears ( aNumber ) :  Boolean

SetDate ( dateString, formatString ) :  Boolean

Formatting Dates

GetFormat  :  String

SetFormat ( aFormatString ) :  Date

Examining Date Properties

AsSeconds  :  Number

AsString  :  String

GetDay  :  String

GetDayOfMonth  :  Number

GetDayOfYear  :  Number

GetHours  :  Number

GetJulianDate  :  Number

GetMilliseconds  :  Number

GetMinutes  :  Number

GetMonth  :  String

GetMonthOfYear  :  Number

GetSeconds  :  Number

GetTimeAsSeconds  :  Number

GetWeekOfYear  :  Number

GetYear  :  Number

IsNull  :  Boolean

__________

See also

Duration
String


GetDefFormat (Date)
GetDefFormat

 Gets the currently active default format string. Returns NIL if the date format is the system default.

Syntax

Date.GetDefFormat

Returns

String


IsAssumedBestCentury (Date)
IsAssumedBestCentury

Checks the setting for the handling of two-digit years. If it is set to assume the century that is most likely then True is returned.

Syntax

Date.IsAssumedBestCentury

Returns

Boolean


Make (Date)
Make
Discussion

 Creates a new date from dateString. The fields of dateString are described by formatString. If formatString is the empty string, then the default format is assumed to apply to dateString. If the default format string is not in effect then the date format for the current locale is used.

If dateString is not compatible with the formatString, or if it is non-sensical, then a null date is returned. For more information on the format string, see the Date class description or the discussion topic.

Syntax

Date.Make (dateString, formatString)

Returns

Date


MakeFromJulianDay (Date)
MakeFromJulianDay

Returns a new date constructed from aJulianDay and aNumber. aJulianDay is a Julian day number which is the number of days since January 1, 4713 BC. aNumber is the time of day represented as the number of milliseconds since midnight.

Syntax

Date.MakeFromJulianDay (aJulianDay, aNumber)

Returns

Date


MakeFromNumber (Date)
MakeFromNumber

Returns a new date constructed from aNumber. aNumber is assumed to be of the form YYYYMMDD. The first four (most significant) digits determine the year, the middle two digits determine the month, and the last two digits determine the day of the month. The result is undefined if aNumber is not in this format.

Syntax

Date.MakeFromNumber (aNumber)

Returns

Date


MakeNull (Date)
MakeNull

Makes a null date object.

Syntax

Date.MakeNull

Returns

Date


Now (Date)
Now

 Returns the current date and time as a new date object. Note that the resolution of the time is to the second. The millisecond part of the time is set to zero.

Syntax

Date.Now

Returns

Date


SetAssumedBestCentury (Date)
SetAssumedBestCentury

Sets the handling of two-digit years. If set to True then all date operations will assume the century that is most likely. This assumption uses cut-off points about fifty years in the past and fifty years in the future (a moving window that changes each year). If set to False then the current century is always assumed. If set to True and the current year is 1999 and a two-digit year of 01 is specified, then the assumed full year is 2001. If it is set to False and the current year is 1999 and a two-digit year of 01 is specified, then the assumed full year is 1901. The default is True.

Syntax

Date.SetAssumedBestCentury (aBoolean)


SetDefFormat (Date)
SetDefFormat

 Defines the default appearance of a date object when that object is sent the AsString request. This default appearance can be overridden on an object-by-object basis using the instance request SetFormat. SetDefFormat affects all date objects in the system and all subsequently created date objects created. The default format remains throughout the execution of the application.

Passing in an empty string clears any user-defined default format string. All date objects which do not have explicit formats will subsequently be formatted according to the system locale setting.

Individual date objects which have had their formatting set explicitly with the request SetFormat are not affected by the class or script level formatting string.

Syntax

Date.SetDefFormat (aFormatString)


+ (Date)
+

 Produces a new date which is aDate incremented by the specified duration of time. For example, the following line returns a date 5 days from aDate.

 next = aDate + 5.AsDays

NOTE: For more accurate results in incrementing a date, you should use the IncrementBy requests. For example, to increment aDate by 5 days and to increment aDate by 5 years, you should use

 aDate.IncrementByDays(5)
 aDate.IncrementByYears(5)

Syntax

aDate + aDuration

Returns

Date


- (Date)
-

 Produces either a new date which is aDate decremented by aDuration or produces a new duration which is the span of time between aDate and anotherDate. The following request returns a date 2 days before aDate.

 2DaysEarlier = aDate - 2.AsDays

This request returns the duration spanning the time between today and Christmas.

 Christmas = Date.Make( "12/25/94", "M/d/yy")
 daysTilChristmas = Date.Now - Christmas

NOTE: For more accurate results in decrementing a date, you should use the IncrementBy requests. For example, to decrement aDate by 5 days and to decrement aDate by 5 years, you should use

 aDate.IncrementByDays(-5)
 aDate.IncrementByYears(-5)

Syntax

aDate - aDurationOrAnotherDate

Returns

Obj


.. (Date)
..

 Creates a duration object spanning from aDate to anotherDate.

Syntax

aDate .. anotherDate

Returns

Duration


< (Date)
<

Returns true when aDate is less recent than anotherDate

Syntax

aDate < anotherDate

Returns

Boolean


<= (Date)
<=

Returns true when aDate is the same as, or less recent than, anotherDate.

Syntax

aDate <= anotherDate

Returns

Boolean


= (Date)
=

Returns true when aDate represents the same point in time as anotherDate.

Syntax

aDate = anotherDate

Returns

Boolean


> (Date)
>

Returns true when aDate is more recent than anotherDate

Syntax

aDate > anotherDate

Returns

Boolean


>= (Date)
>=

Returns true when aDate is the same as, or more recent than, anotherDate.

Syntax

aDate >= anotherDate

Returns

Boolean


FormattedEquals (Date)
FormattedEquals

Returns true when aDate is equal to anotherDate when they are both formatted according to the formatString. This is useful when, for example, there is a need to compare just the year and month of two dates. If no formatString is specified then the format strings of the two dates are used - or the default if none is specified.

Syntax

aDate.FormattedEquals (anotherDate, formatString)

Returns

Boolean


IncrementByDays (Date)
IncrementByDays

Increments aDate by the specified number of days. Fractions of a day are ignored. Use a negative number to decrement aDate.

Syntax

aDate.IncrementByDays (aNumber)

Returns

Boolean


IncrementByHours (Date)
IncrementByHours

Increments aDate by the specified number of hours. Fractions of an hour are ignored. Use a negative number to decrement aDate.

Syntax

aDate.IncrementByHours (aNumber)

Returns

Boolean


IncrementByMinutes (Date)
IncrementByMinutes

Increments aDate by the specified number of minutes. Fractions of a minute are ignored. Use a negative number to decrement aDate.

Syntax

aDate.IncrementByMinutes (aNumber)

Returns

Boolean


IncrementByMonths (Date)
IncrementByMonths

Increments aDate by the specified number of months. Fractions of a month are ignored. Use a negative number to decrement aDate.

Syntax

aDate.IncrementByMonths (aNumber)

Returns

Boolean


IncrementBySeconds (Date)
IncrementBySeconds

Increments aDate by the specified number of seconds. Fractions of a second are converted to milliseconds. Use a negative number to decrement aDate.

Syntax

aDate.IncrementBySeconds (aNumber)

Returns

Boolean


IncrementByWeeks (Date)
IncrementByWeeks

Increments aDate by the specified number of weeks. Fractions of a week are ignored. Use a negative number to decrement aDate.

Syntax

aDate.IncrementByWeeks (aNumber)

Returns

Boolean


IncrementByYears (Date)
IncrementByYears

Increments aDate by the specified number of years. Fractions of a year are ignored. Use a negative number to decrement aDate.

Syntax

aDate.IncrementByYears (aNumber)

Returns

Boolean


SetDate (Date)
SetDate

 Changes the date to that specified in dateString. The fields of dateString are described by formatString. If formatString is the empty string then any existing format for the aDate is used. If aDate has no existing format then the default format is assumed to apply to dateString. If the default format string is not in effect then the date format for the current locale is used. Returns true if the date was successfully changed.

Syntax

aDate.SetDate (dateString, formatString)

Returns

Boolean


GetFormat (Date)
GetFormat

 Gets the format string associated with aDate.

Syntax

aDate.GetFormat

Returns

String


SetFormat (Date)
SetFormat

 Sets the output format for aDate. Future SetDefFormat requests sent to the date class will have no affect on aDate. Passing an empty string as aFormatString will clear aDate's custom formatting. aDate will subsequently use the Date class's formatting string.

Syntax

aDate.SetFormat (aFormatString)

Returns

Date


AsSeconds (Date)
AsSeconds

 Gets aDate as the number of seconds since Jan. 1, 1970. Negative values for the result are legit.

Syntax

aDate.AsSeconds

Returns

Number


AsString (Date)
AsString

 Produces a string version of aDate. The formatting of the string is controlled first by a per-object format specification, otherwise by the class format specification, otherwise by the system locale specification. If aDate is a null date then the string "nil" is returned.

Syntax

aDate.AsString

Returns

String


GetDay (Date)
GetDay

 Gets the full day name.

Syntax

aDate.GetDay

Returns

String


GetDayOfMonth (Date)
GetDayOfMonth

 Gets the integer representation of the day within the month.

Syntax

aDate.GetDayOfMonth

Returns

Number


GetDayOfYear (Date)
GetDayOfYear

 Gets an integer between 0 and 364 (365 for leap year) of the day of the year. January 1 returns with 0 and December 31 with either 364 or 365 in leap years.

Syntax

aDate.GetDayOfYear

Returns

Number


GetHours (Date)
GetHours

 Gets the number of hours since midnight.

Syntax

aDate.GetHours

Returns

Number


GetJulianDate (Date)
GetJulianDate

 Gets the local Julian date and time as a floating point number. The Julian day is the number of days since January 1, 4713 BC. Each Julian day starts at noon.

Syntax

aDate.GetJulianDate

Returns

Number


GetMilliseconds (Date)
GetMilliseconds

 Gets the number of milliseconds since the last whole second in aDate.

Syntax

aDate.GetMilliseconds

Returns

Number


GetMinutes (Date)
GetMinutes

 Gets the number of minutes since the last whole hour in aDate.

Syntax

aDate.GetMinutes

Returns

Number


GetMonth (Date)
GetMonth

 Gets the full month name.

Syntax

aDate.GetMonth

Returns

String


GetMonthOfYear (Date)
GetMonthOfYear

 Gets the integer representation of the month. If the month is June for aDate, aDate.GetMonthOfYear returns 6.

Syntax

aDate.GetMonthOfYear

Returns

Number


GetSeconds (Date)
GetSeconds

 Gets the number of seconds since the last whole minute in aDate.

Syntax

aDate.GetSeconds

Returns

Number


GetTimeAsSeconds (Date)
GetTimeAsSeconds

 Gets the local time as a number of seconds since midnight (00:00:00).

Syntax

aDate.GetTimeAsSeconds

Returns

Number


GetWeekOfYear (Date)
GetWeekOfYear

 Gets the number of the week of the year. Weeks are counted from 1 to 53 where week 1 is the first week containing a Thursday. Note, if 0 is returned, it represents the last week of the preceding year.

Syntax

aDate.GetWeekOfYear

Returns

Number


GetYear (Date)
GetYear

 Gets the year as a number.

Syntax

aDate.GetYear

Returns

Number


IsNull (Date)
IsNull

Returns true when aDate is the null date.

Syntax

aDate.IsNull

Returns

Boolean


Dictionary
Discussion

 A dictionary is an unordered collection of associations between keys and values. Each association is an element in the dictionary. Both the key and value are arbitrary objects. The key uniquely identifies the value. That is, one key may not be used in association with more than one value.

Use dictionaries when you need efficient random access to any number of objects. Use lists when you need efficient sequential access to any number of objects, or in the special case where the random-access keys are integers.

When you create a dictionary, you specify an initial size. The size you provide should be a rough estimate of the number of elements you plan to insert into the dictionary. You can insert more elements than the default size; however, when the number of elements greatly exceeds the size of a dictionary, it will take more time to retrieve elements.

You can use the Avenue 'for each' construct with dictionaries. The iteration will be over each value object in the dictionary. Note that you do not know order in which the value objects will be visited, only that every one will be visited once.

This example provides access to list values via string keys.

  d = Dictionary.Make(11)
  d.Add("List 1", {"a", "b", "d"})
  d.Add("List 2", {"What", "Is", "This?"})
  d.Add("List 3", {"Goodnight", "Night", "John", "Boy"})

  aList = d.Get("List 1")

When you clone a dictionary, both the clone and the original will reference the same set of key and value objects. For example, continuing with the code fragment shown above, if d were cloned, then the values stored in the clone would be the same lists that are stored in the original, and the keys for the clone would be the same strings stored in the original.

Working with large dictionaries

Dictionaries can provide very efficient access to a large collection of objects. This section explains how that is accomplished, and how you can ensure that you get the best possible performance from dictionaries. Read this section if you work with dictionaries that routinely hold more than 100 associations.

A dictionary works by calculating a number for each key. The number is used as an index into an array of lists. Each list contains all values whose keys produce that same number. The array is called a hash table. The numbers are hash values. The lists are called collision lists. For example, lets say you have the associations {"a", 1} and {"b", 2}. A good way to produce hash values from "a" and "b" is to use their ASCII values. The assocations are then stored in the hash table at indexes that are those ASCII values. Each of the two collision lists is then of length one. This is ideal.

Usually, things aren't this ideal. Many different strings, for example, could produce the same hash value number (it depends on the algorithm used to produce hash values from objects). In the worst case, all keys produce the same hash value. Thus, only one entry in the hash table is every used, its collision list gets very long, and searching a dictionary then becomes no faster than searching a list. Dictionaries provide requests that help you analyze how well associations are being distributed within it.

Inherits From

Collection

Class Requests

Creating a Dictionary

Make ( size ) :  Dictionary

Instance Requests

Working with a Dictionary's Elements

Add ( aKey, aValue ) :  Boolean

AsList  :  List

Get ( aKey ) :  Obj

Remove ( aKey ) :  Boolean

ReturnKeys  :  List

Set ( aKey, aValue )

Getting/Setting Attributes

Count  :  Number

GetLoadAverage  :  Number

GetLoadBalance  :  Number

GetLoadMax  :  Number

GetLoadMin  :  Number

GetSize  :  Number

GetUsed  :  Number

SetSize ( newSize )

Operating on Entire Dictionaries

+ anotherCollection :  Collection

Empty

Merge ( anotherCollection ) :  Collection

__________

See also

List
NameDictionary


Make (Dictionary)
Make

Creates a new Dictionary. The size parameter should be within a factor of 10-20 of the largest number of elements which the dictionary will contain. Note that it is probably wasteful of space to make size equal to the largest number of elements to be held.

Syntax

Dictionary.Make (size)

Returns

Dictionary


Add (Dictionary)
Add

 Adds the new Key/Value association to aDictionary. If aDictionary already contains a value referenced through aKey, then no changes are made to aDictionary and FALSE is returned.

Syntax

aDictionary.Add (aKey, aValue)

Returns

Boolean


AsList (Dictionary)
AsList

Returns a list of values in the dictionary.

Syntax

aDictionary.AsList

Returns

List


Get (Dictionary)
Get

 Returns the value associated with aKey. Get returns nil if the dictionary contains no association referenced by aKey.

Syntax

aDictionary.Get (aKey)

Returns

Obj


Remove (Dictionary)
Remove

 Removes the association identified by aKey from the dictionary. Remove returns TRUE if the dictionary contained an association referenced by aKey and FALSE if no such association existed.

Syntax

aDictionary.Remove (aKey)

Returns

Boolean


ReturnKeys (Dictionary)
ReturnKeys

Returns a list of all keys currently in aDictionary.

Syntax

aDictionary.ReturnKeys

Returns

List


Set (Dictionary)
Set

 Adds the new Key/Value association to aDictionary, but the association from aKey to aValue replaces any existing association from aKey which may already be present.

Syntax

aDictionary.Set (aKey, aValue)


Count (Dictionary)
Count

 Returns the number of associations currently stored in the dictionary.

Syntax

aDictionary.Count

Returns

Number


GetLoadAverage (Dictionary)
GetLoadAverage

Returns the average number of associations chained from each hash table entry.

Syntax

aDictionary.GetLoadAverage

Returns

Number


GetLoadBalance (Dictionary)
GetLoadBalance

Returns the variance of the load average. The square root of this number is the standard deviation of the load average. You want the stddev as small as possible (preferably less than one). A larger number indicates associations are piling up unevenly across the available hash table entries, thus increasing the search time for any assocation. A value of zero indicates that the associations are distributed evenly across the available hash table entries.

Syntax

aDictionary.GetLoadBalance

Returns

Number


GetLoadMax (Dictionary)
GetLoadMax

Returns the length of the longest list of associations hanging off some hash table entry.

Syntax

aDictionary.GetLoadMax

Returns

Number


GetLoadMin (Dictionary)
GetLoadMin

Returns the length of the shortest (> 0) list of associations hanging off some hash table entry.

Syntax

aDictionary.GetLoadMin

Returns

Number


GetSize (Dictionary)
GetSize

 Gets the size of the dictionary. Size is the pre-allocated size specified with the Make request or altered with SetSize. Interrogate the number of elements in the dictionary with the Count request.

Syntax

aDictionary.GetSize

Returns

Number


GetUsed (Dictionary)
GetUsed

Returns the percentage of hash table entries that are currently in use.

Syntax

aDictionary.GetUsed

Returns

Number


SetSize (Dictionary)
SetSize

 Sets the size of the dictionary to newSize.

Syntax

aDictionary.SetSize (newSize)


+ (Dictionary)
+

Produces either a new dictionary or a new list by merging the values from aDictionary and anotherCollection. A dictionary is created when anotherCollection is also a dictionary. Only values with unique keys are added to the result.

Syntax

aDictionary + anotherCollection

Returns

Collection


Empty (Dictionary)
Empty

Removes the elements of the dictionary.

Syntax

aDictionary.Empty


Merge (Dictionary)
Merge

Merges the contents of anotherCollection into aDictionary. This request is similar to "+", but does not create a new object.

Syntax

aDictionary.Merge (anotherCollection)

Returns

Collection


DLL

 A DLL or Dynamic Link Library is a collection of callable procedures. A DLL does not store the calling information for a procedure, so you must define the name, return type and argument list for each procedure in the DLL you wish to call. Each defined procedure is represented in a DLLProc object.

To call a procedure in a DLL, first create a DLL object, then create a DLLProc that corresponds to a procedure in the DLL. Finally, issue the Call request on the DLLProc. For example, the following script loads a simple DLL containing mathematical functions, creates a DLLProc corresponding to one function, calls that function, and reports the results:

  myDLL = DLL.Make("math.dll".asFileName)
  add = DLLProc.Make(myDLL, "Add", #DLLPROC_TYPE_INT32,
                 {#DLLPROC_TYPE_INT32, #DLLPROC_TYPE_INT32})
  x = add.Call({500, 200})
  MsgBox.Info("The result is " + x.asString, "")

32bit DLLs

ArcView supports 32bit dlls on Windows 95 and Windows NT.

 Windows 95 / 32bit dll  YES
 Windows 95 / 16bit dll  NO
 Windows NT / 32bit dll  YES
 Windows NT / 16bit dll  NO

AVExec: Closing the loop

AVExec allows you to execute Avenue statements from within your dll procedures. AVExec takes an Avenue statement as its argument and returns the result of that statement. For example,

 result = AVExec( "av.run( ""Script1"", ""test data"" )" )

To build a dll with avexec, include the header file $AVHOME\lib32\avexec32.h in your dll source and link $AVHOME\lib32\avexec32.lib.

 NOTE:
 avexec32.lib was built with Microsoft's 32bit, version 1.1 Visual C++ compiler.

Inherits From

Obj

Class Requests

Creating DLLs

GetAVWindowHandle  :  Number

IsRefresh  :  Boolean

Make ( aFileName ) :  DLL

SetRefresh ( isRefresh )

Instance Requests

Manipulating a DLL

FindProc ( functionName ) :  DLLProc

GetFileName  :  FileName

GetProcs  :  List

Is32BitDLL  :  Boolean

__________

See also

DLLProc


GetAVWindowHandle (DLL)
GetAVWindowHandle

 Returns ArcView's native window handle.

Syntax

DLL.GetAVWindowHandle

Returns

Number


IsRefresh (DLL)
IsRefresh

 Returns TRUE if refresh mode is set for ArcView to repaint in response to Windows repaint messages when functions in external Dlls are called.

Syntax

DLL.IsRefresh

Returns

Boolean


Make (DLL)
Make

 Loads the DLL in aFileName. Returns NIL on failure.

Syntax

DLL.Make (aFileName)

Returns

DLL


SetRefresh (DLL)
SetRefresh

 Enables and disables ArcView from handling Windows repaint messages when waiting for aDLLProc.Call to return. Defaults to FALSE to allow AVExec calls to be made from functions in DLLs that cause ArcView to bring up dialog boxes. When developing applications, you must ensure that you properly set this value. When you exit a project, you may want to restore Refresh to FALSE.

Syntax

DLL.SetRefresh (isRefresh)


FindProc (DLL)
FindProc

 Finds a DLLProc named functionName in aDLL. FindProc searches the list of DLLProcs that have been defined for aDLL (using DLLProc.Make). You can retrieve this list with the request aDLL.GetProcs. Returns NIL if the procedure can not be found.

Syntax

aDLL.FindProc (functionName)

Returns

DLLProc


GetFileName (DLL)
GetFileName

Returns the FileName object of aDLL.

Syntax

aDLL.GetFileName

Returns

FileName


GetProcs (DLL)
GetProcs

 Returns the list of DLLProcs associated with aDLL. These DLLProcs have been created with DLLProc.Make and aDLL was named as the source DLL. A procedure appears in the list once for each time you "make" it.

Syntax

aDLL.GetProcs

Returns

List


Is32BitDLL (DLL)
Is32BitDLL

Returns true if aDLL is a 32bit dll.

Syntax

aDLL.Is32BitDLL

Returns

Boolean


EnumerationElt

 Class EnumerationElt describes elements that belong to a set called an enumeration. Such sets are used by an object that can take on multiple related states. For example, the type of a symbol (pen, marker, fill or text) is described with four different EnumerationElts. EnumerationElts are also used by a request when that request can perform multiple related actions. For example, a file can be opened with various access modes. Those modes are described by various instances of EnumerationElt.

An EnumerationElt is always associated with a set of related EnumerationElts. This set (called an enumeration type) always starts with the name of some class and ends with 'Enum', such as FilePermEnum. Each EnumerationElt has a name that by convention is always in capitol letters, with words seperated by underscores. For example, the FILE_PERM_READ element of the FilePermEnum enumeration describes a kind of permission with which you can open a file.

Using Enumerations

You will usually use enumeration elements by passing one as a parameter to some request. Elements of an enumeration are specified literally in an Avenue script by prefixing the element name with the '#' character. For example, this script

   myFile = LineFile.Make( "text".AsFileName, #FILE_PERM_READ)

passes the FILE_PERM_READ element as the second parameter to the request Make. You can store enumeration elements in variables (since they are objects). You can convert strings to enumeration elements and vice versa.

Inherits From

Value

Class Requests

EnumerationElt

ReturnElements ( anEnumTypeStr ) :  List

Instance Requests

Using EnumerationElts

= anObject :  Boolean

AsString  :  String

__________

See also

String


ReturnElements (EnumerationElt)
ReturnElements

Returns a list of AVEnum objects belonging to the enumeration type named by anEnumTypeStr.

Syntax

EnumerationElt.ReturnElements (anEnumTypeStr)

Returns

List


= (EnumerationElt)
=

 Returns TRUE when anAVEnum is associated with the same class, belongs to the enumerated type and has the same integer value as anObject.

Syntax

anEnumerationElt = anObject

Returns

Boolean


AsString (EnumerationElt)
AsString

 Returns the string representation of anEnumerationElt's. For example, this will display the string "FILE_PERM_READ".

    msgbox.info( #FILE_PERM_READ.AsString, "")

Syntax

anEnumerationElt.AsString

Returns

String


File

 File is an abstract base class defining protocol for managing sequences of data elements stored on disk drives. This protocol is platform independent.

Subclasses of File implement the protocol. 'Element' is defined differently for each subclass. TextFile defines an element as one character (not necessarily the same as a byte). LineFile defines an element as a sequence of characters terminated by a system-dependent line-termination character.

File provides requests to copy and delete files, open and close files. Before creating a File object, you can check if that FileName exists on disk and if that FileName has write access. After opening a file, you can read, write and position its file pointer. Once a file is opened, it may be classified as a "scratch" file. This means that the file will be deleted when it is closed. The Flush request forces the memory version of the file to synchronize with the disk version flushing the cache to disk.

Attributes

Name. Name is the full path name of the file.

FileName. FileName is the filename object associated with this file.

EolType. Different platforms support different end of line types. You can specify the appropriate EolType using the enumeration FileEolTypeEnum and the request SetEolType.

Scratch. A scratch file is deleted when the file is closed. Make a file a scratch file with the SetScratch request.

Inherits From

Obj

Inherited By

LineFile
TextFile

Enumerations

FilePermEnum

FileEolTypeEnum

Class Requests

Managing Files

CanDelete ( aFileName ) :  Boolean

Copy ( srcFileName, destFileName )

Delete ( aFileName )

Exists ( aFileName ) :  Boolean

GetFileDescriptorLimit  :  Number

IsWritable ( aFileName ) :  Boolean

ReturnOpenFilesAsList  :  List

SetFileDescriptorLimit ( aLimit )

Instance Requests

Managing Files

Close

Flush

Reading and Writing Files

GetSize  :  Number

ReadElt  :  Obj

Manipulating and Querying the File Pointer

GetPos  :  Number

GotoBeg

GotoEnd

IsAtEnd  :  Boolean

SetPos ( aPosition )

Getting and Setting File Properties

GetEolType  :  FileEolTypeEnum

GetFileName  :  FileName

GetName  :  String

IsScratch  :  Boolean

SetEolType ( anEolType )

SetScratch ( isScratch )

__________

See also

FileName
ODB


CanDelete (File)
CanDelete

 Returns TRUE if aFileName exists and can be deleted.

Syntax

File.CanDelete (aFileName)

Returns

Boolean


Copy (File)
Copy

 Copies srcFileName to destFileName.

This request overwrites the existing file. This applies to all platforms; however on Windows, if the destination file already exists, the copy will fail if you don't have write permission for it, or if the file is already opened in an exclusive mode by someone else. On the Solaris platform, you can write over anything at any time, provided you have the correct file permissions.

Syntax

File.Copy (srcFileName, destFileName)


Delete (File)
Delete

 Deletes the file aFileName.

Syntax

File.Delete (aFileName)


Exists (File)
Exists

 Returns TRUE if aFileName exists.

Syntax

File.Exists (aFileName)

Returns

Boolean


GetFileDescriptorLimit (File)
GetFileDescriptorLimit

Returns the maximum number of operating system file descriptors that File objects will use. This value is not valid until the first File is created or until SetFileDescriptorLimit is called. NOTE that there is no limit to the number of File objects that can be created.

Syntax

File.GetFileDescriptorLimit

Returns

Number


IsWritable (File)
IsWritable

 Returns TRUE if you have write access to aFileName. Make sure the file exists before you test if it is writable.

Syntax

File.IsWritable (aFileName)

Returns

Boolean


ReturnOpenFilesAsList (File)
ReturnOpenFilesAsList

Returns a list of FileNames for the currently open files. This request may be helpful while debugging Avenue applications that use files.

Syntax

File.ReturnOpenFilesAsList

Returns

List


SetFileDescriptorLimit (File)
SetFileDescriptorLimit

Sets the maximum number of operating system file descriptors that File objects will use. NOTE that there is no limit to the number of File objects that can be created. ArcView startup scripts require this request, but it is not recommended for regular use.

Syntax

File.SetFileDescriptorLimit (aLimit)


Close (File)
Close

 Closes the disk file accessed through the file. All elements remaining to be written are flushed to disk. Do not use aFile after sending it the Close request.

Syntax

aFile.Close


Flush (File)
Flush

 Synchronizes the disk state of aFile with its in-memory state. Forces a write of memory cache to the disk file.

Syntax

aFile.Flush


GetSize (File)
GetSize

 Gets the number of elements in aFile.

Syntax

aFile.GetSize

Returns

Number


ReadElt (File)
ReadElt

 Returns the element read from aFile. ABSTRACT

Syntax

aFile.ReadElt

Returns

Obj


GetPos (File)
GetPos

 Gets the position of the file's file pointer. The file pointer identifies the current element - the one to be affected by the next read or write operation. The position is the index (from zero) of the current element in the file.

Syntax

aFile.GetPos

Returns

Number


GotoBeg (File)
GotoBeg

 Moves aFile's file pointer to the beginning of the file.

Syntax

aFile.GotoBeg


GotoEnd (File)
GotoEnd

 Moves aFile's file pointer to the end of the file. Sending IsAtEnd after this request returns TRUE.

Syntax

aFile.GotoEnd


IsAtEnd (File)
IsAtEnd

 Returns TRUE if aFile's file pointer equals the number of elements in the file (remember that the file pointer is an index which starts from zero).

Syntax

aFile.IsAtEnd

Returns

Boolean


SetPos (File)
SetPos

 Sets the position of the file's file pointer to aPosition. The position is the index (from zero) of the current element in the file.

Syntax

aFile.SetPos (aPosition)


GetEolType (File)
GetEolType

Gets the current type of line-termination character sequence.

Syntax

aFile.GetEolType

Returns

FileEolTypeEnum


GetFileName (File)
GetFileName

Gets the FileName object associated with aFile.

Syntax

aFile.GetFileName

Returns

FileName


GetName (File)
GetName

Gets the complete path associated with aFile.

Syntax

aFile.GetName

Returns

String


IsScratch (File)
IsScratch

Returns TRUE if aFile is a scratch file. A scratch file is deleted when it is closed.

Syntax

aFile.IsScratch

Returns

Boolean


SetEolType (File)
SetEolType

Sets the platform dependent line-termination character sequence to use for aFile to anEolType. This request only makes sense when aFile is empty.

Syntax

aFile.SetEolType (anEolType)


SetScratch (File)
SetScratch

Sets aFile to be a scratch file if isScratch is TRUE. If isScratch is FALSE, aFile is NOT a scratch file. A scratch file is deleted when it is closed.

Syntax

aFile.SetScratch (isScratch)


FilePermEnum

 Files can be opened for reading, writing, modifying, or appending. An element of this enumeration specifies the mode when accessing a file.

#FILE_PERM_READ

Opens an existing file for reading.

#FILE_PERM_WRITE

Opens a new file for writing, or truncates an existing file.

#FILE_PERM_MODIFY

Opens an existing file for reading and writing. The initial file pointer is the beginning of the file. When opening a file with FILE_PERM_MODIFY access, you must interleave either Flush or SetPos requests between any read and write operations. SetPos positions the file pointer. Flush writes the cache to disk.

#FILE_PERM_MODIFY allows you to modify an existing file with some caveats. Although you can alter existing characters, you cannot insert additional text within the file. You can append text to the end of the file.

#FILE_PERM_APPEND

Opens an existing (or new) file for appending.

#FILE_PERM_CLEARMODIFY

Creates a new file, or truncates an existing file, and allows both reads and writes on it. When opening a file with FILE_PERM_CLEARMODIFY access, you must interleave either Flush or SetPos requests between any read and write operations. SetPos positions the file pointer. Flush writes the cache to disk.


FileEolTypeEnum

 A "line" in a line or text file is terminated by a platform-dependent sequence of characters. When opening an existing file for reading and/or writing, this sequence (if it exists) is detected and preserved. So, you can open Macintosh (MAC), Microsoft Windows (MSW) and UNIX (including OpenVMS) textfiles from the same ArcView process, and have the format of each preserved.

When opening a file containing no such sequence, or creating a new file for writing, the line-termination sequence is set to the format that is native for the machine on which you are running ArcView. You can override this default behavior by passing an element of this enumeration to the instance request SetEolType.

#FILE_MSW_EOL

Each line is terminated with a carriage return(cr)-newline (nl) sequence.

#FILE_MAC_EOL

Each line is terminated with a carriage return (cr) character.

#FILE_UNIX_EOL

Each line is terminated with a newline (nl) character.


Icon

 Icons are used in several places in ArcView. You see icons on the faces of Buttons and Tools in document GUIs. You can create marker symbols from icons. You can specify a particular icon to represent a layout template.

Create icons from one of the following file types or from an Open Interface icon resource:

        - X-Bitmap (.xbm).
        - MacPaint (.mcp)
        - WindowsDib (.bmp)
        - SunRaster (.rs)
        - Nexpert Object Image (.nbi)
        - GIF (.gif)
        - TIFF (.tif)

Icons used on button faces are clipped at 20 x 17 pixels. Icons used on tool faces are clipped at 18 x 15 pixels.

The IconMgr is a dialog that allows you to choose from a list of icons. You can add custom icons to the IconMgr's icon list.

Inherits From

Obj

Class Requests

Creating Icons

Empty  :  Icon

IsFileValid ( aFileName ) :  Boolean

Make ( aFileName ) :  Icon

MakeFromResName ( aResName ) :  Icon

Instance Requests

Getting and Setting Icon Attributes

= ( anotherIcon ) :  Boolean

GetDepth  :  Number

GetHeight  :  Number

GetWidth  :  Number

IsOK  :  Boolean

SetSize ( width, height )

__________

See also

IconMgr
DocGUI


Empty (Icon)
Empty

Creates a transparent icon.

Syntax

Icon.Empty

Returns

Icon


IsFileValid (Icon)
IsFileValid

Returns TRUE if the file references a valid icon, and FALSE if the file is not present or is not a valid icon file.

Syntax

Icon.IsFileValid (aFileName)

Returns

Boolean


Make (Icon)
Make

 Creates anIcon from the named file. The file must be one of the following graphic formats:

        - X-Bitmap (.bm).
        - MacPaint (.mcp)
        - WindowsDib (.bmp)
        - SunRaster (.rs)
        - Nexpert Object Image (.nbi)
        - GIF (.gif)
        - TIFF (.tif)

Syntax

Icon.Make (aFileName)

Returns

Icon


MakeFromResName (Icon)
MakeFromResName

 Creates anIcon from aResName that corresponds to the name of an icon in the IconManager. For example "Icons.Bex".

Syntax

Icon.MakeFromResName (aResName)

Returns

Icon


= (Icon)
=

 Returns TRUE if anIcon equals anotherIcon.

Syntax

anIcon.= (anotherIcon)

Returns

Boolean


GetDepth (Icon)
GetDepth

 Gets the number of bits per pixel in anIcon (1, 2, 4, 8, 16, 32).

Syntax

anIcon.GetDepth

Returns

Number


GetHeight (Icon)
GetHeight

 Gets the height of anIcon.

Syntax

anIcon.GetHeight

Returns

Number


GetWidth (Icon)
GetWidth

 Gets the width of anIcon.

Syntax

anIcon.GetWidth

Returns

Number


IsOK (Icon)
IsOK

 Returns TRUE if the Icon can be displayed, and FALSE if the input source was invalid. This request should be used in conjunction with the constructors to insure that Icons are built properly.

Syntax

anIcon.IsOK

Returns

Boolean


SetSize (Icon)
SetSize

 Sets the height and width of anIcon.

Syntax

anIcon.SetSize (width, height)


LineFile

 A LineFile manages lines of characters stored on disk. A line is a sequence of printable characters terminated by a platform dependent termination sequence. When a LineFile is opened, it is scanned for the first such terminator. In this manner, write operations to a LineFile preserve the native termination sequence. You can alter the terminator with the File request SetEOLType. LineFile provides requests for reading, writing and positioning the file pointer within the file.

The following simple script writes the name, the creator and the creation date of each document in the project.

  lf = LineFile.Make( "docs.txt".AsFileName, #FILE_PERM_WRITE )

  for each d in av.GetProject.GetDocs
    lf.WriteElt( d.GetName++d.GetCreationDate++d.GetCreator )
  end

  lf.Close

Modifying an existing LineFile

The file permission #FILE_PERM_MODIFY allows you to modify an existing LineFile with some caveats. Although you can alter existing characters, you cannot insert additional text within the file. You can append text to the end of the file.

Inherits From

File

Class Requests

LineFiles

Make ( aFileName, aFilePerm ) :  LineFile

Instance Requests

Reading and Writing Line Files

GetSize  :  Number

Read ( aLineList, numLines )

ReadElt  :  String

Write ( aLineList, numLines )

WriteElt ( aLine )

Querying and Manipulating the File Pointer

GetPos  :  Number

GotoBeg

GotoEnd

IsAtEnd  :  Boolean

SetPos ( aPosition )

__________

See also

TextFile
FileName


Make (LineFile)
Make

 Opens or creates a LineFile. aFileName names the pathname and aFilePerm specifies the file permission (Read, Write, Append, etc.).

Syntax

LineFile.Make (aFileName, aFilePerm)

Returns

LineFile


GetSize (LineFile)
GetSize

Gets the number of lines in aLineFile.

Syntax

aLineFile.GetSize

Returns

Number


Read (LineFile)
Read

 Reads numLines from aLineFile and places them in aLineList. Read starts at aLineFile's file pointer and advances the file pointer numLines. If numLines exceeds the number of lines after the file pointer, read returns the remaining lines, but does not advance the file pointer.

You must create aLineList before using it as an argument. Read adds new elements to the list; elements already in the list are not changed:

   aLineList = List.Make
   aLineFile.Read( aLineList, numLines )

Syntax

aLineFile.Read (aLineList, numLines)


ReadElt (LineFile)
ReadElt

 Reads the next line from aLineFile. ReadElt returns nil if there are no more lines.

Syntax

aLineFile.ReadElt

Returns

String


Write (LineFile)
Write

 Writes numLines from aLineList into the line file. Write starts at the line file's file pointer. numLines may exceed the number of elements in the list.

Syntax

aLineFile.Write (aLineList, numLines)


WriteElt (LineFile)
WriteElt

 Writes aLine to aLineFile at the current file pointer.

Syntax

aLineFile.WriteElt (aLine)


GetPos (LineFile)
GetPos

 Gets the position of aLineFile's file pointer. The file pointer identifies the current element - the one to be affected by the next read or write operation. The position is the index (from zero) of the current element in aLineFile;

Syntax

aLineFile.GetPos

Returns

Number


GotoBeg (LineFile)
GotoBeg

 Resets the file pointer to the beginning of aLineFile.

Syntax

aLineFile.GotoBeg


GotoEnd (LineFile)
GotoEnd

 Resets the file pointer to the end of aLineFile.

Syntax

aLineFile.GotoEnd


IsAtEnd (LineFile)
IsAtEnd

Returns TRUE when a read operation, if attempted, would try to read beyond the end of the file.

Syntax

aLineFile.IsAtEnd

Returns

Boolean


SetPos (LineFile)
SetPos

 Sets the position of aLineFile's file pointer to aPosition. The position is the index (from zero) of the line in the file; the first line is at position zero.

Syntax

aLineFile.SetPos (aPosition)


Script

 Script implements an object oriented language named Avenue. An Avenue script lets you control how and when requests get sent to ArcView objects. Through Avenue you can customize ArcView's look and functionality.

Avenue lets you send requests to objects of pre-defined classes. At this release, you cannot define new classes within Avenue.

Avenue Elements

The language is not case sensitive. A brief description of the language elements follows. For a more detailed description, refer to the topic "Introducing Avenue".

  o - booleans (true, false)
  o - numbers (10, 0.0, 90.123)
  o - strings ("hello world")
  o - pre-defined strings (tab, cr, nl)
  o - enumerated values (#VSHSYM_HATCHED)
  o - lists of objects   ( {"hello", 1, view.activeThemes, a+b} )
  o - one object with a special association to an executing script (self)
  o - the arcview application (av)
  o - the nil object (nil)
  o - local variables (untyped references to objects; a variable is defined
                 by its first appearance on the left hand side of an
                 assignment; local variables last for the duration of a
                 script; local variables cannot start with an underscore
                 character)
  o - global variables (same as local variables, but they always start
                        with an underscore character; global variables last
                        for the lifetime of a project)
  o - comments (single line comments start with ')
  o - various flow of control constructs (if-then, return, continue, etc)

Requests

Computation in Avenue is performed by sending "requests" to one of the literal objects defined above. Three types of request syntax are used:

 Postfix ("normal") requests: Object.Request
 Infix ("Binary") requests: Object Request Object
 Prefix requests: Request Object

Postfix requests can pass up to five arguments. Infix requests have exactly one parameter. Prefix requests have no parameters.

Prefix requests have highest precedence, followed by postfix requests, followed by infix requests.

To avoid ambiguities in the grammar, both infix and prefix requests must be symbols, rather than arbitrary text names. The current set of symbols recognized by Avenue is

 o - any sequence of characters drawn from the set { -+*&^$#@! ?><:|\/ }
 o - the words 'and', 'not', 'by', 'mod', 'or', 'min', 'max', 'xor'
 o - the DotDot: '..'

Scripts calling Scripts

You can call scripts from within other scripts. There are several ways to do this:

  av.Run("aScriptName", theSelfObject)

  av.DelayedRun("aScriptName", theSelfObject, aNumberofSeconds )

  aScriptObject.DoIt(theSelfObject)

The called script can return an object back to the calling script using the 'return' statement. If there is no return statement, the result of the run or doit request is the last object created.

The self object provides a means of passing parameters to the called script. If the self object is a mutable object like a list or dictionary, you can pass back results through the Self object.

Avenue is not recursive. A script may not call itself either directly or indirectly.

Global Variables

The primary purpose of global variables is to make possible efficient applications which utilize Inter-Process-Communication (IPC). For example, lets say you have a Visual Basic application which presents a special interface for a virtual table, perhaps a super-duper statistics dialogue. The virtual table and any other support objects (such as fields and bitmaps) cannot be brought into the VB app. Therefore, these objects must stay in some easily accessible form inside ArcView. Global variables provide this ease of access.

Global variables should not be the primary means by which one implements data flow between multi-script applications. Use the 'return' statement and object tags to accomplish this.

Global variables remain active throughout the application, but the default scripts Project.Open and Project.New issue the Application request ClearGlobals to "clean up" before starting a different project. If you wish to allow global variables across projects, you must alter these default scripts. Use caution with global variables. An object remains in the system as long as a reference to it exists. A reference is either another object or a variable. Because of the longevity of global variables, it is possible retain unneeded objects and waste precious memory resources.

Grammar

 Script       ::= {Statement}*

 Statement    ::=   Request
                  | Assignment
                  | If
                  | For
                  | While
                  | Exit
                  | Break
                  | Return
                  | Continue

 Assignment   ::= Name '=' BRequest
 If           ::= 'if' '(' BRequest ')' 'then' Script
                   {'elseif' '(' BRequest ')' 'then' Script} *
                   {'else'   Script}
                   'end'
 For          ::= 'for' 'each' Name 'in' BRequest Script 'end'
 While        ::= 'while' '(' BRequest ')' Script 'end'
 Exit         ::  'exit'
 Return       ::= 'return' BRequest
 Break        ::= 'break'
 Continue     ::= 'continue'

 BRequest     ::= Request {Symbol Request}*
 Request      ::= PRequest {'.' Message}*
 PRequest     ::= Symbol PRequest | Object

 Object       ::=   Literal
                  | Variable
                  | '(' BRequest ')'

 Literal      ::=   Number
                  | String
                  | 'self'
                  | 'arcview'
                  | 'av'
                  | 'tab'
                  | 'cr'
                  | 'nl'
                  | '{' {BRequest {',' BRequest}*} '}'
                  | Class

 Message      ::= Name {'(' BRequest {',' BRequest}* ')'}
 Variable     ::= Name | '_'Name
 Class        ::= Name
 Name         ::=  a-zA-Z  0-9a-zA-Z_ *

 Symbol       ::=    -+*&^$#@! ?><:|\/ +
                  | '='
                  | 'and'
                  | 'or'
                  | '..'
                  | 'min'
                  | 'max'
                  | 'by'
                  | 'mod'
                  | 'xor'

 Number       ::=  0-9 +(. 0-9 +)?
 String       ::= '"' {Character}* '"'

Strings can have embedded quotes. Prefix such quotes with an additional double quote. Strings cannot span multiple lines.

Inherits From

Obj

Inherited By

EncryptedScript

Class Requests

Making and Managing Scripts

Make ( aScriptString ) :  Script

The  :  Script

Instance Requests

Executing Scripts

DoIt ( theSelfObject ) :  Obj

Debugging Scripts

BreakExists ( aPosition ) :  Boolean

ClearAllBreaks

SetDynamicBreak

Setting Script properties

SetDateFormat ( aString )

SetNumberFormat ( aString )

Getting Script Properties

GetDateFormat  :  String

GetErrorMsg  :  String

GetErrorPos  :  Number

GetErrorTopic  :  String

GetNumberFormat  :  String

HasError  :  Boolean

IsCompiled  :  Boolean

Conversion

AsEncrypted  :  EncryptedScript

AsString  :  String

__________

See also

SEd
Application
Project


Make (Script)
Make

Creates a Script object from a aScriptString. The resulting object will not contain a compiled script if there were syntax errors in aScriptString. Send the HasError request to the resulting object to determine its compilation state.

Syntax

Script.Make (aScriptString)

Returns

Script


The (Script)
The

Returns the currently executing script, or nil if no script is executing. A common use of this request is to set script defaults for Number and Date formats. (See SetNumberFormat and SetDateFormat.)

Syntax

Script.The

Returns

Script


DoIt (Script)
DoIt

Executes aScript with theSelfObject as 'self'. Returns the object specified in the return statement. Or if no return statement is used in aScript, it returns the last object generated during execution.

theSelfObject is recognized as Self in aScript. Use theSelfObject to pass arguments.

Syntax

aScript.DoIt (theSelfObject)

Returns

Obj


BreakExists (Script)
BreakExists

Returns TRUE if a break exists at aPosition. aPosition is a character position in the script.

Syntax

aScript.BreakExists (aPosition)

Returns

Boolean


ClearAllBreaks (Script)
ClearAllBreaks

Removes all break points in aScript.

Syntax

aScript.ClearAllBreaks


SetDynamicBreak (Script)
SetDynamicBreak

Sets a break point at the next request to be executed. This request is very useful for debugging. For example, set a break on the 5001 execution of the loop:

 linesRead = 0
 while (aFile.IsAtEnd.Not)
    if (linesRead = 5001) then
       Script.The.SetDynamicBreak
    end

    'do possibly buggy stuff here
    linesRead = linesRead + 1
 end

Syntax

aScript.SetDynamicBreak


SetDateFormat (Script)
SetDateFormat

Sets the date format for aScript. Specify an empty string to disable script specific formatting of dates. This format overrides the default format for dates. Sending the request SetFormat to a date in turn overrides this format.

The example below sets the date format of the current script. Script.The returns the currently executing script.

 Script.The.SetDateFormat( "M/dd/yyyy" )

Syntax

aScript.SetDateFormat (aString)


SetNumberFormat (Script)
SetNumberFormat

Sets the number format for aScript. Specify the empty string to disable script specific formatting of numbers. This format overrides the default format for numbers. Sending the request SetFormat to a number in turn overrides this format.

The example below sets the number format of the current script. Script.The returns the currently executing script.

 Script.The.SetNumberFormat( "d.ddddd" )

Syntax

aScript.SetNumberFormat (aString)


GetDateFormat (Script)
GetDateFormat

Gets the format used by date objects inside aScript.

Syntax

aScript.GetDateFormat

Returns

String


GetErrorMsg (Script)
GetErrorMsg

Gets the text of the most recently encountered error.

Syntax

aScript.GetErrorMsg

Returns

String


GetErrorPos (Script)
GetErrorPos

Gets the index of the token at which an error (compile or run-time) occurred.

Syntax

aScript.GetErrorPos

Returns

Number


GetErrorTopic (Script)
GetErrorTopic

Gets the help topic for the most recently encountered error.

Syntax

aScript.GetErrorTopic

Returns

String


GetNumberFormat (Script)
GetNumberFormat

Gets the format used by number objects inside aScript.

Syntax

aScript.GetNumberFormat

Returns

String


HasError (Script)
HasError

Returns TRUE if some kind of error has occurred (compile or runtime).

Syntax

aScript.HasError

Returns

Boolean


IsCompiled (Script)
IsCompiled

Returns TRUE when aScript has been compiled, and FALSE if it hasn't. In the latter case, use GetErrorMsg to determine what went wrong with the compile attempt.

Syntax

aScript.IsCompiled

Returns

Boolean


AsEncrypted (Script)
AsEncrypted

Returns a new script which is an encrypted version of aScript. Add the encrypted script to the project's script list or write it to an ODB file. You should give the new script a name.

 encrypted = av.FindScript( "MyScript" ).AsEncrypted
 encrypted.SetName( "aFineScript" )
 av.GetProject.AddScript( encrypted )

Syntax

aScript.AsEncrypted

Returns

EncryptedScript


AsString (Script)
AsString

Returns a copy of the source code of aScript.

Syntax

aScript.AsString

Returns

String


String
Discussion

 A String is a fixed length sequence of characters. The String class provides a host of requests for comparing, converting, manipulating, formatting and examining these sequences.

Requests sent to String objects do not change the receiver object. Rather, they produce a new object which is the result of the request applied to the receiver. For example,

   a = "Hello World"
   b = a.UCase

does not result in the variable 'a' containing an upper case string. 'a' and 'b' now reference to entirely different string objects.

Avenue includes three pre-defined string objects: nl, tab and cr. These strings contain (respectively) the newline character, the tab character and the carriage return character. Use these predefined objects to include these common special characters in your string. For example, the string created with this statement:

 greeting = "hello"+NL+"world"

displays like this:

 hello
 world

If you wish to include other "nonprinting" characters in your string, use the Number request AsChar to convert an ASCII value to a string containing the character represented by that value.

Inherits From

Value

Inherited By

Pattern

Class Requests

Strings

IsCaseSensitiveCompare  :  Boolean

MakeBuffer ( numberOfBlanks ) :  String

SetCaseSensitiveCompare ( useCase )

Instance Requests

Examining Strings

Contains ( anotherString ) :  Boolean

Count  :  Number

IndexOf ( anotherString ) :  Number

Comparing Strings

= anObject :  Boolean

Converting Strings

AsASCII  :  Number

AsDate  :  Date

AsEnum  :  EnumerationElt

AsFileName  :  FileName

AsList  :  List

AsNumber  :  Number

AsPattern  :  Pattern

AsSrcName  :  SrcName

AsString  :  String

AsTokens ( separatorString ) :  List

IsNull  :  Boolean

IsNumber  :  Boolean

Manipulating Strings

+ anotherString :  String

++ anotherString :  String

BasicProper ( separatorString ) :  String

BasicTrim ( leftChars, rightChars ) :  String

Extract ( Position ) :  String

IsQuoted  :  Boolean

LCase  :  String

Left ( nChars ) :  String

Middle ( Offset, nChars ) :  String

Proper  :  String

Quote  :  String

Right ( nChars ) :  String

Split ( aSplitControlList, theInsertStr ) :  String

Substitute ( matchStr, replaceStr ) :  String

Translate ( fromCharSet, toCharSet ) :  String

Trim  :  String

UCase  :  String

Unquote  :  String

__________

See also

List
Number
Date


IsCaseSensitiveCompare (String)
IsCaseSensitiveCompare

Returns TRUE when the case of characters in strings will be considered when those strings are compared. Returns FALSE when string that differ only in case are considered equal.

Syntax

String.IsCaseSensitiveCompare

Returns

Boolean


MakeBuffer (String)
MakeBuffer

Creates a string that contains numberOfBlank blank (space) characters. numberOfBlanks must be greater than 0.

Syntax

String.MakeBuffer (numberOfBlanks)

Returns

String


SetCaseSensitiveCompare (String)
SetCaseSensitiveCompare

When useCase is TRUE, comparing strings that differ only in the case of their characters will return FALSE. When useCase is FALSE, comparing such strings will return TRUE.

Syntax

String.SetCaseSensitiveCompare (useCase)


Contains (String)
Contains

 Returns TRUE if anotherString is a substring of aString. If anotherString is an empty string, then this request returns TRUE.

Syntax

aString.Contains (anotherString)

Returns

Boolean


Count (String)
Count

 Returns the number of characters in the string.

Syntax

aString.Count

Returns

Number


IndexOf (String)
IndexOf

 Returns the offset of anotherString within aString. If anotherString does not exist within aString, -1 is returned. If anotherString is the empty string, this request returns zero.

Syntax

aString.IndexOf (anotherString)

Returns

Number


= (String)
=

 When anObject is a string, = returns true if the strings are the same length and the same characters are in the same positions (case insensitive). When anObject is a pattern, = returns true if aString is in the set of strings defined by the pattern. Otherwise, it returns false.

Syntax

aString = anObject

Returns

Boolean


AsASCII (String)
AsASCII

 A number is returned which is the ASCII value of the first character in aString.

Syntax

aString.AsASCII

Returns

Number


AsDate (String)
AsDate

 Creates a date object from the string. The format of aString is assumed to match the default date format.

Syntax

aString.AsDate

Returns

Date


AsEnum (String)
AsEnum

 Returns the enumeration element represented by aString.

Syntax

aString.AsEnum

Returns

EnumerationElt


AsFileName (String)
AsFileName

Converts aString into a FileName object.

Syntax

aString.AsFileName

Returns

FileName


AsList (String)
AsList

 Creates a list where each element is a "word" in the string. A word is a sequence of non-whitespace characters; words are separated by white space.

Syntax

aString.AsList

Returns

List


AsNumber (String)
AsNumber

 Converts the string into a number object. aString must be a string representation of a number. AsNumber honors the string format for numbers. Issue the AsNumber request to aString ONLY IF aString.IsNumber returns TRUE.

Syntax

aString.AsNumber

Returns

Number


AsPattern (String)
AsPattern

 Creates a pattern from the characters in aString. A pattern is a sequence of regular characters and wild card characters, "*" and "?". "*" matches zero or more characters and "?" matches one character.

Syntax

aString.AsPattern

Returns

Pattern


AsSrcName (String)
AsSrcName

Converts aString into a SrcName object.

Syntax

aString.AsSrcName

Returns

SrcName


AsString (String)
AsString

Returns a copy of aString.

Syntax

aString.AsString

Returns

String


AsTokens (String)
AsTokens

 Creates a list where each list element is a token in the string. A token is a sequence of characters separated by one or more characters drawn from separatorString. This example creates a list containing the elements: { "here", "are", "some", "tokens", "okay" }.

  myString = "here3are44some890tokens1okay2"
  myString.AsTokens( "0123456789" )
This example results in the following: { "ab", "abc", "xy", "aaaa" }.

 "abAabcAxyAaaaa".AsTokens( "A" )

Syntax

aString.AsTokens (separatorString)

Returns

List


IsNull (String)
IsNull

 Returns TRUE if aString is the null string. The null string is represented as "".

Syntax

aString.IsNull

Returns

Boolean


IsNumber (String)
IsNumber

 Returns TRUE if aString can be converted into a number. Strings which represent hexadecimal numbers must begin with the characters "0x" ("0xab43"). Convert aString to a number object with AsNumber ONLY IF aString.IsNumber returns TRUE.

Syntax

aString.IsNumber

Returns

Boolean


+ (String)
+

 Concatenates aString and anotherString. Returns the resulting string.

Syntax

aString + anotherString

Returns

String


++ (String)
++

 Concatenates aString and anotherString separating the two strings with one space. Returns the resulting string.

Syntax

aString ++ anotherString

Returns

String


BasicProper (String)
BasicProper

 Similar to Proper, but the separatorString determines the bounds of a word. The characters listed in separatorString define the tokens. (See AsToken) For example, the statement "aaa,bbb!ccc.ddxyz".BasicProper( ",!.x") returns the string "Aaa,Bbb!Ccc,DdxYz".

Syntax

aString.BasicProper (separatorString)

Returns

String


BasicTrim (String)
BasicTrim

Returns a version of aString with all occurrences of characters in leftChars removed from the left side of aString and all occurrences of characters in rightChars removed from the right side of aString.

Syntax

aString.BasicTrim (leftChars, rightChars)

Returns

String


Extract (String)
Extract

 Extracts from aString the word at Position. A word is any sequence of non-whitespace characters. Position numbers range from 0 to N-1, where N is the number of words in the string. The first word is at position 0, the second at position 1, the last at position N-1.

Syntax

aString.Extract (Position)

Returns

String


IsQuoted (String)
IsQuoted

 Returns TRUE when aString is a syntactically correct quoted string. A syntactically correct quoted string is enclosed in quotes and any interior quotes are doubled. This example returns TRUE.

 "The string ""Hello World"" is often used.".IsQuoted

Syntax

aString.IsQuoted

Returns

Boolean


LCase (String)
LCase

 Returns a version of aString which has all letters changed to lower case.

Syntax

aString.LCase

Returns

String


Left (String)
Left

 Returns a new string composed of the leftmost nChars of aString.

Syntax

aString.Left (nChars)

Returns

String


Middle (String)
Middle

 Returns a new string composed of nChars of aString starting after the Offset number of characters. For example, "123456789".Middle( 2, 5 ) returns the string "34567".

Syntax

aString.Middle (Offset, nChars)

Returns

String


Proper (String)
Proper

 Changes to upper case the first letter of each word and converts all other letters to lower case. A word is defined as a sequence of non-white characters.

Syntax

aString.Proper

Returns

String


Quote (String)
Quote

 Returns a quoted version of aString. aString is enclosed in quotes and any interior quotes are doubled.

 ' displays the string:  The string "Hello World" is often used.
 msgbox.info( "The string ""Hello World"" is often used.", "")

 ' displays the string:  "The string ""Hello World"" is often used."
 msgbox.info( "The string ""Hello World"" is often used.".Quote, "")

Syntax

aString.Quote

Returns

String


Right (String)
Right

 Returns a new string composed of the rightmost nChars of aString.

Syntax

aString.Right (nChars)

Returns

String


Split (String)
Split

 Returns a new string which is aString partitioned into fields separated by occurrences of theInsertStr. aSplitControlList determines where the partitioning occurs. It contains numbers which are interpreted as offsets into aString. Before the character at an offset, theInsertStr is inserted into the returned string. The first character in the string is at offset 0. The offset aString.Count causes theInsertStr to be added at the end of the string.

Here are some examples:

 "19931104".Split({4, 6}, ":")  produces  "1993:11:04"
 "12345678".Split( {0,1,7,8}, "XXX" ) produces "XXX1XXX234567XXX8XXX"

The results are undefined when the offsets in aSplitControlList are not ascending, or outside the range of valid offsets for aString. Valid offsets range from 0 to aString.Count.

Syntax

aString.Split (aSplitControlList, theInsertStr)

Returns

String


Substitute (String)
Substitute

 Returns a new string in which each occurrence of matchStr in aString has been replaced with replaceStr.

Syntax

aString.Substitute (matchStr, replaceStr)

Returns

String


Translate (String)
Translate

 Tranlates all occurrences in aString of characters in the fromCharSet into characters at the same position in the toCharSet and returns the new string. For example, "aabb".Translate("ab", "cd") yields the string "ccdd".

Syntax

aString.Translate (fromCharSet, toCharSet)

Returns

String


Trim (String)
Trim

 Trims leading and trailing blanks from aString and returns the resulting string.

Syntax

aString.Trim

Returns

String


UCase (String)
UCase

 Returns a version of aString which has all letters changed to upper case.

Syntax

aString.UCase

Returns

String


Unquote (String)
Unquote

 Returns an unquoted version of aString. Single instances of the quote character are removed and double instances are reduced to single instances. If aString is not a syntactically correct quoted string, the contents of the return string are undefined. A syntactically correct quoted string is enclosed in quotes and interior quotes are double quotes. Use aString.IsQuoted to determine if aString is a good quoted string.

 ' displays the string:  The string Hello World is often used.
 msgbox.info( "The string ""Hello World"" is often used.".Unquote, "")

 ' displays the string:  The string "Hello World" is often used.
 msgbox.info( "The string ""Hello World"" is often used.", "")

Syntax

aString.Unquote

Returns

String


TextFile

 Instances of class TextFile manage sequences of ASCII characters stored on disk. A TextFile's element is single character. TextFile provides requests to read and write characters, and requests to position the file pointer.

Here is how to read an entire TextFile with only a few requests. The string "source" contains the entire file.

  tf = TextFile.Make( "test.ave".AsFileName, #FILE_PERM_READ )
  source = tf.Read( tf.GetSize )
  tf.Close

Modifying an existing TextFile

The file permission #FILE_PERM_MODIFY allows you to modify an existing TextFile with some caveats. Although you can alter existing characters, you cannot insert additional text within the file. You can append text to the end of the file.

Inherits From

File

Class Requests

Text Files

Make ( aFileName, aFilePerm ) :  TextFile

Instance Requests

Reading and Writing Text Files

GetCodepage  :  Number

Read ( nChars ) :  String

ReadElt  :  String

SkipLine

Write ( aString, nChars )

WriteElt ( aCharacter )

WriteQStr ( aString )

__________

See also

FileName
LineFile


Make (TextFile)
Make

 Opens or creates a TextFile. aFileName identifies the file on disk and aFilePerm specifies the file permission (Read, Write, Append, etc.).

Syntax

TextFile.Make (aFileName, aFilePerm)

Returns

TextFile


GetCodepage (TextFile)
GetCodepage

 Returns the codepage of aTextFile.

Syntax

aTextFile.GetCodepage

Returns

Number


Read (TextFile)
Read

 Reads the number of characters specified by nChars from aTextFile and returns a string object containing those characters.

Syntax

aTextFile.Read (nChars)

Returns

String


ReadElt (TextFile)
ReadElt

 Reads the next character in aTextFile and returns it as a string.

Syntax

aTextFile.ReadElt

Returns

String


SkipLine (TextFile)
SkipLine

 Skips from the current position to the beginning of the next line. SkipLine moves the file pointer to the beginning of the next line.

Syntax

aTextFile.SkipLine


Write (TextFile)
Write

 Writes the number of characters specified by nChars from aString into aTextFile. The write operation starts at aTextFile's file pointer.

Syntax

aTextFile.Write (aString, nChars)


WriteElt (TextFile)
WriteElt

 Writes aCharacter string to aTextFile. If aCharacter is a string with more than one character, the rest are ignored.

Syntax

aTextFile.WriteElt (aCharacter)


WriteQStr (TextFile)
WriteQStr

 Writes a quoted version of aString to aTextFile. The quotes are included in aTextFile.

Syntax

aTextFile.WriteQStr (aString)


Window

 Window is an abstract class which defines the window management functions of various windows and modeless dialog boxes. From Avenue, you can open, close, iconify, maximize, resize and move a window. The window should be open before you iconify, maximize, resize or move it. You can also alter a window's title.

Inherits From

Obj

Inherited By

IdentifyWin
ImageWin
QueryWin
SQLWin
TextWin

Class Requests

Window

Make ( libFile, libName, modName, resName, reload ) :  Window

Instance Requests

Accessing Window Attributes

SetName ( aName )

Manipulating Windows

Activate

Close

IsOpen  :  Boolean

IsSymWinClient  :  Boolean

Maximize

Minimize

Open

Restore

Positioning Windows

Move ( deltaX, deltaY )

MoveTo ( X, Y )

Resize ( Width, Height )

ReturnExtent  :  Rect

SetExtent ( aRect )

__________

See also

ModalDialog
MsgBox


Make (Window)
Make

 Makes a window by loading the named Win resources. You can use this request if you have defined the a window using Neuron Data's Open Interface (OI). ArcView is built with this product. To learn more about Neuron Data, visit their web page at www.neurondata.com.

If you have OI, you can define a dialog and then open it from Avenue using the Window Make request. libFile is the filename of the OI resource library. libName is the name of the resource library. modName is the name of the resource module. resName is the name of the Win resource. reload is a boolean that indicates whether the .dat file should be reloaded (in case the window definition has changed).

Syntax

Window.Make (libFile, libName, modName, resName, reload)

Returns

Window


SetName (Window)
SetName

Sets the title of aWindow to aName.

Syntax

aWindow.SetName (aName)


Activate (Window)
Activate

Opens aWindow if it is closed or minimized, brings it to the front and makes the owner document the active document in the application.

Syntax

aWindow.Activate


Close (Window)
Close

Closes aWindow.

Syntax

aWindow.Close


IsOpen (Window)
IsOpen

Returns TRUE if aWindow is open.

Syntax

aWindow.IsOpen

Returns

Boolean


IsSymWinClient (Window)
IsSymWinClient

Is aWindow a client of the SymbolWin.

Syntax

aWindow.IsSymWinClient

Returns

Boolean


Maximize (Window)
Maximize

Resizes aWindow to occupy the entire extent of the application window.

Syntax

aWindow.Maximize


Minimize (Window)
Minimize

Replaces aWindow with an iconic representation.

Syntax

aWindow.Minimize


Open (Window)
Open

Opens aWindow. ABSTRACT

Syntax

aWindow.Open


Restore (Window)
Restore

Restores an iconified window or a maximized window.

Syntax

aWindow.Restore


Move (Window)
Move

Moves aWindow relative to its current position. deltaX and deltaY are the number of pixels to move the window.

Syntax

aWindow.Move (deltaX, deltaY)


MoveTo (Window)
MoveTo

Moves the window to a new position identified by X, Y. X and Y are the pixel positions within the application window.

Syntax

aWindow.MoveTo (X, Y)


Resize (Window)
Resize

Resizes the window to the specified Width and Height. Width and Height are pixel values.

Syntax

aWindow.Resize (Width, Height)


ReturnExtent (Window)
ReturnExtent

 Returns the extent of aWindow in pixels.

Syntax

aWindow.ReturnExtent

Returns

Rect


SetExtent (Window)
SetExtent

 Sets the extent of aWindow to aRect. aRect's dimensions are in pixel values.

Syntax

aWindow.SetExtent (aRect)


Axis

 An Axis is a ChartPart that represents the x- or y-axis. Each axis can be made visible or invisible, labeled, and moved. The attributes of an axis correspond to the properties in the x- and y-axis properties dialog boxes.

Use the GetXAxis and GetYAxis requests to get the axes of a Chart.

Attributes

ValueAxis.ValueAxis determines whether the axis is showing values or groups. Scatter charts have two value axes while column charts have the x-axis as a group axis and the y-axis as a value axis. All other charts have the y-axis as a value axis and the x-axis as a group axis.

AxisVisible.AxisVisible determines whether the axis line and the tick marks crossing it are visible. This allows the axis label to be visible even when the axis line isn't.

MajorGrid.The major grid intersects the axis at the labeled tick marks. There are requests to set the spacing and visibility of the major grid.

MinorGrid.The minor grid intersects the axis between the labeled tick marks. There are requests to set the spacing and visibility of the minor grid.

Attributes of Value Axes

Bounds.The bounds are the highest and lowest values displayed along the axis. They are labeled Scale in the axis properties dialog boxes. There are requests to set the minimum and maximum to specific values or to have ArcView ignore those values and compute appropriate values.

CrossValue.The cross value is where the other axis cross the axis. There are requests to set the cross value to a specific value or to use the bottom/top or left/right property of the axis.

Log.Log determines whether the axis should be scaled logarithmically instead of linearly.

Inherits From

ChartPart

Inherited By

XAxis
YAxis

Instance Requests

Displaying Dialog Boxes

Edit

Getting and Setting Attributes

GetBoundsMax  :  Number

GetBoundsMin  :  Number

GetCrossValue  :  Number

GetMajorGridSpacing  :  Number

GetMinorGridSpacing  :  Number

IsAxisVisible  :  Boolean

IsBoundsUsed  :  Boolean

IsCrossValueUsed  :  Boolean

IsLabelVisible  :  Boolean

IsLog  :  Boolean

IsMajorGridVisible  :  Boolean

IsMinorGridVisible  :  Boolean

IsTickLabelsVisible  :  Boolean

IsValueAxis  :  Boolean

SetAxisVisible ( isVisible )

SetBoundsMax ( aNumber )

SetBoundsMin ( aNumber )

SetBoundsUsed ( isUsed )

SetCrossValue ( aNumber )

SetCrossValueUsed ( isUsed )

SetLabelVisible ( isVisible )

SetLog ( isLog )

SetMajorGridSpacing ( aNumber )

SetMajorGridVisible ( isVisible )

SetMinorGridSpacing ( aNumber )

SetMinorGridVisible ( isVisible )

SetTickLabelsVisible ( isVisible )

SetVisible ( isVisible )

__________

See also

ChartDisplay


Edit (Axis)
Edit

Shows the Axis editor dialog box. If the user clicks OK, updates anAxis to reflect any changes.

Syntax

anAxis.Edit


GetBoundsMax (Axis)
GetBoundsMax

Gets the maximum value shown on anAxis on the chart.

Syntax

anAxis.GetBoundsMax

Returns

Number


GetBoundsMin (Axis)
GetBoundsMin

Gets the minimum value shown on anAxis on the chart.

Syntax

anAxis.GetBoundsMin

Returns

Number


GetCrossValue (Axis)
GetCrossValue

Gets the value at which anAxis cross the other axis on the chart.

Syntax

anAxis.GetCrossValue

Returns

Number


GetMajorGridSpacing (Axis)
GetMajorGridSpacing

Gets the spacing between the major grid lines perpendicular to anAxis on the chart.

Syntax

anAxis.GetMajorGridSpacing

Returns

Number


GetMinorGridSpacing (Axis)
GetMinorGridSpacing

Gets the spacing between the minor grid lines perpendicular to anAxis on the chart.

Syntax

anAxis.GetMinorGridSpacing

Returns

Number


IsAxisVisible (Axis)
IsAxisVisible

Returns TRUE if the axis and tick marks are visible, otherwise returns FALSE.

Syntax

anAxis.IsAxisVisible

Returns

Boolean


IsBoundsUsed (Axis)
IsBoundsUsed

Returns TRUE if the bounds are used, otherwise returns FALSE.

Syntax

anAxis.IsBoundsUsed

Returns

Boolean


IsCrossValueUsed (Axis)
IsCrossValueUsed

Returns TRUE if the cross value is used, otherwise returns FALSE.

Syntax

anAxis.IsCrossValueUsed

Returns

Boolean


IsLabelVisible (Axis)
IsLabelVisible

Returns TRUE if the axis label is visible, otherwise returns FALSE.

Syntax

anAxis.IsLabelVisible

Returns

Boolean


IsLog (Axis)
IsLog

Returns TRUE if the axis is logarithmic, otherwise returns FALSE.

Syntax

anAxis.IsLog

Returns

Boolean


IsMajorGridVisible (Axis)
IsMajorGridVisible

Returns TRUE if the major grid lines perpendicular to anAxis are visible, otherwise returns FALSE.

Syntax

anAxis.IsMajorGridVisible

Returns

Boolean


IsMinorGridVisible (Axis)
IsMinorGridVisible

Returns TRUE if the minor grid lines perpendicular to anAxis are visible, otherwise returns FALSE.

Syntax

anAxis.IsMinorGridVisible

Returns

Boolean


IsTickLabelsVisible (Axis)
IsTickLabelsVisible

Returns TRUE if the labels at the tick marks along anAxis are visible, otherwise returns FALSE.

Syntax

anAxis.IsTickLabelsVisible

Returns

Boolean


IsValueAxis (Axis)
IsValueAxis

Returns TRUE if anAxis is a value axis, returns FALSE if anAxis is a group axis. ABSTRACT

Syntax

anAxis.IsValueAxis

Returns

Boolean


SetAxisVisible (Axis)
SetAxisVisible

Sets the visibility of the axis and tick marks of anAxis to isVisible. ABSTRACT

Syntax

anAxis.SetAxisVisible (isVisible)


SetBoundsMax (Axis)
SetBoundsMax

Sets the maximum bounds of anAxis to aNumber.

Syntax

anAxis.SetBoundsMax (aNumber)


SetBoundsMin (Axis)
SetBoundsMin

Sets the minimum bounds of anAxis to aNumber.

Syntax

anAxis.SetBoundsMin (aNumber)


SetBoundsUsed (Axis)
SetBoundsUsed

Sets whether the bounds are used to isUsed. ABSTRACT

Syntax

anAxis.SetBoundsUsed (isUsed)


SetCrossValue (Axis)
SetCrossValue

Sets the cross value of anAxis to aNumber.

Syntax

anAxis.SetCrossValue (aNumber)


SetCrossValueUsed (Axis)
SetCrossValueUsed

Sets whether the cross value of anAxis is used to isUsed. ABSTRACT

Syntax

anAxis.SetCrossValueUsed (isUsed)


SetLabelVisible (Axis)
SetLabelVisible

Sets whether the label on anAxis is visible to isVisible. ABSTRACT

Syntax

anAxis.SetLabelVisible (isVisible)


SetLog (Axis)
SetLog

Sets whether anAxis is logarithmic to isLog. ABSTRACT

Syntax

anAxis.SetLog (isLog)


SetMajorGridSpacing (Axis)
SetMajorGridSpacing

Sets the major grid spacing along anAxis to aNumber.

Syntax

anAxis.SetMajorGridSpacing (aNumber)


SetMajorGridVisible (Axis)
SetMajorGridVisible

Sets whether the major grid perpendicular to anAxis is visible to isVisible. ABSTRACT

Syntax

anAxis.SetMajorGridVisible (isVisible)


SetMinorGridSpacing (Axis)
SetMinorGridSpacing

Sets whether the minor grid perpendicular to anAxis is visible to aNumber.

Syntax

anAxis.SetMinorGridSpacing (aNumber)


SetMinorGridVisible (Axis)
SetMinorGridVisible

Sets whether the minor grid perpendicular to anAxis is visible to isVisible. ABSTRACT

Syntax

anAxis.SetMinorGridVisible (isVisible)


SetTickLabelsVisible (Axis)
SetTickLabelsVisible

Sets whether the tick mark labels along anAxis are visible to isVisible. ABSTRACT

Syntax

anAxis.SetTickLabelsVisible (isVisible)


SetVisible (Axis)
SetVisible

Sets the visibility of anAxis to isVisible.

Syntax

anAxis.SetVisible (isVisible)


BitMap

 A BitMap is an ordered, fixed size collection of boolean values. Each boolean value is called a bit. The bits are accessed by index number called the bit offset. As with lists, the indices range from 0 to size-1 inclusive.

To assign the TRUE value to a bit, you 'set' it. To assign the FALSE value, you 'clear' it.

You can iterate over the set bits by using the Avenue 'for each' construct. A for loop on a BitMap object does not create a new number object for the loop variable on each iteration, but, instead re-uses the same number object. This is done for performance purposes.

In the example below, when you look at myList from the MsgBox, you expect to see "0 1 2 3 4", but you actually have "4 4 4 4 4". You can easily work around this problem by cloning i and adding the clone to myList.

 aBitMap = BitMap.Make( 5 )
 aBitMap.SetAll
 myList = {}
 for each i in aBitMap
   myList.Add( i )  'SOLUTION: myList.Add( i.clone )
 end
 msgbox.ListAsString( myList, "", "BITMAP")

Or, you can use the GetNextSet and GetPrevSet if you need more control over the iteration process.

ArcView uses BitMaps to identify the set of records which belong to the definition of a virtual table (VTab), and to identify the set of currently selected records in a virtual table. BitMaps act as masks for the virtual table with one bit for each record.

Inherits From

Collection

Class Requests

Creating a BitMap

Make ( aSize ) :  BitMap

Instance Requests

Converting BitMaps

AsList  :  List

Examining BitMaps

= anotherBitMap :  Boolean

Count  :  Number

Get ( aBitOffset ) :  Boolean

GetNextSet ( aBitOffset ) :  Number

GetPrevSet ( aBitOffset ) :  Number

GetSize  :  Number

Modifying BitMaps

And ( anotherBitMap )

Clear ( aBitOffset )

ClearAll

ClearRange ( startOffset, numBits )

Copy ( sourceBitMap )

Not

NotRange ( startOffset, numBits )

Or ( anotherBitMap )

Set ( aBitOffset )

SetAll

SetRange ( startOffset, numBits )

SetSize ( newNumberOfBits )

XOr ( anotherBitMap )

__________

See also

Table
VTab


Make (BitMap)
Make

 Creates a BitMap of aSize. All bits are set to FALSE.

Syntax

BitMap.Make (aSize)

Returns

BitMap


AsList (BitMap)
AsList

Converts aBitMap to a list of boolean objects.

Syntax

aBitMap.AsList

Returns

List


= (BitMap)
=

Returns TRUE when aBitMap is either the same object, or has the same value as, anotherBitMap. Bitmaps have the same value when they are the same size and the bits in identical positions have identical values.

Syntax

aBitMap = anotherBitMap

Returns

Boolean


Count (BitMap)
Count

Returns the number of bits that are set.

Syntax

aBitMap.Count

Returns

Number


Get (BitMap)
Get

 Returns TRUE if the given bit is turned on or FALSE if it is turned off.

Syntax

aBitMap.Get (aBitOffset)

Returns

Boolean


GetNextSet (BitMap)
GetNextSet

 Starting at the position specified by aBitOffset in the BitMap, GetNextSet returns the next bit that is set or -1 if no more are set. aBitOffset should have the value -1 when you want to start from the beginning of the BitMap.

If aBitMap is associated with a virtual table (for example, the selection BitMap), then the number returned is the record number of the next available (selected) record.

Syntax

aBitMap.GetNextSet (aBitOffset)

Returns

Number


GetPrevSet (BitMap)
GetPrevSet

 Starting at the position specified by aBitOffset in the BitMap, GetPrevSet returns the previous bit that is set or -1 if no more are set.

If aBitMap is associated with a virtual table (for example, the selection BitMap), then the number returned is the record number of the next available (selected) record.

Syntax

aBitMap.GetPrevSet (aBitOffset)

Returns

Number


GetSize (BitMap)
GetSize

 Gets the number of bits in the BitMap.

Syntax

aBitMap.GetSize

Returns

Number


And (BitMap)
And

 Performs a bitwise "and" between anotherBitMap and aBitMap. The And request alters aBitMap with the results of the operation.

Syntax

aBitMap.And (anotherBitMap)


Clear (BitMap)
Clear

Clears the bit at aBitOffset.

Syntax

aBitMap.Clear (aBitOffset)


ClearAll (BitMap)
ClearAll

Clears all bits in aBitMap.

Syntax

aBitMap.ClearAll


ClearRange (BitMap)
ClearRange

Clears numBits bits starting from startOffset in aBitMap.

Syntax

aBitMap.ClearRange (startOffset, numBits)


Copy (BitMap)
Copy

 Copies the contents of sourceBitMap to aBitMap. If sourceBitMap is smaller than aBitMap, all trailing bits are cleared.

Syntax

aBitMap.Copy (sourceBitMap)


Not (BitMap)
Not

 Flips the values of all bits in aBitMap - set bits are cleared and cleared bits are set. The Not request alters aBitMap with the results of the operation.

Syntax

aBitMap.Not


NotRange (BitMap)
NotRange

Flips the value of numBits bits starting from startOffset in aBitMap.

Syntax

aBitMap.NotRange (startOffset, numBits)


Or (BitMap)
Or

 Performs a bitwise "or" between anotherBitMap and aBitMap. The OR request alters aBitMap with the results of the operation.

Syntax

aBitMap.Or (anotherBitMap)


Set (BitMap)
Set

Sets the bit at aBitOffset.

Syntax

aBitMap.Set (aBitOffset)


SetAll (BitMap)
SetAll

Sets all bits in aBitMap.

Syntax

aBitMap.SetAll


SetRange (BitMap)
SetRange

Sets numBits bits starting from startOffset in aBitMap.

Syntax

aBitMap.SetRange (startOffset, numBits)


SetSize (BitMap)
SetSize

 Changes the number of bits in aBitMap to newNumberOfBits. Existing bits which survive in the new size retain the same boolean value.

Syntax

aBitMap.SetSize (newNumberOfBits)


XOr (BitMap)
XOr

 Performs a bitwise "xor" between anotherBitMap and aBitMap. The XOR request alters aBitMap with the results of the operation.

Syntax

aBitMap.XOr (anotherBitMap)


BasicPen

 BasicPen is graphic symbology that draws solid or dashed lines.

Attributes

CapStyle.The Cap Style is the way that the ends of thick lines are drawn - butt, round, or square.

JoinStyle.The Join Style is the way that two segments of thick lines are drawn - mitered, rounded, or beveled.

Pattern.The Pattern is the dot dash pattern used to draw the line. Patterns are a list of numbers, where each number is a distance in points. Even elements in the list correspond to drawn segments of the line, odd elements correspond to gaps in the line. There is a limit of 16 elements in the array. This pattern has a longer dash 4 points long then a space 2 points long, a dash 2 points long and another space 2 points long: { 4, 2, 2, 2 }.

Width.Width is the the line width in points. A point is 1/72 of an inch.

Size.Size is the same as Width.

Inherits From

Pen

Enumerations

BasicPenCapEnum

BasicPenJoinEnum

Class Requests

Making BasicPens

Make  :  BasicPen

Instance Requests

Getting and Setting Attributes

CanSetSize  :  Boolean

Copy ( anotherBasicPen )

GetCapStyle  :  BasicPenCapEnum

GetJoinStyle  :  BasicPenJoinEnum

GetSize  :  Number

GetWidth  :  Number

ReturnPattern  :  List

SetCapStyle ( aBasicPenCap )

SetJoinStyle ( aBasicPenJoin )

SetPattern ( aDashPatternList )

SetSize ( aWidth )

SetWidth ( aWidth )

UnHook

Generic Object Requests

= anotherObj :  Boolean

__________

See also

CompositePen
VectorPen


Make (BasicPen)
Make

Makes a solid black BasicPen with a width of one point, mitered joins, and butt caps.

Syntax

BasicPen.Make

Returns

BasicPen


CanSetSize (BasicPen)
CanSetSize

Returns TRUE if it is possible to set the size of aBasicPen.

Syntax

aBasicPen.CanSetSize

Returns

Boolean


Copy (BasicPen)
Copy

Copies the attributes of anotherBasicPen into aBasicPen.

Syntax

aBasicPen.Copy (anotherBasicPen)


GetCapStyle (BasicPen)
GetCapStyle

Gets the cap style of aBasicPen.

Syntax

aBasicPen.GetCapStyle

Returns

BasicPenCapEnum


GetJoinStyle (BasicPen)
GetJoinStyle

Gets the join style of aBasicPen.

Syntax

aBasicPen.GetJoinStyle

Returns

BasicPenJoinEnum


GetSize (BasicPen)
GetSize

Gets the width of aBasicPen.

Syntax

aBasicPen.GetSize

Returns

Number


GetWidth (BasicPen)
GetWidth

Gets the width of aBasicPen.

Syntax

aBasicPen.GetWidth

Returns

Number


ReturnPattern (BasicPen)
ReturnPattern

Returns the dash/space pattern of aBasicPen. See the Attribute section for more information on Pattern.

Syntax

aBasicPen.ReturnPattern

Returns

List


SetCapStyle (BasicPen)
SetCapStyle

Sets the cap style of aBasicPen to aBasicPenCap.

Syntax

aBasicPen.SetCapStyle (aBasicPenCap)


SetJoinStyle (BasicPen)
SetJoinStyle

Sets the join style of aBasicPen to aBasicPenJoin.

Syntax

aBasicPen.SetJoinStyle (aBasicPenJoin)


SetPattern (BasicPen)
SetPattern

Sets the pattern of aBasicPen to aDashPatternList. aDashPatternList is a list of numbers defining dash/space distances. See the Attribute section for more information on Pattern.

Syntax

aBasicPen.SetPattern (aDashPatternList)


SetSize (BasicPen)
SetSize

Sets the width of aBasicPen. aWidth is the number of points across the line. For BasicPen, width and size are the same thing.

Syntax

aBasicPen.SetSize (aWidth)


SetWidth (BasicPen)
SetWidth

Sets the width of aBasicPen to aWidth. aWidth is the number of points across the line.

Syntax

aBasicPen.SetWidth (aWidth)


UnHook (BasicPen)
UnHook

Unhook scale from symbol.

Syntax

aBasicPen.UnHook


= (BasicPen)
=

Compares aBasicPen and anotherObj.

Syntax

aBasicPen = anotherObj

Returns

Boolean


BasicPenCapEnum

 Cap types for BasicPens.

#BASICPEN_CAP_BUTT

Line ends are squared off flush at the end nodes.

#BASICPEN_CAP_ROUND

Line ends are rounded off and extended half the line width as a radius around the end nodes.

#BASICPEN_CAP_SQUARE

Line ends are squared off and projected half the line width beyond the end nodes.


BasicPenJoinEnum

 BasicPen Join types.

#BASICPEN_JOIN_BEVEL

Line is beveled at the vertices.

#BASICPEN_JOIN_MITER

Line is extended and mitered at the vertices.

#BASICPEN_JOIN_ROUND

Line is rounded by half the line width at the vertices.


BasicMarker

 A BasicMarker is graphic symbology used to mark a point on the screen. BasicMarker provides support for non-layered markers. The marker may use an icon or pattern (stipple).

Attributes

Font.In a font based BasicMarker, the Font is the font used to draw the marker.

Character.In a font based BasicMarker, the Character is the character code from the font that is drawn.

Icon.In an iconic BasicMarker, the Icon is the icon drawn.

Stipple.In a stippled BasicMarker, the Stipple is used to fill a small square.

Style.The style is the kind of BasicMarker - iconic, stippled, or a character in a vector font.

Size. The marker size is specified in points. Points are 1/72 of an inch.

Angle. The marker angle is specified in degrees. This property is only applicable to pattern marker symbols.

Inherits From

Marker

Enumerations

BasicMarkerStyleEnum

Class Requests

Making BasicMarkers

Make  :  BasicMarker

Instance Requests

Manipulating a BasicMarker

UnHook

Generic Object Requests

= anObject :  Boolean

Getting and Setting Attributes

CanSetSize  :  Boolean

Copy ( anotherBasicMarker )

GetAngle  :  Number

GetBgColor  :  Color

GetCharacter  :  Number

GetFont  :  Font

GetIcon  :  Icon

GetSize  :  Number

GetStipple  :  Stipple

GetStyle  :  BasicMarkerStyleEnum

SetAngle ( anAngle )

SetBgColor ( aColor )

SetCharacter ( aNumber )

SetFont ( aFont )

SetIcon ( anIcon )

SetSize ( aSizeinPoints )

SetStipple ( aStipple )

SetStyle ( aStyle )

__________

See also

CompositeMarker
Stipple
Font
Icon


Make (BasicMarker)
Make

Makes a default BasicMarker.

Syntax

BasicMarker.Make

Returns

BasicMarker


UnHook (BasicMarker)
UnHook

Unhooks aBasicMarker from its scale so that it will not be resized when the scale changes.

Syntax

aBasicMarker.UnHook


= (BasicMarker)
=

Compares aBasicMarker and anObject.

Syntax

aBasicMarker = anObject

Returns

Boolean


CanSetSize (BasicMarker)
CanSetSize

Returns TRUE if it is possible to set the size of aBasicMarker.

Syntax

aBasicMarker.CanSetSize

Returns

Boolean


Copy (BasicMarker)
Copy

Copies the attributes of anotherBasicMarker into aBasicMarker.

Syntax

aBasicMarker.Copy (anotherBasicMarker)


GetAngle (BasicMarker)
GetAngle

Gets the angle of aBasicMarker.

Syntax

aBasicMarker.GetAngle

Returns

Number


GetBgColor (BasicMarker)
GetBgColor

Gets the background color of aBasicMarker.

Syntax

aBasicMarker.GetBgColor

Returns

Color


GetCharacter (BasicMarker)
GetCharacter

Gets the character code of aBasicMarker. This request applies if aBasicMarker has style #BASICMARKER_STYLE_PATTERN.

Syntax

aBasicMarker.GetCharacter

Returns

Number


GetFont (BasicMarker)
GetFont

Gets the font of aBasicMarker. This request applies if aBasicMarker has style #BASICMARKER_STYLE_PATTERN.

Syntax

aBasicMarker.GetFont

Returns

Font


GetIcon (BasicMarker)
GetIcon

Gets the icon of aBasicMarker. This request applies if aBasicMarker has style #BASICMARKER_STYLE_ICON.

Syntax

aBasicMarker.GetIcon

Returns

Icon


GetSize (BasicMarker)
GetSize

Gets the size of aBasicMarker.

Syntax

aBasicMarker.GetSize

Returns

Number


GetStipple (BasicMarker)
GetStipple

Gets the stipple of aBasicMarker.

Syntax

aBasicMarker.GetStipple

Returns

Stipple


GetStyle (BasicMarker)
GetStyle

Gets the style of aBasicMarker.

Syntax

aBasicMarker.GetStyle

Returns

BasicMarkerStyleEnum


SetAngle (BasicMarker)
SetAngle

Sets the angle of aBasicMarker to anAngle.

Syntax

aBasicMarker.SetAngle (anAngle)


SetBgColor (BasicMarker)
SetBgColor

Sets the background color of aBasicMarker to aColor.

Syntax

aBasicMarker.SetBgColor (aColor)


SetCharacter (BasicMarker)
SetCharacter

Sets the character code of aBasicMarker to aNumber. This request applies if aBasicMarker has style #BASICMARKER_STYLE_PATTERN. This example sets the marker to "$".

 asym.SetStyle(#BASICMARKER_STYLE_PATTERN)
 asym.SetCharacter("$".AsASCII)

Syntax

aBasicMarker.SetCharacter (aNumber)


SetFont (BasicMarker)
SetFont

Sets the font of aBasicMarker to aFont. This request applies if aBasicMarker has style #BASICMARKER_STYLE_PATTERN.

Syntax

aBasicMarker.SetFont (aFont)


SetIcon (BasicMarker)
SetIcon

Sets the icon of aBasicMarker to anIcon. This request applies if aBasicMarker has style #BASICMARKER_STYLE_ICON.

Syntax

aBasicMarker.SetIcon (anIcon)


SetSize (BasicMarker)
SetSize

Sets the size of aBasicMarker to aSizeinPoints.

Syntax

aBasicMarker.SetSize (aSizeinPoints)


SetStipple (BasicMarker)
SetStipple

Sets the stipple of aBasicMarker to aStipple. This request applies if aBasicMarker has style #BASICMARKER_STYLE_STIPPLE or #BASICMARKER_STYLE_OPAQUESTIPPLE.

Syntax

aBasicMarker.SetStipple (aStipple)


SetStyle (BasicMarker)
SetStyle

Sets the style of aBasicMarker to aStyle.

Syntax

aBasicMarker.SetStyle (aStyle)


BasicMarkerStyleEnum

 The styles of BasicMarkers.

#BASICMARKER_STYLE_ICON

An icon is drawn as the marker.

#BASICMARKER_STYLE_OPAQUESTIPPLE

A small rectangle is filled with an opaque stipple. An OPAQUESTIPPLE has a background color. This background can be assigned the transparent color.

#BASICMARKER_STYLE_PATTERN

A character from a font is drawn as the marker.

#BASICMARKER_STYLE_STIPPLE

A small rectangle is filled with a Stipple. A STIPPLE has no background. A STIPPLE and an OPAQUESTIPPLE with a transparent background are the same. OPAQUESTIPPLE is the preferred option.


Boolean
Discussion

 In Avenue, the concepts of 'true' and 'false' are represented by objects. Both are instances of class Boolean. The keywords true and false provide access to these objects.

Inherits From

Value

Instance Requests

Conversion and Classification

AsString  :  String

IsNull  :  Boolean

Building Boolean Expressions

= anObject :  Boolean

And anotherBoolean :  Boolean

Not  :  Boolean

Or anotherBoolean :  Boolean

Xor anotherBoolean :  Boolean

__________

See also

String
Number


AsString (Boolean)
AsString

 Returns the string representation of the boolean's value: "true", "false" or "Boolean null".

Syntax

aBoolean.AsString

Returns

String


IsNull (Boolean)
IsNull

Returns true when aBoolean is the null boolean.

Syntax

aBoolean.IsNull

Returns

Boolean


= (Boolean)
=

Returns true when aBool is the same as anObject.

Syntax

aBoolean = anObject

Returns

Boolean


And (Boolean)
And

 Returns true if both aBool and anotherBool are true and returns false otherwise. Implements logical and.

Syntax

aBoolean And anotherBoolean

Returns

Boolean


Not (Boolean)
Not

 Negates the boolean value. Returns TRUE if the boolean is FALSE, and vice versa. Alternative usage: NOT aBoolean

Syntax

aBoolean.Not

Returns

Boolean


Or (Boolean)
Or

 Returns false if both aBool and anotherBool are false, and returns true otherwise. Implements logical or.

Syntax

aBoolean Or anotherBoolean

Returns

Boolean


Xor (Boolean)
Xor

Returns TRUE when one and only one of the operands is true.

Syntax

aBoolean Xor anotherBoolean

Returns

Boolean


RasterFill

 A RasterFill uses a raster template to fill in polygons.

Attributes

Stipple.The Stipple is used for shading regions.

Style.The Style is either transparent, opaque, transparent stippled, or opaque stippled.

Inherits From

Fill

Enumerations

RasterFillStyleEnum

Class Requests

Making a RasterFill

Make  :  RasterFill

Instance Requests

Getting and Setting Attributes

Copy ( anotherRasterFill )

GetBgColor  :  Color

GetStipple  :  Stipple

GetStyle  :  RasterFillStyleEnum

SetBgColor ( aColor )

SetStipple ( aStipple )

SetStyle ( aRasterFillStyle )

Generic Object Requests

= anotherObject :  Boolean

__________

See also

Stipple
CompositeFill
VectorFill


Make (RasterFill)
Make

Makes a solid black outlined RasterFill.

Syntax

RasterFill.Make

Returns

RasterFill


Copy (RasterFill)
Copy

Copies the attributes of anotherRasterFill into aRasterFill.

Syntax

aRasterFill.Copy (anotherRasterFill)


GetBgColor (RasterFill)
GetBgColor

Gets the background color of aRasterFill.

Syntax

aRasterFill.GetBgColor

Returns

Color


GetStipple (RasterFill)
GetStipple

Gets the stipple of aRasterFill.

Syntax

aRasterFill.GetStipple

Returns

Stipple


GetStyle (RasterFill)
GetStyle

Gets the style of aRasterFill.

Syntax

aRasterFill.GetStyle

Returns

RasterFillStyleEnum


SetBgColor (RasterFill)
SetBgColor

Sets the background color of aRasterFill to aColor.

Syntax

aRasterFill.SetBgColor (aColor)


SetStipple (RasterFill)
SetStipple

Sets the stipple of aRasterFill to aStipple.

Syntax

aRasterFill.SetStipple (aStipple)


SetStyle (RasterFill)
SetStyle

Sets the style of aRasterFill to aRasterFillStyle.

Syntax

aRasterFill.SetStyle (aRasterFillStyle)


= (RasterFill)
=

Compares aRasterFill and anotherObject.

Syntax

aRasterFill = anotherObject

Returns

Boolean


RasterFillStyleEnum

 Styles of RasterFill.

#RASTERFILL_STYLE_EMPTY

No shading

#RASTERFILL_STYLE_OPAQUESTIPPLE

Stippled shading with colored background

#RASTERFILL_STYLE_SOLID

Solid shading

#RASTERFILL_STYLE_STIPPLE

Stippled shading with transparent background


BandStatistics

 A BandStatistics stores pixel statistics for an image band. Band Statistics are used by ITheme to build better default lookup tables for images. If the BandStatistics are valid, the ITheme will stretch the data from two standard deviations below the mean to two above. Pixel values outside of this range will be white or black, as appropriate. The statistics can be read from .STX files stored with the images, or computed with the BuildBandStatistics request on ISrc.

The various statistics can also be manipulated individually by the Avenue programmer.

 ' create an Image
 imageSrc = ISrc.Make("sf3.bil".asSrcName)
 myTheme = ITheme.Make(imageSrc)

 ' Report on the band statistics
 out = ""
 imageSrc.BuildBandStatistics
 bandStats = imageSrc.GetBandStatistics 'get the list of bandStatistics
 for each i in 0..(bandStats.count -1)  'for each band
   out = out +
         "BAND"++i.AsString +nl+
         "MEAN:"++bandStats.Get(i).GetMean.AsString+nl+
         "MIN:"++bandStats.Get(i).GetMin.AsString+nl+
         "MAX:"++bandStats.Get(i).GetMax.AsString+nl+
         "STDDEV:"++bandStats.Get(i).GetStandardDeviation.AsString +nl+nl
 end
 msgbox.report( out, "BandStatistics" )

Attributes

Max.The Max is the maximum of the pixel values of the band.

Mean.The Mean is the mean of the pixel values of the band.

Min.The Min is the minimum of the pixel values of the band.

StandardDeviation.The StandardDeviation is the standard deviation of the pixel values of the band.

Valid.Valid is whether the statistics have been calculated.

Inherits From

Obj

Instance Requests

Getting and Setting Attributes

GetMax  :  Number

GetMean  :  Number

GetMin  :  Number

GetStandardDeviation  :  Number

IsValid  :  Boolean

SetMax ( aMax )

SetMean ( aMean )

SetMin ( aMin )

SetStandardDeviation ( aStandardDeviation )

__________

See also

ISrc
ITheme


GetMax (BandStatistics)
GetMax

Gets the maximum pixel value of aBandStatistics.

Syntax

aBandStatistics.GetMax

Returns

Number


GetMean (BandStatistics)
GetMean

Gets the mean pixel value of aBandStatistics.

Syntax

aBandStatistics.GetMean

Returns

Number


GetMin (BandStatistics)
GetMin

Gets the minimum pixel value of aBandStatistics.

Syntax

aBandStatistics.GetMin

Returns

Number


GetStandardDeviation (BandStatistics)
GetStandardDeviation

Gets the standard deviation of pixel values of aBandStatistics.

Syntax

aBandStatistics.GetStandardDeviation

Returns

Number


IsValid (BandStatistics)
IsValid

Returns TRUE if the statistics are valid, otherwise returns FALSE.

Syntax

aBandStatistics.IsValid

Returns

Boolean


SetMax (BandStatistics)
SetMax

Sets the maximum pixel value of aBandStatistics to aMax.

Syntax

aBandStatistics.SetMax (aMax)


SetMean (BandStatistics)
SetMean

Sets the mean pixel value of aBandStatistics to aMean.

Syntax

aBandStatistics.SetMean (aMean)


SetMin (BandStatistics)
SetMin

Sets the minimum pixel value of aBandStatistics to aMin.

Syntax

aBandStatistics.SetMin (aMin)


SetStandardDeviation (BandStatistics)
SetStandardDeviation

Sets the standard deviation of pixel values of aBandStatistics to aStandardDeviation.

Syntax

aBandStatistics.SetStandardDeviation (aStandardDeviation)


Button
Related Topics

 Buttons are the controls collected on the ButtonBar. Buttons have icon faces and recognize the Click event. A Click event occurs when the user clicks on a button or when an Avenue script issues the Button Click request.

This example adds a button to the active DocGUI's ButtonBar as the first button.

  ' Create a new button
  newButton = Button.Make
  newButton.SetIcon( IconMgr.GetIcons.Get( 15 ))
  newButton.SetClick( "script.wow" )
  newButton.SetUpdate( "script.wowUpdate" )

  ' Add the button to the ButtonBar
  av.GetActiveGUI.GetButtonBar.Add( newButton, -1 )

Attributes

Click. A button receives a Click event when the user "clicks" the button. The Click attribute specifies the Avenue script to be executed when the event occurs.

Icon. The Icon is drawn on the face of the button.

Inherits From

Control

Class Requests

Button

Make  :  Button

Instance Requests

Using Buttons

Click

Getting/Setting Button attributes

GetClick  :  String

GetIcon  :  Icon

HasScript ( aScriptName ) :  Boolean

SetClick ( aScriptName )

SetIcon ( anIcon )

__________

See also

ButtonBar
Icon
Space
Tool
Choice


Make (Button)
Make

Creates a button.

Syntax

Button.Make

Returns

Button


Click (Button)
Click

 Triggers the Click event executing the script identified by the Click property.

Syntax

aButton.Click


GetClick (Button)
GetClick

 Gets the script executed on a Click event.

Syntax

aButton.GetClick

Returns

String


GetIcon (Button)
GetIcon

 Gets the icon drawn on aButton's face.

Syntax

aButton.GetIcon

Returns

Icon


HasScript (Button)
HasScript

Returns TRUE when aButton has a script named aScriptName.

Syntax

aButton.HasScript (aScriptName)

Returns

Boolean


SetClick (Button)
SetClick

 Sets aScriptName to execute on a Click event.

Syntax

aButton.SetClick (aScriptName)


SetIcon (Button)
SetIcon

 Sets anIcon to be the icon drawn on aButton's face.

Syntax

aButton.SetIcon (anIcon)


ButtonBar

 The ButtonBar is the middle row of controls in the DocGUI. A ButtonBar manages a list of buttons.

Access the ButtonBar on a DocGUI with the DocGUI's GetButtonBar request. You can then manipulate buttons within the ButtonBar through requests inherited from ControlSet: Add, New, Shift, and Remove. The ButtonBar can contain both buttons and spaces.

Inherits From

ControlSet

Instance Requests

Using ButtonBars

Empty

Remove ( aButton )

__________

See also

DocGUI
Button
Space
ToolBar
MenuBar


Empty (ButtonBar)
Empty

removes all buttons from aButtonBar

Syntax

aButtonBar.Empty


Remove (ButtonBar)
Remove

removes aButton from aButtonBar.

Syntax

aButtonBar.Remove (aButton)


CompositeArcInfoPen
Example

 CompositeArcInfoPens can be used in two ways. First, when you import an ARC/INFO lineset into ArcView's Symbol Window all multi-layered linesymbols are translated into CompositeArcInfoPens. Second, you can use CompositeArcInfoPens in Avenue to create multi-layered pen symbols that scale uniformly like ARC/INFO line symbols because CompositeArcInfoPens are a subclass of CompositePen. This means that all the Avenue requests for the CompositePen class work for CompositeArcInfoPens. Thus, if you need to change something about one of the layers in a CompositeArcInfoPen, you use the GetSymbols request, which returns a SymbolList object that contains each of the component symbols.

Similarly to how symbols work in ARC/INFO, the color of the component symbols in a CompositeArcInfoPen symbol are locked, and can only be changed via Avenue--not from the Symbol Window.

Attributes

Size. Size is the size of the CompositeArcInfoPen in points (1/72 of an inch). All symbols making up the CompositePen are scaled relative to this value.

Inherits From

CompositePen

Class Requests

Making CompositePens

Make ( aSymbolList ) :  CompositeArcInfoPen

Instance Requests

Getting and Setting Attributes

SetColor ( aColor )

SetSize ( aSize )

__________

See also

SymbolList
BasicPen
VectorPen


Make (CompositeArcInfoPen)
Make
Example

Makes a CompositeArcInfoPen from aSymbolList. aSymbolList may contain BasicPens, VectorPens, VectorPenMarkers, or VectorPenVertexMarker symbols. Create aSymbolList with the SymbolList Make request. The ColorLock property of CompositeArcInfoPen is enabled upon instance creation.

Syntax

CompositeArcInfoPen.Make (aSymbolList)

Returns

CompositeArcInfoPen


SetColor (CompositeArcInfoPen)
SetColor

Sets the foreground color of all the elements of aCompositeArcInfoPen to aColor.

Syntax

aCompositeArcInfoPen.SetColor (aColor)


SetSize (CompositeArcInfoPen)
SetSize

Sets the size of all elements of aCompositePen relative to aSize. aSize is specified in points (1/72 of an inch).

Syntax

aCompositeArcInfoPen.SetSize (aSize)


Cassini
Discussion	Example

 This class implements the Cassini Soldner projection.

Inherits From

Prj

Class Requests

Creating Cassini Projections

CanDoSpheroid  :  Boolean

Make ( aRect ) :  Cassini

Instance Requests

Projecting and unprojecting points

ProjectPt ( aPoint ) :  Boolean

UnProjectPt ( aPoint ) :  Boolean

Cassini Projection Parameters

Recalculate

ReturnCentralMeridian  :  Number

ReturnReferenceLatitude  :  Number

SetCentralMeridian ( aLongitude )

SetReferenceLatitude ( aLatitude )

__________

See also

View
CoordSys
Spheroid


CanDoSpheroid (Cassini)
CanDoSpheroid

Returns TRUE if a class of projection supports arbitrary spheroids and FALSE if it only supports the sphere. The Cassini class always returns TRUE.

Syntax

Cassini.CanDoSpheroid

Returns

Boolean


Make (Cassini)
Make
Example

Creates a Cassini Soldner projection. aRect is the bounding rectangle of the area being projected. Use decimal degrees for the coordinates of aRect.

Syntax

Cassini.Make (aRect)

Returns

Cassini


ProjectPt (Cassini)
ProjectPt
Example

Projects the point aPoint. Returns TRUE if aPoint is visible, FALSE otherwise; however, this always returns a point.

Syntax

anCassini.ProjectPt (aPoint)

Returns

Boolean


UnProjectPt (Cassini)
UnProjectPt
Example

Unprojects the point aPoint. Returns TRUE if aPoint can be unprojected, FALSE otherwise; however, this always returns a point.

Syntax

anCassini.UnProjectPt (aPoint)

Returns

Boolean


Recalculate (Cassini)
Recalculate

Updates the internal parameters of the projection. This must be called after changing any parameters of the Cassini projection.

Syntax

aCassini.Recalculate


ReturnCentralMeridian (Cassini)
ReturnCentralMeridian

Returns the central meridian as a longitude in degrees.

Syntax

aCassini.ReturnCentralMeridian

Returns

Number


ReturnReferenceLatitude (Cassini)
ReturnReferenceLatitude

Returns the y origin as a latitude in degrees.

Syntax

aCassini.ReturnReferenceLatitude

Returns

Number


SetCentralMeridian (Cassini)
SetCentralMeridian
Example

Sets the central meridian to aLongitude. aLongitude is a longitude in degrees.

Syntax

aCassini.SetCentralMeridian (aLongitude)


SetReferenceLatitude (Cassini)
SetReferenceLatitude
Example

Sets the latitude at which y is 0. aLatitude is a latitude in degrees.

Syntax

aCassini.SetReferenceLatitude (aLatitude)


ChartPart

 A ChartPart is an editable part of the chart. Subclasses of ChartPart implement specific parts including ChartLegend, Title, and X and Y Axis. The Chart menu in the standard Chart user interface has choices to show and hide the chart parts.

All chart parts support the Edit request which is used by the Chart Part Properties tool to show a dialog box allowing the user to change the attributes of the part.

Use requests on a Chart to get individual chart parts or use the GetUserPart request on a Chart to let the user click on a chart part.

Attributes

ChartDisplay.The ChartDisplay is the ChartDisplay of the Chart that contains the ChartPart.

Color.The Color is the color used to draw the ChartPart.

Visible.Visible determines whether the ChartPart can be seen or not.

Inherits From

Obj

Inherited By

Axis
ChartLegend
Title

Instance Requests

Displaying Dialog Boxes

Edit

Getting and Setting Attributes

GetChartDisplay  :  ChartDisplay

GetColor  :  Color

IsVisible  :  Boolean

SetColor ( aColor )

SetVisible ( isVisible )

__________

See also

Chart
ChartDisplay


Edit (ChartPart)
Edit

Shows the appropriate ChartPart editor dialog box. If the user clicks OK, updates aChartPart to reflect any changes. ABSTRACT

Syntax

aChartPart.Edit


GetChartDisplay (ChartPart)
GetChartDisplay

Gets the ChartDisplay of aChartPart.

Syntax

aChartPart.GetChartDisplay

Returns

ChartDisplay


GetColor (ChartPart)
GetColor

Gets the color of aChartPart.

Syntax

aChartPart.GetColor

Returns

Color


IsVisible (ChartPart)
IsVisible

Returns TRUE if aChartPart is displayed on the chart, otherwise returns FALSE.

Syntax

aChartPart.IsVisible

Returns

Boolean


SetColor (ChartPart)
SetColor

Sets the color of aChartPart to aColor.

Syntax

aChartPart.SetColor (aColor)


SetVisible (ChartPart)
SetVisible

Sets the visibility of aChartPart to isVisible. ABSTRACT

Syntax

aChartPart.SetVisible (isVisible)


Chart

 The Chart displays tabular data as business graphics. Every chart is associated with a VTab, from which it displays data from selected records and specified fields. Fields are specified in the chart properties dialog box or from Avenue. The chart may also display a label for each record by reading the contents of a specified field, the record label field.

The values that a chart displays are contained in a two dimensional array with records in one dimension and fields in the other dimension. The values can be displayed on the chart in two ways. The first way groups by field and contrasts by record. This is the default when a new chart is created. The second method groups by record and contrasts by field. To toggle between these ways, use the Series from Records/Fields choice on the Chart menu or the SetSeriesFromRecords request.

There are also requests to create tools on the chart such as GetUserPart, GetUserGroup, GetUserSeries, GetUserRecord.

In addition, Chart is a subclass of Doc and so supports Doc features such as access to the DocWin and DocGUI.

Attributes

ChartDisplay. The ChartDisplay controls the visual appearance of the data.

Group. A Group is a set of data markers that are drawn next to each other. They can represent either Records or Fields. Groups can be labeled. Groups are numbered 0, 1, 2, etc.

Series. A Series is a set of data markers that are drawn one in each group and have the same color. They can represent either Records or Fields. Series can be labeled in the legend. Series are numbered 0, 1, 2, etc.

VTab. The VTab is the source of values for the data markers drawn on the chart.

Fields. Fields is a list of fields that indicate which values in the VTab should be used on the chart.

RecordLabelField. The RecordLabelField is a field in the VTab that contains values used to label each record on the chart, whether those records appear as groups or series.

ChartLegend. The ChartLegend is an editable chart part that shows the names of the series in the chart and their associated colors.

Title. The Title is an editable chart part that shows a string of text on the chart.

XAxis. The X Axis is an editable chart part that represents the x-axis, vertical grid lines, and their labels.

YAxis. The Y Axis is an editable chart part that represents the y-axis, horizontal grid lines, and their labels.

FindString. The FindString is the string last used for the find request.

Inherits From

Doc

Class Requests

Making a Chart

Make ( aVTab, aFieldList ) :  Chart

MakeUsingDialog ( aVTab, aGUIName ) :  Chart

MakeWithGUI ( aVTab, aFieldList, aGUIName ) :  Chart

Instance Requests

Manipulating a Chart

BlinkRecord ( aRecordNumber )

Find ( aString ) :  Number

Print

UndoErase

Getting and setting attributes

CanUndoErase  :  Boolean

GetChartDisplay  :  ChartDisplay

GetChartLegend  :  ChartPart

GetFields  :  List

GetFindString  :  String

GetGroupLabel ( aGroup ) :  String

GetRecordLabelField  :  Field

GetSeriesLabel ( aSeries ) :  String

GetTitle  :  ChartPart

GetVTab  :  VTab

GetXAxis  :  ChartPart

GetYAxis  :  ChartPart

IsChartScatter  :  Boolean

IsSeriesFromRecords  :  Boolean

SetGroupLabel ( aGroup, aString )

SetRecordLabelField ( aField )

SetSeriesFromRecords ( isfromrecords )

SetSeriesLabel ( aSeries, aString )

Showing dialog boxes

Edit

ShowGallery ( aGalleryName )

Interacting with the User (Apply Events Only)

EditChartPart

Erase

EraseWithPolygon

GetUserGroup  :  Number

GetUserPart  :  ChartPart

GetUserRecord  :  Number

GetUserSeries  :  Number

__________

See also

ChartPart
ChartDisplay


Make (Chart)
Make

Makes a chart with one group for each field in aFieldList and one series for each selected record in aVTab.

Syntax

Chart.Make (aVTab, aFieldList)

Returns

Chart


MakeUsingDialog (Chart)
MakeUsingDialog

Makes a Chart associated with aVTab. A dialog box appears allowing the user to specify which fields are to be charted. The new chart will use aGUIName as the name of its initial gui.

Syntax

Chart.MakeUsingDialog (aVTab, aGUIName)

Returns

Chart


MakeWithGUI (Chart)
MakeWithGUI

Same as Make, but sets the chart's initial GUI to be the one named aGUIName.

Syntax

Chart.MakeWithGUI (aVTab, aFieldList, aGUIName)

Returns

Chart


BlinkRecord (Chart)
BlinkRecord

Blinks the series or group of the chart corresponding to aRecordNumber.

Syntax

aChart.BlinkRecord (aRecordNumber)


Find (Chart)
Find

Finds aString in the VTab associated with the chart. Return TRUE if aString is found, otherwise returns FALSE.

Syntax

aChart.Find (aString)

Returns

Number


Print (Chart)
Print

Prints aChart.

Syntax

aChart.Print


UndoErase (Chart)
UndoErase

Reselects records in the VTab previously unselected with the Erase or EraseWithPoly requests.

Syntax

aChart.UndoErase


CanUndoErase (Chart)
CanUndoErase

Returns TRUE if rows have been unselected by Erase or EraseWithPolygon, otherwise returns FALSE.

Syntax

aChart.CanUndoErase

Returns

Boolean


GetChartDisplay (Chart)
GetChartDisplay

Gets the ChartDisplay of aChart.

Syntax

aChart.GetChartDisplay

Returns

ChartDisplay


GetChartLegend (Chart)
GetChartLegend

Gets the ChartLegend of aChart.

Syntax

aChart.GetChartLegend

Returns

ChartPart


GetFields (Chart)
GetFields

Gets a list of the fields that are shown on the chart. This list does not include the record label field, if any.

Syntax

aChart.GetFields

Returns

List


GetFindString (Chart)
GetFindString

Gets the last string used by Find.

Syntax

aChart.GetFindString

Returns

String


GetGroupLabel (Chart)
GetGroupLabel

Gets the label of group number aGroup.

Syntax

aChart.GetGroupLabel (aGroup)

Returns

String


GetRecordLabelField (Chart)
GetRecordLabelField

Gets the record label field. The record label field is used to label the records in the legend (if series are from records) or along the axis (if series are from fields).

Syntax

aChart.GetRecordLabelField

Returns

Field


GetSeriesLabel (Chart)
GetSeriesLabel

Gets the label of series number aSeries.

Syntax

aChart.GetSeriesLabel (aSeries)

Returns

String


GetTitle (Chart)
GetTitle

Gets the Title of aChart.

Syntax

aChart.GetTitle

Returns

ChartPart


GetVTab (Chart)
GetVTab

Gets the VTab of aChart.

Syntax

aChart.GetVTab

Returns

VTab


GetXAxis (Chart)
GetXAxis

Gets the XAxis of aChart.

Syntax

aChart.GetXAxis

Returns

ChartPart


GetYAxis (Chart)
GetYAxis

Gets the YAxis of aChart.

Syntax

aChart.GetYAxis

Returns

ChartPart


IsChartScatter (Chart)
IsChartScatter

Returns TRUE if aChart is a Scatter chart, otherwise returns FALSE.

Syntax

aChart.IsChartScatter

Returns

Boolean


IsSeriesFromRecords (Chart)
IsSeriesFromRecords

Returns TRUE if series from records (group by field), FALSE if series from fields (group by record).

Syntax

aChart.IsSeriesFromRecords

Returns

Boolean


SetGroupLabel (Chart)
SetGroupLabel

Sets the label of group number aGroup to aString. If groups are from fields, then this request sets the alias of the field as well.

Syntax

aChart.SetGroupLabel (aGroup, aString)


SetRecordLabelField (Chart)
SetRecordLabelField

Sets the record label field to aField. The Chart reads record labels from this field, which must belong to the VTab of aChart.

Syntax

aChart.SetRecordLabelField (aField)


SetSeriesFromRecords (Chart)
SetSeriesFromRecords

If TRUE, sets series from records (group by fields). If FALSE, sets series from fields (group by records).

Syntax

aChart.SetSeriesFromRecords (isfromrecords)


SetSeriesLabel (Chart)
SetSeriesLabel

Sets the label of series number aSeries to aString. If series are from fields, then this request sets the alias of the field as well.

Syntax

aChart.SetSeriesLabel (aSeries, aString)


Edit (Chart)
Edit

Shows the Edit Chart Properties dialog box. If the user clicks OK, update the Chart to reflect any changes.

Syntax

aChart.Edit


ShowGallery (Chart)
ShowGallery

Shows the gallery dialog box positioned to aGalleryName, and allows the user to choose a new appearance for the Chart. Then updates aChart to reflect the new appearance.

Syntax

aChart.ShowGallery (aGalleryName)


EditChartPart (Chart)
EditChartPart

Processes a single chart click and shows the appropriate dialog box. The Change Chart Part Properties tool uses this request.

Syntax

aChart.EditChartPart


Erase (Chart)
Erase

Processes a single chart click as a record unselection. The Erase tool uses this request.

Syntax

aChart.Erase


EraseWithPolygon (Chart)
EraseWithPolygon

Gets clicks to form a polygon and uses that polygon to unselect records. The Polygon Erase tool uses this request. It can only be used on Scatter charts.

Syntax

aChart.EraseWithPolygon


GetUserGroup (Chart)
GetUserGroup

Gets the group number the user clicked on. Only valid if GetUserPart returns nil. Groups are numbered 0, 1, 2, etc.

Syntax

aChart.GetUserGroup

Returns

Number


GetUserPart (Chart)
GetUserPart

Gets the chart part the user clicked on. Returns nil if the click wasn't on a chart part.

Syntax

aChart.GetUserPart

Returns

ChartPart


GetUserRecord (Chart)
GetUserRecord

Gets the record number in the associated VTab corresponding to the data marker the user clicked on. Only valid if GetUserPart returns nil.

Syntax

aChart.GetUserRecord

Returns

Number


GetUserSeries (Chart)
GetUserSeries

Gets the series number containing the mouse click. Only valid if GetUserPart returns nil. Series are numbered 0, 1, 2, etc.

Syntax

aChart.GetUserSeries

Returns

Number


ChartDisplay

 A ChartDisplay encapsulates the visual representation of a chart. Requests to the ChartDisplay can change that representation.

The properties of the ChartDisplay are dependent on each other and work together to describe the chart. However, they may be manipulated independently using the ChartDisplay requests, so care must be taken by the Avenue programmer not to set these properties inconsistently. The IsOK request detects inconsistent settings.

The same set of data can be displayed in different ways. See the enumerations ChartDisplayEnum and ChartDisplayViewEnum for information on the different ways.

Some requests that affect the visual display of the chart are made to the associated ChartParts: ChartLegend, Title, XAxis, and YAxis.

Note that despite the similarities in name and function, ChartDisplay is not related to Display.

Attributes

InColor.InColor is true when the chart is drawn in color. It is false when the chart is drawn in black and white.

CrossGroup.The CrossGroup is the number of the group where the value axis crosses the group axis. This can't be used on scatter charts.

GroupGap.The GroupGap is the space between the groups as a percentage of the length of the group axis. If GroupGap is near 100, data will be cut off the chart. This can't be used on scatter or pie charts.

Mark.The mark used to plot points on the chart. This can only be used on scatter and line charts.

MarksPlotted.MarksPlotted is whether marks are plotted on a line chart.

Series.See Chart. Series have a color used to draw them and whether they are separated from the rest of the pie on a pie chart.

SeriesOverlap.The Series Overlap is how much the data markers in different series overlap as a percentage from 0 to 99.

Style.The Style is an ChartDisplayViewEnum that indicates whether the chart is stacked, relative, or cumulative.

Type.The Type is an ChartDisplayEnum that indicates whether the chart is a bar, column, line, scatter, pie, or area chart.

Inherits From

Obj

Enumerations

ChartDisplayLocEnum

ChartDisplayMarkEnum

ChartDisplayEnum

ChartDisplayViewEnum

Instance Requests

Getting and Setting status

GetMaxDataPoints  :  Number

GetStatus  :  String

IsOK  :  Boolean

SetMaxDataPoints ( aNumber )

Getting and Setting group and series attributes

GetCrossGroup  :  Number

GetGroupGap  :  Number

GetNumGroups  :  Number

GetNumSeries  :  Number

GetSeriesColor ( aSeries ) :  Color

GetSeriesOverlap  :  Number

IsSeriesSeparated ( aSeries ) :  Boolean

SetCrossGroup ( aCrossGroup )

SetGroupGap ( aPercentage )

SetSeriesColor ( aSeries, aColor )

SetSeriesOverlap ( aPercentage )

SetSeriesSeparated ( aSeries, isSeparated )

Getting and Setting attributes

GetChart  :  Chart

GetMark  :  ChartDisplayMarkEnum

GetStyle  :  ChartDisplayViewEnum

GetType  :  ChartDisplayEnum

IsInColor  :  Boolean

IsPlotMarks  :  Boolean

SetInColor ( inColor )

SetMark ( aChartMark )

SetPlotMarks ( isPlotted )

SetStyle ( aChartStyle )

SetType ( aChartType )

__________

See also

ChartPart
Chart


GetMaxDataPoints (ChartDisplay)
GetMaxDataPoints

Gets the maximum number of data points that may be displayed in aChartDisplay.

Syntax

aChartDisplay.GetMaxDataPoints

Returns

Number


GetStatus (ChartDisplay)
GetStatus

Gets the status of the ChartDisplay as a string. If IsOK returns false, use GetStatus to find further information about the error.

Syntax

aChartDisplay.GetStatus

Returns

String


IsOK (ChartDisplay)
IsOK

Returns TRUE if there are no consistency errors in the ChartDisplay which would prevent the chart from displaying. Returns FALSE if there is an error.

Syntax

aChartDisplay.IsOK

Returns

Boolean


SetMaxDataPoints (ChartDisplay)
SetMaxDataPoints

Sets the maximum number of data points that may be displayed in aChartDisplay.

Syntax

aChartDisplay.SetMaxDataPoints (aNumber)


GetCrossGroup (ChartDisplay)
GetCrossGroup

Gets the group number at which the value axis crosses the group axis. Groups are numbered 0, 1, 2, etc.

Syntax

aChartDisplay.GetCrossGroup

Returns

Number


GetGroupGap (ChartDisplay)
GetGroupGap

Gets the separation between groups in the chart (except Pie and Scatter charts). Specify the separation as a percentage (0 to 99) of the space available for each group.

Syntax

aChartDisplay.GetGroupGap

Returns

Number


GetNumGroups (ChartDisplay)
GetNumGroups

Gets the number of groups in the chart.

Syntax

aChartDisplay.GetNumGroups

Returns

Number


GetNumSeries (ChartDisplay)
GetNumSeries

Gets the number of series in the chart.

Syntax

aChartDisplay.GetNumSeries

Returns

Number


GetSeriesColor (ChartDisplay)
GetSeriesColor

Gets the color of series number aSeries. Series are numbered 0, 1, 2, etc.

Syntax

aChartDisplay.GetSeriesColor (aSeries)

Returns

Color


GetSeriesOverlap (ChartDisplay)
GetSeriesOverlap

Gets the overlap between series in the chart (except Pie and Scatter charts). Specify the overlap as a percentage (-100 to +100) of the space available for each series. Positive percentages make the series overlap, zero causes no overlap, and negative percentages leave space between the series.

Syntax

aChartDisplay.GetSeriesOverlap

Returns

Number


IsSeriesSeparated (ChartDisplay)
IsSeriesSeparated

Returns TRUE if ArcView separates the Pie chart sectors from the rest of the pie for series number aSeries, otherwise returns FALSE. Series are numbered 0, 1, 2, etc. Only the first 32 Pie chart series can be separated.

Syntax

aChartDisplay.IsSeriesSeparated (aSeries)

Returns

Boolean


SetCrossGroup (ChartDisplay)
SetCrossGroup

Sets the group at which the value axis crosses the group axis to group number aCrossGroup. This value will be used only if IsCrossValueUsed on the appropriate, returns true. Groups are numbered 0, 1, 2, etc.

Syntax

aChartDisplay.SetCrossGroup (aCrossGroup)


SetGroupGap (ChartDisplay)
SetGroupGap

Sets the percentage of the width of the chart to be used as space between groups in the chart (except Pie and Scatter charts) to aPercentage. If the percentage is close to 100, data may be cut off the chart.

Syntax

aChartDisplay.SetGroupGap (aPercentage)


SetSeriesColor (ChartDisplay)
SetSeriesColor

Sets the color of series number aSeries to aColor. Series are numbered 0, 1, 2, etc.

Syntax

aChartDisplay.SetSeriesColor (aSeries, aColor)


SetSeriesOverlap (ChartDisplay)
SetSeriesOverlap

Sets the overlap factor between series in the chart (except Pie and Scatter charts) to aPercentage. Specify the overlap as a percentage (-100 to +100) of the space available for each series. In Bar or Column charts, this factor makes the bars or columns overlap. Positive percentages make the series overlap, zero cause no overlap, and negative percentages leave space between the series.

Syntax

aChartDisplay.SetSeriesOverlap (aPercentage)


SetSeriesSeparated (ChartDisplay)
SetSeriesSeparated

When isSeparated is TRUE, separates the Pie chart sector for series number aSeries from the other ones by a small gap. When isSeparated is FALSE, puts the sector back in the circle. Series are numbered 0, 1, 2, etc. Only the first 32 series may be separated.

Syntax

aChartDisplay.SetSeriesSeparated (aSeries, isSeparated)


GetChart (ChartDisplay)
GetChart

Gets the Chart associated with the ChartDisplay.

Syntax

aChartDisplay.GetChart

Returns

Chart


GetMark (ChartDisplay)
GetMark

Gets the type of mark to use as a data marker for scatter and line charts.

Syntax

aChartDisplay.GetMark

Returns

ChartDisplayMarkEnum


GetStyle (ChartDisplay)
GetStyle

Gets the chart style (Side By Side, Cumulative, Relative).

Syntax

aChartDisplay.GetStyle

Returns

ChartDisplayViewEnum


GetType (ChartDisplay)
GetType

Gets the chart type (pie, bar, etc.)

Syntax

aChartDisplay.GetType

Returns

ChartDisplayEnum


IsInColor (ChartDisplay)
IsInColor

Returns TRUE if ArcView uses colors instead of patterns to display values on color screens. Returns FALSE if using patterns or screen is monochrome.

Syntax

aChartDisplay.IsInColor

Returns

Boolean


IsPlotMarks (ChartDisplay)
IsPlotMarks

Returns TRUE if ArcView plots a mark (cube, cross, etc.) for each data value on a Line chart, otherwise returns FALSE.

Syntax

aChartDisplay.IsPlotMarks

Returns

Boolean


SetInColor (ChartDisplay)
SetInColor

When inColor is TRUE, use the colors to distinguish series on the screen. When inColor is FALSE, use patterns to distinguish series. This option is ignored on monochrome screens.

Syntax

aChartDisplay.SetInColor (inColor)


SetMark (ChartDisplay)
SetMark

Sets the type of mark that ArcView will plot at each data point location for line and scatter charts to aChartMark.

Syntax

aChartDisplay.SetMark (aChartMark)


SetPlotMarks (ChartDisplay)
SetPlotMarks

When isPlotted is TRUE, ArcView will plot a marker (cube, cross, etc.) at each data point location, joined by lines. When isPlotted is FALSE, only the lines are plotted. This applies only to Line charts.

Syntax

aChartDisplay.SetPlotMarks (isPlotted)


SetStyle (ChartDisplay)
SetStyle

Sets the chart style (Side By Side, Cumulative, Relative) to aChartStyle.

Syntax

aChartDisplay.SetStyle (aChartStyle)


SetType (ChartDisplay)
SetType

Sets the type of chart (pie, bar, etc.) to aChartType.

Syntax

aChartDisplay.SetType (aChartType)


ChartDisplayLocEnum

 ChartDisplayLocEnum indicates possible locations to draw the title or chart legend on the chart.

#CHARTDISPLAY_LOC_BOTTOM

The chart part is drawn below the data area of the chart.

#CHARTDISPLAY_LOC_LEFT

The chart part is drawn to the left of the data area of the chart.

#CHARTDISPLAY_LOC_RELATIVE

The chart part is drawn within the drawing area. When a chart part's location is LOC_RELATIVE, ArcView places it at its relative position, measured in thousandths of the width or height of the data area.

#CHARTDISPLAY_LOC_RIGHT

The chart part is drawn to the right of the data area.

#CHARTDISPLAY_LOC_TOP

The chart part is drawn above the data area.


ChartDisplayMarkEnum

 ChartDisplayMarkEnum indicates the type of marker drawn at each data point in line and scatter charts.

#CHARTDISPLAY_MARK_BIGSQUARE

A large square.

#CHARTDISPLAY_MARK_CROSS

An X-like cross.

#CHARTDISPLAY_MARK_DOT

A Dot.

#CHARTDISPLAY_MARK_MALTA

A Maltese cross.

#CHARTDISPLAY_MARK_PLUS

A plus-shaped cross.

#CHARTDISPLAY_MARK_SMALLPLUS

A small plus-shaped cross.

#CHARTDISPLAY_MARK_SMALLSQUARE

A small square.

#CHARTDISPLAY_MARK_SQUARE

A medium size square.


ChartDisplayEnum

 The same set of data can be displayed on different types of charts, as shown on the Gallery menu.

#CHARTDISPLAY_AREA

Filled area between the points and the X Axis. The X Axis is the group axis while the Y Axis is a value axis.

#CHARTDISPLAY_BAR

Horizontal rectangles. The X Axis is a value axis while the Y Axis is the group axis.

#CHARTDISPLAY_COLUMN

Vertical rectangles. The X Axis is the group axis while the Y Axis is a value axis.

#CHARTDISPLAY_LINE

Lines connecting points representing data values. The points may be marked with a data marker. The X Axis is the group axis while the Y Axis is a value axis.

#CHARTDISPLAY_PIE

One circle for each group divided into one slice for each series. Pie charts cannot have the SideBySide Chart View. In the Cumulative View, the size of the circle is proportional to the sum of the values for the group. In the Relative View, all the circles are the same size.

#CHARTDISPLAY_XYSCATTER

The first group is used as X values and the second group is used as Y values. A data marker is placed at the corresponding point. Both the X and Y axes are value axes. An XY Scatter chart must have the Side by Side Chart View.


ChartDisplayViewEnum

 Each type of chart comes in several views, depending on how you want to compare related data which come from different series but belong to the same group.

#CHARTDISPLAY_VIEW_CUMULATIVE

The values within a group are summed, and the scale is the maximum sum for all groups. Cumulative is not available for Scatter charts.

#CHARTDISPLAY_VIEW_RELATIVE

Similar to Cumulative but each value is represented by its percentage, or its relative weight compared to the sum of all values. The scale is always 0% to 100%. Relative is not available for Scatter charts.

#CHARTDISPLAY_VIEW_SIDEBYSIDE

The basic representation. Each value is viewed separately, and the scale is based on the maximum value for the group. Side by Side is not available for Pie charts.


Choice

 A Choice is a menu item in a Menu. The choice's label identifies the action that occurs when you click on the choice. The choice's Click script implements that action.

Here is a script that alters the label of the first choice in the second menu of the active GUI.

  ' Get the first choice in the second menu

  aMenu = av.GetActiveGUI.GetMenuBar.GetControls.Get(1)
  aChoice = aMenu.GetControls.Get(0)

  ' Alter the label

  aChoice.SetLabel("WOW!")

Attributes

Click. A choice receives a click event when the user "clicks" on that choice. The click attribute is the Avenue script that is executed on that event.

Label. The label is the text name of the choice that displays on the pulldown menu.

Inherits From

Control

Class Requests

Choice

Make  :  Choice

Instance Requests

Using Choices

Click

Getting and setting Choice attributes

GetClick  :  String

GetLabel  :  String

GetShortcut  :  String

HasScript ( aScriptName ) :  Boolean

SetClick ( aScriptName )

SetLabel ( aLabelStr )

SetShortcut ( shortcutString )

__________

See also

Menu
MenuBar
Button
Tool


Make (Choice)
Make

Creates a choice.

Syntax

Choice.Make

Returns

Choice


Click (Choice)
Click

Triggers the click event.

Syntax

aChoice.Click


GetClick (Choice)
GetClick

Gets the name of the script executed on a Click event.

Syntax

aChoice.GetClick

Returns

String


GetLabel (Choice)
GetLabel

Gets the label string.

Syntax

aChoice.GetLabel

Returns

String


GetShortcut (Choice)
GetShortcut

Gets the keyboard shortcut. Returns a string in the same format as displayed in the Shortcut Manager (the Shortcut Manger is displayed when you double click on the Shortcut property in the Customize dialog). For example, if aChoice has F6 as its shortcut key, then the string returned would be "Keys.F6"

Syntax

aChoice.GetShortcut

Returns

String


HasScript (Choice)
HasScript

Returns TRUE when aChoice has a script named aScriptName.

Syntax

aChoice.HasScript (aScriptName)

Returns

Boolean


SetClick (Choice)
SetClick

 Sets aScriptName to execute on a Click event.

Syntax

aChoice.SetClick (aScriptName)


SetLabel (Choice)
SetLabel

 Sets the label with aLabelStr.

Syntax

aChoice.SetLabel (aLabelStr)


SetShortcut (Choice)
SetShortcut

Sets the keyboard shortcut key. shortcutString should be in the same format as displayed in the Shortcut Manager (the Shortcut Manger is displayed when you double click on the Shortcut property in the Customize dialog). For example, if you want to assign F6 to aChoice you would use

 aChoice.SetShortcut("Keys.F6")

Syntax

aChoice.SetShortcut (shortcutString)


ChartSymbol

 A ChartSymbol is graphic symbology used to draw a chart on the screen. There are pie and column chart symbols. ChartSymbols do not scale when in a view document, but do scale in layout documents.

ChartSymbols are a little different than other sub-classes of symbol in that the only way to make one is at the lowest level of the sub-class tree, i.e., PieChartSymbol.Make or ColumnChartSymbol.Make. You can also obtain a chartsymbol from a theme that has a legend of #LEGEND_TYPE_CHART by using aLegend.GetSymbols.Get(0).

Inherits From

Symbol

Inherited By

ColumnChartSymbol
PieChartSymbol

Instance Requests

Getting and Setting Attributes

Copy ( anotherSymbol )

GetBgColor  :  Color

GetOlColor  :  Color

GetSize  :  Number

GetType  :  SymbolEnum

SetBgColor ( aColor )

SetOlColor ( aColor )

SetSize ( aSize )

Getting and Setting Attributes

GetBgSym  :  Symbol

GetMaxSize  :  Number

GetMaxValue  :  Number

GetMinSize  :  Number

GetMinValue  :  Number

GetNumValues  :  Number

SetBgSym ( aSymbol )

SetMaxSize ( aNumber )

SetMaxValue ( aNumber )

SetMinSize ( aNumber )

SetMinValue ( aNumber )

SetNumValues ( aNumber )

SetSymbols ( aSymbolList )

SetValues ( aList )

__________

See also

PieChartSymbol
ColumnChartSymbol


Copy (ChartSymbol)
Copy

Copies the attributes of anotherSymbol into aChartSymbol.

Syntax

aChartSymbol.Copy (anotherSymbol)


GetBgColor (ChartSymbol)
GetBgColor

Gets the background color of aChartSymbol.

Syntax

aChartSymbol.GetBgColor

Returns

Color


GetOlColor (ChartSymbol)
GetOlColor

Gets the outline color of aChartSymbol.

Syntax

aChartSymbol.GetOlColor

Returns

Color


GetSize (ChartSymbol)
GetSize

Gets the size of aChartSymbol.

Syntax

aChartSymbol.GetSize

Returns

Number


GetType (ChartSymbol)
GetType

Returns #SYMBOL_CHART.

Syntax

aChartSymbol.GetType

Returns

SymbolEnum


SetBgColor (ChartSymbol)
SetBgColor

Sets the background color of aChartSymbol to aColor.

Syntax

aChartSymbol.SetBgColor (aColor)


SetOlColor (ChartSymbol)
SetOlColor

Sets the outline color of aChartSymbol to aColor.

Syntax

aChartSymbol.SetOlColor (aColor)


SetSize (ChartSymbol)
SetSize

Sets the size of aChartSymbol to aSize.

Syntax

aChartSymbol.SetSize (aSize)


GetBgSym (ChartSymbol)
GetBgSym

Returns a symbol that is used to symbolize the background of the feature being represented with aChartSymbol.

Syntax

aChartSymbol.GetBgSym

Returns

Symbol


GetMaxSize (ChartSymbol)
GetMaxSize

Gets the maximum size. For PieChartSymbols, the size corresponds to the radius, and for ColumnChartSymbols, the size corresponds to the column height. All sizes are in points (1/72 inch). This corresponds to the maximum size in the PieChart and ColumnChart properties window in the Legend Editor.

Syntax

aChartSymbol.GetMaxSize

Returns

Number


GetMaxValue (ChartSymbol)
GetMaxValue

Gets the maximum value.

Syntax

aChartSymbol.GetMaxValue

Returns

Number


GetMinSize (ChartSymbol)
GetMinSize

Gets the minimum size. For PieChartSymbols, the size corresponds to the radius, and for ColumnChartSymbols, the size corresponds to the column height. All sizes are in points (1/72 inch). This corresponds to the minimum size in the PieChart and ColumnChart properties window in the Legend Editor.

Syntax

aChartSymbol.GetMinSize

Returns

Number


GetMinValue (ChartSymbol)
GetMinValue

Gets the minimum value.

Syntax

aChartSymbol.GetMinValue

Returns

Number


GetNumValues (ChartSymbol)
GetNumValues

Returns the number values in aChartSymbol.

Syntax

aChartSymbol.GetNumValues

Returns

Number


SetBgSym (ChartSymbol)
SetBgSym

aSymbol must be appropriate for the type of feature being symbolized with aChartSymbol, e.g., aMarker for points, aPen for Lines, and aFill for polygons.

Syntax

aChartSymbol.SetBgSym (aSymbol)


SetMaxSize (ChartSymbol)
SetMaxSize

Sets the maximum size. For PieChartSymbols, the size corresponds to the radius, and for ColumnChartSymbols, the size corresponds to the column height. All sizes are in points (1/72 inch). This corresponds to the maximum size in the PieChart and ColumnChart properties window in the Legend Editor.

Syntax

aChartSymbol.SetMaxSize (aNumber)


SetMaxValue (ChartSymbol)
SetMaxValue

Sets the maximum value.

Syntax

aChartSymbol.SetMaxValue (aNumber)


SetMinSize (ChartSymbol)
SetMinSize

Sets the minimum size. For PieChartSymbols, the size corresponds to the radius, and for ColumnChartSymbols, the size corresponds to the column height. All sizes are in points (1/72 inch). This corresponds to the minimum size in the PieChart and ColumnChart properties window in the Legend Editor.

Syntax

aChartSymbol.SetMinSize (aNumber)


SetMinValue (ChartSymbol)
SetMinValue

Sets the minimum value.

Syntax

aChartSymbol.SetMinValue (aNumber)


SetNumValues (ChartSymbol)
SetNumValues

Sets the number of values for aChartSymbol

Syntax

aChartSymbol.SetNumValues (aNumber)


SetSymbols (ChartSymbol)
SetSymbols

aSymbolList must contain the same number of Fill symbols as there are parts to aChartSymbol.

Syntax

aChartSymbol.SetSymbols (aSymbolList)


SetValues (ChartSymbol)
SetValues

aList contains the values that will determine the size of each part of aChartSymbol. aList must contain aNumber of elements equal to what is returned by aChartSymbol.GetNumValues.

Syntax

aChartSymbol.SetValues (aList)


Circle

 A Circle is a geometric circle.

Attributes

Radius.The Radius is the distance from the center of the circle to the edge.

Inherits From

Shape

Class Requests

Making Circles

Make ( aPoint, aRadius ) :  Circle

MakeNull  :  Circle

Instance Requests

Converting a Circle

AsMultiPoint  :  MultiPoint

AsPolygon  :  Polygon

Generic Object Requests

= anObj :  Boolean

AsString  :  String

Getting and Setting Attributes

GetDimension  :  Number

GetRadius  :  Number

IsNull  :  Boolean

ReturnCenter  :  Point

SetCenter ( aPoint )

SetRadius ( aRadius )

Manipulating a Circle

ExpandBy ( aDistance ) :  Circle

InsetBy ( aDistance ) :  Circle

Move ( moveX, moveY ) :  Circle

Snap ( aShape, snapDistance ) :  Boolean

Relating two Shapes

Contains ( anotherShape ) :  Boolean

Intersects ( aShape ) :  Boolean

Transforming a Circle

ReturnClipped ( clipRect ) :  Shape

ReturnDifference ( aShape ) :  Polygon

ReturnIntersection ( aShape ) :  Polygon

ReturnMerged ( aShape ) :  Polygon

ReturnProjected ( aPrj ) :  Shape

ReturnUnion ( aShape ) :  Polygon

ReturnUnprojected ( aPrj ) :  Shape

__________

See also

Line
Oval
Point
Polygon
Rect


Make (Circle)
Make

Makes a Circle with center at aPoint and radius aRadius.

 myCircle = Circle.Make( 5@5, 10)

Syntax

Circle.Make (aPoint, aRadius)

Returns

Circle


MakeNull (Circle)
MakeNull

Makes the NULL Circle.

Syntax

Circle.MakeNull

Returns

Circle


AsMultiPoint (Circle)
AsMultiPoint

Returns a MultiPoint representation of aCircle.

Syntax

aCircle.AsMultiPoint

Returns

MultiPoint


AsPolygon (Circle)
AsPolygon

Returns a polygon representation of aCircle.

Syntax

aCircle.AsPolygon

Returns

Polygon


= (Circle)
=

Returns TRUE when aCircle and anObj are equal.

Syntax

aCircle = anObj

Returns

Boolean


AsString (Circle)
AsString

Returns a string describing aCircle in the form "Circle: x,y r".

Syntax

aCircle.AsString

Returns

String


GetDimension (Circle)
GetDimension

Returns 2. In ArcView, points have dimension 0, lines have dimension 1 and polygons have dimension 2. Only shapes with dimension 1 or greater have a length. Only shapes with dimension 2 have an area.

Syntax

aCircle.GetDimension

Returns

Number


GetRadius (Circle)
GetRadius

Gets the radius of aCircle.

Syntax

aCircle.GetRadius

Returns

Number


IsNull (Circle)
IsNull

Returns TRUE if aCircle is NULL, otherwise returns FALSE.

Syntax

aCircle.IsNull

Returns

Boolean


ReturnCenter (Circle)
ReturnCenter

Returns the center point of aCircle.

Syntax

aCircle.ReturnCenter

Returns

Point


SetCenter (Circle)
SetCenter

Sets the center of aCircle to aPoint.

Syntax

aCircle.SetCenter (aPoint)


SetRadius (Circle)
SetRadius

Sets the radius of aCircle to aRadius.

Syntax

aCircle.SetRadius (aRadius)


ExpandBy (Circle)
ExpandBy

Expands the radius of aCircle by aDistance. Returns aCircle.

 RESULTS:
 Circle: 1.000000,2.000000 7.000000

 aCircle = Circle.Make(1@2,5)
 aCircle.ExpandBy(2)
 msgbox.Info(aCircle.AsString,"")

Syntax

aCircle.ExpandBy (aDistance)

Returns

Circle


InsetBy (Circle)
InsetBy

Insets aCircle by aDistance. Returns aCircle.

 RESULTS:
 Circle: 1.000000,2.000000 3.000000

 aCircle = Circle.Make(1@2,5)
 aCircle.InsetBy(2)
 msgbox.Info(aCircle.AsString,"")

Syntax

aCircle.InsetBy (aDistance)

Returns

Circle


Move (Circle)
Move

Moves aCircle by moveX and moveY. Returns aCircle.

 RESULTS:
 Circle: 2.000000,7.000000 5.000000

 aCircle = Circle.Make(1@2,5)
 aCircle.Move(1,5)
 msgbox.Info(aCircle.AsString,"")

Syntax

aCircle.Move (moveX, moveY)

Returns

Circle


Snap (Circle)
Snap

Snaps the vertices of aCircle to vertices of aShape within snapDistance. Returns TRUE if snapping occurred, otherwise returns FALSE.

Syntax

aCircle.Snap (aShape, snapDistance)

Returns

Boolean


Contains (Circle)
Contains

Returns TRUE if aCircle contains anotherShape, otherwise returns FALSE.

Syntax

aCircle.Contains (anotherShape)

Returns

Boolean


Intersects (Circle)
Intersects

Returns TRUE if aCircle intersects aShape, otherwise returns FALSE.

Syntax

aCircle.Intersects (aShape)

Returns

Boolean


ReturnClipped (Circle)
ReturnClipped

Returns aCircle clipped to clipRect. The result will be NULL if aCircle and clipRect do not intersect.

Syntax

aCircle.ReturnClipped (clipRect)

Returns

Shape


ReturnDifference (Circle)
ReturnDifference

Returns the difference between aCircle and aShape into a new shape. aShape gets subtracted from aCircle. The portion of aCircle that is overlapped by aShape is removed. aCircle's dimensionality must be less or equal to aShape's dimensionality. The result will always have the dimensionality of aCircle.

Syntax

aCircle.ReturnDifference (aShape)

Returns

Polygon


ReturnIntersection (Circle)
ReturnIntersection

Returns the intersection of aCircle and aShape into a new shape. aCircle and aShape need not be of the same dimensionality. The result will always have the smaller dimensionality of the two input shapes. For example if aShape is a PolyLine then the result will be a PolyLine.

Syntax

aCircle.ReturnIntersection (aShape)

Returns

Polygon


ReturnMerged (Circle)
ReturnMerged

Merges aCircle and aShape into a new shape. aShape must have a dimension of 2. aShape can be a Circle, Oval, Rect, or Polygon.

ReturnMerged is similar to ReturnUnion except in cases where the two input shapes overlap. With ReturnMerged the resulting shape will have a hole where the shapes overlapped but with ReturnUnion there will be no hole.

Syntax

aCircle.ReturnMerged (aShape)

Returns

Polygon


ReturnProjected (Circle)
ReturnProjected

Returns aCircle projected by aPrj. The result may be a different kind of shape or have more points than the original in order to be visually pleasing.

Syntax

aCircle.ReturnProjected (aPrj)

Returns

Shape


ReturnUnion (Circle)
ReturnUnion

Returns the union of aCircle and aShape into a new shape. aShape must have a dimension of 2. aShape can be a Circle, Oval, Rect or Polygon.

ReturnUnion is similar to ReturnMerged except in cases where the two input shapes overlap. With ReturnMerged the resulting shape will have a hole where the shapes overlapped but with ReturnUnion there will be no hole.

Syntax

aCircle.ReturnUnion (aShape)

Returns

Polygon


ReturnUnprojected (Circle)
ReturnUnprojected

Returns aCircle unprojected by aPrj. The result may be a different kind of shape or have more points than the original in order to be visually pleasing.

Syntax

aCircle.ReturnUnprojected (aPrj)

Returns

Shape


ChartLegend

 A ChartLegend is the area of the chart that displays the name and color of each series.

Use the GetChartLegend request on a Chart to get the chart legend or use the GetUserPart request on a Chart to let the user click on a chart part.

Attributes

Location.The Location is an ChartDisplayLocEnum that determines whether the Title is drawn to the top, left, right, left, or at a relative location on the chart.

RelativeLocation.The Relative Location is a point that determines where the Title is drawn on the chart. The coordinates are between 0 and 100 in each direction.

Inherits From

ChartPart

Instance Requests

Displaying Dialog Boxes

Edit

Getting and Setting Attributes

GetLocation  :  ChartDisplayLocEnum

ReturnRelativeLocation  :  Point

SetLocation ( aLocation )

SetRelativeLocation ( aPoint )

SetVisible ( isVisible )

__________

See also

ChartDisplay


Edit (ChartLegend)
Edit

Shows the Chart Legend editor dialog box. If the user clicks OK, updates aChartLegend to reflect any changes.

Syntax

aChartLegend.Edit


GetLocation (ChartLegend)
GetLocation

Gets the location of aChartLegend.

Syntax

aChartLegend.GetLocation

Returns

ChartDisplayLocEnum


ReturnRelativeLocation (ChartLegend)
ReturnRelativeLocation

Returns the relative location of aChartLegend.

Syntax

aChartLegend.ReturnRelativeLocation

Returns

Point


SetLocation (ChartLegend)
SetLocation

Sets the location of aChartLegend to aLocation.

Syntax

aChartLegend.SetLocation (aLocation)


SetRelativeLocation (ChartLegend)
SetRelativeLocation

Sets the relative location of aChartLegend to aPoint.

Syntax

aChartLegend.SetRelativeLocation (aPoint)


SetVisible (ChartLegend)
SetVisible

Sets the visibility of aChartLegend to isVisible.

Syntax

aChartLegend.SetVisible (isVisible)


Clipboard
Related Topics

 There are two clipboards which the Avenue programmer needs to be aware of: the system clipboard, and the ArcView clipboard. The former deals with data structures (such as text, PICT, and Metafile data), the latter deals with objects (such as graphics, strings, themes, etc).

The sole instance of class Clipboard (accessed via Clipboard.The) provides the Avenue programmer with a way to directly manipulate the ArcView clipboard, to make the system clipboard aware of certain types of data contained in the ArcView clipboard, and to make the ArcView clipboard aware of text data which may already be present on the system clipboard. It also provides a way to import graphics from the system clipboard.

You make the system clipboard aware of the ArcView clipboard, and vice versa, by sending the 'Update' request to the clipboard object:

    Clipboard.The.Update

On all platforms, String objects are converted to a block of text which is then placed on the system clipboard. On Windows platforms, all graphic objects are drawn into a Windows metafile, as well as rendered on a memory based bitmap. Both of these are then placed on the system clipboard.

The Clipboard does not automatically synchronize the system clipboard with the ArcView clipboard, nor vice versa. Use the Update request to do this.

Use the HasKindOf request to determine if the ArcView or system clipboards contain graphics.

Use ReturnKindOf to obtain a list of a subset of elements from the Clipboard. The elements in this list are clones of those contained in the Clipboard. For example, if you call this request with class GShape, it will return a list of clones of all GShape objects currently in the Clipboard. If the class passed to this request is Graphic, it will also create a GPict object from the system clipboard graphics (if it contains graphics) and append it to the end of the returned list.

Inherits From

List

Class Requests

Accessing the Clipboard

The  :  Clipboard

Instance Requests

Manipulating Clipboards

Add ( anObject ) :  Clipboard

Empty

HasKindOf ( aClass ) :  Boolean

ReturnKindOf ( aClass, aRect ) :  List

Update  :  Boolean

__________

See also

Graphic
Display
String


The (Clipboard)
The

Returns the ArcView clipboard object.

Syntax

Clipboard.The

Returns

Clipboard


Add (Clipboard)
Add

 Clones anObject and adds the clone to aClipboard.

Syntax

aClipboard.Add (anObject)

Returns

Clipboard


Empty (Clipboard)
Empty

Removes all objects from aClipboard.

Syntax

aClipboard.Empty


HasKindOf (Clipboard)
HasKindOf

Sees if clipboard has any objects that are of aClass. If aClass is Graphic, then this request also checks the system clipboard.

Syntax

aClipboard.HasKindOf (aClass)

Returns

Boolean


ReturnKindOf (Clipboard)
ReturnKindOf

Returns a list containing cloned objects that are of type aClass. If aClass is Graphic, then graphics from the system clipboard are also part of the object list. aRect is used as the location to put graphics from the system clipboard.

Syntax

aClipboard.ReturnKindOf (aClass, aRect)

Returns

List


Update (Clipboard)
Update

Synchronizes the system clipboard with the ArcView clipboard. Returns TRUE when data is available from another application. In this case, the new data will be available as the last element in the clipboard list.

Syntax

aClipboard.Update

Returns

Boolean


CompositePen

 CompositePen defines a layered line symbol from a list of line symbols.

Attributes

Size. Size is the width of the CompositePen in points (1/72 of an inch). All symbols making up the CompositePen are assigned this size value.

Symbols.A CompositePen contains a list of symbols. Symbols is a SymbolList. The first symbol in the SymbolList draws on the bottom and the last symbol in the SymbolList draws on the top. A CompositePen symbol is constructed from BasicPen and VectorPen symbols.

Example

This script assumes the first element in the view's graphic list is a line.

 ' Make blue dashes symbol
 blueDashes = VectorPenHash.Make
 blueDashes.SetColor( color.GetBlue )
 blueDashes.SetSize( 10 )
 blueDashes.SetInterval( 15 )

 ' Make green line symbol
 greenLine = BasicPen.Make
 greenLine.SetWidth( 3 )
 greenLine.SetColor( Color.GetGreen )

 ' Make the composite pen symbol
 sl = SymbolList.FromList( {greenLine, blueDashes} )
 compLine = Compositepen.Make( sl )

 ' Assign new symbol to this feature
 av.GetActiveDoc.GetGraphics.Get( 0 ).SetSymbol(compLine)
 av.GetActiveDoc.Invalidate

Inherits From

Pen

Inherited By

CompositeArcInfoPen

Class Requests

Making CompositePens

Make ( aSymbolList ) :  CompositePen

Instance Requests

Getting and Setting Attributes

CanSetSize  :  Boolean

GetSize  :  Number

GetSymbols  :  SymbolList

SetColor ( aColor )

SetSize ( aSize )

Generic Object Requests

= anObject :  Boolean

__________

See also

SymbolList
BasicPen
VectorPen


Make (CompositePen)
Make

Makes a CompositePen from aSymbolList. aSymbolList must contain only BasicPen and VectorPen symbols. Create aSymbolList with the SymbolList Make request.

Syntax

CompositePen.Make (aSymbolList)

Returns

CompositePen


CanSetSize (CompositePen)
CanSetSize

Returns TRUE if it is possible to set the size of aCompositePen.

Syntax

aCompositePen.CanSetSize

Returns

Boolean


GetSize (CompositePen)
GetSize

Gets the size of aCompositePen.

Syntax

aCompositePen.GetSize

Returns

Number


GetSymbols (CompositePen)
GetSymbols

Gets the SymbolList making up aCompositePen.

Syntax

aCompositePen.GetSymbols

Returns

SymbolList


SetColor (CompositePen)
SetColor

Sets the foreground color of all the elements of aCompositePen to aColor.

Syntax

aCompositePen.SetColor (aColor)


SetSize (CompositePen)
SetSize

Sets the size of all elements of aCompositePen to aSize. aSize is specified in points (1/72 of an inch).

Syntax

aCompositePen.SetSize (aSize)


= (CompositePen)
=

Compares aCompositePen and anObject.

Syntax

aCompositePen = anObject

Returns

Boolean


CompositeMarker
Example

 CompositeMarker defines a layered marker symbol created from a list of BasicMarker symbols.

Attributes

Symbols.Symbols is the SymbolList defining a CompositeMarker's layers. The first marker symbol in the SymbolList draws on the bottom and the last draws on top. The SymbolList must contain only BasicMarker symbols.

Size. The marker size is specified in points. Points are 1/72 of an inch.

Inherits From

Marker

Class Requests

Making CompositeMarkers

Make ( aSymbolList ) :  CompositeMarker

Instance Requests

Manipulating a CompositeMarker

UnHook

Generic Object Requests

= anObject :  Boolean

Getting and Setting Attributes

CanSetSize  :  Boolean

GetBgColor  :  Color

GetSize  :  Number

GetSymbols  :  SymbolList

SetBgColor ( aColor )

SetColor ( aColor )

SetSize ( aSizeinPoints )

__________

See also

SymbolList
BasicMarker


Make (CompositeMarker)
Make

Makes a CompositeMarker from symbols in aSymbolList. aSymbolList must contain only BasicMarker symbols. Create aSymbolList with the SymbolList Make request.

Syntax

CompositeMarker.Make (aSymbolList)

Returns

CompositeMarker


UnHook (CompositeMarker)
UnHook

Unhooks aCompositeMarker from its scale so that it will not be resized when the scale changes.

Syntax

aCompositeMarker.UnHook


= (CompositeMarker)
=

Compares aCompositeMarker and anObject.

Syntax

aCompositeMarker = anObject

Returns

Boolean


CanSetSize (CompositeMarker)
CanSetSize

Returns TRUE if it is possible to set the size of aCompositeMarker.

Syntax

aCompositeMarker.CanSetSize

Returns

Boolean


GetBgColor (CompositeMarker)
GetBgColor

Gets the background color of aCompositeMarker.

Syntax

aCompositeMarker.GetBgColor

Returns

Color


GetSize (CompositeMarker)
GetSize

Gets the size of aCompositeMarker.

Syntax

aCompositeMarker.GetSize

Returns

Number


GetSymbols (CompositeMarker)
GetSymbols

Gets the SymbolList that defines aCompositeMarker's layers.

Syntax

aCompositeMarker.GetSymbols

Returns

SymbolList


SetBgColor (CompositeMarker)
SetBgColor

Sets the background color of all the symbols in aCompositeMarker to aColor.

Syntax

aCompositeMarker.SetBgColor (aColor)


SetColor (CompositeMarker)
SetColor

Sets the foreground color of all the symbols in aCompositeMarker to aColor.

Syntax

aCompositeMarker.SetColor (aColor)


SetSize (CompositeMarker)
SetSize

Sets the size of aCompositeMarker to aSizeinPoints.

Syntax

aCompositeMarker.SetSize (aSizeinPoints)


Codepage

 A code page is a chart of characters that represents a language or set of languages. English, for instance, can be represented by either DOS437 code page for DOS based programs or WIN1252 for Windows based programs. Each code page chart is organized as an ordered set of characters in which a numeric index (code point value) is associated with each character.

A Codepage is used to convert a string from one code page to another code page for the same language. The code page setting is directory based. The user can setup the default code page for each directory in a Drive Code Page Profile. The user can also set the native code page if they want, otherwise, the system will determine its native code page automatically.

Inherits From

Obj

Class Requests

Codepage

EditProfile

Load ( aFullpath ) :  Codepage

Make  :  Codepage

Instance Requests

Getting and Setting Attributes

IsCodepageValid ( Codepage ) :  Number

__________

See also

Application


EditProfile (Codepage)
EditProfile

Opens the Drive Code Page Profile dialog windows.

Syntax

Codepage.EditProfile


Load (Codepage)
Load

Makes a Codepage from a Code Page Profile.

Syntax

Codepage.Load (aFullpath)

Returns

Codepage


Make (Codepage)
Make

Makes a Codepage.

Syntax

Codepage.Make

Returns

Codepage


IsCodepageValid (Codepage)
IsCodepageValid

Check to see if the Codepage is supported. The supported code page should have an entry under $AVHOME/codepage.

Syntax

aCodepage.IsCodepageValid (Codepage)

Returns

Number


Collection

 Class Collection is an abstract superclass which defines common behavior for any kind of collection of objects.

A collection is either "ordered" or "unordered". Ordered collections can be sorted according to some comparison rule (less than, fatter than, etc.) A list is an example of an ordered collection. Dictionaries and bitmaps are examples of unordered collections.

Given a collection, you can visit each object in it exactly once. For unordered collections, the order in which the objects are accessed is not predictable. The Avenue language provides the 'for each' construct for this purpose.

Most collections will hold an unbounded number of elements. Bitmap is an exception to this.

Inherits From

Obj

Inherited By

BitMap
Dictionary
Interval
List
NameDictionary
Stack

Class Requests

Collect

Make  :  Collection

Instance Requests

Collection Properties

Count  :  Number

IsEmpty  :  Boolean

Operating on entire collections

+ anotherCollection :  Collection

AsList  :  List

Empty

Merge ( anotherCollection ) :  Collection


Make (Collection)
Make

Creates a collection. ABSTRACT

Syntax

Collection.Make

Returns

Collection


Count (Collection)
Count

Returns the number of objects in the collection.

Syntax

aCollect.Count

Returns

Number


IsEmpty (Collection)
IsEmpty

Returns true when there are no elements in the collection.

Syntax

aCollect.IsEmpty

Returns

Boolean


+ (Collection)
+

Produces a new collection which includes the elements of aCollection and anotherCollection. Duplicates may or may not be allowed, depending upon the classes of the operands.

Syntax

aCollection + anotherCollection

Returns

Collection


AsList (Collection)
AsList

Returns a list containing elements in the collection. ABSTRACT

Syntax

aCollection.AsList

Returns

List


Empty (Collection)
Empty

Removes the elements of aCollection.

Syntax

aCollection.Empty


Merge (Collection)
Merge

 Merges the elements of anotherCollection into aCollection. Duplicates may or may not be allowed, depending upon the class of the receiver collection.

Syntax

aCollection.Merge (anotherCollection)

Returns

Collection


ColumnChartSymbol
Example

 A ColumnChartSymbol is graphic symbology used to draw a column chart on the screen for a particular feature or graphic.

Inherits From

ChartSymbol

Class Requests

Making a ColumnSymbol

Make  :  ColumnChartSymbol

Instance Requests

Getting and Setting Attributes

GetColumnWidth  :  Number

SetColumnWidth ( aNumber )

__________

See also

ChartSymbol
PieChartSymbol


Make (ColumnChartSymbol)
Make

Makes a ColumnChartSymbol.

Syntax

ColumnChartSymbol.Make

Returns

ColumnChartSymbol


GetColumnWidth (ColumnChartSymbol)
GetColumnWidth

Returns a number that corresponds to the width of each column in a ColumnChartSymbol. The units are Points (1/72 inch).

Syntax

aColumnChartSymbol.GetColumnWidth

Returns

Number


SetColumnWidth (ColumnChartSymbol)
SetColumnWidth

Sets the width for each column in aColumnChartSymbol to be aNumber of points (1/72 inch).

Syntax

aColumnChartSymbol.SetColumnWidth (aNumber)


CoordSys
Example

 This class encapsulates the information describing a coordinate system. A coordinate system is a set of pre-defined projections and a spheroid. For example, "State Plane - 1927", "State Plane - 1983", and "UTM" are types of coordinate systems. See 'Setting the map projection' and 'Setting map units' for more information.

CoordSys is used to create a default.prj file. The user default.prj file must be in your home directory.

Inherits From

Obj

Class Requests

Creating Coordinate Systems

Make  :  CoordSys

Instance Requests

CoordSys Properties

GetDefault  :  Prj

GetProjections  :  List

SetDefault ( aProjection )

__________

See also

Prj
Spheroid


Make (CoordSys)
Make

Creates a coordinate system with an empty list of projections.

Syntax

CoordSys.Make

Returns

CoordSys


GetDefault (CoordSys)
GetDefault

Gets the default projection (which is a member of the list returned by GetProjections).

Syntax

aCoordSys.GetDefault

Returns

Prj


GetProjections (CoordSys)
GetProjections

Gets the list of component projections. Use LIST requests to add projections to the list or remove projections from the list.

Syntax

aCoordSys.GetProjections

Returns

List


SetDefault (CoordSys)
SetDefault

Sets the default projection to aProjection. aProjection must be an element of the list returned by GetProjections.

Syntax

aCoordSys.SetDefault (aProjection)


Coverage

 The Coverage class provides information about pathnames which reference ARC/INFO coverages.

Class requests on Coverage allow the user to check if the given path name string references a coverage, to check if a specified path name string corresponds to a dBASE coverage and to get the list of SrcNames contained within a coverage specified by a pathname string.

 aCoveragePathString = "$AVDATA/namerica/canada/provinc"

 if (Coverage.Exists( aCoveragePathString ).NOT ) then
   exit
 end

 n = Coverage.ReturnSrcNames( aCoveragePathString )
 nf = {}
 for each s in n
   nf.add( s.GetDataSource++s.GetSubName )
 end
 msgbox.listasstring( nf, "", "")

Inherits From

Obj

Class Requests

Getting Information about Coverages

Exists ( aCoveragePathString ) :  Boolean

IsdBASE ( aCoveragePathString ) :  Boolean

IsDouble ( aCoveragePathString ) :  Boolean

IsINFO ( aCoverageString ) :  Boolean

Accessing Coverage SrcNames

ReturnSrcNames ( aCoveragePathString ) :  List

SortSrcNames ( SrcNameList )

__________

See also

SrcName
Layer


Exists (Coverage)
Exists

 Returns TRUE if aCoveragePathString is the pathname of an ARC/INFO coverage, otherwise returns FALSE.

Syntax

Coverage.Exists (aCoveragePathString)

Returns

Boolean


IsdBASE (Coverage)
IsdBASE

 Returns TRUE if aCoveragePathString is the pathname of a PC ARC/INFO 3.4d coverage, otherwise returns FALSE.

Syntax

Coverage.IsdBASE (aCoveragePathString)

Returns

Boolean


IsDouble (Coverage)
IsDouble

 Returns TRUE if aCoveragePathString is the pathname of a double precision ARC/INFO coverage, otherwise returns FALSE.

Syntax

Coverage.IsDouble (aCoveragePathString)

Returns

Boolean


IsINFO (Coverage)
IsINFO

 Returns TRUE if aCoveragePathString is the pathname of an ARC/INFO INFO coverage, otherwise returns FALSE.

Syntax

Coverage.IsINFO (aCoverageString)

Returns

Boolean


ReturnSrcNames (Coverage)
ReturnSrcNames

 Returns the list of SrcNames for the coverage whose pathname is in the string aCoveragePathString. The list includes one SrcName object for each feature class, the SrcName specifies the feature table for the class.

Syntax

Coverage.ReturnSrcNames (aCoveragePathString)

Returns

List


SortSrcNames (Coverage)
SortSrcNames

Sorts the list of SrcName objects in a SrcNameList. The result is reflected in SrcNameList. Sort orders by complexity of feature class with more complex feature classes taking precedence over simpler:

 Region
 Route
 Polygon
 Arc
 Point
 Event
 Anno
 LabelPoint
 Node
 Section
 Link
 Cogopoint
 Bnd
 Info
 Tic

If there is more than one region or route theme, Sort orders within the feature class alphabetically by SubName.

The following script returns this list of SrcNames:

 usa region.cnty
 canada region.prov
 usa region.states
 usa polygon
 cities points

 SrcNameList = {}

 SrcNameList.Add( "$AVDATA/namerica/canada/canada region.prov".AsSrcName )
 SrcNameList.Add( "$AVDATA/world/cities points".AsSrcName )
 SrcNameList.Add( "$AVDATA/namerica/usa/usa region.states".AsSrcName )
 SrcNameList.Add( "$AVDATA/namerica/usa/usa region.cnty".AsSrcName )
 SrcNameList.Add( "$AVDATA/namerica/usa/usa polygon".AsSrcName )

 Coverage.SortSrcNames( SrcNameList )

 ' display a list of coverage/feature class pairs
 f = {}
 for each i in SrcNameList
   f.add( i.GetName++i.GetSubName )
 end
 msgbox.listasstring( f, "", "")

Syntax

Coverage.SortSrcNames (SrcNameList)


CompositeFill

 A CompositeFill is a fill symbol with multiple layers.

Attributes

Symbols.Symbols is a SymbolList that defines the layers in a CompositeFill. The first symbol in a SymbolList draws on the bottom and the last symbol draws on the top. All symbols in the SymbolList must be either RasterFill or VectorFill.

Inherits From

Fill

Class Requests

Making a CompositeFill

Make ( aSymbolList ) :  CompositeFill

Instance Requests

Getting and Setting Attributes

GetSymbols  :  SymbolList

SetColor ( aColor )

SetOlColor ( aColor )

SetOlWidth ( aWidth )

SetOutline ( isOutlined )

Generic Object Requests

= anObject :  Boolean

__________

See also

SymbolList
RasterFill
VectorFill


Make (CompositeFill)
Make

Makes a CompositeFill composed of aSymbolList. Only RasterFill or VectorFill symbols should be in aSymbolList. Create aSymbolList with the SymbolList Make request.

Syntax

CompositeFill.Make (aSymbolList)

Returns

CompositeFill


GetSymbols (CompositeFill)
GetSymbols

Gets the SymbolList of aCompositeFill.

Syntax

aCompositeFill.GetSymbols

Returns

SymbolList


SetColor (CompositeFill)
SetColor

Sets the foreground color of all the symbols in aCompositeFill to aColor.

Syntax

aCompositeFill.SetColor (aColor)


SetOlColor (CompositeFill)
SetOlColor

Sets the outline color of all the symbols in aCompositeFill to aColor.

Syntax

aCompositeFill.SetOlColor (aColor)


SetOlWidth (CompositeFill)
SetOlWidth

Sets the outline width of aCompositeFill to aWidth.

Syntax

aCompositeFill.SetOlWidth (aWidth)


SetOutline (CompositeFill)
SetOutline

Sets whether aCompositeFill has an outline. If isOutlined is TRUE, aCompositeFill will be outlined. If isOutlined is FALSE, aCompositeFill will not be outlined.

Syntax

aCompositeFill.SetOutline (isOutlined)


= (CompositeFill)
=

Compares aCompositeFill and anObject.

Syntax

aCompositeFill = anObject

Returns

Boolean


Control

 Control is the abstract class defining ArcView's user interface controls: menu choices, buttons, tools, spaces and the ControlSets.

Events

ArcView supports three events for controls: Click, Apply (tool only) and Update. The event property defines the control's response to the ArcView event; it contains the script that executes when that event occurs. ArcView provides control requests that trigger the event script: Click, Apply and Update.

The Click event occurs when you click on that control. The Apply event for the active tool triggers when you click on the display of the active document. The Update event occurs on a state change of the active document.

Attributes

Invisible.Invisible indicates if the control is visible in the user interface. If Invisible is TRUE, the control does not appear in the ControlSet and cannot be activated.

Disabled.Disabled indicates if the control is active. If TRUE, the control appears "greyed out" in the ControlSet, and cannot be activated.

Help.The help string appears in the status bar when the mouse passes over the control.

Help Topic.Help Topic names the online help topic displayed by the help tool for this control.

ControlSet.ControlSet references the ControlSet object that owns this control. A ControlSet manages a list of controls. Controls must be in a ControlSet to be part of the GUI.

Tag.A programmer specified string. Tag allows the Avenue programmer to associate any string with the control.

ObjectTag.The ObjectTag is any programmer specified object. The ObjectTag allows the Avenue programmer to associate another object with the control.

Update.ArcView executes the update script when an Update event occurs. The update script very often toggles the enabled/disabled state of a control based upon conditions in the system.

Modified.True when a control has been modified. The customization dialog sets the attribute when you modified a property of a control, or change its position within its controls set.

Inherits From

Obj

Inherited By

Button
Choice
ControlSet
LabelButton
Space
Tool

Instance Requests

Getting and Setting Control Attributes

GetControlSet  :  ControlSet

GetHelp  :  String

GetHelpTopic  :  String

GetObjectTag  :  Obj

GetTag  :  String

GetUpdate  :  String

HasScript ( aScriptName ) :  Boolean

IsEnabled  :  Boolean

IsModified  :  Boolean

IsVisible  :  Boolean

SetEnabled ( MakeItEnabled )

SetHelp ( aHelpStr )

SetHelpTopic ( aHelpTopicStr )

SetModified ( IsModified )

SetObjectTag ( anObj )

SetTag ( aTagStr )

SetUpdate ( aScriptName )

SetVisible ( MakeItVisible )

Using Controls

Update

__________

See also

DocGUI
Script


GetControlSet (Control)
GetControlSet

 Gets the control set of which aControl is a member.

Syntax

aControl.GetControlSet

Returns

ControlSet


GetHelp (Control)
GetHelp

 Gets aControl's help string.

Syntax

aControl.GetHelp

Returns

String


GetHelpTopic (Control)
GetHelpTopic

 Gets aControl's help topic.

Syntax

aControl.GetHelpTopic

Returns

String


GetObjectTag (Control)
GetObjectTag

 Gets the object in the Object Tag.

Syntax

aControl.GetObjectTag

Returns

Obj


GetTag (Control)
GetTag

 Gets aControl's programmer-defined tag.

Syntax

aControl.GetTag

Returns

String


GetUpdate (Control)
GetUpdate

 Gets the script to execute when the Update event occurs.

Syntax

aControl.GetUpdate

Returns

String


HasScript (Control)
HasScript

Returns TRUE when aControl is associated with aScriptName.

Syntax

aControl.HasScript (aScriptName)

Returns

Boolean


IsEnabled (Control)
IsEnabled

 Returns true if aControl is enabled.

Syntax

aControl.IsEnabled

Returns

Boolean


IsModified (Control)
IsModified

Returns the value of aControl's Modified property.

Syntax

aControl.IsModified

Returns

Boolean


IsVisible (Control)
IsVisible

 Returns TRUE if aControl is visible.

Syntax

aControl.IsVisible

Returns

Boolean


SetEnabled (Control)
SetEnabled

 Enables or disables aControl.

Syntax

aControl.SetEnabled (MakeItEnabled)


SetHelp (Control)
SetHelp

 Sets aControl's help string to aHelpStr.

Syntax

aControl.SetHelp (aHelpStr)


SetHelpTopic (Control)
SetHelpTopic

 Sets aControl's help topic to aHelpTopicStr.

Syntax

aControl.SetHelpTopic (aHelpTopicStr)


SetModified (Control)
SetModified

Set the Modified property of aControl to the value of IsModified.

Syntax

aControl.SetModified (IsModified)


SetObjectTag (Control)
SetObjectTag

 Sets the Object Tag to anObj.

Syntax

aControl.SetObjectTag (anObj)


SetTag (Control)
SetTag

 Sets aControl's programmer-defined tag to aTagStr.

Syntax

aControl.SetTag (aTagStr)


SetUpdate (Control)
SetUpdate

 Sets aScriptName to execute when the Update event occurs.

Syntax

aControl.SetUpdate (aScriptName)


SetVisible (Control)
SetVisible

 Makes aControl visible or invisible.

Syntax

aControl.SetVisible (MakeItVisible)


Update (Control)
Update

 Triggers the Update script on aControl.

Syntax

aControl.Update


ControlSet

 ControlSet is the abstract class which defines general properties and methods for collections of Controls. To be displayed in the DocGUI, a Control must belong to a ControlSet. Each DocGUI contains 3 ControlSets: a MenuBar, a ButtonBar and a ToolBar.

ControlSet provides requests that allow you to alter the elements in the control list. You can add controls to a control set with either the Add or New requests. Add adds an existing control and New creates a control and adds it. The Remove request removes a control from the control set. Re-position controls in the control set with the Shift request.

Other ControlSet requests provide additional functionality. The Update request causes the control set to propagate an update request to all of its controls triggering their Update events. GetControls returns the list of controls contained in the control set.

With the for each loop in Avenue, you can cycle through all the controls in the ControlSet. For example,

  for each m in av.GetActiveGUI.GetMenuBar
    msgbox.info( m.GetLabel, "" )
  end

Attributes

Controls. Each ControlSet manages a list of controls. Each list contains either buttons, choices, menus, or tools. ButtonBars, Menus and ToolBars may contain spaces. ControlSet provides requests that manage the elements in the list.

Inherits From

Control

Inherited By

ButtonBar
Menu
MenuBar
PopupSet
ToolBar

Instance Requests

ControlSets

Add ( aControl, anIndex )

Empty

FindByName ( aCtrlName ) :  Control

FindByScript ( aScriptName ) :  Control

GetControls  :  List

New ( anIndex ) :  Control

Remove ( aControl )

Shift ( aControl, deltaPos )

Update

__________

See also

DocGUI
Icon


Add (ControlSet)
Add

Adds aControl to aControlSet at the list position indicated by anIndex. If anIndex is less than 0, then aControl is added to the beginning of aControlSet. If anIndex is greater than or equal to the number of controls in aControlSet, then aControl is added to the end of the list.

Syntax

aControlSet.Add (aControl, anIndex)


Empty (ControlSet)
Empty

removes all controls from the control set.

Syntax

aControlSet.Empty


FindByName (ControlSet)
FindByName

ABSTRACT Returns the first control in aControlSet that is named aCtrlName.

Syntax

aControlSet.FindByName (aCtrlName)

Returns

Control


FindByScript (ControlSet)
FindByScript

ABSTRACT Returns the first control in aControlSet that has a script named aScriptName.

Syntax

aControlSet.FindByScript (aScriptName)

Returns

Control


GetControls (ControlSet)
GetControls

 Gets the list of controls in aControlSet.

Syntax

aControlSet.GetControls

Returns

List


New (ControlSet)
New

Creates a new Control and adds it to aControlSet at index one after anIndex. If anIndex is less than 0, then the control is added to the beginning of the list. If anIndex is greater than or equal to the number of Controls in the list, the new Control is added to the end of the list. New returns the new Control.

Syntax

aControlSet.New (anIndex)

Returns

Control


Remove (ControlSet)
Remove

Removes aControl from aControlSet. aControl must be in aControlSet.

Syntax

aControlSet.Remove (aControl)


Shift (ControlSet)
Shift

Shifts aControl in the set "deltaPos" controls. A negative deltaPos shifts the control left and positive to the right.

Syntax

aControlSet.Shift (aControl, deltaPos)


Update (ControlSet)
Update

 Propagates the update event to all controls in aControlSet.

Syntax

aControlSet.Update


DDEClient

 Microsoft's Dynamic Data Exchange (DDE) provides a mechanism for transferring data between applications. A DDE exchange between two applications is called a conversation. In a conversation, the client application initiates requests and the server application responds. The conversation is identified by the server application and the topic name. Each server supports various topics; most servers support the system topic.

The ArcView DDEClient initiates one of several standard transactions: execute, request, and poke. Execute causes the server to execute commands it receives in a string from the client. Request returns information on a particular item in the server application to the client. Poke sends information from the client to a particular item in the server. The exact nature of these transactions is defined by the server application.

Inherits From

Obj

Class Requests

DDEClients

Make ( ServerName, TopicName ) :  DDEClient

Instance Requests

Requesting Services from a Server

Execute ( aTask )

Poke ( anItem, data )

Request ( anItem ) :  String

Deleting DDEClients

Close

Error handling

GetErrorMsg  :  String

HasError  :  Boolean

Timeouts

GetTimeout  :  Number

SetTimeout ( numSeconds )

DDE Topics

GetTopic  :  String

IsTopic ( aTopicName ) :  Boolean

__________

See also

DDEServer


Make (DDEClient)
Make

 Creates a DDEClient in the conversation identified by the ServerName and TopicName. A DDE ServerName is the name of the application. The TopicName is the name of the DDE topic. DDE topics are defined by the server application. Most DDE servers support the general topic "system".

Syntax

DDEClient.Make (ServerName, TopicName)

Returns

DDEClient


Execute (DDEClient)
Execute

 Issues aTask to the server. (implements the DDE Execute transaction). The exact nature of the task depends upon the server application.

The ArcView execute transaction is asynchronous. The client waits on the server only for acknowledgement of the receipt of the transaction request and not for the acknowledgement or result of the actual execution.

Syntax

aDDEClient.Execute (aTask)


Poke (DDEClient)
Poke

Passes data to anItem. anItem is an item defined in the server application.

Syntax

aDDEClient.Poke (anItem, data)


Request (DDEClient)
Request

Returns data on anItem. anItem is an item defined in the server application. Request returns a string representation of that value.

Syntax

aDDEClient.Request (anItem)

Returns

String


Close (DDEClient)
Close

 Closes the DDEClient. Frees all resources associated with the DDEClient and disconnects it from the server.

Syntax

aDDEClient.Close


GetErrorMsg (DDEClient)
GetErrorMsg

 Gets the error message describing the last error.

Syntax

aDDEClient.GetErrorMsg

Returns

String


HasError (DDEClient)
HasError

 Returns TRUE if an error occurred on the previous DDEClient transaction. Issue the GetErrorMsg request to retrieve a description of the error.

Syntax

aDDEClient.HasError

Returns

Boolean


GetTimeout (DDEClient)
GetTimeout

 Gets the current timeout value. The timeout is measured in seconds. By default, the timeout is a very large value. Use SetTimeout to alter the value.

Syntax

aDDEClient.GetTimeout

Returns

Number


SetTimeout (DDEClient)
SetTimeout

 Sets the timeout to numSeconds.

Syntax

aDDEClient.SetTimeout (numSeconds)


GetTopic (DDEClient)
GetTopic

 Gets the topic name of the connected server.

Syntax

aDDEClient.GetTopic

Returns

String


IsTopic (DDEClient)
IsTopic

 Returns TRUE if aTopicName matches the name of the topic connected to the server.

Syntax

aDDEClient.IsTopic (aTopicName)

Returns

Boolean


DDEServer

 Microsoft's Dynamic Data Exchange (DDE) provides a mechanism for transferring data between applications. A DDE exchange between two applications is called a conversation. In a conversation, the client application initiates requests and the server application responds. The conversation is identified by the server application and the topic name. Each server supports various topics; most servers support the system topic.

By default, the ArcView application is named ARCVIEW and DDEServer supports the system topic. If you start DDEServer with the request StartNamed, you can specify a different server name.

The ArcView DDE server supports the standard DDE transactions execute, request, and poke. Execute causes the server to execute commands it receives in a string from the client. Request returns information on a particular item to the client. Poke requests acknowledgement of a data transfer.

A client connected to the ArcView DDE server makes requests to the server through Avenue scripts. For the execute transaction, the client provides an Avenue script for the server to execute. The Avenue script may be the entire source string or simply a request like av.run( "Script1", "input data" ).

For typical Request and Poke transactions, the server publishes a list of "items" available to the client for access. For ArcView, there is no way to publish a list of items. Because there are so many values that may be of interest and because the system is extremely dynamic, any attempt to publish a set list of items would be both overwhelming and very constraining. Instead, the DDE client identifies objects to Request and Poke with Avenue scripts. This solution allows the client full access to the ArcView object model and to all values within the application.

The Request transaction requires that the client name an item whose value is returned. For the ArcView server, the item is an Avenue script and the value returned is the return object of that script converted to string. This return string cannot be greater than 255 characters in length. Remember that most Avenue requests return objects including av.run which returns the object in the RETURN statement or the last object created if there is no RETURN. The script may be very simple such as av.GetProject which returns the project name or very complex.

The Poke transaction is slightly more complicated. The item has two elements, a type (which in the current release MUST BE string) and the name of a script in the server to execute. The data is a string of any length. The data becomes the value of SELF to the script specified in the item. That script then "does something" with the data. Here is an example of an ArcView DDEClient sending the Poke request to an ArcView DDEServer. This script in the client will run "Script1" in the server and passes the data string "Hello" to that script.

 aClient = DDEClient.Make("ArcView","system")
 aClient.Poke("string Script1", "Hello")

Inherits From

Obj

Class Requests

Managing the ArcView DDE Server

IgnoreTopic ( aBool )

ReturnLastTopic  :  String

Start

StartNamed ( aServerName )

Stop

__________

See also

DDEClient


IgnoreTopic (DDEServer)
IgnoreTopic

 Instructs the DDEServer to either accept only connections which have "System" as the topic name (default behaviour), or accept all connections, ignoring the topic sent.

Syntax

DDEServer.IgnoreTopic (aBool)


ReturnLastTopic (DDEServer)
ReturnLastTopic

 Use this to retrieve the last DDE server transaction's topic name - useful in cases where IgnoreTopic is set to TRUE. Extra data can be passed to ArcView this way.

Syntax

DDEServer.ReturnLastTopic

Returns

String


Start (DDEServer)
Start

 Starts the ArcView DDE server. The default startup script issues this Start request.

Syntax

DDEServer.Start


StartNamed (DDEServer)
StartNamed

 Starts the ArcView DDE server and names it aServerName. Clients connecting to the server identify the conversation by the server aServerName and the topic "System". If a DDE server is already active in the application, StartNamed stops it before starting the new one.

Syntax

DDEServer.StartNamed (aServerName)


Stop (DDEServer)
Stop

 Terminates the ArcView DDE server. Stop releases all resources associated with the server and prevents external applications from connecting to ArcView via DDE. The default shutdown script issues a Stop request.

Syntax

DDEServer.Stop


Digit

 The digit class provides an interface for digitizer support. It makes use of the WinTab(TM) Interface. Currently this class is available only for use on the various flavors of Microsoft Windows (NT and 95). Only one instance of this class can be made and it is available until ArcView is closed.

Digit Functionality

From the digit class you can...

 Make a digitizer object.
 Set digitizer input modes.
 Get current input mode.
 Return puck location
 Get a point from the digitizer.
 Find which puck button was last clicked.
 Complete suite of requests for tic registration and error reporting.
 Digitize shapes in stream mode.

Inherits From

Obj

Enumerations

DigitNfyEnum

DigitTypeEnum

DigitBtnEnum

DigitTrackEnum

DigitUnitsEnum

Class Requests

Digit

CanSetup  :  Boolean

Make  :  Digit

The  :  Digit

Instance Requests

Digitizer event related actions

GetMode  :  DigitTypeEnum

GetPoint ( aPoint ) :  DigitBtnEnum

GetPuckClick  :  Point

GetPuckLoc  :  Point

GetStreamTolerance  :  Number

GetUnits  :  DigitUnitsEnum

IsAvailable  :  Boolean

IsBtnLeftClick  :  Boolean

IsBtnLeftDblClick  :  Boolean

IsBtnLeftDrag  :  Boolean

IsBtnMiddleClick  :  Boolean

IsBtnMiddleDblClick  :  Boolean

IsBtnMiddleDrag  :  Boolean

IsBtnRightClick  :  Boolean

IsBtnRightDblClick  :  Boolean

IsBtnRightDrag  :  Boolean

IsButtonAssignedForAction ( aButtonActionType ) :  Boolean

IsStreamMode  :  Boolean

ReturnBtnClick  :  DigitBtnEnum

ReturnPhysicalBtnClick  :  Number

SetBeep ( aBool )

SetMode ( anInputMode )

SetStreamMode ( aBool )

SetStreamTolerance ( aDouble )

SetSwitchButton ( aButtonActionType )

Digitizer transformation and registration

GetDigitTics  :  List

GetLastViewDoc  :  Doc

GetPointsFromDig  :  List

GetRmsDigErr  :  Number

GetRmsMapErr  :  Number

GetTicDigList  :  List

GetTicMapList  :  List

RegTics  :  Boolean

RegTicsFromList ( mapTicList, digTicList ) :  Boolean

SetCurrentDocWin

Faking digitizer events as mouse events in the OI event pipeline

IsTracking  :  Boolean

__________

See also

View
Display


CanSetup (Digit)
CanSetup

 Checks to see if the digitizer driver is available. This call should be used before making other Digitizer module calls.

Syntax

DIGIT.CanSetup

Returns

Boolean


Make (Digit)
Make

 Links with WinTab. Only one instance of the digit object can be made. Subsequent calls to make just return the first object made. The object is available for the duration of execution of ArcView. Returns NIL on failure.

Syntax

DIGIT.Make

Returns

Digit


The (Digit)
The

Returns the digitizer object, if made, or else NULL.

Syntax

DIGIT.The

Returns

Digit


GetMode (Digit)
GetMode

Get the input mode of the digitizer.

Syntax

theDigit.GetMode

Returns

DigitTypeEnum


GetPoint (Digit)
GetPoint

Blocking call to get a new puck click location. Returns button clicked.

Syntax

theDigit.GetPoint (aPoint)

Returns

DigitBtnEnum


GetPuckClick (Digit)
GetPuckClick

Get the last click location of the puck on the tablet.

Syntax

theDigit.GetPuckClick

Returns

Point


GetPuckLoc (Digit)
GetPuckLoc

Get the last location of the puck on the tablet.

Syntax

theDigit.GetPuckLoc

Returns

Point


GetStreamTolerance (Digit)
GetStreamTolerance

Get the distance used to determine stream mode points.

Syntax

theDigit.GetStreamTolerance

Returns

Number


GetUnits (Digit)
GetUnits

Get the digitizer units.

Syntax

theDigit.GetUnits

Returns

DigitUnitsEnum


IsAvailable (Digit)
IsAvailable

Call to determine if the digitizer can be used with the current doc.

Syntax

theDigit.IsAvailable

Returns

Boolean


IsBtnLeftClick (Digit)
IsBtnLeftClick

Returns TRUE if the last button clicked was the left single click.

Syntax

theDigit.IsBtnLeftClick

Returns

Boolean


IsBtnLeftDblClick (Digit)
IsBtnLeftDblClick

Returns TRUE if the last button clicked was the left double click.

Syntax

theDigit.IsBtnLeftDblClick

Returns

Boolean


IsBtnLeftDrag (Digit)
IsBtnLeftDrag

Returns TRUE if the last button clicked was the left drag.

Syntax

theDigit.IsBtnLeftDrag

Returns

Boolean


IsBtnMiddleClick (Digit)
IsBtnMiddleClick

Returns TRUE if the last button clicked was the middle single click.

Syntax

theDigit.IsBtnMiddleClick

Returns

Boolean


IsBtnMiddleDblClick (Digit)
IsBtnMiddleDblClick

Returns TRUE if the last button clicked was the middle double click.

Syntax

theDigit.IsBtnMiddleDblClick

Returns

Boolean


IsBtnMiddleDrag (Digit)
IsBtnMiddleDrag

Returns TRUE if the last button clicked was the middle drag.

Syntax

theDigit.IsBtnMiddleDrag

Returns

Boolean


IsBtnRightClick (Digit)
IsBtnRightClick

Returns TRUE if the last button clicked was the right single click.

Syntax

theDigit.IsBtnRightClick

Returns

Boolean


IsBtnRightDblClick (Digit)
IsBtnRightDblClick

Returns TRUE if the last button clicked was the right double click.

Syntax

theDigit.IsBtnRightDblClick

Returns

Boolean


IsBtnRightDrag (Digit)
IsBtnRightDrag

Returns TRUE if the last button clicked was the right drag.

Syntax

theDigit.IsBtnRightDrag

Returns

Boolean


IsButtonAssignedForAction (Digit)
IsButtonAssignedForAction

Use this request to check if a physical button on the puck has been assigned to generate the specified action. Use the WinTab manager to assign actions to puck buttons.

Syntax

theDigit.IsButtonAssignedForAction (aButtonActionType)

Returns

Boolean


IsStreamMode (Digit)
IsStreamMode

Returns TRUE if the digitizer is in stream mode.

Syntax

theDigit.IsStreamMode

Returns

Boolean


ReturnBtnClick (Digit)
ReturnBtnClick

Returns the type of button that was last clicked.

Syntax

theDigit.ReturnBtnClick

Returns

DigitBtnEnum


ReturnPhysicalBtnClick (Digit)
ReturnPhysicalBtnClick

Returns the physical button number of the last puck button that was clicked.

Syntax

theDigit.ReturnPhysicalBtnClick

Returns

Number


SetBeep (Digit)
SetBeep

Set this to TRUE if each click of the puck has to generate a beep. The default is no beep.

Syntax

theDigit.SetBeep (aBool)


SetMode (Digit)
SetMode

The digitizer can be used in mouse(relative) mode or in puck(absolute) mode. This call can be used to set the input mode.

Syntax

theDigit.SetMode (anInputMode)


SetStreamMode (Digit)
SetStreamMode

Set this to TRUE for stream mode digitizing. The default value is non-stream digitizing.

Syntax

theDigit.SetStreamMode (aBool)


SetStreamTolerance (Digit)
SetStreamTolerance

Set the distance used to determine stream mode points.

Syntax

theDigit.SetStreamTolerance (aDouble)


SetSwitchButton (Digit)
SetSwitchButton

Set the type of button action that would cause the digitizer puck to switch from PUCK_MODE to MOUSE_MODE. The default button used for this is the Right Mouse Double Click.

Syntax

theDigit.SetSwitchButton (aButtonActionType)


GetDigitTics (Digit)
GetDigitTics

Get the digitizer tic points from the digitizer - blocking call.

Syntax

theDigit.GetDigitTics

Returns

List


GetLastViewDoc (Digit)
GetLastViewDoc

Returns the last view doc for checking changing docs.

Syntax

theDigit.GetLastViewDoc

Returns

Doc


GetPointsFromDig (Digit)
GetPointsFromDig

get digitizer tic points. Use the left double click button to end. Returns a list of points.

Syntax

theDigit.GetPointsFromDig

Returns

List


GetRmsDigErr (Digit)
GetRmsDigErr

Returns the RMS error in digitizer space(inches).

Syntax

theDigit.GetRmsDigErr

Returns

Number


GetRmsMapErr (Digit)
GetRmsMapErr

Returns the RMS error in map coordinates.

Syntax

theDigit.GetRmsMapErr

Returns

Number


GetTicDigList (Digit)
GetTicDigList

Get the list of Tic Digitizer points.

Syntax

theDigit.GetTicDigList

Returns

List


GetTicMapList (Digit)
GetTicMapList

Get the list of Tic Map points.

Syntax

theDigit.GetTicMapList

Returns

List


RegTics (Digit)
RegTics

Register tics using existing tic points. Returns TRUE if successful.

Syntax

theDigit.RegTics

Returns

Boolean


RegTicsFromList (Digit)
RegTicsFromList

Register tics using the given list of map and digitizer tic points. Returns TRUE if registration was successful.

Syntax

theDigit.RegTicsFromList (mapTicList, digTicList)

Returns

Boolean


SetCurrentDocWin (Digit)
SetCurrentDocWin

Saves the current doc window, if its a view, for use later. This call is used to keep track of changing docs when digitizer tracking is in progress.

Syntax

theDigit.SetCurrentDocWin


IsTracking (Digit)
IsTracking

Same as OI call EVENT_IsTraking, but for puck events.

Syntax

theDigit.IsTracking

Returns

Boolean


DigitNfyEnum

 Type of event that occured when an event packet was received from the digitizer.

#DIGIT_NFY_PUCK_MOVE

Puck move action.

#DIGIT_NFY_PUCK_CLICK

Puck button click action.


DigitTypeEnum

 Type of input mode that the digitizer puck is to emulate.

#DIGIT_TYPE_MOUSE

Mouse mode (relative to screen).

#DIGIT_TYPE_PUCK

Puck mode (absolute to digitizer).


DigitBtnEnum

 The puck buttons can be configured using the WinTab manager to perform mouse actions.

#DIGIT_BTN_NO_ACTION

No button clicked.

#DIGIT_BTN_LEFT_CLICK

Left mouse button click.

#DIGIT_BTN_LEFT_DBL_CLICK

Left mouse button double click.

#DIGIT_BTN_LEFT_DRAG

Left mouse button drag.

#DIGIT_BTN_RIGHT_CLICK

Right mouse button click.

#DIGIT_BTN_RIGHT_DBL_CLICK

Right mouse button double click.

#DIGIT_BTN_RIGHT_DRAG

Right mouse button drag.

#DIGIT_BTN_MIDDLE_CLICK

Middle mouse button click.

#DIGIT_BTN_MIDDLE_DBL_CLICK

Middle mouse button double click.

#DIGIT_BTN_MIDDLE_DRAG

Middle mouse button drag.


DigitTrackEnum

 Enumerations for tracking puck events to simulate OI mouse events.

#DIGIT_TRACK_NONE

No tracking done.

#DIGIT_TRACK_DOWN

Track down.

#DIGIT_TRACK_UP

Track up.


DigitUnitsEnum

 Enumerations for digitizer units.

#DIGIT_UNITS_UNKNOWN

Digitizer returns location in unknown units.

#DIGIT_UNITS_INCHES

Digitizer returns location in Inches.

#DIGIT_UNITS_CMS

Digitizer returns location in Centimeters.


Duration

 Duration objects represent spans of time. They exist in order to make possible meaningful arithmetic operations on dates and times.

You create Duration objects by using the minus or the .. operator with two date operands. When you use the '-' operator, you create a floating duration. In other words, you create an object which represents a span of time starting from some arbitrary point in time. When you use the .. operator, you create an anchored duration. Such durations have a definite starting and ending time. The starting time does not have to come before the ending time.

Any kind of duration may be used in a for each loop. The loop variable created by floating durations will be of class Number. The loop variable for anchored durations will be of class Date.

Inherits From

Interval

Instance Requests

Durations

= anotherObject :  Boolean

AsDays  :  Number

AsHours  :  Number

AsMinutes  :  Number

AsMonths  :  Number

AsSeconds  :  Number

AsSecondsOld  :  Number

AsString  :  String

AsWeeks  :  Number

AsYears  :  Number

By aPeriodOfTime :  Duration

SetIncrement ( aPeriodOfTime ) :  Duration

__________

See also

Date
Number


= (Duration)
=

return true when aDuration is the same object as another object, or has the same value. The rule for determining "same" value is: When one or both are floating durations, then only time span is relevant. If both are anchored, then time span, and starting and ending times are relevant.

Syntax

aDuration = anotherObject

Returns

Boolean


AsDays (Duration)
AsDays

 Gets the number of days spanning aDuration. This is a signed quantity.

Syntax

aDuration.AsDays

Returns

Number


AsHours (Duration)
AsHours

 Gets the number of hours spanning aDuration. This is a signed quantity.

Syntax

aDuration.AsHours

Returns

Number


AsMinutes (Duration)
AsMinutes

 Gets the number of minutes spanning aDuration. This is a signed quantity.

Syntax

aDuration.AsMinutes

Returns

Number


AsMonths (Duration)
AsMonths

 Gets the number of months spanning aDuration. This is a signed quantity. For the purposes of this request, a month is assumed to have exactly 30 days.

Syntax

aDuration.AsMonths

Returns

Number


AsSeconds (Duration)
AsSeconds

 Gets the number of seconds spanning aDuration. This is a signed quantity.

Syntax

aDuration.AsSeconds

Returns

Number


AsSecondsOld (Duration)
AsSecondsOld

 Gets the number of seconds spanning aDuration. This is a signed integer quantity. Is is being kept for compatibility with older programmatic interfaces.

Syntax

aDuration.AsSecondsOld

Returns

Number


AsString (Duration)
AsString

Returns a string representation of aDuration. When aDuration is floating, you get a numeric string which is the number of subdivisions in it. When it is an anchored duration, you get the starting and ending points formatted according to the current default date format.

Syntax

aDuration.AsString

Returns

String


AsWeeks (Duration)
AsWeeks

 Gets the number of weeks spanning aDuration. This is a signed quantity.

Syntax

aDuration.AsWeeks

Returns

Number


AsYears (Duration)
AsYears

 Gets the number of years spanning aDuration. This is a signed quantity. For the purposes of this request, a year is assumed to have exactly 365 days.

Syntax

aDuration.AsYears

Returns

Number


By (Duration)
By

Same as aDuration.SetIncrement(aPeriodOfTime) this binary version of the request is useful as part of the 'for each' statement.

Syntax

aDuration By aPeriodOfTime

Returns

Duration


SetIncrement (Duration)
SetIncrement

 Sets the step value for aDuration to aPeriodOfTime.

Syntax

aDuration.SetIncrement (aPeriodOfTime)

Returns

Duration


DLLProc

 A DLLProc allows you to call an exported procedure in a DLL. DLLProc serves basically the same role as the Declare statement in Visual Basic; it defines the procedure to the application. To create a DLLProc, identify the DLL, the procedure name, the procedure's return type and its argument list. DLLProcTypeEnum defines valid return and argument types.

Once you've created the DLLProc, execute it with Call request. Call takes a single argument which is the argument list.

DLLs created with Microsoft Visual Basic 5 will not work in ArcView. Visual Basic 5 does not provide the ability to export functions within the DLLs that it makes. ArcView can only use DLL functions that are exported.

Inherits From

Obj

Enumerations

DLLProcTypeEnum

Class Requests

Creating DLLProcs

Make ( aDLL, aProcName, returnType, argumentList ) :  DLLProc

Instance Requests

Calling a DLLProc

Call ( argumentList ) :  Obj

__________

See also

DLL


Make (DLLProc)
Make

 Makes a DLLProc from the procedure aProcName in aDLL. returnType identifies the return type (possibly void) for this procedure. argumentList defines order and types of the arguments.

aDLL is the DLL in which this procedure is defined. DLLProc.Make adds this procedure to the procedure list of aDLL. After it is defined, you can retrieve this DLLProc object from aDLL with the FindProc or GetProcs requests.

aProcName is the name of the procedure in the DLL. This procedure must be exported.

returnType is the DLLPROC_TYPE enumeration element that defines the return type of this procedure.

argumentList is a list of DLLPROC_TYPE enumeration elements that define expected order and type of arguments. You may have up to 12 arguments. You can pass arguments by value or by reference. You specify call by value arguments with these enumerations:

 DLLPROC_TYPE_INT16
 DLLPROC_TYPE_INT32
 DLLPROC_TYPE_FLOAT
 DLLPROC_TYPE_POINTER

You specify call by reference arguments with these enumerations:

 DLLPROC_TYPE_PINT16,
 DLLPROC_TYPE_PINT32,
 DLLPROC_TYPE_PFLOAT
 DLLPROC_TYPE_STR

If you wish to pass a pointer (<type> *) by reference, define its type to be DLLPROC_TYPE_PINT32.

 makePerson = DLLPROC.Make( aDLL, "MakePerson", #DLLPROC_TYPE_POINTER,
                 {#DLLPROC_TYPE_STR, #DLLPROC_TYPE_INT16, #DLLPROC_TYPE_INT32})

Syntax

DLLProc.Make (aDLL, aProcName, returnType, argumentList)

Returns

DLLProc


Call (DLLProc)
Call

aDLLProc with the arguments in argumentList. The argumentList contains the objects declared when aDLLProc was defined with DLLProc.Make. Returns a Number, String, or NIL, depending on return type defined.

You must create objects passed by reference before you make the call. If you are writing to a string, allocate sufficient space with the String MakeBuffer request.

 getValues = DLLPROC.Make(aDLL, "GetValues", #DLLPROC_TYPE_INT32,
                                {#DLLPROC_TYPE_STR, #DLLPROC_TYPE_PINT16})
 name = String.MakeBuffer(120)
 count = 0
 results = getValues.Call({name, count})

Syntax

aDLLProc.Call (argumentList)

Returns

Obj


DLLProcTypeEnum

 When you create a DLLProc, you identify the return type and the types of the arguments with DLLProcTypeEnum. In Avenue, the object representation will be either Number, String or NIL.

#DLLPROC_TYPE_VOID

For functions that return void (NIL).

#DLLPROC_TYPE_INT16

16 bit integer (Number).

#DLLPROC_TYPE_INT32

32 bit integer (Number).

#DLLPROC_TYPE_FLOAT

Single precision floating point (Number).

#DLLPROC_TYPE_PINT16

Pointer to 16 bit integer (Number).

#DLLPROC_TYPE_PINT32

Pointer to 32 bit integer (Number). If you want to pass pointers by reference, use DLLPROC_TYPE_PINT32 instead of DLLPROC_TYPE_POINTER.

#DLLPROC_TYPE_PFLOAT

Pointer to single precision floating point (Number).

#DLLPROC_TYPE_POINTER

32 bit pointer to internal data structure (Number). This type is useful when you want to pass a pointer to different dll procedures. The underlying data structure cannot be perused through Avenue.

 GetPtr = DLLPROC.Make( aDLL, "MakeIt", #DLLPROC_TYPE_POINTER, { #DLLPROC_TYPE_STR })
 UsePtr = DLLPROC.Make( aDLL, "UseIt", #DLLPROC_TYPE_STR, { #DLLPROC_TYPE_POINTER })

 myPointer = GetPtr.Call({"PERTINENT INFORMATION"})
 results = UsePtr.Call({ myPointer })

#DLLPROC_TYPE_STR

Pointer to null-terminated character string (String). If your dll writes to the string, allocate sufficient space before the call. Use the String request MakeBuffer.

 myDLL = DLLProc.Make( aDLL, "GetName", #DLLPROC_TYPE_INT16, {#DLLPROC_TYPE_STR})

 name = String.MakeBuffer(30)   ' allocate a 30 byte string
 status = myDLL.Call({name})


Doc

 The core functionality of ArcView is built around its different document types. Documents provide a means of interacting with data. ArcView supports the following documents: Views, Tables, Charts, Layouts and Script Editors. Common aspects of all these real documents are grouped together into the abstract class Doc.

Refer to the Project class description for details on how ArcView creates and manages collections of documents. Refer to the DocGUI class for a description of the relationship between a document, its controls (DocGUI) and its representation in the project window.

Events

Doc supports three event types: Open, Close and Update. These events are specified through Avenue requests; there is no GUI interface. The open event occurs when the document's window is opened and the close event when the window is closed. The update event occurs when the document's DocGUI changes.

Attributes

DocWin. The document window contains the visual representation of the document in the application window. The document window may be opened, closed, iconified, moved, or resized. Activating the document window activates the document.

DocGUI. The name of the document's DocGUI or document user interface. A DocGUI defines the set of controls used to interact with the document. Each document is associated with a DocGUI by referencing the DocGUI's name. The DocGUI may be a default or a customized DocGUI. Assign a particular DocGUI to a document with the SetGUI request. You can also use the MakeWithGUI request to create a document with a non-standard GUI. The Avenue programmer must ensure the DocGUI matches the document type. For example, a DocGUI created for a View contains elements specific to views (the scale box) and references scripts peppered with view requests; this DocGUI must not be associated with a Layout.

GroupGUI. The name of the DocGUI which the document appears with in the project window. By default, the GroupGUI is the same as the DocGUI, but through Avenue (Set/GetGroupGUI), you can specify an alternate DocGUI.

With the GroupGUI property, you can arrange heterogeneous documents thematically in the project window. For example, suppose your project had data for each state. Under the Illinois GroupGUI, you could list the View for Illinois, the chart for Illinois demographics and the Layout for the Illinois map.

Creator. Name of the user that created the document.

CreationDate. The time the document was created.

Comments. Miscellaneous user comments pertinent to the document.

ObjectTag. The object tag is a placeholder for any object the Avenue programmer wants to attach to the document. The object tag is persistent with the document and will be saved with the project.

Extensions. The list of document extension objects for the document. A document extension object stores a set of properties for the document that apply only in the context of a specific extension. The document extension objects are activated whenever the document is activated.

Open. The name of the script to execute on an open event.

Close. The name of the script to execute on a close event.

Update. The name of the script to execute on an update event.

Inherits From

Obj

Inherited By

Chart
Layout
Project
SEd
Table
View

Class Requests

Doc

Make  :  Doc

MakeWithGUI ( aGUIName ) :  Doc

RegisterExtension ( anExtensionClass )

UnregisterExtension ( anExtensionClass )

Instance Requests

Managing Doc Event Scripts

GetCloseScript  :  String

GetOpenScript  :  String

GetUpdateScript  :  String

SetCloseScript ( aScriptName )

SetOpenScript ( aScriptName )

SetUpdateScript ( aScriptName )

Getting and Setting Document Attributes

GetComments  :  String

GetCreationDate  :  String

GetCreator  :  String

GetExtension ( anExtensionClass ) :  DocumentExtension

GetGroupGUI  :  String

GetGUI  :  String

GetObjectTag  :  Obj

GetWin  :  DocWin

IsActive  :  Boolean

IsSymWinClient  :  Boolean

RemoveExtension ( anExtensionClass )

SetComments ( Comments )

SetCreator ( aCreatorName )

SetExtension ( anExtension )

SetGroupGUI ( aGUIName )

SetGUI ( aDocGUIName )

SetName ( aDocName )

SetObjectTag ( anObj )

Manipulating Docs

Print

__________

See also

DocWin
DocGUI
Project
Application


Make (Doc)
Make

<abstract> Creates an new document, adds it to the current project, and initially associates the document with the DocGUI of the same name.

Syntax

Doc.Make

Returns

Doc


MakeWithGUI (Doc)
MakeWithGUI

<abstract> Same as Make, but allows you to specify the name of the DocGUI that will be initially associated with the new document.

Syntax

Doc.MakeWithGUI (aGUIName)

Returns

Doc


RegisterExtension (Doc)
RegisterExtension

 Registers anExtensionClass with the Document Class. Whenever an instance of the document class is made, a corresponding instance of anExtensionClass will be made and associated with the document instance.

Syntax

Doc.RegisterExtension (anExtensionClass)


UnregisterExtension (Doc)
UnregisterExtension

 Unregisters anExtensionClass from the Document Class.

Syntax

Doc.UnregisterExtension (anExtensionClass)


GetCloseScript (Doc)
GetCloseScript

 Gets the name of the script that is run when aDoc's window is closed.

Syntax

aDoc.GetCloseScript

Returns

String


GetOpenScript (Doc)
GetOpenScript

 Gets the name of the script that is run when aDoc's window is opened.

Syntax

aDoc.GetOpenScript

Returns

String


GetUpdateScript (Doc)
GetUpdateScript

 Gets the name of the script that is run when aDoc is active and the current DocGUI is updated.

Syntax

aDoc.GetUpdateScript

Returns

String


SetCloseScript (Doc)
SetCloseScript

 Sets the script to be run when aDoc's window is closed.

Syntax

aDoc.SetCloseScript (aScriptName)


SetOpenScript (Doc)
SetOpenScript

 Sets the script to be run when aDoc's window is opened.

Syntax

aDoc.SetOpenScript (aScriptName)


SetUpdateScript (Doc)
SetUpdateScript

 Sets the script to be run when aDoc is active and the current DocGUI is updated.

Syntax

aDoc.SetUpdateScript (aScriptName)


GetComments (Doc)
GetComments

 Gets aDoc's comments.

Syntax

aDoc.GetComments

Returns

String


GetCreationDate (Doc)
GetCreationDate

 Gets aDoc's creation date as a string.

Syntax

aDoc.GetCreationDate

Returns

String


GetCreator (Doc)
GetCreator

 Gets aDoc's creator.

Syntax

aDoc.GetCreator

Returns

String


GetExtension (Doc)
GetExtension
Discussion

 Gets the extension object specified by anExtensionClass.

Syntax

aDoc.GetExtension (anExtensionClass)

Returns

DocumentExtension


GetGroupGUI (Doc)
GetGroupGUI

Returns the name of the DocGUI that aDoc will be associated with in the project window.

Syntax

aDoc.GetGroupGUI

Returns

String


GetGUI (Doc)
GetGUI

 Gets the name of aDoc's DocGUI.

Syntax

aDoc.GetGUI

Returns

String


GetObjectTag (Doc)
GetObjectTag

 Gets aDoc's object tag.

Syntax

aDoc.GetObjectTag

Returns

Obj


GetWin (Doc)
GetWin

 Gets aDoc's window.

Syntax

aDoc.GetWin

Returns

DocWin


IsActive (Doc)
IsActive

 Returns TRUE if aDoc is the active document. The active document is the document highlighted in the application window.

Syntax

aDoc.IsActive

Returns

Boolean


IsSymWinClient (Doc)
IsSymWinClient

 Is aDoc a client of the SymWin?

Syntax

aDoc.IsSymWinClient

Returns

Boolean


RemoveExtension (Doc)
RemoveExtension
Discussion

 Removes the extension object specified by anExtensionClass.

Syntax

aDoc.RemoveExtension (anExtensionClass)


SetComments (Doc)
SetComments

 Sets aDoc's comments to Comments.

Syntax

aDoc.SetComments (Comments)


SetCreator (Doc)
SetCreator

 Sets aDoc's creator to aCreatorName.

Syntax

aDoc.SetCreator (aCreatorName)


SetExtension (Doc)
SetExtension
Discussion

 Sets the specified extension for the class of anExtension. anExtension can be returned using aDoc.GetExtension and passing the class of anExtension.

Syntax

aDoc.SetExtension (anExtension)


SetGroupGUI (Doc)
SetGroupGUI

Sets the name of the DocGUI that aDoc will be associated with in the project window. Suppose that you want all view documents listed under the View icon in the project window - regardless of the DocGUI that opens with the document. Use the following script:

 for each d in av.GetProject.GetDocs
   if (d.Is( View )) then
     d.SetGroupGUI( "View" )
   end
 end

Syntax

aDoc.SetGroupGUI (aGUIName)


SetGUI (Doc)
SetGUI

 Sets aDoc's DocGUI to aDocGUIName.

Syntax

aDoc.SetGUI (aDocGUIName)


SetName (Doc)
SetName

 Sets aDoc's name to aDocName.

Syntax

aDoc.SetName (aDocName)


SetObjectTag (Doc)
SetObjectTag

 Sets the object tag to anObj. Use the object tag to carry associated objects with the document. The object tag is persistent with the project.

Syntax

aDoc.SetObjectTag (anObj)


Print (Doc)
Print

 Prints the document.

Syntax

aDoc.Print


DocumentExtension

 The DocumentExtension class provides a mechanism for ArcView's extension products (Spatial Analyst, Network Analyst) to add properties to the document (Doc) class. A DocumentExtension object stores extension product environments and automatically activates the document extension when the document opens.

DocumentExtensions can be added to a document using the request aDocument.SetExtension passing an instance of a DocumentExtension. All documents store only a single instance of a DocumentExtension subclass. A DocumentExtension can be retrieved from a document using the aDocument.GetExtension request by passing the DocumentExtension class. To remove a DocumentExtension from a Document, use the aDocument.RemoveExtension request and pass a DocumentExtension class.

Inherits From

ExtensionObject

Instance Requests

DocumentExtensions

Activate

__________

See also

Doc


Activate (DocumentExtension)
Activate

 Makes this the active environment for the extension. Activate the DocumentExtension object after you have made a change to one of its properties.

Syntax

aDocExtension.Activate


DocGUI

 A DocGUI (document graphical user interface) is the collection of controls that are used to interact with a document. Each DocGUI is comprised of a menu bar, a button bar, a tool bar and a set of popup menus.

Creating DocGUIs

You can customize the DocGUIs delivered with ArcView or create new DocGUIs. To customize the default DocGUIs, use the Customize dialog or change the DocGUI through Avenue requests. To create a new DocGUI, clone an existing GUI or create a new one, alter its name, and add it to the project. Or you can use the Customize Types dialog. Here is a script that clones an existing DocGUI. DocGUIs must be uniquely named; be sure to change the name of the new DocGUI object.

  clonedGUI = av.FindGUI( "View").clone
  clonedGUI.SetName( "MyView" )
  av.GetProject.AddGUI( clonedGUI )

Using DocGUIs

You can access the components of the DocGUI through the requests GetMenuBar, GetButtonBar, GetToolBarand GetPopups.

A DocGUI is associated with one or more documents; the document specifies its DocGUI by name. The specified DocGUI becomes active when the document becomes active. The document request SetGUI establishes the relationship. Because the DocGUI includes elements specific to the document type (for example, a scale box for views) and calls scripts which include requests specific to the document type, the DocGUI must be valid for the associated document. For example, a view must not be assigned a DocGUI designed for Tables. Use prudence to ensure the document and DocGUI are compatible when making this association through Avenue.

DocGUIs as Documents

In many ways, the currently active DocGUI determines what you can do to the active document. Two view documents, for example, may have radically different capabilities if their respective DocGUIs have been altered in very different and extreme ways. In fact, to the person using your customized ArcView application, they are, for all practical purposes, two different kinds of documents.

To provide a natural way for users to manipulate documents with customized DocGUIs, the project document window presents the user with a scrolling list of DocGUIs, rather than a scrolling list of documents.

A DocGUI that presents itself as a kind of document to the ArcView user is called a visible DocGUI. To allow the user to interact with a DocGUI as if it were a document, you need to do several things (the requests you will use have names derived from the this discussion):

   1. Create your DocGUI (either by cloning or making it).
   1. Give it a unique name (the project request MakeGUIName can of help).
   2. Set the Title of your DocGUI (this is the name that
      will appear in the project's visible list of DocGUIs).
   3. Define several scripts and attach them to your DocGUI. This
      is discussed in more detail below.
   4. Set the icon of your DocGUI. This icon will show up in the
      project window.
   5. Add your DocGUI to your project.
   6. Make it visible

At this point, you should see your DocGUI appear in the left hand side of the project window. It will be represented by its icon and its title. You can control placement of your DocGUI by manipulating the project's list of GUIs. If you modify this list in any way, you must then notify the project that you have done so.

An easy way to accomplish these steps is to use the Customize Types dialog. You can access this dialog from the familiar Customize dialog by pressing the 'Edit...' button located next to the Types drop-down list.

You need to define how the project document window interprets double clicks on your DocGUI's icon, and how it interprets single clicks on the buttons located at the top of the window when your DocGUI's icon is selected. To accomplish this, each visible DocGUI has six scripts associated with it. Three of them control how single clicks in the three buttons are interpreted (just as click scripts attached to other kinds of controls determine what happens when you click on them). The other three are the update scripts for the three buttons. For a project window button to be visible when a particular visible DocGUI is selected, that DocGUI must have both a click script and an update script defined for that button. The click script attached to the leftmost project window button is also executed when the user double clicks on the visible DocGUI's icon.

When any of these scripts are executed, the SELF object will be the button that is being clicked or updated, not the currently selected DocGUI.

Using these techniques, you can also customize the project's presention of (or remove from the project's list) any of the default DocGUIs that come with ArcView.

Each document has a second DocGUI property called the GroupGUI. You use the GroupGUI to identify the DocGUI with which a document is listed in the project window. By default, the GroupGUI is the same as the associated DocGUI, but you can change this property using the document request SetGroupGUI.

Inherits From

Obj

Class Requests

DocGUI

Make ( moduleName ) :  DocGUI

Instance Requests

Accessing DocGUI Components

GetButtonBar  :  ButtonBar

GetMenuBar  :  MenuBar

GetPopups  :  PopupSet

GetToolBar  :  ToolBar

Accessing DocGUI Attributes

GetActionScript  :  String

GetActionUpdateScript  :  String

GetDocBaseName  :  String

GetIcon  :  Icon

GetNewScript  :  String

GetNewUpdateScript  :  String

GetObjectTag  :  Obj

GetOpenScript  :  String

GetOpenUpdateScript  :  String

GetTitle  :  String

GetType  :  String

IsVisible  :  Boolean

SetActionScript ( aScript )

SetActionUpdateScript ( aScript )

SetDocBaseName ( aBaseName )

SetIcon ( anIcon )

SetNewScript ( aScript )

SetNewUpdateScript ( aScript )

SetObjectTag ( anObject )

SetOpenScript ( aScript )

SetOpenUpdateScript ( aScript )

SetTitle ( aTitleString )

SetVisible ( isVisible )

Installing DocGUIs

Activate

IsModified  :  Boolean

SetModified ( isModified )

Update

Generic Object Management

SetName ( aNewName )

__________

See also

Doc
MenuBar
ButtonBar
ToolBar
PopupSet
ControlSet
Application
Project


Make (DocGUI)
Make

Creates a new DocGUI. moduleName is the resource module which contains a Panel resource, for example, "View", "Table", "Layout".

Syntax

DocGUI.Make (moduleName)

Returns

DocGUI


GetButtonBar (DocGUI)
GetButtonBar

Gets aDocGUI's ButtonBar.

Syntax

aDocGUI.GetButtonBar

Returns

ButtonBar


GetMenuBar (DocGUI)
GetMenuBar

Gets aDocGUI's MenuBar.

Syntax

aDocGUI.GetMenuBar

Returns

MenuBar


GetPopups (DocGUI)
GetPopups

Gets the popup control set associated with aDocGUI.

Syntax

aDocGUI.GetPopups

Returns

PopupSet


GetToolBar (DocGUI)
GetToolBar

Gets aDocGUI's ToolBar.

Syntax

aDocGUI.GetToolBar

Returns

ToolBar


GetActionScript (DocGUI)
GetActionScript
Discussion

Gets the Action script for aDocGUI. See SetActionScript for a discussion.

Syntax

aDocGUI.GetActionScript

Returns

String


GetActionUpdateScript (DocGUI)
GetActionUpdateScript
Discussion

Gets the script that responds to the Update event for the right button. See SetActionUpdateScript for a discussion. The NIL object is returned if no ActionUpdate script has been defined for aDocGUI.

Syntax

aDocGUI.GetActionUpdateScript

Returns

String


GetDocBaseName (DocGUI)
GetDocBaseName
Discussion

Gets the document base name for aDocGUI. See SetDocBaseName for a discussion.

Syntax

aDocGUI.GetDocBaseName

Returns

String


GetIcon (DocGUI)
GetIcon
Discussion

Gets the icon used by the project when aDocGUI is visible.

Syntax

aDocGUI.GetIcon

Returns

Icon


GetNewScript (DocGUI)
GetNewScript
Discussion

Gets the New script for aDocGUI. See SetNewScript for a description.

Syntax

aDocGUI.GetNewScript

Returns

String


GetNewUpdateScript (DocGUI)
GetNewUpdateScript
Discussion

Gets the script that responds to Update events for the left button. See SetNewUpdateScript for a discussion. The NIL object is returned if no NewUpdate script has been defined for aDocGUI.

Syntax

aDocGUI.GetNewUpdateScript

Returns

String


GetObjectTag (DocGUI)
GetObjectTag

Gets aDocGui's object tag.

Syntax

aDocGui.GetObjectTag

Returns

Obj


GetOpenScript (DocGUI)
GetOpenScript
Discussion

Gets the Open script for aDocGUI. See SetOpenScript for a description.

Syntax

aDocGUI.GetOpenScript

Returns

String


GetOpenUpdateScript (DocGUI)
GetOpenUpdateScript
Discussion

Gets the script that responds to Update events for the middle button. See SetOpenUpdateScript for a discussion. The NIL object is returned if no OpenUpdate script has been defined for aDocGUI.

Syntax

aDocGUI.GetOpenUpdateScript

Returns

String


GetTitle (DocGUI)
GetTitle
Discussion

Gets the name used to represent aDocGUI when it is visible in the project window.

Syntax

aDocGUI.GetTitle

Returns

String


GetType (DocGUI)
GetType

Gets the type of document this DocGUI supports. Responses are View, Table, Layout, SEd, Chart, Project or Application. Application is NOT a document, but there is an Application DocGUI; this DocGUI appears when no project is open.

Syntax

aDocGUI.GetType

Returns

String


IsVisible (DocGUI)
IsVisible

Returns TRUE when aDocGUI is defined to appear in the list of DocGUIs in the project window. When IsVisible returns false, aDocGUI does not appear in the project window. You can still attach documents to DocGUIs that do not appear in the project window.

Syntax

aDocGUI.IsVisible

Returns

Boolean


SetActionScript (DocGUI)
SetActionScript
Discussion

Sets the script that will be executed when aDocGUI is selected in the project window and the user clicks on the right button at the top of the project window. This script does some action specific to the document (or DocGUI).

Syntax

aDocGUI.SetActionScript (aScript)


SetActionUpdateScript (DocGUI)
SetActionUpdateScript
Discussion

Sets the script that defines the label and enabled state for the right button at the top of the project window when aDocGUI is selected. If this property is not defined or the NIL object is passed as the parameter, then this button will be invisible when aDocGUI is selected.

Syntax

aDocGUI.SetActionUpdateScript (aScript)


SetDocBaseName (DocGUI)
SetDocBaseName
Discussion

Sets the name that will be used to generate default document names for new documents that are associated with aDocGUI.

Syntax

aDocGUI.SetDocBaseName (aBaseName)


SetIcon (DocGUI)
SetIcon
Discussion

Sets anIcon to be the one that is displayed in the project window when aDocGUI is visible.

Syntax

aDocGUI.SetIcon (anIcon)


SetNewScript (DocGUI)
SetNewScript
Discussion

Sets the script that will be executed when aDocGUI is selected in the project window and the user clicks on the left button at the top of the project window. This script should create a new document whose initial GUI is aDocGUI.

Syntax

aDocGUI.SetNewScript (aScript)


SetNewUpdateScript (DocGUI)
SetNewUpdateScript
Discussion

Sets the script that defines the name of the left button at the top of the project window when aDocGUI is selected. It should also enable or disable this button. If the NewUpdate property for aDocGUI is not defined, or if the New property is not defined, then this button will not be visible when aDocGUI is selected. You may pass NIL as the parameter to remove any script currently attached to this property.

Syntax

aDocGUI.SetNewUpdateScript (aScript)


SetObjectTag (DocGUI)
SetObjectTag

Sets aDocGui's object tag to be anObject.

Syntax

aDocGui.SetObjectTag (anObject)


SetOpenScript (DocGUI)
SetOpenScript
Discussion

Sets the script that will be executed when aDocGUI is selected in the project window and the user clicks on the middle button at the top of the project window. This script should open any selected documents associated with aDocGUI.

Syntax

aDocGUI.SetOpenScript (aScript)


SetOpenUpdateScript (DocGUI)
SetOpenUpdateScript
Discussion

Sets the script that defines the label and enabled state for the middle button at the top of the project window when aDocGUI is selected. If this property is not defined, or the NIL object is passed as the parameter, then this button will be invisible when aDocGUI is selected.

Syntax

aDocGUI.SetOpenUpdateScript (aScript)


SetTitle (DocGUI)
SetTitle
Discussion

Sets the name that appears with aDocGUI when it is visible in the project window.

Syntax

aDocGUI.SetTitle (aTitleString)


SetVisible (DocGUI)
SetVisible

Sets the visibility of aDocGUI in the project window. When isVisible is true, aDocGUI will appear in the list of DocGUIs (scrolling icon list) in the project window. When isVisible is false, aDocGUI will be removed from the project window. You may still attach documents to invisible docguis. The visible DocGUIs appear in the order defined by the project's DocGUI list.

Syntax

aDocGUI.SetVisible (isVisible)


Activate (DocGUI)
Activate

Activates aDocGUI in the Application window. Use this request to display changes to the current DocGUI.

 ctl = av.GetActiveGUI.GetMenuBar.GetControls.Get(1)
 av.GetActiveGUI.GetMenuBar.Remove( ctl )
 av.GetActiveGUI.Activate

You can lose the synchronization between GUI and document with this request; you could activate a View GUI while a Script Editor is active.

You must ensure that the Activated DocGUI is associated with the active document. If the DocGUI is not associated with the document, updates are not executed on the DocGUI so that the document's state and the DocGUI's state are out of sync.

Syntax

aDocGUI.Activate


IsModified (DocGUI)
IsModified

Indicates the state of aDocGUI's modified flag.

Syntax

aDocGUI.IsModified

Returns

Boolean


SetModified (DocGUI)
SetModified

Sets aDocGUI's and the project's modified flags indicating to the project that aDocGUI has been changed. This flag is set to TRUE when you add aDocGUI to a Project so that it is written to the project file.

Whenever you change a DocGUI, you should set its modified flag so the customized DocGUI will be written to the Project file.

Syntax

aDocGUI.SetModified (isModified)


Update (DocGUI)
Update

Triggers the update script for each control in the DocGUI.

Syntax

aDocGUI.Update


SetName (DocGUI)
SetName

changes the name of aDocGUI to be aNewName. If aDocGUI belongs to a project, then any documents associated by name with aDocGUI are updated.

Syntax

aDocGUI.SetName (aNewName)


DocWin

 A DocWin, or document window, is the window from which a document is viewed. The document owns the DocWin. From Avenue, you can get the owner document of the DocWin.

Activating the DocWin with the Activate request, you make its owner the active document. The DocWin of the active document displays in the foreground of the application window.

From Avenue, you can open, close, minimize, maximize resize and move the window. The window should be open before you minimize, maximize, resize, or move it. You can alter its title.

The Application manages the chain of DocWins. The request GetNext gets the next DocWin in the application's chain and GetNextDoc gets the next document with the same class as the current DocWin's owner document.

Attributes

Title. The title appears in the title bar of the window. It defaults to the document name.

Owner. The owner is the document for which this DocWin was created.

Inherits From

Obj

Instance Requests

Accessing Document Window Attributes

GetNext  :  DocWin

GetNextDoc  :  Doc

GetOwner  :  Doc

GetTitle  :  String

SetTitle ( aTitle )

Manipulating Document Windows

Activate

Close

Invalidate  :  Boolean

IsOpen  :  Boolean

Maximize

Minimize

Open

Restore

Positioning Document Windows

Move ( deltaX, deltaY )

MoveTo ( X, Y )

Resize ( Width, Height )

ReturnExtent  :  Point

ReturnOrigin  :  Point

__________

See also

Doc
Application
DocGUI


GetNext (DocWin)
GetNext

Gets the next DocWin in the application's chain of windows.

Syntax

aDocWin.GetNext

Returns

DocWin


GetNextDoc (DocWin)
GetNextDoc

Gets the next document of the same class as aDocWin's owner in the application's chain.

Syntax

aDocWin.GetNextDoc

Returns

Doc


GetOwner (DocWin)
GetOwner

Gets the document associated with aDocWin.

Syntax

aDocWin.GetOwner

Returns

Doc


GetTitle (DocWin)
GetTitle

Gets aDocWin's title.

Syntax

aDocWin.GetTitle

Returns

String


SetTitle (DocWin)
SetTitle

Sets aDocWin's title to aTitle. The title for a document's window is normally the name of the document. Use this request if you want to change that default for short periods of time. The title will be reset to the name of the document every time the document's window is opened.

Syntax

aDocWin.SetTitle (aTitle)


Activate (DocWin)
Activate

Opens aDocWin if it is closed or minimized, brings it to the front and makes the owner document the active document in the application.

Syntax

aDocWin.Activate


Close (DocWin)
Close

Closes aDocWin.

Syntax

aDocWin.Close


Invalidate (DocWin)
Invalidate

Invalidates aDocWin forcing a redraw event.

Syntax

aDocWin.Invalidate

Returns

Boolean


IsOpen (DocWin)
IsOpen

Returns TRUE if aDocWin is open.

Syntax

aDocWin.IsOpen

Returns

Boolean


Maximize (DocWin)
Maximize

Resizes aDocWin to occupy the entire extent of the application window.

Syntax

aDocWin.Maximize


Minimize (DocWin)
Minimize

Replaces aDocWin with an iconic representation.

Syntax

aDocWin.Minimize


Open (DocWin)
Open

Opens aDocWin.

Syntax

aDocWin.Open


Restore (DocWin)
Restore

Restores a minimized or a maximized window to regular size.

Syntax

aDocWin.Restore


Move (DocWin)
Move

Moves aDocWin relative to its current position. deltaX and deltaY are the number of pixels to move the window along each axis.

Syntax

aDocWin.Move (deltaX, deltaY)


MoveTo (DocWin)
MoveTo

Moves aDocWin to a new position identified by X, Y. X and Y are the pixel positions within the application window.

Syntax

aDocWin.MoveTo (X, Y)


Resize (DocWin)
Resize

Resizes aDocWin to the specified Width and Height. Width and Height are pixel values.

Syntax

aDocWin.Resize (Width, Height)


ReturnExtent (DocWin)
ReturnExtent

 Returns the extent of aDocWin. The extent is in pixels.

Syntax

aDocWin.ReturnExtent

Returns

Point


ReturnOrigin (DocWin)
ReturnOrigin

 Returns the origin of aDocWin. The position is in pixels.

Syntax

aDocWin.ReturnOrigin

Returns

Point


Display

 Display is the abstract super class for areas of the screen which can be drawn into. A display is a screen area with real world double precision coordinates. Subclasses of Display represent different coordinate spaces such as map and page. MapDisplay is associated with a View. PageDisplay is associated with a Layout.

Clipping and Invalidation on a Display

When working directly with a Display, you need to be familiar with the concepts of "invalidation" and "clipping". Invalidation means: mark an area of the Display as needing to be redrawn at some future point in time. There are Invalidation requests to redraw the entire display (Invalidate) or only a portion (InvalidateRect).

Clipping means: only draw to those areas of the screen which need to be redrawn. Whenever you draw directly to a Display object, you need to bracket the sequence of drawing requests with a BeginClip, EndClip pair.

Returning a point versus other shapes

Most requests that return a shape from user interaction with the display (ReturnUserRect, ReturnUserLine, etc.) are implemented in Display, View and Layout. The requests in View and Layout report the coordinates while the shape is being rubberbanded to the ArcView status bar. The Display request does not feedback the coordinates. For points, there is no rubberbanding information to give feedback on, so no request is defined for View or Layout.

ReturnUserPoint is a modeless request which returns the location of the mouseclick. In general, a tool is fired off when the user clicks. ReturnUserPoint returns the current location of the mouse whenever the user clicks. The other ReturnUser requests actually put the user into the mode of entering the figure at the time of issuing the request. ReturnUserPoint for the MapDisplay gets the point in MapUnits. ReturnUserPoint for PageDisplay returns the point in page units and it also snaps to the grid if grid snapping is set. The display request GetMouseLoc returns the last mouse click on the display; it is not a "user interaction" request, but delivers the mouse location.

Attributes

Visible Extent.The Visible Extent is a rectangle representing the edges of the Display in a window or frame. The aspect ratio of the visible extent will match the aspect ratio of the enclosing window. For Views, the extent is in map units. For Layouts, the extent is in inches.

Here is a little script that lets you see the extents.

 d = av.GetActiveDoc.GetDisplay
 msgbox.report( d.ReturnExtent.AsString+nl+nl+
                d.ReturnVisExtent.AsString+nl+nl+
                d.ReturnMarginExtent.AsString+nl+nl+
                d.ReturnPageExtent.AsString
                ,"SEE EXTENTS" )

Extent. On a MapDisplay, the Extent is a rectangle representing the desired portion of the Display. The Visible Extent is the smallest rectangle of the current aspect ratio enclosing the Zoom Extent. On a PageDisplay, Extent is the entire drawing area (0,0) to (1500, 1500) in inches.

Grid.The grid can be visible or invisible and active or inactive. If the grid is active, mouse movements will snap to the grid corners. The grid mesh is the distance between the pixels in Display coordinates. The grid is never printed. Grid applies only to PageDisplay.

Margin.The empty edge of the page when printed is the margin. The margin can be visible or invisible on the screen. The MarginExtent is the size of the page inside the margins. Margin applies only to PageDisplay.

Units.The Units are the input units to use on aDisplay. Display does not actually use these values, but views and layouts do.

DistanceUnits.The DistanceUnits are the output units to use on aDisplay. Display does not actually use these values, but views and layouts do.

Resolution.The Resolution is how accurately images are drawn on the Display. Images may be drawn with a low, normal, or high quality of resolution. The default Resolution is normal. This property only applies to Map and Page Displays.

Inherits From

Obj

Inherited By

ListDisplay
MapDisplay
PageDisplay

Enumerations

DisplayResEnum

Class Requests

ColorMap management

SetColorMapSize ( numColors, numGrays )

Instance Requests

Manipulating Pixmaps

Pixmap ( aPixmap, aRect ) :  Boolean

ReturnPixmap ( aRect ) :  Pixmap

Drawing Shapes

BeginClip  :  Boolean

DrawCircle ( aCircle, aSymbol )

DrawEllipse ( anEllipse, aSymbol, DrawOutline )

DrawGeoCurve ( aGeoCurve, aSymbol )

DrawIcon ( aRect, anIcon )

DrawLabeledRect ( aRect, aString, aSymbol )

DrawLine ( aLine, aSymbol )

DrawMultiPoint ( aMultiPoint, aSymbol )

DrawOval ( anOval, aSymbol )

DrawPoint ( aPoint, aSymbol )

DrawPolygon ( aPolygon, aSymbol, DrawOutline )

DrawPolyLine ( aPolyLine, aSymbol )

DrawRect ( aRect, aSymbol )

DrawShape ( aShape, aSymbol )

DrawSymbolSample ( aSymbol, aRect )

DrawText ( aPoint, aString, aSymbol )

DrawTextLine ( aString, aSymbol, aPoint )

DrawTextPolyLine ( aPolyLine, aString, aSymbol )

EndClip

FlashShape ( aShape, aSymbol, MilliSeconds, Times )

HookupSymbol ( aSymbol )

User Interaction (Apply Events only)

DeleteUserPoint

GetMouseLoc  :  Point

Pan

ReturnUserCircle  :  Circle

ReturnUserLine  :  Line

ReturnUserPoint  :  Point

ReturnUserPolygon  :  Polygon

ReturnUserPolyLine  :  PolyLine

ReturnUserRect  :  Rect

Getting and Setting Attributes

GetDistanceUnits  :  UnitsLinearEnum

GetFlushCount  :  Number

GetResolution  :  DisplayResEnum

GetUnits  :  UnitsLinearEnum

ReturnExtent  :  Rect

ReturnMarginExtent  :  Rect

ReturnPageExtent  :  Rect

ReturnVisExtent  :  Rect

SetDistanceUnits ( aUnit )

SetExtent ( aRect )

SetFlushCount ( aBuferfSize )

SetResolution ( aQuality )

SetUnits ( aUnit )

Exporting a Display

ExportEnd

ExportStartFN ( aFileName, aFormat ) :  Display

ExportStartParams ( aFileName, aFormat, aParams ) :  Display

ReturnExportFormats  :  List

Manipulating a Display

CanUndoZoom  :  Boolean

DisableRedraw

DisableZoomUndo

EnableRedraw

EnableZoomUndo

Flush

Invalidate ( Erase )

InvalidateRect ( aRect )

PanTo ( aLocation )

UndoZoom

Validate

ZoomIn ( aPercentage )

ZoomOut ( aPercentage )

ZoomToRect ( aRect )

ZoomToScale ( aScale )

__________

See also

Layout
View
GraphicList


SetColorMapSize (Display)
SetColorMapSize

Sets the size of the color map that ArcView uses for its display windows. On a typical device with a 256 color (8 bit) colormap, ArcView allocates a color cube of 216 colors and a gray scale ramp of 32 gray colors.

This request is useful to give other applications access to the color map on systems where color map contention is an issue. Set down the size of ArcView's color map, bring up the other application and then raise the size of the color map. If you change the color map, you must invalidate the display objects to see the new color map.

UNIX ONLY.

Syntax

Display.SetColorMapSize (numColors, numGrays)


Pixmap (Display)
Pixmap

Draw aPixmap on the portion of aDisplay delineated by aRect. The pixmap must have been obtained using ReturnPixmap and must have the exact same extent as aRect.

Syntax

aDisplay.Pixmap (aPixmap, aRect)

Returns

Boolean


ReturnPixmap (Display)
ReturnPixmap

Return a pixmap containing the contents of the backing store for the portion of aDisplay delineated by aRect.

Syntax

aDisplay.ReturnPixmap (aRect)

Returns

Pixmap


BeginClip (Display)
BeginClip

Begins drawing on aDisplay. This request must be made before any of the Draw requests. After drawing, make the EndClip request. See the discussion in the class description on "Clipping and Invalidation." ABSTRACT

Syntax

aDisplay.BeginClip

Returns

Boolean


DrawCircle (Display)
DrawCircle

Draws aCircle with aSymbol on aDisplay.

Syntax

aDisplay.DrawCircle (aCircle, aSymbol)


DrawEllipse (Display)
DrawEllipse

Draws anEllipse with aSymbol on aDisplay. If DrawOutline is TRUE, then the polygon is outlined. Otherwise, no outline is drawn. ABSTRACT

Syntax

aDisplay.DrawEllipse (anEllipse, aSymbol, DrawOutline)


DrawGeoCurve (Display)
DrawGeoCurve

Draws aGeoCurve with aSymbol on aDisplay. ABSTRACT

Syntax

aDisplay.DrawGeoCurve (aGeoCurve, aSymbol)


DrawIcon (Display)
DrawIcon

Draws anIcon in aRect on aDisplay. ABSTRACT

Syntax

aDisplay.DrawIcon (aRect, anIcon)


DrawLabeledRect (Display)
DrawLabeledRect

Draws aRect with aSymbol and centers aString on aRect with the system font.

Syntax

aDisplay.DrawLabeledRect (aRect, aString, aSymbol)


DrawLine (Display)
DrawLine

Draws aLine with aSymbol on aDisplay. ABSTRACT

Syntax

aDisplay.DrawLine (aLine, aSymbol)


DrawMultiPoint (Display)
DrawMultiPoint

Draws aMultiPoint with aSymbol on aDisplay. ABSTRACT

Syntax

aDisplay.DrawMultiPoint (aMultiPoint, aSymbol)


DrawOval (Display)
DrawOval

Draws anOval with aSymbol on aDisplay. ABSTRACT

Syntax

aDisplay.DrawOval (anOval, aSymbol)


DrawPoint (Display)
DrawPoint

Draws aPoint with aSymbol on aDisplay. ABSTRACT

Syntax

aDisplay.DrawPoint (aPoint, aSymbol)


DrawPolygon (Display)
DrawPolygon

Draws aPolygon with aSymbol on aDisplay. If DrawOutline is TRUE, then the polygon is outlined. Otherwise, no outline is drawn. ABSTRACT

Syntax

aDisplay.DrawPolygon (aPolygon, aSymbol, DrawOutline)


DrawPolyLine (Display)
DrawPolyLine

Draws aPolyLine with aSymbol on aDisplay. ABSTRACT

Syntax

aDisplay.DrawPolyLine (aPolyLine, aSymbol)


DrawRect (Display)
DrawRect

Draws aRect with aSymbol on aDisplay. ABSTRACT

Syntax

aDisplay.DrawRect (aRect, aSymbol)


DrawShape (Display)
DrawShape

Draws aShape with aSymbol on aDisplay.

Syntax

aDisplay.DrawShape (aShape, aSymbol)


DrawSymbolSample (Display)
DrawSymbolSample

Draws a sample of aSymbol in aRect on aDisplay.

Syntax

aDisplay.DrawSymbolSample (aSymbol, aRect)


DrawText (Display)
DrawText

Draws aString at aPoint with aSymbol on aDisplay. ABSTRACT

Syntax

aDisplay.DrawText (aPoint, aString, aSymbol)


DrawTextLine (Display)
DrawTextLine

Draws aString at aPoint with aSymbol on aDisplay. DrawTextLine, unlike DrawText, will correctly vertically space the text for multi-line drawing.

Syntax

aDisplay.DrawTextLine (aString, aSymbol, aPoint)


DrawTextPolyLine (Display)
DrawTextPolyLine

Draws aString along aPolyLine with aSymbol on aDisplay. ABSTRACT

Syntax

aDisplay.DrawTextPolyLine (aPolyLine, aString, aSymbol)


EndClip (Display)
EndClip

Ends drawing. This request must be made after a BeginClip followed by a group of Draw requests. See the discussion in the class description on "Clipping and Invalidation". ABSTRACT

Syntax

aDisplay.EndClip


FlashShape (Display)
FlashShape

Flashes aShape on the display using aSymbol for the specified Milliseconds and number of Times.

Note that the properties of aSymbol that are flashed are pattern, style, shape, and size. Color is not used; instead, a complementary color is used.

In cases where TrueType text is drawn (used for markers and text under Windows 32-bit operating systems), the extent of the shape is flashed.

Syntax

aDisplay.FlashShape (aShape, aSymbol, MilliSeconds, Times)


HookupSymbol (Display)
HookupSymbol

Hooks up aSymbol to aDisplay in terms of scale. Whenever aDisplay is zoomed in or out, the symbol size will change accordingly.

Syntax

aDisplay.HookupSymbol (aSymbol)


DeleteUserPoint (Display)
DeleteUserPoint

Deletes the last point entered when getting either a PolyLine or a Polygon from the user. This request is only called from an Apply script for a popup menu.

Syntax

aDisplay.DeleteUserPoint


GetMouseLoc (Display)
GetMouseLoc

Gets the location of the mouse on aDisplay. The snapping grid doesn't affect this point.

Syntax

aDisplay.GetMouseLoc

Returns

Point


Pan (Display)
Pan

Pans aDisplay as the user drags, changing the VisibleRect of aDisplay.

Syntax

aDisplay.Pan


ReturnUserCircle (Display)
ReturnUserCircle

Gets a Circle from the user on aDisplay.

Syntax

aDisplay.ReturnUserCircle

Returns

Circle


ReturnUserLine (Display)
ReturnUserLine

Gets a Line from the user on aDisplay.

Syntax

aDisplay.ReturnUserLine

Returns

Line


ReturnUserPoint (Display)
ReturnUserPoint

Gets the location of the mouse on aDisplay.

Syntax

aDisplay.ReturnUserPoint

Returns

Point


ReturnUserPolygon (Display)
ReturnUserPolygon

Gets a Polygon from the user on aDisplay.

Syntax

aDisplay.ReturnUserPolygon

Returns

Polygon


ReturnUserPolyLine (Display)
ReturnUserPolyLine

Gets a PolyLine from the user on aDisplay.

Syntax

aDisplay.ReturnUserPolyLine

Returns

PolyLine


ReturnUserRect (Display)
ReturnUserRect

Gets a Rect from the user on aDisplay.

Syntax

aDisplay.ReturnUserRect

Returns

Rect


GetDistanceUnits (Display)
GetDistanceUnits

Gets the Distance Units of aDisplay.

Syntax

aDisplay.GetDistanceUnits

Returns

UnitsLinearEnum


GetFlushCount (Display)
GetFlushCount

Returns an integer for the level of buffering vertices before flushing segments to the display.

Syntax

aDisplay.GetFlushCount

Returns

Number


GetResolution (Display)
GetResolution

Gets the output resolution quality of aDisplay.

Syntax

aDisplay.GetResolution

Returns

DisplayResEnum


GetUnits (Display)
GetUnits

Gets the units of aDisplay.

Syntax

aDisplay.GetUnits

Returns

UnitsLinearEnum


ReturnExtent (Display)
ReturnExtent

Returns the extent of aDisplay. The result is a rectangle defining the display extent. The rectangle is the origin point and size (x is width and y is height).

For a MapDisplay (a View), the extent is last zoom rectangle. The extent is in the map units of the view.

For a PageDisplay (a Layout), the extent is the drawing surface in inches (0,0) to (1500, 1500). A PageDisplay is centered on this drawing surface.

The visible extent is the smallest rectangle of the correct aspect ratio that encloses the extent rectangle. Use the request ReturnVisExtent to return that rectangle.

Syntax

aDisplay.ReturnExtent

Returns

Rect


ReturnMarginExtent (Display)
ReturnMarginExtent

Returns the margin extent of aDisplay. The margin extent applies only to the PageDisplay (layouts) and is the margin rectangle in inches. The margin rectangle is the surface inside the margin. The rectangle is the origin point and size in inches (x is width and y height).

Syntax

aDisplay.ReturnMarginExtent

Returns

Rect


ReturnPageExtent (Display)
ReturnPageExtent

Returns the page extent of aDisplay. The page extent applies only to the PageDisplay (layouts) and is the page rectangle in inches. The page rectangle is the size of the page surface. The rectangle is the origin point and size in inches (x is width and y height).

Syntax

aDisplay.ReturnPageExtent

Returns

Rect


ReturnVisExtent (Display)
ReturnVisExtent

Returns the visible extent of aDisplay. For a MapDisplay, the visible extent is the smallest rectangle of the correct aspect ratio that encloses the extent rectangle. The extent is in map units. Use the request ReturnExtent to return that rectangle. For a PageDisplay, the visible extent is the window in inches.

Syntax

aDisplay.ReturnVisExtent

Returns

Rect


SetDistanceUnits (Display)
SetDistanceUnits

Sets the Distance Units to aUnit.

Syntax

aDisplay.SetDistanceUnits (aUnit)


SetExtent (Display)
SetExtent

Sets the extent of aDisplay to aRect. The visible extent will be set to the smallest rectangle of the correct aspect ratio that encloses aRect. aRect is the origin point and size (x is the width and y is the height).

Syntax

aDisplay.SetExtent (aRect)


SetFlushCount (Display)
SetFlushCount

Sets the level of buffering vertices before flushing drawing segments to the display.

Syntax

aDisplay.SetFlushCount (aBuferfSize)


SetResolution (Display)
SetResolution

Sets the output resolution quality of aDisplay to aQuality.

Syntax

aDisplay.SetResolution (aQuality)


SetUnits (Display)
SetUnits

Sets the units of aDisplay to aUnit.

Syntax

aDisplay.SetUnits (aUnit)


ExportEnd (Display)
ExportEnd
Example

Stops exporting the graphics drawn on aDisplay. ABSTRACT

Syntax

aDisplay.ExportEnd


ExportStartFN (Display)
ExportStartFN
Example

Starts exporting graphics drawn on aDisplay to aFileName. Get aFormat from the list of strings returned by aDpy.ReturnExportFormats.

Syntax

aDisplay.ExportStartFN (aFileName, aFormat)

Returns

Display


ExportStartParams (Display)
ExportStartParams

Starts exporting graphics drawn on aDisplay to aFileName with parameters in aParams list. aParams is a list containing options offered with each of the export formats. For example, all export formats containing options offer a resolution, so aList containing a number will export the file at the resolution specified. To see the different choices click the 'options button in the export dialogue for each of the export types. If aParams list is empty then the current export parameters options will be used. Get aFormat from the list of strings returned by aDpy.ReturnExportFormats.

Syntax

aDisplay.ExportStartParams (aFileName, aFormat, aParams)

Returns

Display


ReturnExportFormats (Display)
ReturnExportFormats
Example

Returns a list of available export formats. The elements of the list are strings suitable for passing into the aDpy.ExportStartFN request.

Syntax

aDisplay.ReturnExportFormats

Returns

List


CanUndoZoom (Display)
CanUndoZoom

Returns TRUE if there is a zoom or pan operation that can be undone.

Syntax

aDisplay.CanUndoZoom

Returns

Boolean


DisableRedraw (Display)
DisableRedraw

Disables default redraw processing of aDisplay. This is needed if two Displays share the same page so that drawing on one doesn't erase the results of drawing on the other.

Syntax

aDisplay.DisableRedraw


DisableZoomUndo (Display)
DisableZoomUndo

Disables the Zoom Undo mechanism. Recording of changes to the extent of aDisplay for the undo operation is stopped.

Syntax

aDisplay.DisableZoomUndo


EnableRedraw (Display)
EnableRedraw

Enables default redraw processing of aDisplay.

Syntax

aDisplay.EnableRedraw


EnableZoomUndo (Display)
EnableZoomUndo

Enables the Zoom Undo mechanism. Recording of changes to the extent of aDisplay for the undo operation is re-started.

Syntax

aDisplay.EnableZoomUndo


Flush (Display)
Flush

Flushes all drawing to aDisplay.

Syntax

aDisplay.Flush


Invalidate (Display)
Invalidate

Invalidates the entire area of aDisplay. If Erase is TRUE, then aDisplay is completely erased at the next redraw. If you are only interested in redrawing several shapes on the display, use the Invalidate requests available on instances of the GraphicShape subclasses.

Syntax

aDisplay.Invalidate (Erase)


InvalidateRect (Display)
InvalidateRect

Invalidates the area of aDisplay defined by aRect. Only the area of the display specified by aRect is redrawn. See the discussion of "Clipping and Invalidation" for the class Display.

Syntax

aDisplay.InvalidateRect (aRect)


PanTo (Display)
PanTo

Pans aDisplay to center on aLocation.

Syntax

aDisplay.PanTo (aLocation)


UndoZoom (Display)
UndoZoom

Undoes the last zoom or pan operation.

Syntax

aDisplay.UndoZoom


Validate (Display)
Validate

Validates the entire area of aDisplay. No further redraws occur.

Syntax

aDisplay.Validate


ZoomIn (Display)
ZoomIn

Zooms aDisplay in by aPercentage. aDisplay must be open.

Syntax

aDisplay.ZoomIn (aPercentage)


ZoomOut (Display)
ZoomOut

Zooms aDisplay out by aPercentage. aDisplay must be open.

Syntax

aDisplay.ZoomOut (aPercentage)


ZoomToRect (Display)
ZoomToRect

Zooms aDisplay to fit aRect. aDisplay must be open. ABSTRACT

Syntax

aDisplay.ZoomToRect (aRect)


ZoomToScale (Display)
ZoomToScale

Zooms aDisplay to aScale. aDisplay must be open.

Syntax

aDisplay.ZoomToScale (aScale)


DisplayResEnum

 Controls the resolution quality of an exported raster image.

#DISPLAY_RES_LOW

Low resolution.

#DISPLAY_RES_NORMAL

Normal resolution.

#DISPLAY_RES_HIGH

High resolution.


DynName
Example

 A DynName identifies a Dynamic Segmentation data source. The Dynamic Segmentation data source defines a theme of route events - either point, linear or continuous events.

The DynName identifies the route theme's feature table (FTab), the RouteId field in that feature table, the event table, the RouteId field in that event table and the fields in the event table defining the events. The requests SetLineEvent or SetPointEvent define the event theme type. Additionally, the DynName can identify a field which contains offset values. The offset values should be expressed in the same units as the route theme's feature table.

Use a DynName object as the argument to Theme.Make to create a theme of Dynamic Segmentation events. To improve display and selection performance, a spatial index is always created for a for a new Dynamic Segmentation Theme.

Inherits From

SrcName

Class Requests

Creating a DynName

Make ( anFTab, RouteId ) :  DynName

Instance Requests

Creating a DynName

SetLineEvent ( anEventTable, RouteId, From, To )

SetPointEvent ( anEventTable, RouteId, Measure )

Getting and Setting Attributes

GetEventRouteId  :  Field

GetEventTable  :  VTab

GetFromField  :  Field

GetMeasureField  :  Field

GetOffsetField  :  Field

GetRatRouteId  :  Field

GetRouteSys  :  FTab

GetToField  :  Field

IsContinuous  :  Boolean

IsLinear  :  Boolean

IsPoint  :  Boolean

SetOffsetField ( aField )

__________

See also

FTab
Field
Theme


Make (DynName)
Make

Creates a DynName object from a route system's FTab and the route ID field. Retrieve the FTab from the route system theme using the aTheme.GetFTab request. RouteId is a field in anFTab.

A DynName object is not complete after the Make request. After Make, you must then associate an event table to the route system using one of the instance requests SetPointEvent or SetLineEvent.

Syntax

DynName.Make (anFTab, RouteId)

Returns

DynName


SetLineEvent (DynName)
SetLineEvent

 Sets aDynName's line event route ID and measure fields. Specify the event table and its fields containing RouteID and From and To measures.

To define a continuous linear event, name ONLY the From measure and use Nil for the To measure.

Syntax

aDynName.SetLineEvent (anEventTable, RouteId, From, To)


SetPointEvent (DynName)
SetPointEvent

 Completes the definition of a point event source. Specify the event table and its fields containing the route id and the measure.

Syntax

aDynName.SetPointEvent (anEventTable, RouteId, Measure)


GetEventRouteId (DynName)
GetEventRouteId

 Gets the event table's route field.

Syntax

aDynName.GetEventRouteId

Returns

Field


GetEventTable (DynName)
GetEventTable

 Gets the event table.

Syntax

aDynName.GetEventTable

Returns

VTab


GetFromField (DynName)
GetFromField

 Gets a linear DynName's From-measure field.

Syntax

aDynName.GetFromField

Returns

Field


GetMeasureField (DynName)
GetMeasureField

 Gets a point DynName's measure field.

Syntax

aDynName.GetMeasureField

Returns

Field


GetOffsetField (DynName)
GetOffsetField

 Gets the offset field to aField for aDynName. The values contained in aField are used to offset the event. The values should be expressed in the same units as the route theme's feature table.

Syntax

aDynName.GetOffsetField

Returns

Field


GetRatRouteId (DynName)
GetRatRouteId

 Gets the route attribute table's route ID field.

Syntax

aDynName.GetRatRouteId

Returns

Field


GetRouteSys (DynName)
GetRouteSys

 Gets the route system FTab.

Syntax

aDynName.GetRouteSys

Returns

FTab


GetToField (DynName)
GetToField

 Gets a linear DynName's To-measure field. If the linear event is continuous, the To-measure field will be nil.

Syntax

aDynName.GetToField

Returns

Field


IsContinuous (DynName)
IsContinuous

 Returns TRUE if aDynName defines continuous linear events.

Syntax

aDynName.IsContinuous

Returns

Boolean


IsLinear (DynName)
IsLinear

 Returns TRUE if aDynName defines linear events.

Syntax

aDynName.IsLinear

Returns

Boolean


IsPoint (DynName)
IsPoint

 Returns TRUE if aDynName defines point events.

Syntax

aDynName.IsPoint

Returns

Boolean


SetOffsetField (DynName)
SetOffsetField

 Sets the offset field to aField for aDynName. The values contained in aField are used to offset the event. The values should be expressed in the same units as the route theme's feature table.

Syntax

aDynName.SetOffsetField (aField)


Ellipse

 An Ellipse is a geometric ellipse drawn using two axes values and an angle of rotation (in degrees). The ellipse can be either GeoReferenced to the earth based on the earth's elipsoidal model, or it can be a graphical shape on the map projection.

Attributes

Origin.The Origin is the center point of the the ellipse. If the ellipse is GeoReferenced, then the origin is in decimal degrees in unprojected space (geographic). If the ellipse is not GeoReferenced, then the origin is in the map projection space.

Axes.Since the ellipse can be rotated, the axes are defined as the axes of the ellipse prior to a rotation. The axes are expressed as aPoint. If the ellipse is GeoReferenced, then the first component of the point is the axis in the North / South direction; the second component is the axis in the East / West direction. If the ellipse is not GeoReferenced, then the first component of the point is in the map's vertical direction; the second axis corresponds to the map's horizontal direction.

OrientationAngle. The rotation angle, in degrees, is the clockwise rotation angle with the ellipse origin as the point of rotation.

GeoReferenced. An indication whether the ellipse object is to referenced to the earth elipsoidal model or is simply a graphical shape on a map display. A GeoReferenced ellipse will retain its elliptical properties during a projection or map units change. A non-GeoReferenced ellipse will be converted to a polygonal shape during a projection or map units change in the same manner as rectangles, circles, etc.

Projection. In the case of a GeoReferenced ellipse, the ellipse object stores the projection information so that the ellipse can retain its elliptical properties during a projection change.

Spheroid. In the case of a GeoReferenced ellipse, the ellipse object stores the spheroid information so that the ellipse can retain its elliptical properties during a spheroid change.

NumberPoints. The Origin, Axes, OrientationAngle describe the ellipse; however, to represent it graphically, it must be approximated as a polygon similar to a circle. In the case of the ellipse, users have the option of defining and changing the density of the polygonal represention. The polygonal representation of the ellipse is used for spatial analysis with other shapes. Increasing the number of points might increase accuracy of spatial analysis, depending on user's application.

Inherits From

Shape

Class Requests

Making Ellipses

Make ( anOrigin, aSize, aAngle, aNumberPoints ) :  Ellipse

MakeGeoRef ( anOrigin, aSize, aAngle, aNumberPoints, aList ) :  Ellipse

MakeNull  :  Ellipse

Instance Requests

Converting an Ellipse

AsMultiPoint  :  MultiPoint

AsPolygon  :  Polygon

Generic Object Requests

= anObj :  Boolean

AsString  :  String

Getting and Setting Attributes

GetDimension  :  Number

IsGeoReferenced  :  Boolean

IsNull  :  Boolean

ReturnAxes  :  Point

ReturnNumberPoints  :  Number

ReturnOrigin  :  Point

ReturnProjectedOrigin  :  Point

ReturnProjection  :  Prj

ReturnRotationAngle  :  Number

ReturnSpheroid  :  Spheroid

SetAxes ( aPoint ) :  Ellipse

SetNumberPoints ( aNumber ) :  Ellipse

SetOrigin ( aPoint ) :  Ellipse

SetRotationAngle ( anAngle ) :  Ellipse

Manipulating an Ellipse

ExpandBy ( aDistance ) :  Ellipse

InsetBy ( aDistance ) :  Ellipse

Move ( moveX, moveY ) :  Ellipse

ProjectedMove ( moveX, moveY ) :  Ellipse

RotateBy ( anAngle ) :  Ellipse

Snap ( aShape, snapDistance ) :  Boolean

Relating two shapes

Contains ( aShape ) :  Boolean

Intersects ( aShape ) :  Boolean

Transforming an Ellipse

ReturnClipped ( clipRect ) :  Shape

ReturnDifference ( aShape ) :  Polygon

ReturnIntersection ( aShape ) :  Polygon

ReturnMerged ( aShape ) :  Polygon

ReturnProjected ( aPrj ) :  Shape

ReturnUnion ( aShape ) :  Polygon

ReturnUnprojected ( aPrj ) :  Shape

__________

See also

Circle
Line
Point
Polygon
Rect
MultiPoint
PolyLine
GeoCurve


Make (Ellipse)
Make

Makes a graphical (i.e., not GeoReferenced) Ellipse centered at anOrigin (anOrigin is the "projected" center point of the ellipse), aSize are the axis sizes of the ellipse, aAngle is the angle of rotation, and aNumberPoints is the number of points to be use to graphically represent the ellipse boundary.

Syntax

Ellipse.Make (anOrigin, aSize, aAngle, aNumberPoints)

Returns

Ellipse


MakeGeoRef (Ellipse)
MakeGeoRef

Makes a GeoReferenced Ellipse centered at anOrigin (anOrigin is the geographic center point of the ellipse), aSize are the axis sizes of the ellipse, aAngle is the angle of rotation, and aNumberPoints is the number of points to be use to graphically represent the ellipse boundary. The view's projection and its spheroid are expected to be items zero and one, respectively, in aList.

This ellipse is centered at the equator, -45 degrees longitude with x-axis of 10 Kilometers (minor axis) and y-axis of 20 Kilometers (major axis), and no rotation, is geographically registered, and is represented by 120 points (every 3 degrees).

 geodeticList = List.Make
 myView = av.GetActiveDoc
 currentPrj = theView.GetProjection
 currentSpheroid = currentPrj.GetSpheroid
 geodeticList.Add (currentPrj)
 geodeticList.Add (currentSpheroid)
 anEllipse = Ellipse.Make( -45.@0., 10000.@20000., 0., 120, geodeticList)
 msgbox.info( anEllipse.AsString, "")

Syntax

Ellipse.MakeGeoRef (anOrigin, aSize, aAngle, aNumberPoints, aList)

Returns

Ellipse


MakeNull (Ellipse)
MakeNull

Makes the NULL Ellipse.

Syntax

Ellipse.MakeNull

Returns

Ellipse


AsMultiPoint (Ellipse)
AsMultiPoint

Returns a MultiPoint representing anEllipse.

Syntax

anEllipse.AsMultiPoint

Returns

MultiPoint


AsPolygon (Ellipse)
AsPolygon

Returns a Polygon representing anEllipse.

Syntax

anEllipse.AsPolygon

Returns

Polygon


= (Ellipse)
=

Returns TRUE when anEllipse and anObj are equal, otherwise returns FALSE. By necessity, anObj must also be an ellipse. Further more, equality is determined by identical origins, axes, and rotation angles; they must both be GeoReferenced or they must both be graphical; if they are GeoReferenced, they must have identical spheroids. Note that GeoReferenced ellipses can be equal even if their projections are different or the number of representative points on the ellipses are different.

Syntax

anEllipse = anObj

Returns

Boolean


AsString (Ellipse)
AsString

Returns a string describing the ellipse in the form   Ellipse: origin axes rotationAngle GeoReferencedIndicator NumberOfPoints

Syntax

anEllipse.AsString

Returns

String


GetDimension (Ellipse)
GetDimension

Returns 2. In ArcView, points have dimension 0, lines have dimension 1 and polygons have dimension 2. Only shapes with dimension 1 or greater have a length. Only shapes with dimension 2 have an area.

Syntax

anEllipse.GetDimension

Returns

Number


IsGeoReferenced (Ellipse)
IsGeoReferenced

Returns aBoolean identifying if anEllipse is GeoReferenced.

Syntax

anEllipse.IsGeoReferenced

Returns

Boolean


IsNull (Ellipse)
IsNull

Returns TRUE if anEllipse is NULL, otherwise returns FALSE.

Syntax

anEllipse.IsNull

Returns

Boolean


ReturnAxes (Ellipse)
ReturnAxes

Returns the axes values of anEllipse as aPoint. The width of anEllipse is the X component of aPoint and the height is the Y component.

Syntax

anEllipse.ReturnAxes

Returns

Point


ReturnNumberPoints (Ellipse)
ReturnNumberPoints

Returns the number of points currently used to represent anEllipse boundary.

Syntax

anEllipse.ReturnNumberPoints

Returns

Number


ReturnOrigin (Ellipse)
ReturnOrigin

Returns the center point of anEllipse in geographic coordinates if GeoReferenced, otherwise, the projected coordinates of the centerpoint.

Syntax

anEllipse.ReturnOrigin

Returns

Point


ReturnProjectedOrigin (Ellipse)
ReturnProjectedOrigin

Returns aPoint which is the projected origin of anEllipse using the current projection. Note that if anEllipse is not GeoReferenced, then this is identical to anEllipse.ReturnOrigin

Syntax

anEllipse.ReturnProjectedOrigin

Returns

Point


ReturnProjection (Ellipse)
ReturnProjection

Returns aProjection used by anEllipse to compute its projected coordinates of the GeoReferenced ellipse. Note that if anEllipse is not GeoReferenced, then NIL is returned.

Syntax

anEllipse.ReturnProjection

Returns

Prj


ReturnRotationAngle (Ellipse)
ReturnRotationAngle

Returns anAngle that anEllipse is rotated clockwise.

Syntax

anEllipse.ReturnRotationAngle

Returns

Number


ReturnSpheroid (Ellipse)
ReturnSpheroid

Returns aSpheroid used by anEllipse to compute its GeoReferenced coordinates. Note that if anEllipse is not GeoReferenced, then NIL is returned.

Syntax

anEllipse.ReturnSpheroid

Returns

Spheroid


SetAxes (Ellipse)
SetAxes

Sets the size of anEllipse to aPoint. The first component of aPoint represents the axis in the North / South direction (GeoReferenced) or in the vertical direction (non-GeoReferenced). The second component is in the East / West direction or horizontal direction (GeoReferenced, non-GeoReferenced, respectively). The units are meters for a GeoReferenced ellipse; map units for a non-GeoReferenced ellipse.

Syntax

anEllipse.SetAxes (aPoint)

Returns

Ellipse


SetNumberPoints (Ellipse)
SetNumberPoints

Sets the number of points to be used to represent the boundary of the ellipse.

Syntax

anEllipse.SetNumberPoints (aNumber)

Returns

Ellipse


SetOrigin (Ellipse)
SetOrigin

Sets the origin of anEllipse to aPoint in geographic coordinates (if GeoReferenced) or in projected coordinates (if not GeoReferenced).

Syntax

anEllipse.SetOrigin (aPoint)

Returns

Ellipse


SetRotationAngle (Ellipse)
SetRotationAngle

Sets the rotation of anEllipse to anAngle.

Syntax

anEllipse.SetRotationAngle (anAngle)

Returns

Ellipse


ExpandBy (Ellipse)
ExpandBy

Expands anEllipse by aDistance. Both axes are increased by aDistance. If aDistance is zero or negative, a nil ellipse is returned.

Syntax

anEllipse.ExpandBy (aDistance)

Returns

Ellipse


InsetBy (Ellipse)
InsetBy

Insets anEllipse by aDistance. Both axes are reduced by aDistance. If aDistance exceeds either axis, a null ellipse is returned. If aDistance is zero or negative, a nil ellipse is returned.

Syntax

anEllipse.InsetBy (aDistance)

Returns

Ellipse


Move (Ellipse)
Move

Moves anEllipse by moveX and moveY and returns it. MoveX and moveY are in the same coordinate system as the origin of anEllipse. I.e., if anEllipse is GeoReferenced, the displacements are in geographic coordinates, otherwise they are in the dispaly units.

Syntax

anEllipse.Move (moveX, moveY)

Returns

Ellipse


ProjectedMove (Ellipse)
ProjectedMove

Moves anEllipse by moveX and moveY and returns it. MoveX and moveY are displacements in projected space. If anEllipse is GeoReferenced, the displacements are then converted to changes in geographic coordinates and then applied to the origin of anEllipse.

Syntax

anEllipse.ProjectedMove (moveX, moveY)

Returns

Ellipse


RotateBy (Ellipse)
RotateBy

Rotates anEllipse an additional anAngle degrees clockwise.

Syntax

anEllipse.RotateBy (anAngle)

Returns

Ellipse


Snap (Ellipse)
Snap

Snaps the origin of anEllipse to a vertex of aShape within snapDistance. Returns TRUE if snapping occurred, otherwise returns FALSE.

Syntax

anEllipse.Snap (aShape, snapDistance)

Returns

Boolean


Contains (Ellipse)
Contains

Returns TRUE if anEllipse contains aShape, otherwise returns FALSE.

Syntax

anEllipse.Contains (aShape)

Returns

Boolean


Intersects (Ellipse)
Intersects

Returns TRUE if anEllipse intersects aShape, otherwise returns FALSE.

Syntax

anEllipse.Intersects (aShape)

Returns

Boolean


ReturnClipped (Ellipse)
ReturnClipped

Returns aShape clipped to clipRect. The result will be NULL if anEllipse and clipRect do not intersect.

Syntax

anEllipse.ReturnClipped (clipRect)

Returns

Shape


ReturnDifference (Ellipse)
ReturnDifference

Returns the difference between anEllipse and aShape into a new shape.

Syntax

anEllipse.ReturnDifference (aShape)

Returns

Polygon


ReturnIntersection (Ellipse)
ReturnIntersection

Returns the intersection of anEllipse and aShape into a new shape.

Syntax

anEllipse.ReturnIntersection (aShape)

Returns

Polygon


ReturnMerged (Ellipse)
ReturnMerged

Merges anEllipse and aShape into a new shape.

Syntax

anEllipse.ReturnMerged (aShape)

Returns

Polygon


ReturnProjected (Ellipse)
ReturnProjected

Returns aShape projected by aPrj. The result may be a different kind of shape. If anEllipse is GeoReferenced, then the result is the ellipse represented in that new projection space. If anEllipse is not GeoReferenced, then it becomes a polygon in that projection space using the NumberPoints attribute to determine the polygonal representation.

Syntax

anEllipse.ReturnProjected (aPrj)

Returns

Shape


ReturnUnion (Ellipse)
ReturnUnion

Returns the union of anEllipse and aShape into a new shape.

Syntax

anEllipse.ReturnUnion (aShape)

Returns

Polygon


ReturnUnprojected (Ellipse)
ReturnUnprojected

Returns aShape unprojected by aPrj. If anEllipse is GeoReferenced, then the result is simply anEllipse represented in decimal degrees. If anEllipse is not GeoReferenced, the result is a polygonal representation of anEllipse using the NumberPoints attribute to determine the quality of its representation.

Syntax

anEllipse.ReturnUnprojected (aPrj)

Returns

Shape


Spheroid
Example

 This class encapsulates the information describing a particular spheroid: the radius and the eccentricity. See the help topic 'Working with Spheroids' for more information. Also refer to Snyder's Map Projections - A Working Manual, p. 11.

Attributes

Type.An element SpheroidEnum.

Name.The name of the Spheroid.

Inherits From

Obj

Enumerations

SpheroidEnum

Class Requests

Creating Spheroids

Make ( aSpheroidType, aProjection ) :  Spheroid

Instance Requests

Measuring on Spheroids

ReturnGeodesic ( aPoint, anotherPoint, aNumberOfPoints ) :  PolyLine

ReturnGeodesicAzimuth ( aPoint, anotherPoint ) :  Number

ReturnGeodesicDistance ( aPoint, anotherPoint ) :  Number

ReturnPointAlongGeodesic ( aStartPoint, aDistance, anAzimuth ) :  Point

Spheroid Parameters

GetSpheroidName  :  String

GetType  :  SpheroidEnum

GetUnits  :  UnitsLinearEnum

ReturnEccentricity  :  Number

ReturnRadius  :  Number

SetMajorAndMinorAxes ( aMajorAxis, aMinorAxis )

SetRadiusAndFlattening ( aRadius, anInverseFlattening )

SetType ( aType )

SetUnits ( aUnit )

Comparing Spheroids

= ( anotherSpheroid ) :  Boolean

__________

See also

Prj
CoordSys


Make (Spheroid)
Make

Creates an spheroid object of the specified type.

aSpheroidType is the type of spheroid to create.

aProjection is the projection object associated with this spheroid.

Syntax

Spheroid.Make (aSpheroidType, aProjection)

Returns

Spheroid


ReturnGeodesic (Spheroid)
ReturnGeodesic

 Given two points in decimal degrees, returns a PolyLine in geographic coordinates representing the geodesic connecting those two points.

To return an accurate distance between the two points, use aSpheroid.ReturnGeodesicDistance.

Syntax

aSpheroid.ReturnGeodesic (aPoint, anotherPoint, aNumberOfPoints)

Returns

PolyLine


ReturnGeodesicAzimuth (Spheroid)
ReturnGeodesicAzimuth

 Given two points in decimal degrees, returns the azimuth of the geodesic connecting those two points. Please note that the azimuth of the geodesic from point A to point B is not the same as the azimuth of the geodesic from point B to point A.

Syntax

aSpheroid.ReturnGeodesicAzimuth (aPoint, anotherPoint)

Returns

Number


ReturnGeodesicDistance (Spheroid)
ReturnGeodesicDistance

 Given two points in decimal degrees, returns the length in meters of the geodesic connecting those two points.

Syntax

aSpheroid.ReturnGeodesicDistance (aPoint, anotherPoint)

Returns

Number


ReturnPointAlongGeodesic (Spheroid)
ReturnPointAlongGeodesic

 Returns a new point at the given distance (in meters) and azimuth. The new point is calculated using a geodesic. Uses Vincenty's formulas.

Syntax

aSpheroid.ReturnPointAlongGeodesic (aStartPoint, aDistance, anAzimuth)

Returns

Point


GetSpheroidName (Spheroid)
GetSpheroidName

Gets the name of aSpheroid.

Syntax

aSpheroid.GetSpheroidName

Returns

String


GetType (Spheroid)
GetType

Gets the type of aSpheroid.

Syntax

aSpheroid.GetType

Returns

SpheroidEnum


GetUnits (Spheroid)
GetUnits

Gets the units of aSpheroid. All projections using aSpheroid generate coordinates in these units.

Syntax

aSpheroid.GetUnits

Returns

UnitsLinearEnum


ReturnEccentricity (Spheroid)
ReturnEccentricity

Returns the square of the eccentricity, defined as e^2 = 2f - f^2, where f is the flattening.

Syntax

aSpheroid.ReturnEccentricity

Returns

Number


ReturnRadius (Spheroid)
ReturnRadius

Returns the equatorial radius in meters of aSpheroid.

Syntax

aSpheroid.ReturnRadius

Returns

Number


SetMajorAndMinorAxes (Spheroid)
SetMajorAndMinorAxes

Defines the spheroid by specifying its major and minor axes. The flattening/eccentricity will be derived from these values.

aMajorAxis is the equatorial radius in meters.

aMinorAxis is the polar radius in meters.

You can use Avenue to set a custom spheroid. An example script which shows you how to do this can be found at the top of the Spheroid class help.

Syntax

aSpheroid.SetMajorAndMinorAxes (aMajorAxis, aMinorAxis)


SetRadiusAndFlattening (Spheroid)
SetRadiusAndFlattening

Defines the spheroid by specifying its radius (major axis) and its inverse flattening. Use this when the flattening is a known value.

aRadius is the equatorial radius in meters.

anInverseFlattening is the denominator of the fraction defining the flattening.

For example, if the flattening is 1/297 specify "297" for this parameter.

You can use Avenue to set a custom spheroid. An example script which shows you how to do this can be found at the top of the Spheroid class help.

Syntax

aSpheroid.SetRadiusAndFlattening (aRadius, anInverseFlattening)


SetType (Spheroid)
SetType

Sets the type of aSpheroid to be one of the predefined spheroid types given in the enumeration SpheroidEnum.

Syntax

aSpheroid.SetType (aType)


SetUnits (Spheroid)
SetUnits

Sets the units of aSpheroid to aUnit. This will cause all projections using aSpheroid to generate coordinates in aUnit.

You can use Avenue to set a custom spheroid. An example script which shows you how to do this can be found at the top of the Spheroid class help.

Syntax

aSpheroid.SetUnits (aUnit)


= (Spheroid)
=

Returns TRUE when aSpheroid and anotherSpheroid are either the same object or have equal property values.

Syntax

aSpheroid.= (anotherSpheroid)

Returns

Boolean


SpheroidEnum

 These are the different types of pre-defined spheroid that are supported:

#SPHEROID_OTHER

Unknown

#SPHEROID_FIRST

For internal use only.

#SPHEROID_AIRY

 Airy 1830
   Equatorial radius (semi-major axis):  6,377,563.4  (meters)
   Polar radius (semi-minor axis):       6,356,256.9  (meters)
   Flattening:                               1/299.32
   Eccentricity:                                 0.006670540

#SPHEROID_AUSTRALIAN

 Australian National 1965
   Equatorial radius (semi-major axis):  6,378,160.0  (meters)
   Polar radius (semi-minor axis):       6,356,774.7  (meters)
   Flattening:                               1/298.25
   Eccentricity:                                 0.006694542

#SPHEROID_BESSEL

 Bessel 1841
   Equatorial radius (semi-major axis):  6,377,397.2  (meters)
   Polar radius (semi-minor axis):       6,356,079.0  (meters)
   Flattening:                               1/299.15
   Eccentricity:                                 0.006674372

#SPHEROID_CLARKE1866

 Alexander Ross Clarke 1866
   Equatorial radius (semi-major axis):  6,378,206.4  (meters)
   Polar radius (semi-minor axis):       6,356,583.8  (meters)
   Flattening:                               1/294.98
   Eccentricity:                                 0.006768658

#SPHEROID_CLARKE1880

 Alexander Ross Clarke 1880
   Equatorial radius (semi-major axis):  6,378,249.1  (meters)
   Polar radius (semi-minor axis):       6,356,514.9  (meters)
   Flattening:                               1/293.46
   Eccentricity:                                 0.006803511

#SPHEROID_EVEREST

 Everest 1830
   Equatorial radius (semi-major axis):  6,377,276.3  (meters)
   Polar radius (semi-minor axis):       6,356,075.4  (meters)
   Flattening:                               1/300.8
   Eccentricity:                                 0.006637846

#SPHEROID_GRS80

 Geodetic Reference System 1980
   Equatorial radius (semi-major axis):  6,378,137.0  (meters)
   Polar radius (semi-minor axis):       6,356,752.3  (meters)
   Flattening:                               1/298.257
   Eccentricity:                                 0.006694380

#SPHEROID_INTERNATIONAL1909

 John Fillmore Hayford 1909 (IUGG 1924)
   Equatorial radius (semi-major axis):  6,378,388.0  (meters)
   Polar radius (semi-minor axis):       6,356,911.9  (meters)
   Flattening:                               1/297.0
   Eccentricity:                                 0.006722670

#SPHEROID_KRASOVSKY

 Krasovsky 1940
   Equatorial radius (semi-major axis):  6,378,245.0  (meters)
   Polar radius (semi-minor axis):       6,356,863.0  (meters)
   Flattening:                               1/298.3
   Eccentricity:                                 0.006693421

#SPHEROID_SPHERE

 The world as a sphere. Use this for world maps.
   Equatorial radius (semi-major axis):  6,370,997.0  (meters)
   Eccentricity:                                 0.0

#SPHEROID_WGS72

 World Geodetic System 1972
   Equatorial radius (semi-major axis):  6,378,135.0  (meters)
   Polar radius (semi-minor axis):       6,356,750.5  (meters)
   Flattening:                               1/298.26
   Eccentricity:                                 0.006694318

#SPHEROID_WGS84

 World Geodetic System 1984
   Equatorial radius (semi-major axis):  6,378,137.0  (meters)
   Polar radius (semi-minor axis):       6,356,752.3  (meters)
   Flattening:                               1/298.26
   Eccentricity:                                 0.006694381

#SPHEROID_LAST

For internal use only.


EncryptedScript

 An encrypted script prevents examination of its source code; use encrypted scripts when you wish to protect the source code. An encrypted script cannot be decrypted.

You can create encrypted scripts from scripts or you can encrypt an Avenue source string. To protect an entire project, use the Project request EncryptScripts. Use special caution with EncryptScripts and save the source before issuing this request.

Encypted scripts are persistent. The source code is saved to an ODB file in encrypted form. The Avenue compiler can read and interpret the encrypted source.

Embedded encrypted scripts display in the script manager (embedded means they are on the Project's Script list). You can associate encrypted scripts with events just like an ordinary script.

Inherits From

Script

Class Requests

Making Encrypted Scripts

Make ( someAvenueSourceCode ) :  EncryptedScript

MakeFromScript ( aScript ) :  EncryptedScript

Instance Requests

Conversion

AsString  :  String

__________

See also

Project
Application


Make (EncryptedScript)
Make

Creates an encrypted script from someAvenueSourceCode. The new encrypted script has no name; use the SetName request to provide an identity for it.

 ' create the encrypted script from Avenue source code
 text  = "system.beep"+NL+"msgbox.info( ""test"", """") "
 topSecret = EncryptedScript.Make( text )
 topSecret.SetName( "TopSecret" )

 ' try it out!
 topSecret.doit( "" )

 ' embed the script - add it to the project
 av.GetProject.AddScript( topSecret )

Syntax

EncryptedScript.Make (someAvenueSourceCode)

Returns

EncryptedScript


MakeFromScript (EncryptedScript)
MakeFromScript

Creates a new encrypted script from aScript. The new encrypted script has no name; use the SetName request to identify it.

Syntax

EncryptedScript.MakeFromScript (aScript)

Returns

EncryptedScript


AsString (EncryptedScript)
AsString

Returns a string containing an error message which cannot be compiled. You can't look at the actual source for anEncryptedScript.

Syntax

anEncryptedScript.AsString

Returns

String


EqualAreaAzimuthal
Discussion	Example

 This class implements the Lambert Equal-Area Azimuthal projection.

Inherits From

Prj

Class Requests

Creating Lambert Equal-Area Azimuthal Projections

Make ( aRect ) :  EqualAreaAzimuthal

Instance Requests

Projecting and unprojecting points

ProjectPt ( aPoint ) :  Boolean

UnProjectPt ( aPoint ) :  Boolean

Lambert Equal-Area Azimuthal Projection Parameters

CalcHorizon

Recalculate

ReturnCentralMeridian  :  Number

ReturnReferenceLatitude  :  Number

SetCentralMeridian ( aLongitude )

SetReferenceLatitude ( aLatitude )

__________

See also

CoordSys
Spheroid


Make (EqualAreaAzimuthal)
Make
Example

Creates a Lambert Equal-Area Azimuthal projection. aRect is the bounding rectangle of the area being projected. Use decimal degrees for the coordinates of aRect.

Syntax

Eqarazi.Make (aRect)

Returns

EqualAreaAzimuthal


ProjectPt (EqualAreaAzimuthal)
ProjectPt
Example

Projects the point aPoint. Returns TRUE if aPoint is visible, FALSE otherwise; however, this always returns a point.

Syntax

anEqarazi.ProjectPt (aPoint)

Returns

Boolean


UnProjectPt (EqualAreaAzimuthal)
UnProjectPt
Example

Unprojects the point aPoint. Returns TRUE if aPoint can be unprojected, FALSE otherwise; however, this always returns a point.

Syntax

anEqarazi.UnProjectPt (aPoint)

Returns

Boolean


CalcHorizon (EqualAreaAzimuthal)
CalcHorizon

Calculates the polygon representing the boundary of the visible area of the earth in projected space.

Syntax

anEqarazi.CalcHorizon


Recalculate (EqualAreaAzimuthal)
Recalculate

Updates the internal parameters of the projection. This must be called after changing any parameters of the Lamber Equal-Area Azimuthal projection.

Syntax

anEqarazi.Recalculate


ReturnCentralMeridian (EqualAreaAzimuthal)
ReturnCentralMeridian

Returns the central meridian as a longitude in degrees.

Syntax

anEqarazi.ReturnCentralMeridian

Returns

Number


ReturnReferenceLatitude (EqualAreaAzimuthal)
ReturnReferenceLatitude

Returns the reference latitude in o degrees.

Syntax

anEqarazi.ReturnReferenceLatitude

Returns

Number


SetCentralMeridian (EqualAreaAzimuthal)
SetCentralMeridian
Example

Sets the longitude at which to center the projection. aLongitude is a longitude in degrees.

Syntax

anEqarazi.SetCentralMeridian (aLongitude)


SetReferenceLatitude (EqualAreaAzimuthal)
SetReferenceLatitude
Example

Sets the latitude at which to center the projection. aLatitude is a latitude in degrees.

Syntax

anEqarazi.SetReferenceLatitude (aLatitude)


EqualAreaCylindrical
Discussion	Example

 This class implements the Equal-Area Cylindrical projection.

Inherits From

Prj

Class Requests

Creating Equal-Area Cylindrical Projections

Make ( aRect ) :  EqualAreaCylindrical

Instance Requests

Projecting and unprojecting points

ProjectPt ( aPoint ) :  Boolean

UnProjectPt ( aPoint ) :  Boolean

Equal-Area Cylindrical Parameters

Recalculate

ReturnCentralMeridian  :  Number

ReturnStandardParallel  :  Number

SetBehrmann

SetCentralMeridian ( aLongitude )

SetPeters

SetStandardParallel ( aLatitude )

__________

See also

CoordSys
Spheroid


Make (EqualAreaCylindrical)
Make
Example

Creates an Equal-Area Cylindrical projection. aRect is the bounding rectangle of the area being projected. Use decimal degrees for the coordinates of aRect.

Syntax

Eqarcyl.Make (aRect)

Returns

EqualAreaCylindrical


ProjectPt (EqualAreaCylindrical)
ProjectPt
Example

Projects the point aPoint. Returns TRUE if aPoint is visible, FALSE otherwise; however, this always returns a point.

Syntax

anEqarcyl.ProjectPt (aPoint)

Returns

Boolean


UnProjectPt (EqualAreaCylindrical)
UnProjectPt
Example

Unprojects the point aPoint. Returns TRUE if aPoint can be unprojected, FALSE otherwise; however, this always returns a point.

Syntax

anEqarcyl.UnProjectPt (aPoint)

Returns

Boolean


Recalculate (EqualAreaCylindrical)
Recalculate

Updates the internal parameters of the projection. This must be called after changing any parameters of the Equal-Area Cylindrical projection.

Syntax

anEqarcyl.Recalculate


ReturnCentralMeridian (EqualAreaCylindrical)
ReturnCentralMeridian

Returns the central meridian in degrees.

Syntax

anEqarcyl.ReturnCentralMeridian

Returns

Number


ReturnStandardParallel (EqualAreaCylindrical)
ReturnStandardParallel

Returns the latitude in degrees at which y is 0.

Syntax

anEqarcyl.ReturnStandardParallel

Returns

Number


SetBehrmann (EqualAreaCylindrical)
SetBehrmann

Makes this a Behrmann projection by setting the standard parallel to 30 degrees. (Walther Behrmann, 1910).

Syntax

anEqarcyl.SetBehrmann


SetCentralMeridian (EqualAreaCylindrical)
SetCentralMeridian
Example

Sets the central meridian to aLongitude. aLongitude is a longitude in degrees.

Syntax

anEqarcyl.SetCentralMeridian (aLongitude)


SetPeters (EqualAreaCylindrical)
SetPeters

Makes this a Peters projection by setting the standard parallel to 45 degrees. (Arno Peters, 1967)

Syntax

anEqarcyl.SetPeters


SetStandardParallel (EqualAreaCylindrical)
SetStandardParallel
Example

Sets the latitude at which y is 0. aLatitude is a latitude in degrees.

Syntax

anEqarcyl.SetStandardParallel (aLatitude)


EquidistantAzimuthal
Discussion	Example

 This class implements the Equidistant Azimuthal Projection.

Inherits From

Prj

Class Requests

Creating Equidistant Azimuthal Projections

Make ( aRect ) :  EquidistantAzimuthal

Instance Requests

Projecting and unprojecting points

ProjectPt ( aPoint ) :  Boolean

UnProjectPt ( aPoint ) :  Boolean

Equidistant Azimuthal Parameters

CalcHorizon

Recalculate

ReturnCentralMeridian  :  Number

ReturnReferenceLatitude  :  Number

SetCentralMeridian ( aLongitude )

SetReferenceLatitude ( aLatitude )

__________

See also

CoordSys
Spheroid


Make (EquidistantAzimuthal)
Make
Example

Creates an Equidistant Azimuthal projection. aRect is the bounding rectangle of the area being projected. Use decimal degrees for the coordinates of aRect.

Syntax

Equiazi.Make (aRect)

Returns

EquidistantAzimuthal


ProjectPt (EquidistantAzimuthal)
ProjectPt
Example

Projects the point aPoint. Returns TRUE if aPoint is visible, FALSE otherwise; however, this always returns a point.

Syntax

anEquiazi.ProjectPt (aPoint)

Returns

Boolean


UnProjectPt (EquidistantAzimuthal)
UnProjectPt
Example

Unprojects the point aPoint. Returns TRUE if aPoint can be unprojected, FALSE otherwise; however, this always returns a point.

Syntax

anEquiazi.UnProjectPt (aPoint)

Returns

Boolean


CalcHorizon (EquidistantAzimuthal)
CalcHorizon

Calculates the polygon representing the boundary of the visible area of the earth in projected space.

Syntax

anEquiazi.CalcHorizon


Recalculate (EquidistantAzimuthal)
Recalculate

Updates the internal parameters of the projection. This must be called after changing any parameters of the Equidistant Azimuthal projection.

Syntax

anEquiazi.Recalculate


ReturnCentralMeridian (EquidistantAzimuthal)
ReturnCentralMeridian

Returns the central meridian in degrees.

Syntax

anEquiazi.ReturnCentralMeridian

Returns

Number


ReturnReferenceLatitude (EquidistantAzimuthal)
ReturnReferenceLatitude

Returns the reference latitude in degrees.

Syntax

anEquiazi.ReturnReferenceLatitude

Returns

Number


SetCentralMeridian (EquidistantAzimuthal)
SetCentralMeridian
Example

Sets the longitude at which to center the projection. aLongitude is a longitude in degrees.

Syntax

anEquiazi.SetCentralMeridian (aLongitude)


SetReferenceLatitude (EquidistantAzimuthal)
SetReferenceLatitude
Example

Sets the latitude at which to center the projection. aLatitude is a latitude in degrees.

Syntax

anEquiazi.SetReferenceLatitude (aLatitude)


EquidistantConic
Discussion	Example

 This class implements the Equidistant Conic projection.

Inherits From

Prj

Class Requests

Creating Equidistant Conic Projections

CanDoSpheroid  :  Boolean

Make ( aRect ) :  EquidistantConic

Instance Requests

Projecting and unprojecting points

ProjectPt ( aPoint ) :  Boolean

UnProjectPt ( aPoint ) :  Boolean

Equidistant Conic Parameters

Recalculate

ReturnCentralMeridian  :  Number

ReturnLowerStandardParallel  :  Number

ReturnReferenceLatitude  :  Number

ReturnUpperStandardParallel  :  Number

SetCentralMeridian ( aLongitude )

SetLowerStandardParallel ( aLatitude )

SetReferenceLatitude ( aLatitude )

SetUpperStandardParallel ( aLatitude )

__________

See also

CoordSys
Spheroid


CanDoSpheroid (EquidistantConic)
CanDoSpheroid

Returns TRUE if a class of projections supports arbitrary spheroids and FALSE if it only supports the sphere. The Equicon class always returns TRUE.

Syntax

Equicon.CanDoSpheroid

Returns

Boolean


Make (EquidistantConic)
Make
Example

Creates an Equidistant Conic projection. aRect is the bounding rectangle of the area being projected. Use decimal degrees for the coordinates of aRect.

Syntax

Equicon.Make (aRect)

Returns

EquidistantConic


ProjectPt (EquidistantConic)
ProjectPt
Example

Projects the point aPoint. Returns TRUE if aPoint is visible, FALSE otherwise; however, this always returns a point.

Syntax

anEquicon.ProjectPt (aPoint)

Returns

Boolean


UnProjectPt (EquidistantConic)
UnProjectPt
Example

Unprojects the point aPoint. Returns TRUE if aPoint can be unprojected, FALSE otherwise; however, this always returns a point.

Syntax

anEquicon.UnProjectPt (aPoint)

Returns

Boolean


Recalculate (EquidistantConic)
Recalculate

Updates the internal parameters of the projection. This must be called after changing any parameters of the Equidistant Conic projection.

Syntax

anEquicon.Recalculate


ReturnCentralMeridian (EquidistantConic)
ReturnCentralMeridian

Returns the central meridian in degrees.

Syntax

anEquicon.ReturnCentralMeridian

Returns

Number


ReturnLowerStandardParallel (EquidistantConic)
ReturnLowerStandardParallel

Returns the lower of the two latitudes at which there is no distortion in scale or shape. The return value is in degrees.

Syntax

anEquicon.ReturnLowerStandardParallel

Returns

Number


ReturnReferenceLatitude (EquidistantConic)
ReturnReferenceLatitude

Returns the latitude in degrees at which y is 0.

Syntax

anEquicon.ReturnReferenceLatitude

Returns

Number


ReturnUpperStandardParallel (EquidistantConic)
ReturnUpperStandardParallel

Returns the upper of the two latitudes at which there is no distortion in scale or shape. The return value is in degrees.

Syntax

anEquicon.ReturnUpperStandardParallel

Returns

Number


SetCentralMeridian (EquidistantConic)
SetCentralMeridian
Example

Sets the central meridian to aLongitude. aLongitude is a longitude in degrees.

Syntax

anEquicon.SetCentralMeridian (aLongitude)


SetLowerStandardParallel (EquidistantConic)
SetLowerStandardParallel
Example

Sets the lower of the two latitudes at which there is no distortion in scale or shape. They may not be on opposite sides and equidistant from the equator. aLatitude is in degrees.

Syntax

anEquicon.SetLowerStandardParallel (aLatitude)


SetReferenceLatitude (EquidistantConic)
SetReferenceLatitude
Example

Sets the latitude at which y is 0. aLatitude is a latitude in degrees.

Syntax

anEquicon.SetReferenceLatitude (aLatitude)


SetUpperStandardParallel (EquidistantConic)
SetUpperStandardParallel
Example

Sets the upper of the two latitudes at which there is no distortion in scale or shape. They may not be on opposite sides and equidistant from the equator. aLatitude is in degrees.

Syntax

anEquicon.SetUpperStandardParallel (aLatitude)


EquidistantCylindrical
Discussion	Example

 This class implements the Equidistant Cylindrical projection. The Equidistant Cylindrical map projection is an alternative name for the Plate Carree map projection.

Inherits From

Prj

Class Requests

Creating Equidistant Cylindrical Projections

Make ( aRect ) :  EquidistantCylindrical

Instance Requests

Projecting and unprojecting points

ProjectPt ( aPoint ) :  Boolean

UnProjectPt ( aPoint ) :  Boolean

Equidistant Cylindrical Parameters

Recalculate

ReturnCentralMeridian  :  Number

ReturnReferenceLatitude  :  Number

SetCentralMeridian ( aLongitude )

SetReferenceLatitude ( aLatitude )

__________

See also

CoordSys
Spheroid


Make (EquidistantCylindrical)
Make
Example

Creates an Equidistant Cylindrical projection. aRect is the bounding rectangle of the area being projected. Use decimal degrees for the coordinates of aRect.

Syntax

Equicyl.Make (aRect)

Returns

EquidistantCylindrical


ProjectPt (EquidistantCylindrical)
ProjectPt
Example

Projects the point aPoint. Returns TRUE if aPoint is visible, FALSE otherwise; however, this always returns a point.

Syntax

anEquicyl.ProjectPt (aPoint)

Returns

Boolean


UnProjectPt (EquidistantCylindrical)
UnProjectPt
Example

Unprojects the point aPoint. Returns TRUE if aPoint can be unprojected, FALSE otherwise; however, this always returns a point.

Syntax

anEquicyl.UnProjectPt (aPoint)

Returns

Boolean


Recalculate (EquidistantCylindrical)
Recalculate

Updates the internal parameters of the projection. This must be called after changing any parameters of the Equidistant Cylindrical projection.

Syntax

anEquicyl.Recalculate


ReturnCentralMeridian (EquidistantCylindrical)
ReturnCentralMeridian

Returns the central meridian in degrees.

Syntax

anEquicyl.ReturnCentralMeridian

Returns

Number


ReturnReferenceLatitude (EquidistantCylindrical)
ReturnReferenceLatitude

Returns the latitude in degrees at which y is 0.

Syntax

anEquicyl.ReturnReferenceLatitude

Returns

Number


SetCentralMeridian (EquidistantCylindrical)
SetCentralMeridian
Example

Sets the central meridian to aLongitude. aLongitude is a longitude in degrees.

Syntax

anEquicyl.SetCentralMeridian (aLongitude)


SetReferenceLatitude (EquidistantCylindrical)
SetReferenceLatitude
Example

Sets the latitude at which y is 0. aLatitude is a latitude in degrees.

Syntax

anEquicyl.SetReferenceLatitude (aLatitude)


EventDialog

 EventDialog is the modal dialog box used to create event themes. Supported event themes are X-Y events and point and line dynamic segmentation events. Each event theme has its own choices within the EventDialog. For more on dynamic segmentation events, refer to the DynName request.

Inherits From

ModalDialog

Class Requests

Showing an EventDialog

Show ( aView ) :  FTab


Show (EventDialog)
Show

 Shows the event dialog box, allowing the user to set parameters to make an event theme.

Syntax

EventDialog.Show (aView)

Returns

FTab


Extension
Discussion

 An extension is a kind of object database that can be used to provide new functionality to ArcView without altering existing projects and to permit multiple individuals to contribute without conflict to a single ArcView-based development effort.

Inherits From

ODB

Class Requests

Managing Extensions

Find ( aNameOrFileName ) :  Extension

GetDocs  :  NameDictionary

GetExplicitExtensions  :  NameDictionary

GetExtensions  :  NameDictionary

GetGUIs  :  NameDictionary

GetScripts  :  NameDictionary

Make ( aFileName, Name, InstallScript, UninstallScript, Dependencies ) :  Extension

Open ( aFileName ) :  Extension

Finding things in any loaded extension

FindByName ( aName ) :  Obj

FindDoc ( aDocName ) :  Doc

FindGUI ( aGUIName ) :  DocGUI

FindGUIsFor ( aDocClass ) :  List

Instance Requests

Managing Extensions

AddDefaultOwner

CanUnload  :  Boolean

RemoveDefaultOwner

Unload  :  Boolean

Getting and Setting Attributes

GetAbout  :  String

GetCanUnloadScript  :  Script

GetExtVersion  :  Number

GetInstallScript  :  Script

GetLoadScript  :  Script

GetPreferences  :  Dictionary

GetProjectSaveScript  :  Script

GetUninstallScript  :  Script

GetUnloadScript  :  Script

IsADependency  :  Boolean

SetAbout ( aboutString )

SetCanUnloadScript ( aScript )

SetExtVersion ( aVersionNumber )

SetInstallScript ( aScript )

SetLoadScript ( aScript )

SetProjectSaveScript ( aScript )

SetUninstallScript ( aScript )

SetUnloadScript ( aScript )

__________

See also

Application
Project
ExtensionWin


Find (Extension)
Find

Looks for a loaded extension that came from aFileName or is currently named aName. If such an extension is found, it is returned, else nil is returned.

Syntax

Extension.Find (aNameOrFileName)

Returns

Extension


GetDocs (Extension)
GetDocs

Returns a name dictionary of all documents from all loaded extensions. This dictionary should be considered read-only.

Syntax

Extension.GetDocs

Returns

NameDictionary


GetExplicitExtensions (Extension)
GetExplicitExtensions

Returns a name dictionary of extensions that were explicitly loaded by the user.

Syntax

Extension.GetExplicitExtensions

Returns

NameDictionary


GetExtensions (Extension)
GetExtensions

Returns a name dictionary of extensions. The dictionary keys are the current names of the extensions. This dictionary should be considered read-only.

Syntax

Extension.GetExtensions

Returns

NameDictionary


GetGUIs (Extension)
GetGUIs

Returns a name dictionary of all GUIs from all loaded extension. This dictionary should be considered read-only.

Syntax

Extension.GetGUIs

Returns

NameDictionary


GetScripts (Extension)
GetScripts

Returns the name dictionary of scripts that belong to all the currently loaded extensions. This dictionary should be considered read-only.

Syntax

Extension.GetScripts

Returns

NameDictionary


Make (Extension)
Make
Discussion

Creates an extension object data base called Name which will be written to aFileName when it is committed. InstallScript and UninstallScript are script objects or are nil. Dependencies is a list of shared libraries or other extensions upon which this extension will be dependent.

Syntax

Extension.Make (aFileName, Name, InstallScript, UninstallScript, Dependencies)

Returns

Extension


Open (Extension)
Open

Opens the extension object data base specified by aFileName. The load and install scripts, if defined, are executed in that order. The SELF object for both scripts is the extension being opened.

Syntax

Extension.Open (aFileName)

Returns

Extension


FindByName (Extension)
FindByName

Searches the roots of all loaded extensions for an object named aName. The search is linear.

Syntax

Extension.FindByName (aName)

Returns

Obj


FindDoc (Extension)
FindDoc

Returns the Doc whose name is aDocName, or nil if none if found.

Syntax

Extension.FindDoc (aDocName)

Returns

Doc


FindGUI (Extension)
FindGUI

Returns the DocGUI whose name is aDocGUIName, or nil of none is found.

Syntax

Extension.FindGUI (aGUIName)

Returns

DocGUI


FindGUIsFor (Extension)
FindGUIsFor

Returns the guis in all loaded extensions that can be used with aDocClass.

Syntax

Extension.FindGUIsFor (aDocClass)

Returns

List


AddDefaultOwner (Extension)
AddDefaultOwner

Makes the extension owned by default. An extension will not be written to a project's or other odb's dependency list when it has an owner. Do not assign a default owner if the extension installs persistent objects to the user interface. Use with caution. The extension cannot be unloaded when a default owner is added. To unload the extension, first remove the default owner with the request RemoveDefaultOwner.

Syntax

anExtension.AddDefaultOwner


CanUnload (Extension)
CanUnload

Executes anExtension's CanUnload script and forwards that result. The result will be TRUE if anExtension can be unloaded, and FALSE if it can't be.

This request is sent by ArcView to all loaded extension in the following contexts: when the user has the Extension dialog open and moves the mouse into that dialog; when the Unload request is sent to an extension.

Syntax

anExtension.CanUnload

Returns

Boolean


RemoveDefaultOwner (Extension)
RemoveDefaultOwner

Removes the default owner from the extension. The extension will not be written to a project's or other odb's dependency list when it has an owner. Use with caution.

Syntax

anExtension.RemoveDefaultOwner


Unload (Extension)
Unload

Executes anExtension's CanUnload script and conditionally executes its UnInstall and Unload scripts. If the CanUnload script returns TRUE, then the UnInstall and Unload scripts are executed and anExtension is removed from memory. The process is then repeated for all extensions that it was dependent upon. If the extension is succesfully unloaded, this request returns TRUE. If the extension was not loaded, or couldn't be unloaded, the request returns FALSE.

Syntax

anExtension.Unload

Returns

Boolean


GetAbout (Extension)
GetAbout
Discussion

Returns the string that will be displayed to a user then they press the About button in the Extension dialog.

Syntax

anExtension.GetAbout

Returns

String


GetCanUnloadScript (Extension)
GetCanUnloadScript
Discussion

Returns the script that will be executed to determine if anExtension can be unloaded or not.

Syntax

anExtension.GetCanUnloadScript

Returns

Script


GetExtVersion (Extension)
GetExtVersion
Discussion

Returns the version number of the contents of anExtension. Do not confuse this request with GetVersion. The latter returns the version number of the ODB file format.

Syntax

anExtension.GetExtVersion

Returns

Number


GetInstallScript (Extension)
GetInstallScript
Discussion

Returns the script that will be executed when anExtension needs to be installed (see SetInstallScript).

Syntax

anExtension.GetInstallScript

Returns

Script


GetLoadScript (Extension)
GetLoadScript
Discussion

Returns the script that will be executed when anExtension is loaded.

Syntax

anExtension.GetLoadScript

Returns

Script


GetPreferences (Extension)
GetPreferences
Discussion

Returns the project-specific dictionary of user preferences for anExtension. You may add or remove elements from this dictionary. Do not store a reference to this dictionary that would last across multiple script executions, since different dictionaries will be returned for each project that is loaded while the extension is active.

Syntax

anExtension.GetPreferences

Returns

Dictionary


GetProjectSaveScript (Extension)
GetProjectSaveScript
Discussion

Returns the script that will be executed whenever a project is saved while anExtension is loaded.

Syntax

anExtension.GetProjectSaveScript

Returns

Script


GetUninstallScript (Extension)
GetUninstallScript
Discussion

Returns the script that will be executed when anExtension needs to be uninstalled (see SetUninstallScript).

Syntax

anExtension.GetUninstallScript

Returns

Script


GetUnloadScript (Extension)
GetUnloadScript
Discussion

Returns the script that will be executed when anExtension is unloaded.

Syntax

anExtension.GetUnloadScript

Returns

Script


IsADependency (Extension)
IsADependency
Discussion

Returns TRUE when anExtension is an explicit dependency of some other extension. An explicit dependency is one defined in the Make request of the latter extension. In particular, anExtension is never an explicit dependency of a project.

Syntax

anExtension.IsADependency

Returns

Boolean


SetAbout (Extension)
SetAbout
Discussion

Sets the string that describes anExtension.

Syntax

anExtension.SetAbout (aboutString)


SetCanUnloadScript (Extension)
SetCanUnloadScript
Discussion

Sets the script that will be executed to determine if anExtension can be unloaded or not. This script should return either TRUE or FALSE. Pass in the nil object to remove any current uninstall script.

Syntax

anExtension.SetCanUnloadScript (aScript)


SetExtVersion (Extension)
SetExtVersion
Discussion

Sets the version of the contents of anExtension. aVersionNumber should be an integer in the range -32000 .. 32000.

Syntax

anExtension.SetExtVersion (aVersionNumber)


SetInstallScript (Extension)
SetInstallScript
Discussion

Sets the script that will be executed when anExtension needs to be installed into the current project. This happens when a new project is created, or an existing project is opened. If you want to load an extension programmatically, send the Install request to an extension after opening it. Pass in the nil object remove any current install script

Syntax

anExtension.SetInstallScript (aScript)


SetLoadScript (Extension)
SetLoadScript
Discussion

Sets the script that will be executed once when anExtension is loaded. This happens when the Open request is sent to the Extension class. Pass in the nil object to remove any current load script

Syntax

anExtension.SetLoadScript (aScript)


SetProjectSaveScript (Extension)
SetProjectSaveScript
Discussion

Sets the script that will be be executed whenever a project is saved while anExtension is loaded.

Syntax

anExtension.SetProjectSaveScript (aScript)


SetUninstallScript (Extension)
SetUninstallScript
Discussion

Sets the script that will be executed when anExtension needs to be removed from the current project. Pass in the nil object to remove any current uninstall script.

Syntax

anExtension.SetUninstallScript (aScript)


SetUnloadScript (Extension)
SetUnloadScript
Discussion

Sets the script that will be executed once when anExtension is unloaded. Pass in the nil object remove any current unload script.

Syntax

anExtension.SetUnloadScript (aScript)


ExtensionObject
Discussion

 ExtensionObject is an abstract super class that defines a means for ESRI's extension products (Spatial Analyst, Network Analyst, Data base themes) to add properties to existing ArcView classes. ExtensionObject subclasses are used to store ArcView extension product's specific environments with Documents, Themes, Legends and Srcs. ExtensionObject's subclasses are DocumentExtension, LegendExtension, SrcExtension and ThemeExtension. These subclasses are also abstract classes. Each Extension product defines subclasses of these four classes that define the special properties and environment.

For example, the Spatial Analyst requires special properties on the View document. So Spatial Analyst defines a new class subclass of DocumentExtension called AnalysisEnvironment. The AnalysisEnvironment includes the definition of the grid cell size, the extent and the mask. You can access these properties from the View with the request GetExtension and pass it the class AnalysisEnvironment. This returns the AnalysisEnvironment object for this View.

 analysisEnv = myView.GetExtension( AnalysisEnvironment )
 cellsize = 0
 analysisEnv.GetCellSize(cellsize)

You use ExtensionObjects when you want to access particular properties included by ESRI's extension products.

Inherits From

Obj

Inherited By

DocumentExtension
LegendExtension
SrcExtension
ThemeExtension

__________

See also

Doc
Legend
Theme


ExtensionWin
Discussion

 The ExtensionWin is a modal dialog that allows users to load and unload extensions. The ExtensionWin lists all the extensions in the directories identified by $AVEXT and $USEREXT. You can change the directories that these environment variables reference. Load an extension by checking the check box next to its name. Unload an extension by unchecking the check box. When you hit OK, the specified load and unload states will be resolved. An extension that cannot be unloaded has a hollow check mark and an extension that can be unloaded has a solid check mark.

The ExtensionWin has a list box showing names of available extensions. At the bottom is a read-only text field showing a description for the currently selected extension. On the right side are 4 buttons. The OK button commits the current state and causes any changes to occur, and the Cancel button closes the dialog with no changes. The MakeDefault button saves the current state of the list to the user's default.apr after the user hits OK, The Reset button restores the list to the one last saved in the user's default.apr.

Inherits From

ModalDialog

Instance Requests

Managing the ExtensionWin

Show  :  Boolean

__________

See also

Extension
Project


Show (ExtensionWin)
Show

Opens theExtensionWin and allows the user to interact with it. Returns TRUE if the user pressed the OK button, FALSE otherwise.

Syntax

theExtensionWin.Show

Returns

Boolean


Field

 A Field is the definition of a field of a VTab or FTab. Fields are sometimes referred to as attributes, items, or columns. A field defines what kind of values can be stored in the field, such as numbers, strings, dates, or points. A field may also define the width or precision of the values.

A Field affects how it is displayed when the VTab is displayed in a Table. A Field can have an alias and be either visible or invisible.

A VTab has a GetFields request to get a list of the fields. Each value in a VTab can be accessed with a record number and a field.

Attributes

Alias.The Alias is the visible name of the Field in a table. A Field always has an Alias. If the Alias and the Name are the same, the Table Properties dialog will show the Alias as blank.

Name.The Name is the true name of the Field on disk. dBASE and INFO have some limits on acceptable Field names.

PixelWidth.The PixelWidth is the number of pixels used to display the field on the table.

Precision.The Precision is the decimal precision of the Field.

Status.See FieldStatusEnum for a list of possible states.

Type.The Type is the data type of the Field. See FieldTypeEnum for a list of possible data types. Not all tabular file formats support all types. An FTab supports a single Shape field.

TypeNumber.TypeNumber is whether the Field can be used as a numeric Field in legends, charts, summaries, etc.

TypeString.TypeString is whether the Field can be used as a string Field in legends, summaries, etc.

TypeShape.TypeShape is whether the Field can be used as a shape Field in summaries, editing, etc.

Width.The Width is the number of characters the data in the Field occupies. The decimal point and negative sign (if applicable) in a number must be considered in the field width (for example, -1.23456 has a field width of 8).

Inherits From

Obj

Enumerations

FieldStatusEnum

FieldEnum

Class Requests

Making Fields

Make ( aName, aFieldType, aWidth, aPrecision ) :  Field

Instance Requests

Getting Field Type

GetType  :  FieldEnum

IsTypeNumber  :  Boolean

IsTypeShape  :  Boolean

IsTypeString  :  Boolean

Getting and Setting Attributes

Clone  :  Field

Copy ( anotherField )

GetAlias  :  String

GetPixelWidth  :  Number

GetPrecision  :  Number

GetStatus  :  FieldStatusEnum

GetWidth  :  Number

IsEditable  :  Boolean

IsRedefined  :  Boolean

IsVisible  :  Boolean

SetAlias ( aString )

SetEditable ( isEditable )

SetPixelWidth ( aWidth )

SetVisible ( isVisible )

SetWidth ( aWidth )

__________

See also

FTab
VTab


Make (Field)
Make

Makes a Field named aName, of type aFieldType, with the display width aWidth and decimal precision aPrecision.

For numeric fields, aWidth includes a count for the decimal point and the negative sign (if applicable); the field containing -23.4567 is 8 wide with precision 4. For non-numeric fields, aPrecision must be 0.

Syntax

Field.Make (aName, aFieldType, aWidth, aPrecision)

Returns

Field


GetType (Field)
GetType

Gets the type of aField.

Syntax

aField.GetType

Returns

FieldEnum


IsTypeNumber (Field)
IsTypeNumber

Returns TRUE if aField is represented as a number, otherwise returns FALSE.

Syntax

aField.IsTypeNumber

Returns

Boolean


IsTypeShape (Field)
IsTypeShape

Returns TRUE if aField values correspond to shapes, otherwise returns FALSE.

Syntax

aField.IsTypeShape

Returns

Boolean


IsTypeString (Field)
IsTypeString

Returns TRUE if aField is represented as a string, otherwise returns FALSE.

Syntax

aField.IsTypeString

Returns

Boolean


Clone (Field)
Clone

Clones aField. Creates a new field object identical to aField.

Syntax

aField.Clone

Returns

Field


Copy (Field)
Copy

Copies the attributes of anotherField to aField. Note that the data in anotherField is not copied to aField.

Syntax

aField.Copy (anotherField)


GetAlias (Field)
GetAlias

Gets the alias of aField.

Syntax

aField.GetAlias

Returns

String


GetPixelWidth (Field)
GetPixelWidth

Gets the pixel width of aField. The PixelWidth is the number of pixels used to display the field on the table.

Syntax

aField.GetPixelWidth

Returns

Number


GetPrecision (Field)
GetPrecision

Gets the decimal precision of aField.

Syntax

aField.GetPrecision

Returns

Number


GetStatus (Field)
GetStatus

Gets the status of aField.

Syntax

aField.GetStatus

Returns

FieldStatusEnum


GetWidth (Field)
GetWidth

Gets the width of aField.

Syntax

aField.GetWidth

Returns

Number


IsEditable (Field)
IsEditable

Returns TRUE if the values in aField can be modified, otherwise returns FALSE.

Syntax

aField.IsEditable

Returns

Boolean


IsRedefined (Field)
IsRedefined

Returns TRUE if aField is an INFO redefined field, otherwise returns FALSE.

Syntax

aField.IsRedefined

Returns

Boolean


IsVisible (Field)
IsVisible

Returns TRUE if aField is visible in the table, otherwise returns FALSE.

Syntax

aField.IsVisible

Returns

Boolean


SetAlias (Field)
SetAlias

Sets the alias of aField to aString.

Syntax

aField.SetAlias (aString)


SetEditable (Field)
SetEditable

Sets whether values in aField can be modified to isEditable. This request is only valid when the vtab that the field belongs to is in an editable state.

Syntax

aField.SetEditable (isEditable)


SetPixelWidth (Field)
SetPixelWidth

Sets the pixel width of aField to aWidth. The PixelWidth is the number of pixels used to display the field on the table. Execute the Refresh request on the VTab to apply the new field pixel width to the table.

Syntax

aField.SetPixelWidth (aWidth)


SetVisible (Field)
SetVisible

Sets whether aField appears in a table to isVisible.

Syntax

aField.SetVisible (isVisible)


SetWidth (Field)
SetWidth

Sets the output width of aField to aWidth. You must include the decimal point in the field width of a number; the field displaying 123.4567 is 8 wide.

Syntax

aField.SetWidth (aWidth)


FieldStatusEnum

 The status indicates changes in the presence of field in a table that has been refreshed or reloaded from disk.

#FIELD_STATUS_DELETED

The field has been deleted with ArcView.

#FIELD_STATUS_MISSING

The field has been deleted with some other program.

#FIELD_STATUS_NEW

The field has been added.

#FIELD_STATUS_OLD

The field hasn't changed since the last time the project was saved.


FieldEnum

 The values of this enumeration represent the various types of values that can be stored in a table. Different tabular data formats may not support all possible field types.

#FIELD_BYTE

Integer stored as one binary byte.

#FIELD_CHAR

String stored in a fixed length format.

#FIELD_DATE

Date stored with format 'yyyyMMdd'. Avenue date objects are returned from this field.

#FIELD_DECIMAL

Real number stored as binary coded decimal.

#FIELD_DOUBLE

Real number stored as eight binary bytes.

#FIELD_FLOAT

Real number stored as four binary bytes.

#FIELD_ISODATE

Date stored as character string with format 'yyyy-MM-dd'. Avenue string objects are returned from this field.

#FIELD_ISODATETIME

Date and time stored as character string with format 'yyyy-MM-dd hhh:m:s'. Avenue string objects are returned from this field.

#FIELD_ISOTIME

Time stored as character string with format 'hhh:m:s'. Avenue string objects are returned from this field.

#FIELD_LOGICAL

Boolean stored as one character.

#FIELD_LONG

Integer stored as four binary bytes.

#FIELD_MONEY

Real number stored as character string with exactly four digits after the decimal point.

#FIELD_SHAPELINE

Polyline stored in a shapefile or coverage. This enumeration is returned when the aField.GetType request is used on a shapeline field. It cannot be used to create a new field of type shapeline.

#FIELD_SHAPEMULTIPOINT

MultiPoint stored in a shapefile. This enumeration is returned when the aField.GetType request is used on a shapemultipoint field. It cannot be used to create a new field of type shapemultipoint.

#FIELD_SHAPEPOINT

Point stored in a shapefile or coverage. This enumeration is returned when the aField.GetType request is used on a shapepoint field. It cannot be used to create a new field of type shapepoint.

#FIELD_SHAPEPOLY

Polygon stored in a shapefile or coverage. This enumeration is returned when the aField.GetType request is used on a shapepoly field. It cannot be used to create a new field of type shapepoly.

#FIELD_SHORT

Integer stored as two binary bytes.

#FIELD_UNSUPPORTED

A field type not supported by the tabular data format.

#FIELD_BLOB

Blobs stored in a database. This enumeration only applies to the Database Access extension.

#FIELD_VCHAR

Character string stored with variable length.


FileDialog

 FileDialog displays a list of files and directories allowing the user to navigate the directory tree to select or specify a file or files. The Show request allows the user to select a single file that exists in the directory tree. ReturnFiles allows the user to select one or more files. Put allows the user to specify a file for output.

Subset the list of files in the dialog window by specifying a pattern or patterns. For example, given the pattern *.ave, the FileDialog shows only files ending with the extension "ave" in the file dialog window.

Inherits From

ModalDialog

Class Requests

FileDialog

Put ( defaultFileName, aPattern, FileWinTitle ) :  FileName

ReturnFiles ( Patterns, Labels, aTitle, defaultPatternIndex ) :  List

Show ( aPattern, aPatternLabel, FileTitle ) :  FileName

__________

See also

FileName


Put (FileDialog)
Put

 Creates a file window for making new files. The FileName defaultFileName serves as the default value. The path of the defaultFileName is the beginning directory for the Put. aPattern defines the pattern for similar files. Use an asterisk as a wild card character ("*.ave"). FileWinTitle is the file window title. If no title is specified, it defaults to Save. If the user names or selects a file then clicks OK, Put returns a FileName for that file. If the user names an existing file, Put queries to replace the existing file. If the user clicks Cancel, Put returns nil.

Syntax

FileDialog.Put (defaultFileName, aPattern, FileWinTitle)

Returns

FileName


ReturnFiles (FileDialog)
ReturnFiles

 Allows the user to select one or more files and returns the list of chosen files. Patterns is a list of patterns that defines default pattern types. A pattern contains an asterisk for the wildcard. In the example below, there are 3 patterns in the pattern list.

    { "*.c", "*.ave", "*.tmp"}

Labels is a list of mnemonic names that appear in the file chooser corresponding to the list of patterns. There must be a one-to-one correspondence between patterns and labels. The following label list aligns with the pattern example above.

{ "C Programs (*.c)", "Avenue Source (*.ave)", "Temporary files (*.tmp)" }

aTitle is the title string that appears in the file dialog.

defaultPatternIndex is the list index number that identifies the default pattern. Hence the first pattern is referenced by 0 and the last by N -1 (N is the number of patterns in the list). For the example above, set the defaultPatternIndex to 1 to make "Avenue Scripts" the default file type.

If the user selects one or more files, ReturnFiles returns a list of FileNames for those selections. If the user selects Cancel, an empty list is returned.

Syntax

FileDialog.ReturnFiles (Patterns, Labels, aTitle, defaultPatternIndex)

Returns

List


Show (FileDialog)
Show

Creates a File Window which lets the user choose an existing file. aPattern identifies a subset of files to list; an asterisk is the wildcard - "*.ave". aPatternLabel is the mnemonic name for aPattern. For example, if my pattern is "*.ave", the label might be "Avenue". FileTitle is the file window title. If no title is specified, it defaults to "OPEN". If the user names or selects a file and clicks OK, Show returns the FileName for the file. If the user names a file that does not exist and then clicks OK, Show does not return from the dialog box. If the user clicks Cancel, Show returns nil.

Syntax

FileDialog.Show (aPattern, aPatternLabel, FileTitle)

Returns

FileName


FileName
Related Topics

 A FileName is a machine-independent representation of a filename. FileNames are created by specifying strings which are legal pathnames in some host machine syntax. On UNIX systems, such strings may contain the ' ', ., and .. components, and may also contain leading environment variables. ArcView understands the forward slash delimiter on on ALL platforms. You can create platform independent FileNames using environment variables and forward slash delimiters.

The request GetFullName returns the simplest absolute path specification for the receiver FileName. For example, if a FileName is created with the string "$HOME/data/mycov", then GetFullName returns the string "/mustang/jimt/data/mycov", assuming an environment variable HOME exists and is set to /mustang/jimt.

When using GetFullName on an FileName object which was created from a relative path name, the current directory is used to complete the name. For example,

    f = "wow.txt".AsFileName
    MsgBox.Info(f.GetFullName, "")

shows a string which prefixes the current directory to the name "wow.txt". Since the current directory changes as you browse for files, projects, data sources, etc., this script produces different FileNames, and thus different results for GetFullName, depending upon what the user does in between script executions.

The current directory and the project's work directory serve different roles. The current directory is the last directory from which you accessed files through the source browser or the file browser. Access the current directory with requests GetCWD and SetCWD. The project's work directory defaults to $HOME and provides a common "place" to write pertinent files. The project's work directory may be accessed with Project requests SetWorkDir and GetWorkDir.

Normally, the existence of a FileName object does not imply the existence of a corresponding File object. However, some requests are provided which do carry this extra restriction. See descriptions of GetSearchPaths, MakeExisting, and ExistsInPaths in the class requests section. Also, the FILE class requests Exists and IsWritable allow you to interrogate the state of the associated file. The FILE class requests COPY and DELETE also impact the actual file.

Saving Filenames

By default, when a FileName object is stored in an object database, any embedded separator characters are converted to UNIX separator characters. This action may be prevented by using the class request FileName.SetSaveAsUNIX(false).

Attributes

Name. Name is the complete pathname of the FileName. Name may include an environment variable.

Full Name. Full Name expands a relative name. If the environment variable $AVHOME was set to /mustang/arcview, then the Full Name for $AVHOME/etc/banner would be /mustang/arcview/etc/banner.

Base Name. The file's base name is the name of the file without any pathname. For example, script1.ave is the base name of the FileName /mustang/jim/scripts/script1.ave.

Extension. Extension is the set of characters following a "." in the file's base name. For example, ave is the extension for the base name script1.ave.

Current Directory. The current directory is the last specified directory. Browsing through files or data sources alters the current directory. Relative file names use the current directory to complete the file specification.

Inherits From

Obj

Class Requests

Creating FileNames

FindInSystemSearchPath ( aFile ) :  FileName

GetCWD  :  FileName

GetTmpDir  :  FileName

Make ( aFileString ) :  FileName

Merge ( aPath, aFile ) :  FileName

Search paths

ExistsInPaths ( aRelFileName ) :  Boolean

GetSearchPaths  :  List

MakeExisting ( aString ) :  FileName

SetSearchPaths ( aFileNameList )

UniqueInPaths ( aRelFileName ) :  Boolean

Storing FileNames

GetSaveAsUNIX  :  Boolean

SetSaveAsUNIX ( asUNIX )

Instance Requests

Temporary Name Generation

MakeTmp ( aPrefix, anExt ) :  FileName

Comparing FileNames

= anotherFileName :  Boolean

Getting and Setting FileName parts

AsString  :  String

GetBaseName  :  String

GetExtension  :  String

GetFullName  :  String

GetName  :  String

LowerCase

SetExtension ( anExt )

SetName ( aName )

StripFile

Querying and Altering FileNames

IsDir  :  Boolean

IsFile  :  Boolean

IsRoot  :  Boolean

ReturnDir  :  FileName

Manipulating FileNames

Copy ( srcFileName )

MergeFile ( aFileString )

MergePath ( aFileString )

SetCWD

Reading Directories

Read ( aFilter ) :  List

ReadFiles ( aFilter ) :  List

__________

See also

File
ODB
String


FindInSystemSearchPath (FileName)
FindInSystemSearchPath

 Creates a FileName after locating the first instance of the file using the system dependent search sequence. If the file is not located, returns NULL. The search rules are OS dependent.

Syntax

FileName.FindInSystemSearchPath (aFile)

Returns

FileName


GetCWD (FileName)
GetCWD

 Creates a FileName which is the current working directory.

Syntax

FileName.GetCWD

Returns

FileName


GetTmpDir (FileName)
GetTmpDir

 Creates a FileName which is the default system directory for temporary files.

Syntax

FileName.GetTmpDir

Returns

FileName


Make (FileName)
Make

 Creates a FileName from aFileString. Also, see the string request AsFileName. These Avenue statements are equivalent.

  File1 = "$HOME/data/test.data".AsFileName
  File1 = FileName.Make( "$HOME/data/test.data" )

Syntax

FileName.Make (aFileString)

Returns

FileName


Merge (FileName)
Merge

 Creates a FileName from aPath and aFile.

Syntax

FileName.Merge (aPath, aFile)

Returns

FileName


ExistsInPaths (FileName)
ExistsInPaths

 Returns TRUE when aString, concatenated to some path in the current search path list, produces the name of an existing file.

Syntax

FileName.ExistsInPaths (aRelFileName)

Returns

Boolean


GetSearchPaths (FileName)
GetSearchPaths

 Gets a list of FileNames which are directories to be examined for files specified as relative paths. This list may be manipulated with existing List routines. Be careful to add only FileNames to to this list. The request UniqueInPaths assumes that only unique directory names exist in this list.

Syntax

FileName.GetSearchPaths

Returns

List


MakeExisting (FileName)
MakeExisting

 Uses the current search path list to create a complete path specification to an existing file. This routine fails if aString cannot be appended to any path in the search path list to produce the name of an existing file.

Syntax

FileName.MakeExisting (aString)

Returns

FileName


SetSearchPaths (FileName)
SetSearchPaths

 Sets the list of search paths to be aFileNameList. aFileNameList is assumed to contain only FileName objects.

Syntax

FileName.SetSearchPaths (aFileNameList)


UniqueInPaths (FileName)
UniqueInPaths

 Returns TRUE when aString, concatenated to exactly one path in the current search path list, produces the name of an existing file. This request assumes that the current search path list has only unique path names in it. FileName.GetSearchPaths.RemoveDuplicates is a good way of ensuring this.

Syntax

FileName.UniqueInPaths (aRelFileName)

Returns

Boolean


GetSaveAsUNIX (FileName)
GetSaveAsUNIX

Returns TRUE when FileName objects will be converted to UNIX-style when being saved to an ODB. Returns FALSE when platform-specific separator characters will be left intact.

Syntax

Filename.GetSaveAsUNIX

Returns

Boolean


SetSaveAsUNIX (FileName)
SetSaveAsUNIX

When saving a FileName object to an ODB, the default behavior is to convert platform specific separator characters to UNIX separator characters. This behavior can be disabled by issuing this request with asUNIX set to FALSE.

Syntax

FileName.SetSaveAsUNIX (asUNIX)


MakeTmp (FileName)
MakeTmp

 Creates a FileName object using the prefix specifed in aPrefix and file extension specifed by anExt based upon other files in the directory identified by aDirName. The user must have write access to aDirName or else there will be an error message. The FileName has the name <aPrefix><n>.<anExt>; for example, test2.txt. aPrefix is truncated to its first six characters. anExt is the extension.

ArcView checks the directory aDirName for files that match the truncated prefix and the extension and then creates a new FileName object with the lowest number unused in the sequence. For example, if there are no files named test<n>.txt in the directory, this script creates a FileName called test1.txt. If there are files test2.txt, text3.txt, test4.txt, it creates the name test1.txt. If there are files test1.txt, test2.txt, test3.txt, it creates the name test4.txt.

  newFN = aDirName.MakeTmp( "test", "txt" )

If you want the file created from this filename to be automatically deleted when you close it, use the File request SetScratch.

Syntax

aDirName.MakeTmp (aPrefix, anExt)

Returns

FileName


= (FileName)
=

 Returns TRUE when aFileName and anotherFileName are the same object or reference the same file.

Syntax

aFileName = anotherFileName

Returns

Boolean


AsString (FileName)
AsString

Returns the full pathname for aFileName. AsString does not resolve an environment variable. This is the same as the request GetName.

Syntax

aFileName.AsString

Returns

String


GetBaseName (FileName)
GetBaseName

 Gets the base name of aFileName. For the file /mustang/scripts/test.ave, the base name is test.ave.

Syntax

aFileName.GetBaseName

Returns

String


GetExtension (FileName)
GetExtension

 Gets the extension of aFileName For the file /mustang/scripts/test.ave, the extension is ave.

Syntax

aFileName.GetExtension

Returns

String


GetFullName (FileName)
GetFullName

 Gets aFileName's absolute file name. GetFullName expands any environment variable to the actual path. The Name may be $AVHOME/etc/banner; GetFullName returns /mustang/arcview/etc/banner if $AVHOME is /mustang/arcview.

Syntax

aFileName.GetFullName

Returns

String


GetName (FileName)
GetName

 Gets the (possibly relative) file name of aFileName. GetName does not resolve environment variables.

Syntax

aFileName.GetName

Returns

String


LowerCase (FileName)
LowerCase

 Converts aFileName to lower case.

Syntax

aFileName.LowerCase


SetExtension (FileName)
SetExtension

 Sets aFileName's extension to anExt. anExt should not have a '.' in it. Any existing extension of aFileName will be stripped off.

Syntax

aFileName.SetExtension (anExt)


SetName (FileName)
SetName

 Changes the name of aFileName to aName. aName can be a relative or absolute file name. SetName changes both the Name and FullName properties of aFileName to aName.

Syntax

aFileName.SetName (aName)


StripFile (FileName)
StripFile

 Removes the basename from aFileName so that it references the directory. StripFile alters aFileName. In the example below, the string "$AVDATA/namerica/usa" displays in the message box.

 f = "$AVDATA/namerica/usa/usa".AsFileName
 f.StripFile
 msgbox.info( f.GetName, "" )

Syntax

aFileName.StripFile


IsDir (FileName)
IsDir

 Returns TRUE when aFileName is a directory.

Syntax

aFileName.IsDir

Returns

Boolean


IsFile (FileName)
IsFile

 Returns TRUE when aFileName is a file and not a directory.

Syntax

aFileName.IsFile

Returns

Boolean


IsRoot (FileName)
IsRoot

 Returns TRUE when aFileName is the root level directory.

Syntax

aFileName.IsRoot

Returns

Boolean


ReturnDir (FileName)
ReturnDir

 Returns a new FileName which is the directory portion of aFileName.

Syntax

aFileName.ReturnDir

Returns

FileName


Copy (FileName)
Copy

Makes aFileName be the same as srcFileName. This request does not copy a disk file, it operates only on aFileName itself.

Syntax

aFileName.Copy (srcFileName)


MergeFile (FileName)
MergeFile

 Merges aFileName with aFileString. This request appends aFileString to the Name in aFileName.

Syntax

aFileName.MergeFile (aFileString)


MergePath (FileName)
MergePath

 Merges aFilename with aFileString assuming the result is another path. This request removes any trailing /.

Syntax

aFileName.MergePath (aFileString)


SetCWD (FileName)
SetCWD

 Sets the system's current directory to aFileName.

Syntax

aFileName.SetCWD


Read (FileName)
Read

 Opens aFileName (assumed to be a directory), reads the contents and returns a list of FileName objects identifying the files and directories contained in aFileName. aFilter is a pattern with wildcards identifying a subset of files. Only the file names are compared against aFilter; all directories are included in the list.

Syntax

aFileName.Read (aFilter)

Returns

List


ReadFiles (FileName)
ReadFiles

 Same as aFileName.Read, but only files are included in the returned list.

Syntax

aFileName.ReadFiles (aFilter)

Returns

List


FTab
Related Topics

 A feature table (FTab) stores attribute and shape information on a set of features. An FTab is a kind of VTab in which each record, in addition to storing normal relational-style data, also stores a geographic feature. This feature is present in the "Shape" field of each record. The types of shapes supported are Point, PolyLine, Polygon and MultiPoint.

Feature tables inherit all the operations of which virtual tables are capable. In addition, powerful spatial analysis operations such as selection based upon selected records in another feature table, and a "spatial" version of the join operation are also possible.

Using Feature Tables

You can create feature tables from existing data or from scratch and then populate them. Here, a SrcName is used to open an FTab on an existing source, and then make a theme from it:

   sN  = SrcName.Make("/data/coverages/calif/counties polygon")
   fT  = FTab.Make(sN)
   fTh = FTheme.Make(fT)
   av.GetProject.FindDoc("View1").AddTheme(fTh)

The veteran Avenue programmer might write instead:

    av.GetProject.FindDoc("View1").AddTheme(
       Theme.Make(
          SrcName.Make("/data/coverages/calif/counties polygon") ) )

Or, you could look at a feature table in a table document:

   t = Table.Make( anFTab )
   t.GetWin.Open

You can create a new feature table and then modify its structure, or modify the structure of an existing feature table when it is based upon an editable data source. For an introduction to this, see the topic Editing a Theme. When you create a new FTab, you must add at least one additional field besides the Shape field (which is created in the MakeNew) for the FTab to be valid.

You can use a combination of feature tables to do powerful selection operations. Here is an example of a very basic selection operation. All selected features in one FTab are used to select features in another FTab. This script needs two polygon themes loaded into "View1".

 v         = av.GetProject.FindDoc("View1")
 fCounties = v.GetThemes.Get(1).GetFTab
 fTheme1   = v.GetThemes.Get(0).GetFTab
 fCounties.SelectByFTab(fTheme1,
                        #FTAB_RELTYPE_INTERSECTS,
                        0,
                        #VTAB_SELTYPE_NEW)

Once the selection has been made, you can obtain the selection bitmap and do operations directly on it, such as merging the results of a relational query stored in another bitmap of the same size.

Here's a way to iterate through the selection bitmap:

 ' Select some features in the first theme (States.shp) in a view
 myView  = av.GetActiveDoc
 myTheme = myView.GetThemes.Get(0)
 myFTab  = myTheme.GetFTab
 myField = myFTab.FindField("State_name")

 ' Get the selection bitmap
 for each rec in myFTab.GetSelection
   System.BasicEcho("Selected state name is"++
     myFTab.ReturnValueString(myField,rec),FALSE)
 end

Projection

The shapes of the features in an FTab are never projected. The shapes passed to FTab requests aren't projected either. If you want to project the shapes, use an FTheme in a projected view, use projection commands or convert the shapes to a projected shapefile using FTab.ExportProjected.

Inherits From

VTab

Enumerations

FTabRelTypeEnum

Class Requests

Making an FTab

CanManageDataSet  :  Boolean

GetAnnoAddFieldsPreference  :  Boolean

GetDataSetName  :  String

Make ( aSrcName ) :  FTab

MakeNew ( aFileName, aClass ) :  FTab

SetAnnoAddFieldsPreference ( aPreference )

Instance Requests

Indexing Fields in an FTab

CanModifyIndex ( aField ) :  Boolean

CreateIndex ( aField )

IsFieldIndexed ( aField ) :  Boolean

RemoveIndex ( aField )

Calculating with Route-based FTabs

ReturnLocation ( aPoint, aSearchTolerance ) :  List

ReturnRouteMeasure ( aRouteNumber, aMeasure ) :  List

Synchronizing an FTab and its component files

Activate

DeActivate

Flush

Refresh

Altering FTab Structure

AddFields ( Fields )

AddRecord  :  Number

BeginTransaction

CanAddFields  :  Boolean

CanAddRecord  :  Boolean

CanEdit  :  Boolean

CanRedo  :  Boolean

CanRemoveFields  :  Boolean

CanRemoveRecords  :  Boolean

CanUndo  :  Boolean

EndTransaction

IsBeingEditedWithRecovery  :  Boolean

IsEditable  :  Boolean

Redo

RemoveFields ( Fields )

RemoveRecord ( aRecordNumber )

RemoveRecords ( aBitmap )

SaveEditsAs ( aFileName ) :  VTab

SetAOI ( aProjection, anAOI )

SetEditable ( isEditable )

StartEditingWithRecovery  :  Boolean

StopEditingWithRecovery ( saveEdits ) :  Boolean

SupportsAOI  :  Boolean

Undo

Getting and Setting attributes

GetExtension ( anExtensionClass ) :  SrcExtension

GetShapeClass  :  Classes

GetSrcName  :  SrcName

HasError  :  Boolean

RemoveExtension ( anExtensionClass )

SetExtension ( anExtension )

Getting and Setting Values in an FTab

QueryShape ( aRecordNumber, aProjection, aShape ) :  Boolean

ReturnValue ( aField, aRecordNumber ) :  Obj

ReturnValueString ( aField, aRecordNumber ) :  String

SetValue ( aField, aRecordNumber, anObj )

SetValueString ( aField, aRecordNumber, aString )

Joining and Linking FTabs

AddAnnoFields

IsAnno  :  Boolean

Join ( aToField, aFromFTab, aFromField )

UnjoinAll

Manipulating an FTab

Export ( aFileName, aClass, SelectedRecordsOnly ) :  VTab

ExportClean ( aFileName, SelectedRecordsOnly ) :  FTab

ExportProjected ( aFileName, aProjection, SelectedRecordsOnly ) :  FTab

ExportUnprojected ( aFileName, aProjection, SelectedRecordsOnly ) :  FTab

Summarize ( aFileName, aClass, aField, Fields, Summarys ) :  VTab

CAD Drawing FTabs

IsBlockDisplayEnabled  :  Boolean

IsDrawing  :  Boolean

IsWorldFileEnabled  :  Boolean

ReturnActiveLayers  :  List

ReturnLayers  :  List

ReturnSelectedLayers  :  List

ReturnWorldFile  :  FileName

SetBlockDisplayEnable ( isEnabled )

SetSelectedLayers ( aLayerList )

SetWorldFile ( aWorldFile )

SetWorldFileEnable ( isEnabled )

Setting and Changing the Selection

GetLabelPoint ( aRecordNumber ) :  Point

SelectByFTab ( anotherFTab, aRelType, aDistance, aSelType )

SelectByLine ( aLine, aSelType )

SelectByPoint ( aPoint, aTolerance, aSelType )

SelectByPolygon ( aPolygon, aSelType )

SelectByPolyLine ( aPolyLine, aSelType )

SelectByRect ( aRect, aSelType )

SelectByShapes ( Shapes, aSelType )

Editing a Geocoded FTab

BatchMatch

EditMatch

GetMatchPref  :  Obj

IsGeocoded  :  Boolean

SetMatchPref ( aMatchPref )

__________

See also

FTheme
ThemeOnThemeDialog
SrcName
Field
BitMap


CanManageDataSet (FTab)
CanManageDataSet

Does the class support disk data set management? A data set refers to the native file based object associated with an FTab (i.e., a shapefile).

Syntax

FTab.CanManageDataSet

Returns

Boolean


GetAnnoAddFieldsPreference (FTab)
GetAnnoAddFieldsPreference

 Returns the default preference for automatic addition of annotation fields to FTabs made from ARC/INFO coverages that have attributes.

Syntax

FTab.GetAnnoAddFieldsPreference

Returns

Boolean


GetDataSetName (FTab)
GetDataSetName

Returns the data set name of FTab Class. A data set refers to the native file based object associated with an FTab (i.e., a shapefile).

Syntax

FTab.GetDataSetName

Returns

String


Make (FTab)
Make

Makes an FTab from aSrcName. aSrcName is assumed to reference an existing feature source.

Syntax

FTab.Make (aSrcName)

Returns

FTab


MakeNew (FTab)
MakeNew

Makes an FTab of feature class aClass, creating a new file named aFileName. aClass must be one of Point, PolyLine, Polygon, or MultiPoint. The new FTab contains only one field, the Shape field. You MUST add at least one additional field to the new FTab before it is valid.

Syntax

FTab.MakeNew (aFileName, aClass)

Returns

FTab


SetAnnoAddFieldsPreference (FTab)
SetAnnoAddFieldsPreference

 Sets the default preference for automatic addition of annotation fields to feature tables made from ARC/INFO coverages that have attributes.

If aPreference is set to TRUE then a temporary dBASE table containing additional LEVEL and SYMBOL information will be automatically created from the coverage and joined to the base attributes when the FTab is made. The attributes will be recreated each time the FTab is postloaded. If aPreference is set to FALSE then no additional attributes are added and only the base attributes will be shown.

The default preference is FALSE.

Note that if an ARC/INFO coverage lacks attributes (TXT format annotation), then temporary attributes corresponding to LEVEL and SYMBOL will always be created.

Syntax

FTab.SetAnnoAddFieldsPreference (aPreference)


CanModifyIndex (FTab)
CanModifyIndex

Returns TRUE if the index on aField can be modified. Before using this request, use the IsFieldIndexed request to make sure that the field is curently indexed.

Syntax

anFTab.CanModifyIndex (aField)

Returns

Boolean


CreateIndex (FTab)
CreateIndex

Creates an index on aField. This process writes index files to $HOME if the data source file is unwritable. If aField is the Shape field, CreateIndex generates a spatial index. ArcView's spatial index is compatible with ARC/INFO's spatial index.

Syntax

anFTab.CreateIndex (aField)


IsFieldIndexed (FTab)
IsFieldIndexed

Returns TRUE if aField is indexed.

Syntax

anFTab.IsFieldIndexed (aField)

Returns

Boolean


RemoveIndex (FTab)
RemoveIndex

Removes an index from aField.

Syntax

anFTab.RemoveIndex (aField)


ReturnLocation (FTab)
ReturnLocation
Example

 Returns a List with route number and measure pairs found for aPoint. aSearchTolerance is the search tolerance used for locating routes. Returned routes are indexed starting at zero, i.e., the RAT# is NOT returned, but rather the FTab record number. If a route is not found at aPoint, an empty list is returned.

Note: anFTab can be from an ARC/INFO coverage route system or a measured PolyLine (i.e., PolyLineM or PolyLineZ) shapefile.

Syntax

anFTab.ReturnLocation (aPoint, aSearchTolerance)

Returns

List


ReturnRouteMeasure (FTab)
ReturnRouteMeasure

 Returns a List with locations (points) where the route number aRouteNumber and measure aMeasure are found. Routes are indexed starting at zero, i.e., aRouteNumber is not the RAT#, but rather the FTab record number. If aRouteNumber and aMeasure cannot be found, an empty list is returned.

Note: anFTab can be from an ARC/INFO coverage route system or a measured PolyLine (i.e., PolyLineM or PolyLineZ) shapefile.

See the example in anFTab.ReturnLocation.

Syntax

anFTab.ReturnRouteMeasure (aRouteNumber, aMeasure)

Returns

List


Activate (FTab)
Activate

Activates anFTab, making its data accessible for reading and writing (if editable). Issue Activate only after Deactivating anFTab.

Syntax

anFTab.Activate


DeActivate (FTab)
DeActivate

Deactivates anFTab, making it unavailable for reading and writing. This request is useful if you want to let another program edit the component files of anFTab or you want to close anFTab's files. Activate anFTab when the other program completes its updates.

Syntax

anFTab.DeActivate


Flush (FTab)
Flush

Flushes anFTab so that the component files are synchronized with the in-memory version of anFTab. Flush writes the in-memory FTab to the file.

Syntax

anFTab.Flush


Refresh (FTab)
Refresh

Refreshes the in-memory version of anFTab to reflect changes to its component files. Refresh re-reads the file and updates the in-memory version of anFTab.

Syntax

anFTab.Refresh


AddFields (FTab)
AddFields

Adds Fields to anFTab. Fields is a list containing Field objects. The Shape field is created when you create anFTab and you cannot add another with that name.

NOTE: Field objects in the list are added directly so if you are copying fields from another VTab, you should clone them first (or DeepClone the list containing them).

Syntax

anFTab.AddFields (Fields)


AddRecord (FTab)
AddRecord

Adds a record to anFTab and returns the new record number. All the values in the record are set to Null. Use CanAddRecord before using AddRecord.

Syntax

anFTab.AddRecord

Returns

Number


BeginTransaction (FTab)
BeginTransaction

Marks the beginning of a group of write operations on anFTab. The group can be undone as a unit. If a transaction is not explicitly started then each write operation on the FTab is treated as a transaction.

The following script puts the FTab of the first active theme in the active view into edit mode. theTheme is a point theme with fields called Shape, ID and Code. The script creates a new point shape, newShp, and does four edits to the FTab: adds a new record and sets values for the Shape, ID and Code fields. Then the edits are saved and the FTab is taken out of edit mode.

 theView = av.GetActiveDoc
 theTheme = theView.GetActiveThemes.Get(0)
 theFTab = theTheme.GetFTab
 shpField = theFTab.FindField("Shape")
 idField = theFTab.FindField("ID")
 codeField = theFTab.FindField("Code")
 newShp = Point.Make(1,2)
 ' Put the FTab in edit mode and if successful, do some edits.
 if (theFTab.StartEditingWithRecovery) then
   'these four editing operations contained in this Begin/End transaction
   'block can be undone or reapplied as a group using FTab.Undo or FTab.Redo
   theFTab.BeginTransaction
   theRec = theFTab.AddRecord
   theFTab.SetValue(shpField,theRec,newShp)
   theFTab.SetValue(idField,theRec,"2")
   theFTab.SetValue(codeField,theRec,"XYZ")
   theFTab.EndTransaction
 end
 saveEdits = TRUE
 'Since saveEdits is set to TRUE the edits will be committed, if saveEdits
 ' was FALSE the edits would be discarded
 theFTab.StopEditingWithRecovery(saveEdits)

Syntax

anFTab.BeginTransaction


CanAddFields (FTab)
CanAddFields

Returns TRUE if you can add fields to anFTab, otherwise returns FALSE.

Syntax

anFTab.CanAddFields

Returns

Boolean


CanAddRecord (FTab)
CanAddRecord

Returns TRUE if you can add a record to anFTab, otherwise returns FALSE. Use CanAddRecord before using AddRecord.

Syntax

anFTab.CanAddRecord

Returns

Boolean


CanEdit (FTab)
CanEdit

Returns TRUE if the attributes of anFTab can be edited, otherwise returns FALSE. CanEdit reports whether you have write permission to anFTab or not.

Syntax

anFTab.CanEdit

Returns

Boolean


CanRedo (FTab)
CanRedo

Returns TRUE if there are undo operations that can be redone.

Syntax

anFTab.CanRedo

Returns

Boolean


CanRemoveFields (FTab)
CanRemoveFields

Returns TRUE if you can remove fields from anFTab, otherwise returns FALSE.

Syntax

anFTab.CanRemoveFields

Returns

Boolean


CanRemoveRecords (FTab)
CanRemoveRecords

Returns TRUE if you can remove records from anFTab, otherwise returns FALSE.

Syntax

anFTab.CanRemoveRecords

Returns

Boolean


CanUndo (FTab)
CanUndo

Returns TRUE if there are editing transactions that can be undone.

Syntax

anFTab.CanUndo

Returns

Boolean


EndTransaction (FTab)
EndTransaction

Marks the end of a group of write operations on anFTab. The group can be undone as a unit. If a transaction is not explicitly started then each write operation on the FTab is treated as a transaction.

The following script puts the FTab of the first active theme in the active view into edit mode. theTheme is a point theme with fields called Shape, ID and Code. The script creates a new point shape, newShp, and then does four edits to the FTab: adds a new record and sets values for the Shape, ID and Code fields. Then the edits are saved and the FTab is taken out of edit mode.

 theView = av.GetActiveDoc
 theTheme = theView.GetActiveThemes.Get(0)
 theFTab = theTheme.GetFTab
 shpField = theFTab.FindField("Shape")
 idField = theFTab.FindField("ID")
 codeField = theFTab.FindField("Code")
 newShp = Point.Make(1,2)
 ' Put the FTab in edit mode and if successful, do some edits.
 if (theFTab.StartEditingWithRecovery) then
   'these four editing operations contained in this Begin/End transaction
   'block can be undone or reapplied as a group using FTab.Undo or FTab.Redo
   theFTab.BeginTransaction
   theRec = theFTab.AddRecord
   theFTab.SetValue(shpField,theRec,newShp)
   theFTab.SetValue(idField,theRec,"2")
   theFTab.SetValue(codeField,theRec,"XYZ")
   theFTab.EndTransaction
 end
 saveEdits = TRUE
 'Since saveEdits is set to TRUE the edits will be committed, if saveEdits
 ' was FALSE the edits would be discarded
 theFTab.StopEditingWithRecovery(saveEdits)

Syntax

anFTab.EndTransaction


IsBeingEditedWithRecovery (FTab)
IsBeingEditedWithRecovery

Returns TRUE if an editing session on anFTab is in progress.

Syntax

anFTab.IsBeingEditedWithRecovery

Returns

Boolean


IsEditable (FTab)
IsEditable

Returns TRUE if anFTab is editable, otherwise returns FALSE. Use IsEditable to determine whether anFTab has become editable after you use the SetEditable request. Sometimes it is not possible to make anFTab editable, even when CanEdit returns TRUE.

Syntax

anFTab.IsEditable

Returns

Boolean


Redo (FTab)
Redo

Performs a Redo. The state of anFTab is rolled forward by the last undone transaction.

Syntax

anFTab.Redo


RemoveFields (FTab)
RemoveFields

Removes Fields from anFTab. The Shape field cannot be removed.

Syntax

anFTab.RemoveFields (Fields)


RemoveRecord (FTab)
RemoveRecord

Removes the record numbered aRecordNumber from anFTab.

Syntax

anFTab.RemoveRecord (aRecordNumber)


RemoveRecords (FTab)
RemoveRecords

Removes the records set in aBitmap from anFTab.

Syntax

anFTab.RemoveRecords (aBitmap)


SaveEditsAs (FTab)
SaveEditsAs

Saves the edits made to anFTab to a new FTab stored in aFileName. After the edits are saved to the new FTab, anFTab remains in edit mode. Returns the new FTab as result.

Syntax

anFTab.SaveEditsAs (aFileName)

Returns

VTab


SetAOI (FTab)
SetAOI

Sets the Area of Interest for anFTab to anAOI. anFTab is automatically refreshed when this request is invoked.

Syntax

anFTab.SetAOI (aProjection, anAOI)


SetEditable (FTab)
SetEditable

Sets whether anFTab is editable to isEditable.

The following script puts the FTab of the first active theme in the active view into edit mode. theTheme is a point theme with fields called Shape, ID and Code. The script creates a new point shape, newShp, adds a new record and sets values for the Shape, ID and Code fields. The SetEditable(FALSE) request takes the table out of edit mode and automatically commits the edits. When you put the table into edit mode this way you cannot undo or redo any edits. To have the option to discard the edits and to have the option to undo and redo, you should use the anFTab.StartEditingWithRecovery request instead of anFTab.SetEditable(isEditable).

 theView = av.GetActiveDoc
 theTheme = theView.GetActiveThemes.Get(0)
 theFTab = theTheme.GetFTab
 shpField = theFTab.FindField("Shape")
 idField = theFTab.FindField("ID")
 codeField = theFTab.FindField("Code")
 newShp = Point.Make(1,2)
 theFTab.SetEditable(true)
 if (theFTab.IsEditable) then
   theRec = theFTab.AddRecord
   theFTab.SetValue(shpField,theRec,newShp)
   theFTab.SetValue(idField,theRec,"2")
   theFTab.SetValue(codeField,theRec,"XYZ")
 end
 theFTab.SetEditable(FALSE)

Syntax

anFTab.SetEditable (isEditable)


StartEditingWithRecovery (FTab)
StartEditingWithRecovery

Begins an editing session on anFTab. Undo, Redo and Cancelling of the editing session are supported when editing with recovery. Returns TRUE if an editing session was successfully begun.

The following script puts the FTab of the first active theme in the active view into edit mode. theTheme is a point theme with fields called Shape, ID and Code. The script creates a new point shape, newShp, adds a new record and sets values for the Shape, ID and Code fields.

 theView = av.GetActiveDoc
 theTheme = theView.GetActiveThemes.Get(0)
 theFTab = theTheme.GetFTab
 shpField = theFTab.FindField("Shape")
 idField = theFTab.FindField("ID")
 codeField = theFTab.FindField("Code")
 newShp = Point.Make(1,2)
 ' Put the FTab in edit mode and if successful, do some edits.
 if (theFTab.StartEditingWithRecovery) then
   'these four editing operations contained in this Begin/End transaction
   'block can be undone or reapplied as a group using FTab.Undo or FTab.Redo
   theFTab.BeginTransaction
   theRec = theFTab.AddRecord
   theFTab.SetValue(shpField,theRec,newShp)
   theFTab.SetValue(idField,theRec,"2")
   theFTab.SetValue(codeField,theRec,"XYZ")
   theFTab.EndTransaction
 end
 saveEdits = TRUE
 'Since saveEdits is set to TRUE the edits will be committed, if saveEdits
 ' was FALSE the edits would be discarded
 theFTab.StopEditingWithRecovery(saveEdits)

Syntax

anFTab.StartEditingWithRecovery

Returns

Boolean


StopEditingWithRecovery (FTab)
StopEditingWithRecovery

Ends an editing session on anFTab. If saveEdits is FALSE then the editing session is cancelled and no changes are made to data files on disk. Returns FALSE if edits could not be saved, TRUE otherwise.

The following script puts the FTab of the first active theme in the active view into edit mode. theTheme is a point theme with fields called Shape, ID and Code. The script creates a new point shape, newShp, adds a new record and sets values for the Shape, ID and Code fields. Then the edits are saved and the FTab is taken out of edit mode.

 theView = av.GetActiveDoc
 theTheme = theView.GetActiveThemes.Get(0)
 theFTab = theTheme.GetFTab
 shpField = theFTab.FindField("Shape")
 idField = theFTab.FindField("ID")
 codeField = theFTab.FindField("Code")
 newShp = Point.Make(1,2)
 ' Put the FTab in edit mode and if successful, do some edits.
 if (theFTab.StartEditingWithRecovery) then
   'these four editing operations contained in this Begin/End transaction
   'block can be undone or reapplied as a group using FTab.Undo or FTab.Redo
   theFTab.BeginTransaction
   theRec = theFTab.AddRecord
   theFTab.SetValue(shpField,theRec,newShp)
   theFTab.SetValue(idField,theRec,"2")
   theFTab.SetValue(codeField,theRec,"XYZ")
   theFTab.EndTransaction
 end
 saveEdits = TRUE
 'Since saveEdits is set to TRUE the edits will be committed, if saveEdits
 'was FALSE the edits would be discarded
 theFTab.StopEditingWithRecovery(saveEdits)

Syntax

anFTab.StopEditingWithRecovery (saveEdits)

Returns

Boolean


SupportsAOI (FTab)
SupportsAOI

Returns TRUE if anFTab supports the Area of Interest concept. This is only TRUE for library-based themes.

Syntax

anFTab.SupportsAOI

Returns

Boolean


Undo (FTab)
Undo

Performs an Undo. The state of anFTab is rolled back to that at the beginning of the last transaction.

Syntax

anFTab.Undo


GetExtension (FTab)
GetExtension

 Gets the extension object specified by anExtensionClass.

Syntax

anFTab.GetExtension (anExtensionClass)

Returns

SrcExtension


GetShapeClass (FTab)
GetShapeClass

Gets the class of the shapes in anFTab. The returned value is one of Point, PolyLine, Polygon, or MultiPoint. You can make a string from the class with the GetClassName request.

 MsgBox.Info( anFTab.GetShapeClass.GetClassName,
              anFTab.GetName++"Shape" )

Syntax

anFTab.GetShapeClass

Returns

Class


GetSrcName (FTab)
GetSrcName

Gets the SrcName of anFTab.

Syntax

anFTab.GetSrcName

Returns

SrcName


HasError (FTab)
HasError

Returns TRUE if any of anFTab should not be used (i.e., some of its physical data components are missing).

Syntax

anFTab.HasError

Returns

Boolean


RemoveExtension (FTab)
RemoveExtension

 Removes the src extension object specified by anExtensionClass.

Syntax

anFTab.RemoveExtension (anExtensionClass)


SetExtension (FTab)
SetExtension

 Sets the specified extension for the class of anExtension. anExtension can be returned using anFTab.GetExtension and passing the class of anExtension.

Syntax

anFTab.SetExtension (anExtension)


QueryShape (FTab)
QueryShape

Queries the shape of record aRecordNumber and projects it using aProjection. aShape must exist before issuing this request; the request writes the resulting shape to aShape.

Syntax

anFTab.QueryShape (aRecordNumber, aProjection, aShape)

Returns

Boolean


ReturnValue (FTab)
ReturnValue

Returns the value of aField in record aRecordNumber as an object. Null values are returned as the Null object of the appropriate class.

Syntax

anFTab.ReturnValue (aField, aRecordNumber)

Returns

Obj


ReturnValueString (FTab)
ReturnValueString

Returns the value of aField in record aRecordNumber as a string. Null values are returned as the Null string.

Syntax

anFTab.ReturnValueString (aField, aRecordNumber)

Returns

String


SetValue (FTab)
SetValue

Sets the current value of aField (if editable) in record aRecordNumber to anObj. If you are setting the value of a shape field to aShape, you do not need to clean or clone the shape you are adding, this happens automatically during the SetValue request.

Syntax

anFTab.SetValue (aField, aRecordNumber, anObj)


SetValueString (FTab)
SetValueString

Sets the current value of aField (if editable) in record aRecordNumber with aString. aString will be converted to the appropriate type.

Syntax

anFTab.SetValueString (aField, aRecordNumber, aString)


AddAnnoFields (FTab)
AddAnnoFields

Synthesizes a temporary dBASE Table containing LEVEL and SYMBOL information for anFTab made from an ARC/INFO annotation coverage and joins it to anFTab.

Note that these fields will be recreated each time anFTab is postloaded. If anFTab already has joins or already has these synthesized fields then this request has no effect. The added fields can be removed by using the FTab request UnjoinAll.

Syntax

anFTab.AddAnnoFields


IsAnno (FTab)
IsAnno

Returns TRUE if anFTab is an FTab made from an ARC/INFO annotation coverage.

Syntax

anFTab.IsAnno

Returns

Boolean


Join (FTab)
Join

Joins aFromFTab to anFTab by matching values in aFromField to values in aToField. aToField is a field in anFTab and aFromField is a field in aFromFTab. In the case of joins on shape fields, the most appropriate spatial relationship for the combination of fields is used to match records.

Syntax

anFTab.Join (aToField, aFromFTab, aFromField)


UnjoinAll (FTab)
UnjoinAll

Undoes all join operations from anFTab.

Syntax

anFTab.UnjoinAll


Export (FTab)
Export

Exports anFTab to a new FTab called aFileName of type aClass, which must be dBASE, INFO, DText, or Shape. If SelectedRecordsOnly is TRUE, then only the selected records will be exported. Otherwise, all records will be exported. Only visible fields are exported and the exported table uses any aliases for its field names. Characters are replaced and field names truncated if the aliases contain invalid characters or are too long. Search using the keyword limits to find the field name limitations for dBASE and INFO files. At least one field must be visible. The projection of the new FTab matches that of the base data of anFTab. The new VTab (or FTab) is returned.

 ' create a new shapefile of the theme's selected records
 theView = av.GetActiveDoc
 theTheme = theView.GetActiveThemes.Get(0)
 theFTab = theTheme.GetFTab
 theFTab.Export ( "c:\data\newshape".asFileName, Shape, TRUE )

This request can also be used to convert an ARC/INFO coverage route system into a measured PolyLineM shapefile.

 ' create a new measured shapefile from an ARC/INFO coverage route system theme's
 ' selected records
 theView = av.GetActiveDoc
 theTheme = theView.GetActiveThemes.Get(0)
 theFTab = theTheme.GetFTab
 theFTab.Export ( "c:\data\newshapem".asFileName, PolyLineM, TRUE )

Syntax

anFTab.Export (aFileName, aClass, SelectedRecordsOnly)

Returns

VTab


ExportClean (FTab)
ExportClean

Exports anFTab to a aFileName of type Shape. Exported shapes are cleaned before being recorded in the new FTab. If SelectedRecordsOnly is TRUE, then only the selected records will be exported. Otherwise, all records will be exported. Only visible fields are exported and the exported table uses any aliases for its field names. The Shape field and at least one other field must be visible. The new FTab is returned. This request can be used to verify and enforce the correctness of shapes in an FTab.

Syntax

anFTab.ExportClean (aFileName, SelectedRecordsOnly)

Returns

FTab


ExportProjected (FTab)
ExportProjected

Exports anFTab to aFileName of type Shape. Exported shapes are projected to aProjection before being recorded in the new FTab. If aProjection is Nil, the new FTab is written out in the same projection as the base data of anFTab, thus giving the same result as anFTab.Export. If aProjection is not Nil, then anFTab is assumed to be in Lat Long (decimal degrees) and its shapes are projected to aProjection.

The Shape field and at least one other field must be visible. Only visible fields are exported and the exported table uses any aliases for its field names.

If SelectedRecordsOnly is TRUE, then only the selected records will be exported. Otherwise, all records will be exported. The new FTab is returned.

Syntax

anFTab.ExportProjected (aFileName, aProjection, SelectedRecordsOnly)

Returns

FTab


ExportUnprojected (FTab)
ExportUnprojected

 Exports anFTab to a aFileName of type Shape. Exported shapes are unprojected from aProjection before being recorded in the new FTab. If aProjection is Nil, the shapes are exported as they are in anFTab with no change. If aProjection is not Nil, then anFTab is assumed to be in projected space and its shapes are unprojected from aProjection.

If SelectedRecordsOnly is TRUE, then only the selected records will be exported. Otherwise, all records will be exported. Only visible fields are exported and the exported table uses any aliases for its field names. The new FTab is returned.

Syntax

anFTab.ExportUnprojected (aFileName, aProjection, SelectedRecordsOnly)

Returns

FTab


Summarize (FTab)
Summarize

Summarizes anFTab by grouping records by aField and performing the operations listed in Summarys (a list of VTabSummaryEnums) on the corresponding fields listed in Fields. The first Summary type is performed on the first Field, the second Summary on the next, etc. The new VTab is in aFileName of type aClass, aClass must be either dBASE, INFO, DText, or Shape.

If the Shape field is listed in the Fields list, then the shapes for that group will be merged (you can use any VTabSummaryEnum).

The new VTab (or FTab if you included the Shape field) is returned.

Below is an example of summarizing using Shapes. Note that using #VTAB_SUMMARY_SUM merges shapes (a symmetric difference point set operation, XOR in a bitmap sense), while #VTAB_SUMMARY_AVG 'unions' shapes (a point set union, AND in a bitmap sense). In most cases, what you are expecting from a Summarize is a union operation, so use #VTAB_SUMMARY_AVG.

 theView = av.GetActiveDoc
 theFTab = theView.FindTheme( "Cnty" ).GetFTab
 stateFld = theFTab.FindField( "State_name" )
 shpFld = theFTab.FindField( "Shape" )
 areaFld = theFTab.FindField( "Area" )

 newFTab = theFTab.Summarize( "states".AsFileName, Shape, stateFld,
           {shpFld, areaFld},{ #VTAB_SUMMARY_AVG, #VTAB_SUMMARY_SUM })

 newFTab.CreateIndex( newFTab.FindField( "Shape" ))
 theView.AddTheme( FTheme.Make( newFTab ))

Syntax

anFTab.Summarize (aFileName, aClass, aField, Fields, Summarys)

Returns

VTab


IsBlockDisplayEnabled (FTab)
IsBlockDisplayEnabled

Returns TRUE if display of blocks for a drawing is enabled; issue this request only after verifying that this is a drawing with the IsDrawing request.

Syntax

anFTab.IsBlockDisplayEnabled

Returns

Boolean


IsDrawing (FTab)
IsDrawing

Returns TRUE if anFTab is a CAD drawing.

Syntax

anFTab.IsDrawing

Returns

Boolean


IsWorldFileEnabled (FTab)
IsWorldFileEnabled

Returns TRUE if the world file for a drawing is enabled. The world file contains drawing-to-world transformation parameters. anFTab must be a drawing; issue this request only after verifying that this is a drawing with the IsDrawing request.

Syntax

anFTab.IsWorldFileEnabled

Returns

Boolean


ReturnActiveLayers (FTab)
ReturnActiveLayers

Returns a list of active layers in the drawing. anFTab must be a drawing; issue this request only after verifying that this is a drawing with the IsDrawing request.

Syntax

anFTab.ReturnActiveLayers

Returns

List


ReturnLayers (FTab)
ReturnLayers

Returns a list of layers in the drawing. anFTab must be a drawing; issue this request only after verifying that this is a drawing with the IsDrawing request.

Syntax

anFTab.ReturnLayers

Returns

List


ReturnSelectedLayers (FTab)
ReturnSelectedLayers

Returns the list of selected layers. anFTab must be a drawing; issue this request only after verifying that this is a drawing with the IsDrawing request.

Syntax

anFTab.ReturnSelectedLayers

Returns

List


ReturnWorldFile (FTab)
ReturnWorldFile

Returns the world file for the drawing. The world file contains drawing-to-world transformation parameters. anFTab must be a drawing; issue this request only after verifying that this is a drawing with the IsDrawing request.

Syntax

anFTab.ReturnWorldFile

Returns

FileName


SetBlockDisplayEnable (FTab)
SetBlockDisplayEnable

Enables/Disables the display of blocks in a drawing. If isEnabled is TRUE, blocks will display. anFTab must be a drawing; issue this request only after verifying that this is a drawing with the IsDrawing request.

Syntax

anFTab.SetBlockDisplayEnable (isEnabled)


SetSelectedLayers (FTab)
SetSelectedLayers

Sets the list of selected layers for the Drawing to the layers in aLayerList. anFTab must be a drawing; issue this request only after verifying that this is a drawing with the IsDrawing request.

Syntax

anFTab.SetSelectedLayers (aLayerList)


SetWorldFile (FTab)
SetWorldFile

Sets the world file for the drawing. The world file contains drawing-to-world transformation parameters. anFTab must be a drawing; issue this request only after verifying that this is a drawing with the IsDrawing request.

Syntax

anFTab.SetWorldFile (aWorldFile)


SetWorldFileEnable (FTab)
SetWorldFileEnable

Enables/Disables the world file of a drawing. If isEnabled is TRUE, the world file is enabled. The world file contains drawing-to-world transformation parameters. anFTab must be a drawing; issue this request only after verifying that this is a drawing with the IsDrawing request.

Syntax

anFTab.SetWorldFileEnable (isEnabled)


GetLabelPoint (FTab)
GetLabelPoint

 Gets the label point of feature aRecordNumber of anFTab.

Syntax

anFTab.GetLabelPoint (aRecordNumber)

Returns

Point


SelectByFTab (FTab)
SelectByFTab

 Selects the features of anFTab based on a relationship to selected features of anotherFTab. If anotherFTab has no selection, all its features are used. The selection relationship is defined by aRelType and includes options like Intersects, HasCenterContainedIn, etc. The result of the selection is controlled by aSelType.

aDistance is used only with the relationship IsWithinDistanceOf. The distance units are the unprojected data source units.

The following script selects the countries within 100 miles of the selected cities.

 ' Get the FTabs...
 cities = av.GetActiveDoc.FindTheme("cities").GetFTab
 countries = av.GetActiveDoc.FindTheme("countries").GetFTab

 ' 100 miles
 distance = Units.Convert( 100, #UNITS_LINEAR_MILES, #UNITS_LINEAR_DEGREES )

 ' Select countries within 100 miles of selected cities
 countries.SelectByFTab( cities, #FTAB_RELTYPE_ISWITHINDISTANCEOF,
                                 distance, #VTAB_SELTYPE_NEW )

Syntax

anFTab.SelectByFTab (anotherFTab, aRelType, aDistance, aSelType)


SelectByLine (FTab)
SelectByLine

 Selects the features of anFTab that fall beneath aLine. The result of the selection is controlled by aSelType.

Syntax

anFTab.SelectByLine (aLine, aSelType)


SelectByPoint (FTab)
SelectByPoint

 Selects the features of anFTab that fall beneath aPoint within aTolerance. aTolerance is in map units. The result of the selection is controlled by aSelType.

Syntax

anFTab.SelectByPoint (aPoint, aTolerance, aSelType)


SelectByPolygon (FTab)
SelectByPolygon

 Selects the features of anFTab that fall within or adjacent to aPolygon. The result of the selection is controlled by aSelType.

Syntax

anFTab.SelectByPolygon (aPolygon, aSelType)


SelectByPolyLine (FTab)
SelectByPolyLine

 Selects the features of anFTab that fall beneath aPolyLine. The result of the selection is controlled by aSelType.

Syntax

anFTab.SelectByPolyLine (aPolyLine, aSelType)


SelectByRect (FTab)
SelectByRect

 Selects the features of anFTab that fall within aRect. The result of the selection is controlled by aSelType.

Syntax

anFTab.SelectByRect (aRect, aSelType)


SelectByShapes (FTab)
SelectByShapes

 Selects the features of anFTab that fall beneath or adjacent to the Shapes. Shapes is a list that contains objects with superclass Shape. The result of the selection is controlled by aSelType.

Syntax

anFTab.SelectByShapes (Shapes, aSelType)


BatchMatch (FTab)
BatchMatch
Example

Performs batch mode geocoding on a geocoded FTab. The process is the same as choosing Batch Re-match from the Re-match Addresses dialog.

Syntax

anFTab.BatchMatch


EditMatch (FTab)
EditMatch
Example

Invokes the Geocoding Editor for a geocoded FTab. The process is the same as choosing Interactive Re-match from the Re-match Addresses dialog.

Syntax

anFTab.EditMatch


GetMatchPref (FTab)
GetMatchPref

Gets anFTab's Match Preferences. anFTab must be a geocoded FTab.

Syntax

anFTab.GetMatchPref

Returns

Obj


IsGeocoded (FTab)
IsGeocoded

Returns TRUE if anFTab is a geocoded FTab.

Syntax

anFTab.IsGeocoded

Returns

Boolean


SetMatchPref (FTab)
SetMatchPref

Sets anFTab's Match Preferences to aMatchPref. anFTab must be a geocoded FTab.

Syntax

anFTab.SetMatchPref (aMatchPref)


FTabRelTypeEnum

 The following spatial predicates are used in Theme on Theme Selection and Spatial Join. See the topic Spatial Relation Types in the ArcView on-line help for more information on these enumerations.

#FTAB_RELTYPE_INTERSECTS

Intersects

#FTAB_RELTYPE_COMPLETELYCONTAINS

Completely Contains

#FTAB_RELTYPE_CONTAINSTHECENTEROF

Contains The Center Of

#FTAB_RELTYPE_ISCOMPLETELYWITHIN

Is Completely Within

#FTAB_RELTYPE_HASCENTERWITHIN

Has Center Within

#FTAB_RELTYPE_ISWITHINDISTANCEOF

Is Within Distance Of


FTheme
Example	Related Topics

 An FTheme is a visual representation of the features defined in an FTab. An FTheme is based upon feature data from coverage or map library layer data sources or an ArcView shapefile. The geometry of the features is carried in the Shape field of the FTab.

Attributes

HotField.The HotField is the field of the FTheme's FTab used to store Hot Link values.

HotScriptName.HotScriptName is the name of the script executed on a Hot Link.

LabelField.The LabelField is the field in the FTheme's FTab used to label features.

MatchSource.A MatchSource exists only on matchable themes. Matchable themes are used to create geocoded themes from event tables.

TextPositioner.The TextPositioner is used to position labels around features.

FixedSizeText.TRUE when graphic text attached to this theme should remain at the scale at which it was created. FALSE when graphic text attached to this theme should change scale as the theme changes scale. This property is applied whenever a graphic text object is created. Individual graphic text objects can override this default. Existing graphic text objects retain whatever behavior they had when they were created.

The default is FALSE.

FTab. An FTab defines the feature source displayed in the FTheme.

Inherits From

Theme

Class Requests

Making FThemes

Make ( anFTab ) :  FTheme

Instance Requests

Attribute aware operations on anFTheme

GetAttrUpdateRules  :  List

SetAttrUpdateRules ( Rules )

Checking Capabilities of an FTheme

CanDeleteFromView  :  Boolean

CanHotLink  :  Boolean

CanProject  :  Boolean

CanSelect  :  Boolean

HasTable  :  Boolean

SupportsAOI  :  Boolean

Displaying Dialog Boxes

BuildQuery

EditLegend

EditTable

Exporting to an FTab

CanExportToFTab  :  Boolean

ExportToFTab ( aFileName ) :  FTab

Finding parts of an FTheme

FindByPoint ( aPoint ) :  List

FindStr ( aString, startOver ) :  Point

SelectByLine ( aLine, aSelType )

SelectByPoint ( aPoint, aSelType )

SelectByPolygon ( aPolygon, aSelType )

SelectByPolyLine ( aPolyLine, aSelType )

SelectByRect ( aRect, aSelType )

SelectByShapes ( Shapes, aSelType )

SelectByTheme ( anotherFTheme, aRelType, aDistance, aSelType )

Generic Object Management

Clone  :  FTheme

SetName ( aName )

Getting and Setting Attributes

GetFTab  :  VTab

GetHotField  :  Field

GetHotScriptName  :  String

GetMatchSource  :  MatchSource

GetSelectedExtent  :  Rect

IsMatchable  :  Boolean

ReturnExtent  :  Rect

SetAOI ( anAreaOfInterest )

SetHotField ( aField )

SetHotScriptName ( aScriptName )

SetMatchSource ( aMatchSource )

Editing an FTheme

CancelEditing

CanEdit  :  Boolean

GetInteractiveSnapTolerance  :  Number

GetSnapTolerance  :  Number

GetToleranceCursor  :  Boolean

IsInteractiveSnapping  :  Boolean

IsSnapping  :  Boolean

SaveEditsAs ( aFileName ) :  FTheme

SetInteractiveSnapping ( allowSnapping )

SetInteractiveSnapTolerance ( aTolerance )

SetSnapping ( allowSnapping )

SetSnapTolerance ( aTolerance )

ShowToleranceCursor ( aBoolean )

StopEditing ( doSave ) :  Boolean

UserSnapPoint ( aRule, aPoint )

Labeling an FTheme

CanLabel  :  Boolean

GetFixedSizeText  :  Boolean

GetLabelField  :  Field

GetLabelTextSym  :  Symbol

GetTextPositioner  :  TextPositioner

ReturnLabel ( aDisplay, aPoint ) :  GraphicText

ReturnSymbolSize ( aRecordNumber ) :  Number

SetFixedSizeText ( isScaled )

SetLabelField ( aField )

SetLabelTextSym ( aSym )

Interacting with the Clipboard

CopySelected

CutSelected

Paste

Interacting with the User (Apply Events Only)

Select

SelectToEdit

Setting State of Editing

SelectToEditByPoint ( aPoint )

Manipulating an FTheme

AutoComplete ( aLine )

ClearSelected

ClearSelection

ClipSelected ( aShape )

IntersectSelected

MergeSelected

Split ( aLine )

SubtractShape ( aShape )

UnionSelected

Supporting Identify

BlinkRecord ( aRecordNumber )

Identify ( aRecordNumber, aString )

Supporting the Legend Editor

CanReturnClassCounts  :  Boolean

GetFeatureSymbol ( aRecordNumber ) :  Symbol

ReturnClassCounts  :  List

ReturnDefaultLegend  :  Legend

SetDefaultLegend

UpdateLegend

__________

See also

Legend
View
FTab
SrcName


Make (FTheme)
Make

Makes an FTheme from anFTab.

Syntax

FTheme.Make (anFTab)

Returns

FTheme


GetAttrUpdateRules (FTheme)
GetAttrUpdateRules

 Gets anFTheme's attribute update rules.

Syntax

anFTheme.GetAttrUpdateRules

Returns

List


SetAttrUpdateRules (FTheme)
SetAttrUpdateRules

 Sets anFTheme's attribute update rules to Rules.

Syntax

anFTheme.SetAttrUpdateRules (Rules)


CanDeleteFromView (FTheme)
CanDeleteFromView

Returns TRUE if anFTheme can be deleted from the view, otherwise returns FALSE.

CanDeleteFromView is set to FALSE when another theme is dependent on anFTheme.

For example, if you add streets.shp to your View and you use the Network Analyst to find a route, you get a new theme added to your view called route1.shp. route1.shp, as a result theme, is dependent on streets.shp, so streets.shp can't be deleted from the View.

Syntax

anFTheme.CanDeleteFromView

Returns

Boolean


CanHotLink (FTheme)
CanHotLink

Returns TRUE if anFTheme supports Hot Links.

Syntax

anFTheme.CanHotLink

Returns

Boolean


CanProject (FTheme)
CanProject

Returns TRUE if anFTheme can be projected and FALSE otherwise. All FThemes can be projected. This request does not verify that anFTheme's base units are decimal degrees, nor does it guarantee that if it is placed into a projected view it will display.

Syntax

anFTheme.CanProject

Returns

Boolean


CanSelect (FTheme)
CanSelect

Returns TRUE because anFTheme's features can be selected.

Syntax

anFTheme.CanSelect

Returns

Boolean


HasTable (FTheme)
HasTable

Returns TRUE if anFTheme has an associated Table document. The default implementation is to return TRUE.

Syntax

anFTheme.HasTable

Returns

Boolean


SupportsAOI (FTheme)
SupportsAOI

Returns TRUE if anFTheme supports the Area of Interest concept. anFTheme must be based on a map library data source.

Syntax

anFTheme.SupportsAOI

Returns

Boolean


BuildQuery (FTheme)
BuildQuery

Displays the Query Builder dialog box. Builds a query and executes it on the FTab of anFTheme.

Syntax

anFTheme.BuildQuery


EditLegend (FTheme)
EditLegend

Opens the Legend Editor for anFTheme's FTab.

Syntax

anFTheme.EditLegend


EditTable (FTheme)
EditTable

Opens a Table showing the FTab of anFTheme.

Syntax

anFTheme.EditTable


CanExportToFTab (FTheme)
CanExportToFTab

Returns TRUE for anFTheme.

Syntax

anFTheme.CanExportToFTab

Returns

Boolean


ExportToFTab (FTheme)
ExportToFTab

Exports anFTheme to a new FTab in aFileName of type Shape. If there is a selection, then only the selected records will be exported, otherwise, all are exported.

Syntax

anFTheme.ExportToFTab (aFileName)

Returns

FTab


FindByPoint (FTheme)
FindByPoint

Finds a set of features containing aPoint in anFTheme. Returns an empty list if no feature is found. If it finds features, FindByPoint returns the list containing the FTab record number for each "found feature". FindByPoint uses a fixed distance tolerance equivalent to 3 screen pixels. Use FindByPoint when you want to get features WITHOUT making a selection on the FTab.

This example must be executed from an Apply event - it uses ReturnUserPoint to get the point.

 theView = av.GetActiveDoc
 theTheme = theView.GetThemes.Get(0)
 p = theView.GetDisplay.ReturnUserPoint

 FeatureList = theTheme.FindByPoint( p )

 for each f in FeatureList
   theTheme.BlinkRecord( f )
 end

Syntax

anFTheme.FindByPoint (aPoint)

Returns

List


FindStr (FTheme)
FindStr

Finds aString in the attributes of anFTheme. If startOver is TRUE, searches all records, otherwise starts with the last record found. Returns the center of the found feature.

Syntax

anFTheme.FindStr (aString, startOver)

Returns

Point


SelectByLine (FTheme)
SelectByLine

Selects the features of anFTheme intersecting aLine and affects the current selection according to aSelType.

Syntax

anFTheme.SelectByLine (aLine, aSelType)


SelectByPoint (FTheme)
SelectByPoint

Selects the features of anFTheme at aPoint and affects the current selection according to aSelType. SelectByPoint uses a fixed distance tolerance equivalent to 3 screen pixels.

This example shows a MOUSE click (the script must run from an APPLY event) specifying a point and the feature selected from that point.

  theView = av.GetActiveDoc
  theTheme = theView.GetThemes.Get( 0 ) ' the first theme

 ' mouse click to get the point - APPLY EVENT!!
  pnt = theView.GetDisplay.ReturnUserPoint
  if (theTheme.CanSelect) then
      theTheme.SelectByPoint(pnt, #VTAB_SELTYPE_NEW)
  end

Syntax

anFTheme.SelectByPoint (aPoint, aSelType)


SelectByPolygon (FTheme)
SelectByPolygon

Selects the features of anFTheme within aPolygon and affects the current selection according to aSelType.

Syntax

anFTheme.SelectByPolygon (aPolygon, aSelType)


SelectByPolyLine (FTheme)
SelectByPolyLine

Selects the features of anFTheme intersecting aPolyLine and affects the current selection according to aSelType.

Syntax

anFTheme.SelectByPolyLine (aPolyLine, aSelType)


SelectByRect (FTheme)
SelectByRect

Selects the features of anFTheme within aRect and affects the current selection according to aSelType.

Syntax

anFTheme.SelectByRect (aRect, aSelType)


SelectByShapes (FTheme)
SelectByShapes

Selects the features of anFTheme within or adjacent to Shapes and affects the current selection according to aSelType. Shapes is a list of Shape objects.

Syntax

anFTheme.SelectByShapes (Shapes, aSelType)


SelectByTheme (FTheme)
SelectByTheme

 Selects the features of anFTheme if they have relationship aRelType with aDistance to the selected features of anotherFTheme. The current selection then changes according to aSelType. aDistance is in map units.

 ' Get the Themes...
 cities = av.GetActiveDoc.FindTheme("cities")
 countries = av.GetActiveDoc.FindTheme("Yr94")
 msgbox.info( av.GetActiveDoc.GetDisplay.GetUnits.AsString, "" )

 ' 500 miles in map units is...
 distance = Units.Convert( 500, #UNITS_LINEAR_MILES,
               av.GetActiveDoc.GetDisplay.GetUnits )

 ' Select countries within 500 miles of selected cities
 countries.SelectByTheme( cities, #FTAB_RELTYPE_ISWITHINDISTANCEOF,
             distance , #VTAB_SELTYPE_NEW )

Syntax

anFTheme.SelectByTheme (anotherFTheme, aRelType, aDistance, aSelType)


Clone (FTheme)
Clone

Clones anFTheme.

Syntax

anFTheme.Clone

Returns

FTheme


SetName (FTheme)
SetName

Sets the name of anFTheme to aName.

Syntax

anFTheme.SetName (aName)


GetFTab (FTheme)
GetFTab

Gets anFTheme's FTab. An FTab is a subclass of VTab.

Syntax

anFTheme.GetFTab

Returns

VTab


GetHotField (FTheme)
GetHotField

Gets the Hot Link field of anFTheme.

Syntax

anFTheme.GetHotField

Returns

Field


GetHotScriptName (FTheme)
GetHotScriptName

Gets the name of the Hot Link script of anFTheme.

Syntax

anFTheme.GetHotScriptName

Returns

String


GetMatchSource (FTheme)
GetMatchSource

Gets the MatchSource of anFTheme. GetMatchSource returns Nil if anFTheme.IsMatchable returns FALSE.

Syntax

anFTheme.GetMatchSource

Returns

MatchSource


GetSelectedExtent (FTheme)
GetSelectedExtent

Gets the extent of the selected features of anFTheme. The extent is the smallest rectangle which can contain all the selected features. The extent is in map units.

Syntax

anFTheme.GetSelectedExtent

Returns

Rect


IsMatchable (FTheme)
IsMatchable

Returns TRUE if anFTheme is matchable, otherwise returns FALSE.

Syntax

anFTheme.IsMatchable

Returns

Boolean


ReturnExtent (FTheme)
ReturnExtent

Returns the extent of anFTheme in map units. The extent of anFTheme is the smallest rectangle in which all the features of anFTheme will fit.

Syntax

anFTheme.ReturnExtent

Returns

Rect


SetAOI (FTheme)
SetAOI

Sets anFTheme's Area of Interest to the rectangle specified by anAreaOfInterest. The rectangle is given in map units.

Syntax

anFTheme.SetAOI (anAreaOfInterest)


SetHotField (FTheme)
SetHotField

Sets the Hot Link field of anFTheme to aField or nil to remove the current field.

Syntax

anFTheme.SetHotField (aField)


SetHotScriptName (FTheme)
SetHotScriptName

Sets the name of the Hot Link script of anFTheme to aScriptName.

Syntax

anFTheme.SetHotScriptName (aScriptName)


SetMatchSource (FTheme)
SetMatchSource

Sets the MatchSource of anFTheme to aMatchSource or to NIL. If aMatchSource is a valid MatchSource then anFTheme will be matchable. aMatchSource should have been made using anFTheme. If aMatchSource is NIL or not a valid MatchSource then anFTheme will not be matchable. A matchable FTheme can be set to be nonmatchable by setting its MatchSource to NIL.

Syntax

anFTheme.SetMatchSource (aMatchSource)


CancelEditing (FTheme)
CancelEditing

Stops the current editing session, discarding all edits. No changes are made to the underlying data source. anFTheme.CancelEditing is the same as anFTheme.StopEditing(FALSE).

Syntax

anFTheme.CancelEditing


CanEdit (FTheme)
CanEdit

Returns TRUE if anFTheme can be edited, otherwise returns FALSE.

Syntax

anFTheme.CanEdit

Returns

Boolean


GetInteractiveSnapTolerance (FTheme)
GetInteractiveSnapTolerance

Gets the interactive snap tolerance on anFTheme.

Syntax

anFTheme.GetInteractiveSnapTolerance

Returns

Number


GetSnapTolerance (FTheme)
GetSnapTolerance

Gets the general snap tolerance for anFTheme.

Syntax

anFTheme.GetSnapTolerance

Returns

Number


GetToleranceCursor (FTheme)
GetToleranceCursor

Returns TRUE if snap tolerance cursor is being displayed, otherwise returns FALSE.

Syntax

anFTheme.GetToleranceCursor

Returns

Boolean


IsInteractiveSnapping (FTheme)
IsInteractiveSnapping

Returns TRUE if interactive snapping is enabled, otherwise returns FALSE.

Syntax

anFTheme.IsInteractiveSnapping

Returns

Boolean


IsSnapping (FTheme)
IsSnapping

Returns TRUE if general snapping is enabled, otherwise returns FALSE.

Syntax

anFTheme.IsSnapping

Returns

Boolean


SaveEditsAs (FTheme)
SaveEditsAs

 Saves the edits made in the current editing session to aFileName and returns a new theme based on aFileName. No changes are made to the original data files for anFTheme.

Syntax

anFTheme.SaveEditsAs (aFileName)

Returns

FTheme


SetInteractiveSnapping (FTheme)
SetInteractiveSnapping

Enables interactive snapping on anFTheme if allowSnapping is TRUE, disables it otherwise.

Syntax

anFTheme.SetInteractiveSnapping (allowSnapping)


SetInteractiveSnapTolerance (FTheme)
SetInteractiveSnapTolerance

Sets the interactive snapping tolerance on anFTheme to aTolerance. Used with request UserSnapPoint.

Syntax

anFTheme.SetInteractiveSnapTolerance (aTolerance)


SetSnapping (FTheme)
SetSnapping

Enables general snapping on anFTheme if allowSnapping is TRUE, disables it otherwise.

Syntax

anFTheme.SetSnapping (allowSnapping)


SetSnapTolerance (FTheme)
SetSnapTolerance

Sets the general snapping tolerance on anFTheme to aTolerance.

Syntax

anFTheme.SetSnapTolerance (aTolerance)


ShowToleranceCursor (FTheme)
ShowToleranceCursor

Displays snap tolerance with cursor.

Syntax

anFTheme.ShowToleranceCursor (aBoolean)


StopEditing (FTheme)
StopEditing

Stops the current editing session, saving edits back to the underlying data source if doSave is TRUE. If doSave is FALSE then edits are discarded and no changes are made to the underlying data source. Returns FALSE if edits could not be saved.

Syntax

anFTheme.StopEditing (doSave)

Returns

Boolean


UserSnapPoint (FTheme)
UserSnapPoint

Snaps aPoint to features in anFTheme using aRule. aPoint is snapped to the closest feature within the interactive snap tolerance.

Syntax

anFTheme.UserSnapPoint (aRule, aPoint)


CanLabel (FTheme)
CanLabel

Returns TRUE because anFTheme can label its features.

Syntax

anFTheme.CanLabel

Returns

Boolean


GetFixedSizeText (FTheme)
GetFixedSizeText

Returns the current value of anFTheme's FixedSizeText attribute. See the discussion for SetFixedSizeText.

Syntax

anFTheme.GetFixedSizeText

Returns

Boolean


GetLabelField (FTheme)
GetLabelField

Gets the Label Field of anFTheme.

Syntax

anFTheme.GetLabelField

Returns

Field


GetLabelTextSym (FTheme)
GetLabelTextSym

Gets the label text symbol of anFTheme. Only applies to themes which support attribute tables, such as FThemes and DBThemes.

Syntax

anFTheme.GetLabelTextSym

Returns

Symbol


GetTextPositioner (FTheme)
GetTextPositioner

Gets the TextPositioner of anFTheme.

Syntax

anFTheme.GetTextPositioner

Returns

TextPositioner


ReturnLabel (FTheme)
ReturnLabel

Returns a GraphicText label on aDisplay for a feature of anFTheme found at aPoint.

Syntax

anFTheme.ReturnLabel (aDisplay, aPoint)

Returns

GraphicText


ReturnSymbolSize (FTheme)
ReturnSymbolSize

Returns the size of the font used to label the feature with aRecordNumber of anFTheme.

Syntax

anFTheme.ReturnSymbolSize (aRecordNumber)

Returns

Number


SetFixedSizeText (FTheme)
SetFixedSizeText

Sets default behavior for graphic objects created subsequent to this request. When isScaled is TRUE, such graphic text objects will not change size as the display scale of anFTheme changes. When isScaled is FALSE, such graphic text objects will change size proportionately to anFTheme's change in scale.

Syntax

anFTheme.SetFixedSizeText (isScaled)


SetLabelField (FTheme)
SetLabelField

Sets the label field of anFTheme to aField or nil to remove the current field.

Syntax

anFTheme.SetLabelField (aField)


SetLabelTextSym (FTheme)
SetLabelTextSym

Sets the label text symbol of anFTheme to aSym. Only applies to themes which support attribute tables, such as FThemes and DBThemes.

Syntax

anFTheme.SetLabelTextSym (aSym)


CopySelected (FTheme)
CopySelected

Copies the selected features of anFTheme to the clipboard. anFTheme must be editable (i.e., anFTheme.GetFTab.IsEditable returns TRUE).

Syntax

anFTheme.CopySelected


CutSelected (FTheme)
CutSelected

Cuts the selected features of anFTheme to the clipboard. anFTheme must be editable (i.e., anFTheme.GetFTab.IsEditable returns TRUE).

Syntax

anFTheme.CutSelected


Paste (FTheme)
Paste

Pastes the contents of the clipboard into anFTheme. anFTheme must be editable (i.e., anFTheme.GetFTab.IsEditable returns TRUE).

Syntax

anFTheme.Paste


Select (FTheme)
Select

Allows the user to select features of anFTheme. Selected features may be moved or resized. This request works only if anFTheme is editable (i.e., anFTheme.GetFTab.IsEditable returns TRUE).

This request can be issued ONLY in an APPLY event script.

Syntax

anFTheme.Select


SelectToEdit (FTheme)
SelectToEdit

Allows the user to reshape a feature of anFTheme. Features may be reshaped with normal or topological selections. This request works only if anFTheme is editable (i.e., anFTheme.GetFTab.IsEditable returns TRUE).

This request can be issued ONLY in an APPLY event script.

Syntax

anFTheme.SelectToEdit


SelectToEditByPoint (FTheme)
SelectToEditByPoint

Selects the features to edit for anFTheme at aPoint. SelectToEditByPoint uses a fixed distance tolerance equivalent to 3 screen pixels.

Syntax

anFTheme.SelectToEditByPoint (aPoint)


AutoComplete (FTheme)
AutoComplete

Adds new feature shapes by auto-completing the outline from aLine and polygonal features of anFTheme that enclose empty space. anFTheme must be a Polygon theme that is editable (i.e., anFTheme.GetFTab.IsEditable returns TRUE).

Syntax

anFTheme.AutoComplete (aLine)


ClearSelected (FTheme)
ClearSelected

Clears the selected features of anFTheme. ClearSelected DELETES the selected features from anFTheme. anFTheme must be editable (i.e., anFTheme.GetFTab.IsEditable returns TRUE).

Syntax

anFTheme.ClearSelected


ClearSelection (FTheme)
ClearSelection

Clears the selections on anFTheme.

Syntax

anFTheme.ClearSelection


ClipSelected (FTheme)
ClipSelected

Clip the selected features of anFTheme with aShape. anFTheme must be editable (i.e., anFTheme.GetFTab.IsEditable returns TRUE).

Syntax

anFTheme.ClipSelected (aShape)


IntersectSelected (FTheme)
IntersectSelected

Intersects selected features of anFTheme into a single feature. anFTheme must be editable (i.e., anFTheme.GetFTab.IsEditable returns TRUE).

Syntax

anFTheme.IntersectSelected


MergeSelected (FTheme)
MergeSelected

Merges selected features of anFTheme into a single feature. anFTheme must be editable (i.e., anFTheme.GetFTab.IsEditable returns TRUE). Associated attributes of the new feature are NULL.

 theView = av.GetActiveDoc

 anFTheme = theView.GetThemes.Get(0)
 if (anFTheme.GetFTab.IsEditable) then
   anFTheme.MergeSelected
 end

Syntax

anFTheme.MergeSelected


Split (FTheme)
Split

Splits any features of anFTheme that aLine passes through. If anFTheme is a line theme then aLine is also split and is added to the theme. anFTheme must be editable (i.e., anFTheme.GetFTab.IsEditable returns TRUE). Associated attributes of the new feature(s) are copied from the split features.

Syntax

anFTheme.Split (aLine)


SubtractShape (FTheme)
SubtractShape

Subtracts aShape from selected features of anFTheme. anFTheme must be editable (i.e., anFTheme.GetFTab.IsEditable returns TRUE).

Syntax

anFTheme.SubtractShape (aShape)


UnionSelected (FTheme)
UnionSelected

Unions selected features of anFTheme into a single feature. anFTheme must be editable (i.e., anFTheme.GetFTab.IsEditable returns TRUE). Associated attributes of the new feature are copied from the selected features.

Syntax

anFTheme.UnionSelected


BlinkRecord (FTheme)
BlinkRecord

Blinks feature with aRecordNumber in anFTheme on the view containing anFTheme.

Syntax

anFTheme.BlinkRecord (aRecordNumber)


Identify (FTheme)
Identify

Puts information from in aTheme in aRecordNumber into the Identify window labeled by aString. Also, Identify blinks the data corresponding to aRecordNumber wherever it is currently showing on the screen.

Syntax

anFTheme.Identify (aRecordNumber, aString)


CanReturnClassCounts (FTheme)
CanReturnClassCounts

Returns a Boolean indicating whether the number of features in each class in the legend can be computed for this theme.

Syntax

anFTheme.CanReturnClassCounts

Returns

Boolean


GetFeatureSymbol (FTheme)
GetFeatureSymbol

Gets the symbol for the feature with aRecordNumber from the Legend.

Syntax

anFTheme.GetFeatureSymbol (aRecordNumber)

Returns

Symbol


ReturnClassCounts (FTheme)
ReturnClassCounts

Returns a list containing the number of features in each class in the legend.

Syntax

anFTheme.ReturnClassCounts

Returns

List


ReturnDefaultLegend (FTheme)
ReturnDefaultLegend

Returns a default legend appropriate to the type of anFTheme. For anFTheme this is a single symbol legend.

Syntax

anFTheme.ReturnDefaultLegend

Returns

Legend


SetDefaultLegend (FTheme)
SetDefaultLegend

Sets the legend of anFTheme to a default legend appropriate to the type of theme. For anFTheme this is a single symbol legend.

Syntax

anFTheme.SetDefaultLegend


UpdateLegend (FTheme)
UpdateLegend

Updates anFTheme to reflect changes to its legend. UpdateLegend invalidates both the theme and its legend.

Syntax

anFTheme.UpdateLegend


GEdgeRec

 An GEdgeRec is a GFEature representing a proxy record for parts of shapes corresponding to a shared edge along two or more shapes stored in a feature table.

Inherits From

GraphicShape

Instance Requests

Getting and Setting attributes

GetSymbol  :  Symbol

__________

See also


GetSymbol (GEdgeRec)
GetSymbol

Gets the symbol of aGEdgeRec.

Syntax

aGEdgeRec.GetSymbol

Returns

Symbol


GeocodeDialog

 GeocodeDialog is the modal dialog box used to create geocoded themes.

Inherits From

ModalDialog

Class Requests

Showing a GeocodeDialog

Show ( aView ) :  FTab


Show (GeocodeDialog)
Show

 Shows the geocoding dialog box, allowing the user to set parameters to make a geocoded theme.

Syntax

GeocodeDialog.Show (aView)

Returns

FTab


GeoCurve

 A GeoCurve a curve representing the shortest between two points on the earth's surface. If the earth is represented as a sphere, then a GeoCurve is actually a portion of a great circle. If the earth is represented as an elipsoidal model, then the curve is referred to as a geodesic curve. Each of these curves have a distance along the curve, referred to as range and an azimuth measuring an angle from north. From a point, a GeoCurve can be defined as an origin, its azimuth, and its range. Sometimes the azimuth is referred to as heading. These 3 items constitute the primary stored attributes of a GeoCurve.

Attributes

Origin.The point from which the GeoCurve radiates is its origin. The origin is in decimal degrees (un-projected coordinates).

Range.The distance along the GeoCurve is the range, measured in meters.

Azimuth.The angle, measured from North, in a clockwise direction is the azimuth of the GeoCurve.

Projection. The GeoCurve object stores the projection information so that the GeoCurve can retain and use its attributes during a projection change.

Spheroid. The GeoCurve object stores the projection information so that the GeoCurve can retain and use its attributes during a spheroid change.

NumberPoints. The Origin, Range, Azimuth describe the GeoCurve; however, to represent it graphically, it must be approximated as a PolyLine. In the case of the GeoCurve, users have the option of defining and changing the density of the PolyLine represention. The PolyLine representation of the GeoCurve is used for spatial analysis with other shapes. Increasing the number of points might increase accuracy of spatial analysis, depending on user's application.

Inherits From

Shape

Class Requests

Making GeoCurves

Make ( aPoint, aDistance, anAzimuth, aNumberPoints, aList ) :  GeoCurve

MakeFromTwoPoints ( fromPoint, toPoint, aNumberPoints, aList ) :  GeoCurve

MakeNull  :  GeoCurve

Instance Requests

Converting a GeoCurve

AsList  :  List

AsMultiPoint  :  MultiPoint

AsPolyLine  :  PolyLine

ReturnBuffered ( aDistance ) :  Polygon

Generic Object Requests

= anObj :  Boolean

AsString  :  String

Getting and Setting Attributes

Along ( aPercentage ) :  Point

GetDimension  :  Number

IsEmpty  :  Boolean

IsNull  :  Boolean

ReturnAzimuth  :  Number

ReturnNumberPoints  :  Number

ReturnOrigin  :  Point

ReturnProjectedEnd  :  Point

ReturnProjectedStart  :  Point

ReturnProjection  :  Prj

ReturnRange  :  Number

ReturnSpheroid  :  Spheroid

RotateBy ( anAngle ) :  GeoCurve

SetAzimuth ( anAngle ) :  GeoCurve

SetNumberPoints ( aNumber ) :  GeoCurve

SetOrigin ( aPoint ) :  GeoCurve

SetRange ( aNumber ) :  GeoCurve

Manipulating a GeoCurve

Move ( moveX, moveY ) :  GeoCurve

ProjectedMove ( moveX, moveY ) :  GeoCurve

Snap ( aShape, snapDistance ) :  Boolean

Relating two shapes

Contains ( aShape ) :  Boolean

Intersects ( aShape ) :  Boolean

QueryPointDistance ( aPoint, aDistance ) :  Number

Transforming a GeoCurve

Flip  :  GeoCurve

LineIntersection ( anotherShape ) :  PolyLine

PointIntersection ( anotherShape ) :  MultiPoint

ReturnClipped ( aRect ) :  Shape

ReturnMerged ( aShape ) :  PolyLine

ReturnProjected ( aPrj ) :  GeoCurve

ReturnUnprojected ( aPrj ) :  GeoCurve

__________

See also

Point
Circle
Oval
Rect
Line
Shape
PolyLineTextPositioner
Ellipse


Make (GeoCurve)
Make

 Makes a GeoCurve of length aDistance radiating from aPoint with anAzimuth as its direction. aPoint is a point in decimal degrees (unprojected coordinate), aDistance is in meters, anAzimuth is measured in the clockwise direction from the north. The GeoCurve is represented by aNumber of points ( >= 2) which can be modifed by subsequent avenue calls. The view's projection and its spheroid are expected to be items zero and one, respectively, in aList. aSpheroid is used to compute the geodesic curve on the ellipsoidal surface of the earth defined by aSpheroid object and is required whether there is a current projection or not.

This GeoCurve starts at the equator, -45 degrees longitude, a distance of 100 Kilometers and an azimuth of 15 degrees. To represent the GeoCurve with a point every 5 Kilometers, aNumberPoints is 21. The following Avenue script illustrates the getting the projection and spheroid required to make the GeoCurve

 geodeticList = List.Make
 theView = av.GetActiveDoc
 currentPrj = theView.GetProjection
 currentSpheroid = currentPrj.GetSpheroid
 geodeticList.Add (currentPrj)
 geodeticList.Add (currentSpheroid)
 aGeoCurve = GeoCurve.Make( -45@0, 100000, 15, 21, geodeticList)
 msgbox.info( aGeoCurve.AsString, "")

 GeoCurve: -45.00,0.00 100000.00 15.00 21

Syntax

GeoCurve.Make (aPoint, aDistance, anAzimuth, aNumberPoints, aList)

Returns

GeoCurve


MakeFromTwoPoints (GeoCurve)
MakeFromTwoPoints

 Makes a GeoCurve using two geographic coordinates to determine the distance and azimuth. The resulting GeoCurve will radiate from the fromPoint and have distance and azimuth so the terminating point is the toPoint. As in Make, the aNumberPoints and aList are required. The GeoCurve is represented by aNumber of points ( >= 2) which can be modifed by subsequent avenue calls. The view's projection and its spheroid are expected to be items zero and one, respectively, in aList. aSpheroid is used to compute the geodesic curve on the ellipsoidal surface of the earth defined by aSpheroid object and is required whether there is a current projection or not. Note that if the aSpheroid used to represent the earth is ellipsoidal instead of spherical, then the differences of the derived azimuths for the GeoCurves generated from following will not be 180 degrees:

 geodeticList = List.Make
 myView = av.GetActiveDoc
 currentPrj = myView.GetProjection
 currentSpheroid = currentPrj.GetSpheroid
 geodeticList.Add (currentPrj)
 geodeticList.Add (currentSpheroid)
 aGeoCurve = GeoCurve.MakeFromTwoPoints(fromPoint, toPoint, 21, geodeticList)
 reverseGeoCurve = GeoCurve.MakeFromTwoPoints(toPoint, fromPoint, 21, geodeticList)
 differance = ABS (aGeoCurve.ReturnAzimuth - reverseGeoCurve.ReturnAzimuth)
 MsgBox.Info ("Difference in Azimuth"++difference.AsString,"Diff Info")

Syntax

GeoCurve.MakeFromTwoPoints (fromPoint, toPoint, aNumberPoints, aList)

Returns

GeoCurve


MakeNull (GeoCurve)
MakeNull

Makes the NULL GeoCurve.

Syntax

GeoCurve.MakeNull

Returns

GeoCurve


AsList (GeoCurve)
AsList

Returns aList of points from the current representation of aGeoCurve.

Syntax

aGeoCurve.AsList

Returns

List


AsMultiPoint (GeoCurve)
AsMultiPoint

Returns the vertices of aGeoCurve as aMultiPoint.

Syntax

aGeoCurve.AsMultiPoint

Returns

MultiPoint


AsPolyLine (GeoCurve)
AsPolyLine

Returns a PolyLine with the number of coordinates which are represented in aGeoCurve

Syntax

aGeoCurve.AsPolyLine

Returns

PolyLine


ReturnBuffered (GeoCurve)
ReturnBuffered

Returns a buffer Polygon representing aGeoCurve buffered by aDistance.

Syntax

aGeoCurve.ReturnBuffered (aDistance)

Returns

Polygon


= (GeoCurve)
=

Returns TRUE when aGeoCurve and anObj are equal, otherwise returns FALSE. By necessity, anObj must also be a GeoCurve. Furthermore, equality is determined by identical origins, GeoCurve lengths, and azimuth angles; they must have identical spheroids. Note that GeoCurves can be equal even if their projections are different or the number of representative points on the GeoCurves are different. The azimuths are considered equal if their modular difference is zero (e.g., azimuths of 45 degrees and -315 degrees are considered equal).

Syntax

aGeoCurve = anObj

Returns

Boolean


AsString (GeoCurve)
AsString

Returns a string describing aGeoCurve. The string contains the keyword GeoCurve, the starting point, the distance, the azimuth and the number of representative points.

For example, this script creates a GeoCurve and outputs the information via AsString.

 geodeticList = List.Make
 theView = av.GetActiveDoc
 currentPrj = theView.GetProjection
 currentSpheroid = currentPrj.GetSpheroid
 geodeticList.Add (currentPrj)
 geodeticList.Add (currentSpheroid)
 aGeoCurve = GeoCurve.Make( -45@0, 100000, 15, 21, geodeticList)
 msgbox.info( aGeoCurve.AsString, "")

 GeoCurve: -45.00,0.00 100000.00 15.00 21

Syntax

aGeoCurve.AsString

Returns

String


Along (GeoCurve)
Along

Returns a point at aPercentage along aGeoCurve.

Syntax

aGeoCurve.Along (aPercentage)

Returns

Point


GetDimension (GeoCurve)
GetDimension

Returns 1. In ArcView, points have dimension 0, lines have dimension 1 and polygons have dimension 2. Only shapes with dimension 1 or greater have a length. Only shapes with dimension 2 have an area.

Syntax

aGeoCurve.GetDimension

Returns

Number


IsEmpty (GeoCurve)
IsEmpty

Returns TRUE if aGeoCurve is empty, otherwise returns FALSE.

Syntax

aGeoCurve.IsEmpty

Returns

Boolean


IsNull (GeoCurve)
IsNull

Returns TRUE if aGeoCurve is NULL or empty, otherwise returns FALSE.

Syntax

aGeoCurve.IsNull

Returns

Boolean


ReturnAzimuth (GeoCurve)
ReturnAzimuth

Returns anAngle that aGeoCurve is rotated clockwise from north.

Syntax

aGeoCurve.ReturnAzimuth

Returns

Number


ReturnNumberPoints (GeoCurve)
ReturnNumberPoints

Returns the number of points currently used to represent aGeoCurve boundary.

Syntax

aGeoCurve.ReturnNumberPoints

Returns

Number


ReturnOrigin (GeoCurve)
ReturnOrigin

Returns the center point of aGeoCurve in geographic coordinates if GeoReferenced, otherwise, the projected coordinates of the centerpoint.

Syntax

aGeoCurve.ReturnOrigin

Returns

Point


ReturnProjectedEnd (GeoCurve)
ReturnProjectedEnd

Returns aPoint of aGeoCurve for the last computed coordinate in the current projection.

Syntax

aGeoCurve.ReturnProjectedEnd

Returns

Point


ReturnProjectedStart (GeoCurve)
ReturnProjectedStart

Returns aPoint of aGeoCurve for the first computed coordinate in the current projection.

Syntax

aGeoCurve.ReturnProjectedStart

Returns

Point


ReturnProjection (GeoCurve)
ReturnProjection

Returns aProjection used by aGeoCurve to compute its projected coordinates of the geodesic curve.

Syntax

aGeoCurve.ReturnProjection

Returns

Prj


ReturnRange (GeoCurve)
ReturnRange

Returns the Range attribute of aGeoCurve as aNumber in meters.

Syntax

aGeoCurve.ReturnRange

Returns

Number


ReturnSpheroid (GeoCurve)
ReturnSpheroid

Returns aSpheroid used by aGeoCurve to compute its geodesic curve.

Syntax

aGeoCurve.ReturnSpheroid

Returns

Spheroid


RotateBy (GeoCurve)
RotateBy

Rotates aGeoCurve an additional anAngle degrees clockwise.

Syntax

aGeoCurve.RotateBy (anAngle)

Returns

GeoCurve


SetAzimuth (GeoCurve)
SetAzimuth

Sets the azimuth (aka angle of bearing or heading) of aGeoCurve to anAngle.

Syntax

aGeoCurve.SetAzimuth (anAngle)

Returns

GeoCurve


SetNumberPoints (GeoCurve)
SetNumberPoints

Sets the number of points to be used to represent the boundary of the ellipse.

Syntax

aGeoCurve.SetNumberPoints (aNumber)

Returns

GeoCurve


SetOrigin (GeoCurve)
SetOrigin

Sets the origin of aGeoCurve to aPoint in geographic coordinates.

Syntax

aGeoCurve.SetOrigin (aPoint)

Returns

GeoCurve


SetRange (GeoCurve)
SetRange

Sets the range of aGeoCurve to aNumber.

Syntax

aGeoCurve.SetRange (aNumber)

Returns

GeoCurve


Move (GeoCurve)
Move

Moves aGeoCurve by moveX and moveY and returns it. MoveX and moveY are displacements in geographic coordinates.

Syntax

aGeoCurve.Move (moveX, moveY)

Returns

GeoCurve


ProjectedMove (GeoCurve)
ProjectedMove

Moves aGeoCurve by moveX and moveY and returns it. MoveX and moveY are displacements in projected space. The displacements are then converted to changes in geographic coordinates and then applied to the origin of aGeoCurve.

Syntax

aGeoCurve.ProjectedMove (moveX, moveY)

Returns

GeoCurve


Snap (GeoCurve)
Snap

Snaps the origin of aGeoCurve to vertices of aShape within snapDistance. Returns TRUE if snapping occurred, otherwise returns FALSE.

Syntax

aGeoCurve.Snap (aShape, snapDistance)

Returns

Boolean


Contains (GeoCurve)
Contains

Returns TRUE if aGeoCurve contains aShape, otherwise returns FALSE.

Syntax

aGeoCurve.Contains (aShape)

Returns

Boolean


Intersects (GeoCurve)
Intersects

Returns TRUE if aGeoCurve intersects aShape, otherwise returns FALSE.

Syntax

aGeoCurve.Intersects (aShape)

Returns

Boolean


QueryPointDistance (GeoCurve)
QueryPointDistance

Queries the distance between aGeoCurve and aPoint into aDistance. It also indicates if aPoint is on the left side of aGeoCurve by reporting a negative distance value.

Syntax

aGeoCurve.QueryPointDistance (aPoint, aDistance)

Returns

Number


Flip (GeoCurve)
Flip

Makes the aGeoCurve in the reverse direction.

Syntax

aGeoCurve.Flip

Returns

GeoCurve


LineIntersection (GeoCurve)
LineIntersection

Intersects aGeoCurve and anotherShape into a new PolyLine shape which represents the line segment that aGeoCurve and anotherShape have in common.

Syntax

aGeoCurve.LineIntersection (anotherShape)

Returns

PolyLine


PointIntersection (GeoCurve)
PointIntersection

Intersects aGeoCurve and anotherShape into a new MultiPoint shape that captures the intersection points.

Syntax

aGeoCurve.PointIntersection (anotherShape)

Returns

MultiPoint


ReturnClipped (GeoCurve)
ReturnClipped

Returns aPolyLine clipped to aRect. The result will be NULL if aGeoCurve and aRect do not intersect.

Syntax

aGeoCurve.ReturnClipped (aRect)

Returns

Shape


ReturnMerged (GeoCurve)
ReturnMerged

Merges aGeoCurve and aShape into a new PolyLine. aShape must be a Line, PolyLine, or GeoCurve.

Syntax

aGeoCurve.ReturnMerged (aShape)

Returns

PolyLine


ReturnProjected (GeoCurve)
ReturnProjected

Returns aGeoCurve projected by aPrj. The projection of aGeoCurve is replaced by aPrj; the spheroid of aGeoCurve is replaced by aPrj.GetSpheroid.

Syntax

aGeoCurve.ReturnProjected (aPrj)

Returns

GeoCurve


ReturnUnprojected (GeoCurve)
ReturnUnprojected

Returns aGeoCurve unprojected from aPrj. The projection of aGeoCurve is made null and the coordinates of aGeoCurve are recomputed in decimal degrees using aGeoCurve's spheroid.

Syntax

aGeoCurve.ReturnUnprojected (aPrj)

Returns

GeoCurve


GeoName

 A GeoName contains the information needed to create a Geocoding Feature Source. Through a GeoName object, a MatchSource (from a matchable theme) is associated with an EventTable containing an Event field (address) and an optional Zone field. (use the MatchSource request HasZone to determine if that MatchSource requires Zone)

A GeoName is used to create a geocoded theme with the MatchSource request InitGeoTheme. Use Search, EditMatch or BatchMatch to perform the geocoding.

Attributes

Output File. You must specify the name of the shape file that will contain the geocoded dataset. Shape files have the .shp suffix (xxx.shp).

Match Preferences. The default Match preferences may be modified and associated with the GeoName. The geocoded dataset will be created using these match preferences.

Join Field. The join field may be optionally specified. It is a field in the matchable theme that is copied to the geocoded theme allowing the possibility to join the matchable theme and geocoded theme on that item.

Display Field. The display field may be optionally specified. It is a field in the event table which is displayed in the Geocoding Editor during interactive matching. Typically, a field containing the customer or business name for an event would be used as the display field.

Offset. The offset is a distance from the street where the point representing the location of the event is placed. The distance is specified in map units. The point will be placed on the line if the offset distance is 0. This option is used only when the matchable theme is a line theme. The offset distance is ignored if the theme features are polygons or points.

Squeeze. The squeeze is the distance, given in percentage of street length, used to place addresses inward from an intersection. For example, a squeeze factor of 5 indicates that the computed location for an address is shifted 5 percent inward from the segment's end points. Use this option to prevent addresses at the end of a block from being placed on top of an intersection.

Alias Table. An alias table allows you to associate a place name with an address. For example, the alias General Hospital is the common name for 411 Gaylord Street. The alias table contains at least two fields: the first field contains the alias names and the second field contains the addresses. The fields may have any name.

Inherits From

SrcName

Class Requests

GeoName

Make ( aMatchSource, anEventTable, anEventField, aZoneField ) :  GeoName

Instance Requests

Getting and Setting Attributes of a GeoName

GetAliasTable  :  VTab

GetDisplayField  :  Field

GetEventField  :  Field

GetEventTable  :  VTab

GetJoinField  :  Field

GetMatchPref  :  MatchPref

GetMatchSource  :  MatchSource

GetOffset  :  Number

GetOutFileName  :  FileName

GetSqueeze  :  Number

GetZoneField  :  Field

SetAliasTable ( aVTab )

SetDisplayField ( aDisplayField )

SetJoinField ( aJoinField )

SetMatchPref ( aMatchPref )

SetOffset ( anOffset )

SetOutFileName ( anOutputFileName )

SetSqueeze ( aSqueeze )

__________

See also

MatchSource
VTab
Field


Make (GeoName)
Make

 Makes a new GeoName. A GeoName contains the information needed to create a geocoded data source.

aMatchSource is the MatchSource from the theme you are matching against. anEventTable is a VTab containing the events (typically, addresses) that you are matching against aMatchSource. anEventField is the field in anEventTable that contains the match string (typically, an address). aZoneField is a field in anEventTable containing the ZONE information. If the MatchSource supports a ZoneField (aMatchSource.HasZone returns TRUE), you must specify aZoneField, but if aMatchSource does not, aZoneField must be NIL.

Syntax

GeoName.Make (aMatchSource, anEventTable, anEventField, aZoneField)

Returns

GeoName


GetAliasTable (GeoName)
GetAliasTable

 Gets aGeoName's alias table. An alias table allows you to associate a place name with an address. For example, the alias General Hospital is the common name for 411 Gaylord Street. The alias table contains at least two fields: the first field contains the alias names and the second field contains the addresses. The fields may have any name.

Syntax

aGeoName.GetAliasTable

Returns

VTab


GetDisplayField (GeoName)
GetDisplayField

 Gets aGeoName's display field. The display field is a field in aGeoName's event table which is displayed in the Geocoding Editor during interactive matching. Typically, a field containing the customer or business name for an event would be used as the display field.

Syntax

aGeoName.GetDisplayField

Returns

Field


GetEventField (GeoName)
GetEventField

 Gets aGeoName's event field.

Syntax

aGeoName.GetEventField

Returns

Field


GetEventTable (GeoName)
GetEventTable

 Gets aGeoName's event table.

Syntax

aGeoName.GetEventTable

Returns

VTab


GetJoinField (GeoName)
GetJoinField

 Gets aGeoName's join field. The join field is a field in the matchable theme whose value is copied to the geocoded theme. This field can be used to join the geocoded dataset with the matchable theme.

Syntax

aGeoName.GetJoinField

Returns

Field


GetMatchPref (GeoName)
GetMatchPref

 Gets aGeoName's match preferences.

Syntax

aGeoName.GetMatchPref

Returns

MatchPref


GetMatchSource (GeoName)
GetMatchSource

 Gets aGeoName's MatchSource.

Syntax

aGeoName.GetMatchSource

Returns

MatchSource


GetOffset (GeoName)
GetOffset

 Gets aGeoName's offset value.

Syntax

aGeoName.GetOffset

Returns

Number


GetOutFileName (GeoName)
GetOutFileName

 Gets aGeoName's output FileName. The output FileName specifies the name of the shapefile generated by the matching process.

Syntax

aGeoName.GetOutFileName

Returns

FileName


GetSqueeze (GeoName)
GetSqueeze

 Gets aGeoName's squeeze value. The squeeze is the distance, given in percentage of street length, used to place addresses inward from an intersection. For example, a squeeze factor of 5 indicates that the computed location for an address is shifted 5 percent inward from the segment's end points. Use this option to prevent addresses at the end of a block from being placed on top of an intersection.

Syntax

aGeoName.GetSqueeze

Returns

Number


GetZoneField (GeoName)
GetZoneField

 Gets aGeoName's zone field.

Syntax

aGeoName.GetZoneField

Returns

Field


SetAliasTable (GeoName)
SetAliasTable

 Sets aGeoName's alias table. An alias table allows you to associate a place name with an address. For example, the alias General Hospital is the common name for 411 Gaylord Street. The alias table contains at least two fields: the first field contains the alias names and the second field contains the addresses. The fields may have any name.

Syntax

aGeoName.SetAliasTable (aVTab)


SetDisplayField (GeoName)
SetDisplayField

 Sets aGeoName's display field to aDisplayField. aDisplayField is a field in aGeoName's event table which is displayed in the Geocoding Editor during interactive matching. Typically, a field containing the customer or business name for an event would be used as the display field.

Syntax

aGeoName.SetDisplayField (aDisplayField)


SetJoinField (GeoName)
SetJoinField

 Sets aGeoName's join field to aJoinField. aJoinField is a field in the matchable theme whose value is copied to the geocoded theme. This field can be used to join the geocoded dataset with the matchable theme. aJoinField should be a field from aGeoName's event table.

Syntax

aGeoName.SetJoinField (aJoinField)


SetMatchPref (GeoName)
SetMatchPref

 Sets aGeoName's match preferences. You may specify a unique set of match preferences.

Syntax

aGeoName.SetMatchPref (aMatchPref)


SetOffset (GeoName)
SetOffset

 Sets aGeoName's offset value. This offset value overrides any default value set in the MatchSource.

Syntax

aGeoName.SetOffset (anOffset)


SetOutFileName (GeoName)
SetOutFileName

 Sets aGeoName's output FileName to anOutputFileName. This specifies the name of the shapefile generated by the matching process.

Syntax

aGeoName.SetOutFileName (anOutputFileName)


SetSqueeze (GeoName)
SetSqueeze

 Sets aGeoName's squeeze value to aSqueeze. The squeeze is the distance, given in percentage of street length, used to place addresses inward from an intersection. For example, a squeeze factor of 5 indicates that the computed location for an address is shifted 5 percent inward from the segment's end points. Use this option to prevent addresses at the end of a block from being placed on top of an intersection.

Syntax

aGeoName.SetSqueeze (aSqueeze)


Frame

 A Frame is a container for a picture, a document, or other computed layout element.

Attributes

Quality.The Quality of the Frame can be 'draft' or 'presentation'. See GFrameQualityEnum.

Refresh.The Refresh of the Frame can be 'always' or when 'active'. See GFrameRefreshEnum.

Inherits From

Graphic

Inherited By

LegendFrame
PictureFrame
ViewFrame

Enumerations

FrameQualityEnum

FrameRefreshEnum

Class Requests

Making Frames

Make ( aRect ) :  Frame

Instance Requests

Displaying Dialog Boxes

Edit ( aListofGraphics ) :  Boolean

Drawing Shapes

Draw

Getting and Setting Attributes

GetQuality  :  FrameQualityEnum

GetRefresh  :  FrameRefreshEnum

Offset ( aPoint )

SetBounds ( aRect )

SetQuality ( aGFrameQuality )

SetRefresh ( aGFrameRefresh )

__________

See also

GraphicList
Layout
Template
Display


Make (Frame)
Make

Makes a Frame with aRect as bounds. ABSTRACT

Syntax

Frame.Make (aRect)

Returns

Frame


Edit (Frame)
Edit

Displays a dialog box to allow the user to edit the properties of aFrame. aListofGraphics should contain all the Frames in the document.

Syntax

aFrame.Edit (aListofGraphics)

Returns

Boolean


Draw (Frame)
Draw

Draws aFrame on its Display.

Syntax

aFrame.Draw


GetQuality (Frame)
GetQuality

Gets the quality of aFrame.

Syntax

aFrame.GetQuality

Returns

FrameQualityEnum


GetRefresh (Frame)
GetRefresh

Gets the refresh style of aFrame.

Syntax

aFrame.GetRefresh

Returns

FrameRefreshEnum


Offset (Frame)
Offset

Move aFrame by the specified amount.

Syntax

aFrame.Offset (aPoint)


SetBounds (Frame)
SetBounds

Sets the bounds of aFrame to aRect.

Syntax

aFrame.SetBounds (aRect)


SetQuality (Frame)
SetQuality

Sets the quality of aFrame to aGFrameQuality.

Syntax

aFrame.SetQuality (aGFrameQuality)


SetRefresh (Frame)
SetRefresh

Sets the refresh style of aFrame to aGFrameRefresh.

Syntax

aFrame.SetRefresh (aGFrameRefresh)


FrameQualityEnum

 FrameQuality defines how the frame is redrawn to reflect changes in its contents.

#FRAME_QUALITY_DRAFT

The frame is outlined but no data is drawn.

#FRAME_QUALITY_PRESENTATION

The frame is drawn completely.


FrameRefreshEnum

 FrameRefresh is how often the frame is updated to account for changes in its contents.

#FRAME_REFRESH_ALWAYS

The frame is updated whenever a redraw is needed.

#FRAME_REFRESH_WHENACTIVE

The frame is only updated when document is active.


GraphicGroup

 A GraphicGroup allows you to treat a group of graphic objects as a single graphic. See 'Grouping and Ungrouping graphics' for more information.

Attributes

Graphics.A list of the graphics contained in the GraphicGroup.

Inherits From

Graphic

Inherited By

NorthArrow

Class Requests

Making GraphicGroups

Make  :  GraphicGroup

Instance Requests

Checking Capabilities of a GraphicGroup

CanProject  :  Boolean

CanTransform  :  Boolean

IsGroup  :  Boolean

Drawing Shapes

Draw

Invalidate

Getting and Setting Attributes

GetGraphics  :  List

GetUniformScaling  :  Boolean

IsHit ( aRect ) :  Boolean

ReturnSymbols  :  List

SetBounds ( aRect )

SetDisplay ( aDisplay )

SetSelected ( isSelected )

SetSymbols ( aSymbolList )

SetUniformScaling ( aBool )

Manipulating a GraphicGroup

Add ( aGraphic )

Empty

Insert ( aGraphic )

Transforming GraphicGroups

Offset ( aPoint )

Project ( aPrj )

UnProject ( aPrj )

Displaying Dialog Boxes

Edit ( aListofGraphics ) :  Boolean

EditName  :  Boolean

__________

See also

GraphicList
Display
Template


Make (GraphicGroup)
Make

Makes a GraphicGroup with no elements.

Syntax

GraphicGroup.Make

Returns

GraphicGroup


CanProject (GraphicGroup)
CanProject

Returns TRUE if aGraphicGroup can be projected, returns FALSE otherwise.

Syntax

aGraphicGroup.CanProject

Returns

Boolean


CanTransform (GraphicGroup)
CanTransform

Returns TRUE if aGraphicGroup can be transformed, returns FALSE otherwise.

Syntax

aGraphicGroup.CanTransform

Returns

Boolean


IsGroup (GraphicGroup)
IsGroup

Returns TRUE; this object is a GraphicGroup. When you issue IsGroup to an object from a different Graphic subclass, it returns FALSE.

Syntax

aGraphicGroup.IsGroup

Returns

Boolean


Draw (GraphicGroup)
Draw

Draws aGraphicGroup on its Display. You must SetDisplay before issuing this request.

Syntax

aGraphicGroup.Draw


Invalidate (GraphicGroup)
Invalidate

Invalidates the portion of the display occupied by aGraphicGroup. Invalidate causes the portion of the display covered by aGraphicGroup to be redrawn.

Syntax

aGraphicGroup.Invalidate


GetGraphics (GraphicGroup)
GetGraphics

Gets the graphic elements in aGraphicGroup as a list of Graphic objects.

Syntax

aGraphicGroup.GetGraphics

Returns

List


GetUniformScaling (GraphicGroup)
GetUniformScaling

Determine if the user is restricted to resizing the graphic group by the corner handles only.

Syntax

aGraphicGroup.GetUniformScaling

Returns

Boolean


IsHit (GraphicGroup)
IsHit

Returns TRUE if aRect intersects aGraphicGroup, otherwise returns FALSE.

Syntax

aGraphicGroup.IsHit (aRect)

Returns

Boolean


ReturnSymbols (GraphicGroup)
ReturnSymbols

Returns a list of symbols used by aGraphicGroup.

Syntax

aGraphicGroup.ReturnSymbols

Returns

List


SetBounds (GraphicGroup)
SetBounds

Sets the bounds of aGraphicGroup to aRect.

Syntax

aGraphicGroup.SetBounds (aRect)


SetDisplay (GraphicGroup)
SetDisplay

Sets the display of aGraphicGroup.

Syntax

aGraphicGroup.SetDisplay (aDisplay)


SetSelected (GraphicGroup)
SetSelected

Sets the selected status of aGraphicGroup to isSelected.

Syntax

aGraphicGroup.SetSelected (isSelected)


SetSymbols (GraphicGroup)
SetSymbols

Sets the symbols of aGraphicGroup to aSymbolList.

Syntax

aGraphicGroup.SetSymbols (aSymbolList)


SetUniformScaling (GraphicGroup)
SetUniformScaling

Restricts the user to resize the graphic group by the corner handles only. By default, this is false.

Syntax

aGraphicGroup.SetUniformScaling (aBool)


Add (GraphicGroup)
Add

Adds aGraphic to the end of aGraphicGroup.

Syntax

aGraphicGroup.Add (aGraphic)


Empty (GraphicGroup)
Empty

Removes all the elements of aGraphicGroup.

Syntax

aGraphicGroup.Empty


Insert (GraphicGroup)
Insert

Inserts aGraphic at the beginning of aGraphicGroup.

Syntax

aGraphicGroup.Insert (aGraphic)


Offset (GraphicGroup)
Offset

Offsets aGraphicGroup by aPoint.

Syntax

aGraphicGroup.Offset (aPoint)


Project (GraphicGroup)
Project

Projects aGraphicGroup using the projection object aPrj.

Syntax

aGraphicGroup.Project (aPrj)


UnProject (GraphicGroup)
UnProject

Unprojects aGraphicGroup from aPrj.

Syntax

aGraphicGroup.UnProject (aPrj)


Edit (GraphicGroup)
Edit

 Shows an appropriate property editor and applies the results to all of the graphics in the group.

Syntax

aGraphicGroup.Edit (aListofGraphics)

Returns

Boolean


EditName (GraphicGroup)
EditName

 Shows the graphic name editor and applies the name to all the graphics in the group.

Syntax

aGraphicGroup.EditName

Returns

Boolean


GraphicLabel
Discussion	Example

 A GraphicLabel object is a kind of Graphic which knows how to draw symbolized string objects.

Inherits From

GraphicText

Class Requests

Making GraphicLabels

MakeWithSym ( aString, aPoint, aSymbol, aGraphicTextSet ) :  GraphicLabel

Instance Requests

Generic Object Management

Clone  :  Obj

Getting Properties

GetSiblings  :  List

HasSiblings  :  Boolean

Manipulating GraphicLabels

ChangeSets ( anotherGraphicLabel )

SetBounds ( aRect )

__________

See also

GraphicText
GraphicList
TextPositioner
Font
Display
Layout


MakeWithSym (GraphicLabel)
MakeWithSym
Example

Makes a GraphicLabel at aPoint containing aString and symbolized using aSymbol.

Syntax

GraphicLabel.MakeWithSym (aString, aPoint, aSymbol, aGraphicTextSet)

Returns

GraphicLabel


Clone (GraphicLabel)
Clone

Clones aGraphicLabel.

Syntax

aGraphicLabel.Clone

Returns

Obj


GetSiblings (GraphicLabel)
GetSiblings

Gets the list containing all of the siblings of aGraphicLabel.

Syntax

aGraphicLabel.GetSiblings

Returns

List


HasSiblings (GraphicLabel)
HasSiblings

Returns TRUE.

Syntax

aGraphicLabel.HasSiblings

Returns

Boolean


ChangeSets (GraphicLabel)
ChangeSets

Removes aGraphicLabel from the set it is in and adds it to the set anotherGraphicLabel is in. To see how the ChangeSets request is used, see the ArcView system script called View.ConvertOverlappingLabels.

Syntax

aGraphicLabel.ChangeSets (anotherGraphicLabel)


SetBounds (GraphicLabel)
SetBounds

Sets the bounds of aGraphicLabel to aRect.

Syntax

aGraphicLabel.SetBounds (aRect)


LegendFrame

 A LegendFrame is a kind of Frame which knows how to draw the legend of a view into a layout document. See 'Adding a legend to a layout' for more information.

Attributes

ViewFrame.The ViewFrame that the LegendFrame is being drawn for.

Inherits From

Frame

Class Requests

Making LegendFrames

Make ( aRect ) :  LegendFrame

Instance Requests

Displaying Dialog Boxes

Edit ( aListofGraphics ) :  Boolean

EditSizeAndPos  :  Boolean

Drawing Shapes

Draw

Filling Frames

GetFillObject  :  Obj

IsFilled  :  Boolean

IsFilledBy ( aClass ) :  Boolean

SetFillObject ( anObj )

Getting and Setting Attributes

CanSimplify  :  Boolean

GetViewFrame  :  ViewFrame

ReturnSymbols  :  List

SetBounds ( aRect )

SetDisplay ( aDpy )

SetSymbols ( aSymbolList )

SetViewFrame ( aViewFrame )

__________

See also

GraphicList
Display
View
Template


Make (LegendFrame)
Make

Makes a new LegendFrame. The rectangle specifies the lower left corner and height of the legend.

Syntax

LegendFrame.Make (aRect)

Returns

LegendFrame


Edit (LegendFrame)
Edit

 Displays a dialog box to allow the user to edit the properties of aLegendFrame. aListofGraphics should contain all the LegendFrames in the document.

Syntax

aLegendFrame.Edit (aListofGraphics)

Returns

Boolean


EditSizeAndPos (LegendFrame)
EditSizeAndPos

 Shows the size and position editor for aLegendFrame.

Syntax

aLegendFrame.EditSizeAndPos

Returns

Boolean


Draw (LegendFrame)
Draw

Draws aLegendFrame on its Display.

Syntax

aLegendFrame.Draw


GetFillObject (LegendFrame)
GetFillObject

 Gets the fill object of aLegendFrame.

Syntax

aLegendFrame.GetFillObject

Returns

Obj


IsFilled (LegendFrame)
IsFilled

 Returns TRUE if aLegendFrame is filled by some object, otherwise returns FALSE.

Syntax

aLegendFrame.IsFilled

Returns

Boolean


IsFilledBy (LegendFrame)
IsFilledBy

 Returns TRUE if aLegendFrame can be filled by objects of aClass, otherwise returns FALSE.

Syntax

aLegendFrame.IsFilledBy (aClass)

Returns

Boolean


SetFillObject (LegendFrame)
SetFillObject

 Sets the fill object of aLegendFrame to anObj.

Syntax

aLegendFrame.SetFillObject (anObj)


CanSimplify (LegendFrame)
CanSimplify

Returns TRUE, since LegendFrames can be turned into graphics.

Syntax

aLegendFrame.CanSimplify

Returns

Boolean


GetViewFrame (LegendFrame)
GetViewFrame

Gets the ViewFrame of aLegendFrame.

Syntax

aLegendFrame.GetViewFrame

Returns

ViewFrame


ReturnSymbols (LegendFrame)
ReturnSymbols

Returns a list of symbols used by aLegendFrame.

Syntax

aLegendFrame.ReturnSymbols

Returns

List


SetBounds (LegendFrame)
SetBounds

Sets the bounds of aLegendFrame to aRect.

Syntax

aLegendFrame.SetBounds (aRect)


SetDisplay (LegendFrame)
SetDisplay

Sets the display the text is drawn on.

Syntax

aLegendFrame.SetDisplay (aDpy)


SetSymbols (LegendFrame)
SetSymbols

Sets the symbols of aLegendFrame to aSymbolList.

Syntax

aLegendFrame.SetSymbols (aSymbolList)


SetViewFrame (LegendFrame)
SetViewFrame

Sets the View Frame of aLegendFrame to aViewFrame.

Syntax

aLegendFrame.SetViewFrame (aViewFrame)


GraphicList
Discussion	Example

 A GraphicList is a list of graphics that is associated with a Layout or View Document's Display object.

Inherits From

List

Enumerations

GraphicsSelectModeEnum

Class Requests

Making GraphicLists

Make  :  GraphicList

Instance Requests

Modifying GraphicLists

Add ( aGraphic ) :  GraphicList

AddBatch ( aGraphic )

AddName ( aGraphic )

Empty

EndBatch

MoveSelectedToBack

MoveSelectedToFront

RemoveGraphic ( aGraphic )

GraphicList Editors

Edit  :  Boolean

EditName  :  Boolean

EditSizeAndPos

EditText  :  Boolean

Drawing

Draw

Invalidate

Finding graphics in a GraphicList

FindAllByClass ( aClass ) :  List

FindAllByLocation ( aPoint ) :  List

FindAllByName ( aString ) :  List

FindAllByObjectTag ( anObj ) :  List

FindByClass ( aClass ) :  Graphic

FindByLocation ( aPoint ) :  Graphic

FindByName ( aString ) :  Graphic

FindByObjectTag ( anObj ) :  Graphic

Getting and Setting Attributes

GetDisplay  :  Display

GetNumberFormat  :  String

GetSelected  :  List

HasSelected  :  Boolean

ReturnExtent  :  Rect

ReturnSelectedExtent  :  Rect

SetDisplay ( aDisplay )

SetNumberFormat ( aFormatString )

SetRedrawDeferred ( isDeferred )

SetSelectedExtent ( aRect )

Interacting with the Clipboard

BasicPaste ( aClass )

ClearSelected

CopySelected

CutSelected

Paste

Filling Graphics

FillFrames ( aList )

GetFrameObjs  :  List

Supporting Undo

CanRestoreGraphic  :  Boolean

ClearUndoStack

GetMaxUndoTransactionSize  :  Number

GetUndoStackSize  :  Number

RestoreGraphic

SaveGraphic ( aGraphic, isGraphicGroup )

SaveSelectedGraphics

SetMaxUndoTransactionSize ( aSize )

SetUndoStackSize ( aSize )

Manipulating a GraphicList

AlignSelected

AsList  :  List

GroupSelected

OffsetSelected ( aSize )

Project ( anOldPrj, aNewPrj )

SelectAll

SelectRect ( aRect, isShiftPressed ) :  Boolean

SimplifySelection

UngroupSelected

UnselectAll

UnselectAllExcept ( aGraphic )

__________

See also

GraphicSet
Graphic
GraphicGroup
Layout
View
Display


Make (GraphicList)
Make
Example

Makes a GraphicList. Normally, you use the GraphicList associated with a View or Layout; you access this GraphicList with the View or Layout request GetGraphics. The GraphicList associated with the document is automatically redrawn when the View invalidates.

You can create your own GraphicList and use it to manage graphics. You can then Merge this GraphicList to a GraphicList on a View or you can associate this GraphicList to a particular display and manage the drawing of these graphics yourself. A GraphicList that you create is NOT automatically redrawn when a document Invalidates.

When you create a GraphicList, if you wish to display it, select/unselect graphics in it or otherwise manipulate it, you MUST associate the GraphicList with a display. Use the SetDisplay request.

Syntax

GraphicList.Make

Returns

GraphicList


Add (GraphicList)
Add

Adds aGraphic to aGraphicList. Sets the display and draws aGraphic if necessary.

Syntax

aGraphicList.Add (aGraphic)

Returns

GraphicList


AddBatch (GraphicList)
AddBatch
Example

Adds aGraphic to aGraphicList. Use AddBatch to place many graphics in list at once. The graphics do not appear on the display until you issue the EndBatch request. You must issue an EndBatch. In the example below, many graphics are added, but do not display until after the EndBatch is issued.

The following requests cause an invalidiation forcing an immediate display update and overriding AddBatch: aGraphicList.UnselectAll, aGraphicList.SelectAll, aGraphic.Select or aGraphic.Unselect. To set selection without invalidating the graphic, use aGraphic.SetSelected.

Syntax

aGraphicList.AddBatch (aGraphic)


AddName (GraphicList)
AddName

Adds aGraphic to aGraphicList. Sets the display, draws, and gives a unique name to aGraphic if necessary.

Syntax

aGraphicList.AddName (aGraphic)


Empty (GraphicList)
Empty

Removes all graphics from the list. Notifies aGraphicList clients that the graphics have been removed. Removes any client/server links between aGraphic and other graphics.

Syntax

aGraphicList.Empty


EndBatch (GraphicList)
EndBatch
Example

Ends the sequence of additions to aGraphicList with the AddBatch request. EndBatch causes the Invalidation. See AddBatch for an example.

Syntax

aGraphicList.EndBatch


MoveSelectedToBack (GraphicList)
MoveSelectedToBack

Moves the selected graphics of aGraphicList to the back - behind other graphics a aGraphicList.

Syntax

aGraphicList.MoveSelectedToBack


MoveSelectedToFront (GraphicList)
MoveSelectedToFront

Moves the selected graphics of aGraphicList to the front.

Syntax

aGraphicList.MoveSelectedToFront


RemoveGraphic (GraphicList)
RemoveGraphic

Removes the graphic from the list. Notifies aGraphicList clients that aGraphic has been removed. Removes any client/server links between aGraphic and other graphics. It does NOT destroy the graphic.

Syntax

aGraphicList.RemoveGraphic (aGraphic)


Edit (GraphicList)
Edit

Displays a property editor for the selected element in aGraphicList.

Syntax

aGraphicList.Edit

Returns

Boolean


EditName (GraphicList)
EditName

Displays the name editor for the selected graphics of aGraphicList.

Syntax

aGraphicList.EditName

Returns

Boolean


EditSizeAndPos (GraphicList)
EditSizeAndPos

Displays the size and position editor for the selected graphic of aGraphicList. There must be only one selected graphic in aGraphicList.

Syntax

aGraphicList.EditSizeAndPos


EditText (GraphicList)
EditText

Displays the graphic text editor when only text graphics are selected. The editing operations will only apply to the first selected text graphic. This request returns TRUE when the editor is displayable and FALSE when it is not (i.e., when there is a non-text graphic in the selected set).

Syntax

aGraphicList.EditText

Returns

Boolean


Draw (GraphicList)
Draw

Draws the graphics of aGraphicList to the display associated with the GraphicList.

Syntax

aGraphicList.Draw


Invalidate (GraphicList)
Invalidate

Invalidate the screen area occupied by all the graphics in the list causing it to be redrawn.

Syntax

aGraphicList.Invalidate


FindAllByClass (GraphicList)
FindAllByClass

Finds all the graphics of aGraphicList of class aClass. If there is no match, it returns Nil. Otherwise, returns a list of graphics. aClass may be one of the subclasses of Graphic: Frame, GraphicGroup, GraphicShape, GraphicText, ScaleBarFrame.

Syntax

aGraphicList.FindAllByClass (aClass)

Returns

List


FindAllByLocation (GraphicList)
FindAllByLocation

Finds all the graphics of aGraphicList at aPoint. If there is no match, returns Nil. Otherwise, returns a list of graphics.

Syntax

aGraphicList.FindAllByLocation (aPoint)

Returns

List


FindAllByName (GraphicList)
FindAllByName

Finds all the graphics of aGraphicList named aString. If there is no match, returns Nil. Otherwise, returns a list of graphics.

Syntax

aGraphicList.FindAllByName (aString)

Returns

List


FindAllByObjectTag (GraphicList)
FindAllByObjectTag

Finds all the graphics of aGraphicList with object tag anObj. If there is no match, returns Nil. Otherwise, returns a list of graphics.

Syntax

aGraphicList.FindAllByObjectTag (anObj)

Returns

List


FindByClass (GraphicList)
FindByClass

Finds the first graphic of aGraphicList of class aClass. If there is no match, returns Nil. aClass may be one of the subclasses of Graphic: Frame, GraphicGroup, GraphicShape, GraphicText, ScaleBarFrame.

Syntax

aGraphicList.FindByClass (aClass)

Returns

Graphic


FindByLocation (GraphicList)
FindByLocation

Finds the frontmost graphic of aGraphicList at aPoint. If there is no match, returns Nil.

Syntax

aGraphicList.FindByLocation (aPoint)

Returns

Graphic


FindByName (GraphicList)
FindByName

Finds the first graphic of aGraphicList named aString. If there is no match, returns Nil.

Syntax

aGraphicList.FindByName (aString)

Returns

Graphic


FindByObjectTag (GraphicList)
FindByObjectTag

Finds the first graphic of aGraphicList with object tag the same object as anObj. If there is no match, returns Nil.

Syntax

aGraphicList.FindByObjectTag (anObj)

Returns

Graphic


GetDisplay (GraphicList)
GetDisplay

Gets the display of aGraphicList.

Syntax

aGraphicList.GetDisplay

Returns

Display


GetNumberFormat (GraphicList)
GetNumberFormat

Gets the number format that's used when reporting graphic coordinates.

Syntax

aGraphicList.GetNumberFormat

Returns

String


GetSelected (GraphicList)
GetSelected

Gets the selected graphics of aGraphicList as a list.

Syntax

aGraphicList.GetSelected

Returns

List


HasSelected (GraphicList)
HasSelected

Returns TRUE if any of the graphics of aGraphicList are selected, otherwise returns FALSE.

Syntax

aGraphicList.HasSelected

Returns

Boolean


ReturnExtent (GraphicList)
ReturnExtent

Returns the extent of all the graphics of aGraphicList. For a view, the extent is in map units. For a layout, the extent is in page units (inches).

Syntax

aGraphicList.ReturnExtent

Returns

Rect


ReturnSelectedExtent (GraphicList)
ReturnSelectedExtent

Returns the extent of the selected graphics of aGraphicList. For a view, the extent is in map units. For a layout, the extent is in page units (inches).

Syntax

aGraphicList.ReturnSelectedExtent

Returns

Rect


SetDisplay (GraphicList)
SetDisplay

Sets the display of aGraphicList to aDisplay.

Syntax

aGraphicList.SetDisplay (aDisplay)


SetNumberFormat (GraphicList)
SetNumberFormat

Sets the number format to use when reporting graphic coordinates. See the discussion in the Number class description for a complete discussion of aFormatString.

Syntax

aGraphicList.SetNumberFormat (aFormatString)


SetRedrawDeferred (GraphicList)
SetRedrawDeferred

Sets the defer redraw flag to isDeferred. When set to TRUE this means that other than selection handles, all updates to aGraphicList's display that are caused by an explicit invalidation during the runtime of a script will be deferred until after that script is finished. When set to FALSE, the next invalidation event will trigger the display to refresh all or part of itself, depending on the type of invalidation specified.

Syntax

aGraphicList.SetRedrawDeferred (isDeferred)


SetSelectedExtent (GraphicList)
SetSelectedExtent

Sets the extent of the selected graphics of aGraphicList by scaling the extent of each graphic appropriately.

Syntax

aGraphicList.SetSelectedExtent (aRect)


BasicPaste (GraphicList)
BasicPaste

Pastes graphics from the clipboard to aGraphicList that are a kind of aClass.

Syntax

aGraphicList.BasicPaste (aClass)


ClearSelected (GraphicList)
ClearSelected

Deletes the selected graphics of aGraphicList.

Syntax

aGraphicList.ClearSelected


CopySelected (GraphicList)
CopySelected

Copies the selected graphics of aGraphicList to the clipboard.

Syntax

aGraphicList.CopySelected


CutSelected (GraphicList)
CutSelected

Cuts the selected graphics of aGraphicList to the clipboard.

Syntax

aGraphicList.CutSelected


Paste (GraphicList)
Paste

Pastes graphics from the clipboard to aGraphicList.

Syntax

aGraphicList.Paste


FillFrames (GraphicList)
FillFrames

 Looks for Frame and GraphicText objects in aGraphicList and fills them with appropriate objects from aList. Objects from aList are matched on a first-come, first-served basis, i.e., the first View frame is filled with the first view encountered in aList, etc.

Syntax

aGraphicList.FillFrames (aList)


GetFrameObjs (GraphicList)
GetFrameObjs

 Gets a list of objects that are filling the frame graphics.

Syntax

aGraphicList.GetFrameObjs

Returns

List


CanRestoreGraphic (GraphicList)
CanRestoreGraphic

Returns TRUE if there is a graphic on the undo stack that can be restored.

Syntax

aGraphicList.CanRestoreGraphic

Returns

Boolean


ClearUndoStack (GraphicList)
ClearUndoStack

Clear the undo stack.

Syntax

aGraphicList.ClearUndoStack


GetMaxUndoTransactionSize (GraphicList)
GetMaxUndoTransactionSize

Get the maximum number of graphics that may be involved in an undo-able transaction.

Syntax

aGraphicList.GetMaxUndoTransactionSize

Returns

Number


GetUndoStackSize (GraphicList)
GetUndoStackSize

Get the maximum depth of the undo stack.

Syntax

aGraphicList.GetUndoStackSize

Returns

Number


RestoreGraphic (GraphicList)
RestoreGraphic

Restore a graphic from the undo stack.

Syntax

aGraphicList.RestoreGraphic


SaveGraphic (GraphicList)
SaveGraphic

Save a graphic in the undo stack. If isGraphicGroup is TRUE, the graphic group will be preserved intact, otherwise it will be split into its individual components.

Syntax

aGraphicList.SaveGraphic (aGraphic, isGraphicGroup)


SaveSelectedGraphics (GraphicList)
SaveSelectedGraphics

Save the selected graphics in the undo stack as a single transaction.

Syntax

aGraphicList.SaveSelectedGraphics


SetMaxUndoTransactionSize (GraphicList)
SetMaxUndoTransactionSize

Set the maximum number of graphics that may be involved in an undo-able transaction.

Syntax

aGraphicList.SetMaxUndoTransactionSize (aSize)


SetUndoStackSize (GraphicList)
SetUndoStackSize

Set the depth of the undo stack. You should not set this value once the document which has aGraphicList as its property has been interacted with by a user. This request is intended to be part of the startup event for ArcView, or part of a project's startup script.

Syntax

aGraphicList.SetUndoStackSize (aSize)


AlignSelected (GraphicList)
AlignSelected

Aligns the selected graphics of aGraphicList.

Syntax

aGraphicList.AlignSelected


AsList (GraphicList)
AsList

Returns a simple List of the elements in aGraphicList.

Syntax

aGraphicList.AsList

Returns

List


GroupSelected (GraphicList)
GroupSelected

Groups the selected graphics of aGraphicList. The selected graphics become parts of a single GraphicGroup object.

 ' Make and populate a GraphicList
 myGList = GraphicList.Make
 myGList.Add( GraphicShape.Make( 0@0 ))
 myGList.Add( GraphicShape.Make( 1@1 ))
 myGList.Add( GraphicShape.Make( 2@2 ))

 msgbox.info( myGList.count.AsString, "3")

 ' Select all graphics - SetSelected no Invalidation!
 for each i in myGList
   i.SetSelected( TRUE )
 end

 myGList.GroupSelected

 msgbox.info( myGList.count.AsString, "1")

Syntax

aGraphicList.GroupSelected


OffsetSelected (GraphicList)
OffsetSelected

Offsets the selected graphics of aGraphicList by aSize.

Syntax

aGraphicList.OffsetSelected (aSize)


Project (GraphicList)
Project

Unprojects each graphic of aGraphicList by anOldPrj and then reprojects it by aNewPrj.

Syntax

aGraphicList.Project (anOldPrj, aNewPrj)


SelectAll (GraphicList)
SelectAll

Selects all the graphics of aGraphicList. SelectAll causes an Invalidation.

Syntax

aGraphicList.SelectAll


SelectRect (GraphicList)
SelectRect

Selects the graphics of aGraphicList that are completely within aRect. If isShiftPressed is TRUE, keep the current selection, otherwise unselect all graphics of aGraphicList first. Returns TRUE if any graphics are selected, otherwise returns FALSE. SelectRect causes an Invalidation.

Syntax

aGraphicList.SelectRect (aRect, isShiftPressed)

Returns

Boolean


SimplifySelection (GraphicList)
SimplifySelection

Reduces any selected frames to graphics.

Syntax

aGraphicList.SimplifySelection


UngroupSelected (GraphicList)
UngroupSelected

Ungroups the selected graphics of aGraphicList by turning them back into their component graphics.

Syntax

aGraphicList.UngroupSelected


UnselectAll (GraphicList)
UnselectAll

Unselects all graphics of aGraphicList. UnselectAll causes an Invalidation.

Syntax

aGraphicList.UnselectAll


UnselectAllExcept (GraphicList)
UnselectAllExcept

Unselects all graphics of aGraphicList except aGraphic. UnselectAll causes an Invalidation.

Syntax

aGraphicList.UnselectAllExcept (aGraphic)


GraphicsSelectModeEnum

 Graphics are edited based upon a selection mode.

#GRAPHICS_SELECT_NORMAL

Graphic is drawn with solid handles on its bounds. The graphic may be moved, resized, or deleted.

#GRAPHICS_SELECT_VERTEX

Graphic is drawn with hollow handles at vertices. The graphic may be reshaped by adding, deleting, or moving vertices.


GNodeRec

 An GNodeRec is a GFeature representing a proxy record for parts of shapes correspond to a shared node along two or more shapes stored in a feature table.

Inherits From

GraphicShape

Instance Requests

Getting and Setting attributes

GetSymbol  :  Symbol

__________

See also


GetSymbol (GNodeRec)
GetSymbol

Gets the symbol of aGNodeRec.

Syntax

aGNodeRec.GetSymbol

Returns

Symbol


Gnomonic
Discussion	Example

 This class implements the Gnomonic projection.

Inherits From

Perspective

Class Requests

Creating Gnomonic Projections

CanDoCustom  :  Boolean

Make ( aRect ) :  Gnomonic

__________

See also

Spheroid
CoordSys


CanDoCustom (Gnomonic)
CanDoCustom

Returns TRUE if a class of projections supports customization and FALSE if it only supports fixed parameters. The Gnomonic class always returns TRUE.

Syntax

Gnomonic.CanDoCustom

Returns

Boolean


Make (Gnomonic)
Make
Example

Creates a Gnomonic projection. aRect is the bounding rectangle of the area being projected. Use decimal degrees for the coordinates of aRect.

Syntax

Gnomonic.Make (aRect)

Returns

Gnomonic


NorthArrow

 A NorthArrow is a GraphicGroup that is limited to GraphicShapes and GraphicText. See 'Adding a north arrow to a layout' for more information.

Attributes

RotationAngle.The RotationAngle is the angle in degrees to rotate the elements to point north. Since NorthArrows are usually designed to point upwards, this will be the angle of inclination of the arrow.

Inherits From

GraphicGroup

Class Requests

Making NorthArrows

Make ( aRect ) :  NorthArrow

Instance Requests

Displaying Dialog Boxes

Edit ( aListofGraphics ) :  Boolean

EditSizeAndPos  :  Boolean

Getting and Setting Attributes

CanSimplify  :  Boolean

GetAngle  :  Number

IsGroup  :  Boolean

Offset ( aPoint )

SetAngle ( anAngle )

SetArrow ( aGraphic )

SetBounds ( aRect )

__________

See also

GraphicList
NorthArrowMgr
Layout
Template


Make (NorthArrow)
Make

Makes a NorthArrow.

Syntax

NorthArrow.Make (aRect)

Returns

NorthArrow


Edit (NorthArrow)
Edit

 Displays a dialog box to allow the user to edit the properties of aNorthArrow. Edit invokes the NorthArrowMgr. You can select a different NorthArrow to edit or edit the currently selected one. When you close the NorthArrowMgr, the selected NorthArrow is written to aNorthArrow.

aListofGraphics may be an empty list - it is not actually used by this request.

Syntax

aNorthArrow.Edit (aListofGraphics)

Returns

Boolean


EditSizeAndPos (NorthArrow)
EditSizeAndPos

 Shows the size and position editor for aNorthArrow. aNorthArrow must be added to the display with the SetDisplay request before you can EditSizeAndPos.

Syntax

aNorthArrow.EditSizeAndPos

Returns

Boolean


CanSimplify (NorthArrow)
CanSimplify

Returns TRUE because NorthArrows can be turned into graphics.

Syntax

aNorthArrow.CanSimplify

Returns

Boolean


GetAngle (NorthArrow)
GetAngle

Gets the rotation angle of aNorthArrow.

Syntax

aNorthArrow.GetAngle

Returns

Number


IsGroup (NorthArrow)
IsGroup

Returns TRUE because a NorthArrow is a subset of GraphicGroup.

Syntax

aNorthArrow.IsGroup

Returns

Boolean


Offset (NorthArrow)
Offset

Move aNorthArrow by the specified amount.

Syntax

aNorthArrow.Offset (aPoint)


SetAngle (NorthArrow)
SetAngle

Sets the rotation angle of aNorthArrow to anAngle.

Syntax

aNorthArrow.SetAngle (anAngle)


SetArrow (NorthArrow)
SetArrow

 Sets aGraphic as aNorthArrow's arrow.

Syntax

aNorthArrow.SetArrow (aGraphic)


SetBounds (NorthArrow)
SetBounds

Sets the bounds of aNorthArrow to aRect.

Syntax

aNorthArrow.SetBounds (aRect)


PictureFrame

 A PictureFrame is a kind of Frame that knows how to draw a picture file from disk. See 'Adding imported graphics to a layout' for more information.

Attributes

FileName.The name of the picture file used.

Inherits From

Frame

Inherited By

DocFrame

Class Requests

Making PictureFrames

Make ( aRect ) :  PictureFrame

MakeClipboard ( aRect ) :  PictureFrame

Instance Requests

Displaying Dialog Boxes

Edit ( aListofGraphics ) :  Boolean

Drawing Shapes

Draw

Getting and Setting Attributes

CanSimplify  :  Boolean

GetFileName  :  FileName

SetFileName ( aFileName )

Filling Frames

GetFillObject  :  Obj

IsFilled  :  Boolean

IsFilledBy ( aClass ) :  Boolean

SetFillObject ( anObj )

__________

See also

GraphicList
Template
Display


Make (PictureFrame)
Make

Makes a PictureFrame in aRect.

Syntax

PictureFrame.Make (aRect)

Returns

PictureFrame


MakeClipboard (PictureFrame)
MakeClipboard

Makes a PictureFrame in aRect from data on the system clipboard.

Syntax

PictureFrame.MakeClipboard (aRect)

Returns

PictureFrame


Edit (PictureFrame)
Edit

Edit properties

Syntax

aPictureFrame.Edit (aListofGraphics)

Returns

Boolean


Draw (PictureFrame)
Draw

Draws aPictureFrame on its Display.

Syntax

aPictureFrame.Draw


CanSimplify (PictureFrame)
CanSimplify

Returns TRUE, since PictureFrames can be turned into graphics.

Syntax

aPictureFrame.CanSimplify

Returns

Boolean


GetFileName (PictureFrame)
GetFileName

Gets the picture file name of aPictureFrame.

Syntax

aPictureFrame.GetFileName

Returns

FileName


SetFileName (PictureFrame)
SetFileName

Sets the picture file name of aPictureFrame to aFileName.

Syntax

aPictureFrame.SetFileName (aFileName)


GetFillObject (PictureFrame)
GetFillObject

 Gets the fill object of aPictureFrame.

Syntax

aPictureFrame.GetFillObject

Returns

Obj


IsFilled (PictureFrame)
IsFilled

 Returns TRUE if aPictureFrame is filled by some object, otherwise returns FALSE.

Syntax

aPictureFrame.IsFilled

Returns

Boolean


IsFilledBy (PictureFrame)
IsFilledBy

 Returns TRUE if aPictureFrame can be filled by objects of aClass, otherwise returns FALSE.

Syntax

aPictureFrame.IsFilledBy (aClass)

Returns

Boolean


SetFillObject (PictureFrame)
SetFillObject

 Sets the fill object of aPictureFrame to anObj.

Syntax

aPictureFrame.SetFillObject (anObj)


Graphic

 Graphic is an abstract class representing something you can see in a layout, or in a view (other than features and images). The various subclasses encapsulate the knowledge of how to visually represent various kinds of data. For example, a GraphicShape knows how to draw a mathematical shape onto a Display. A ViewFrame knows how to draw the contents of a view into a layout document. GraphicText draws text on the display.

Usually, Graphic objects are elements in a GraphicList associated with a View or a Layout. The GraphicList manages the graphic elements and ensures that they are redrawn when the document invalidates. If the Graphic is not an element of the view, then you must set the Graphic's display and explicitly draw the Graphic.

Attributes

Bounds.Bounds is a rectangle which defines the position and extent of the Graphic. You can also obtain the Origin and Extent from the Graphic directly, rather than obtaining its bounds first.

Display.The Display is where the Graphic is drawn. If the Graphic is an element in a GraphicList, then the Display is the display associated with the GraphicList. If the Graphic is not in a GraphicList, then you can set the display with the SetDisplay request.

ObjectTag.The ObjectTag can be used arbitrarily by the Avenue programmer.

Selected.Selected is TRUE if the Graphic is selected for manipulation.

Symbol(s).The appearance of the graphic is defined by one or more symbols. Most graphic instances use only one symbol. Some, such as GraphicGroup and GraphicText, need more.

Visible.Visible is TRUE if the Graphic can be seen.

FillObject.The actual data object which the Graphic knows how to draw. For example, a GraphicText object can have a String object as its FillObject.

Inherits From

Obj

Inherited By

Frame
GraphicGroup
GraphicShape
GraphicText
ScaleBarFrame

Instance Requests

Filling Frames

GetFillObject  :  Obj

IsFilled  :  Boolean

IsFilledBy ( aClass ) :  Boolean

SetFillObject ( anObj )

Checking Capabilities of a Graphic

CanEditText  :  Boolean

CanProject  :  Boolean

CanSimplify  :  Boolean

CanUndo  :  Boolean

IsGroup  :  Boolean

Displaying Dialog Boxes

Edit ( aListofGraphics ) :  Boolean

EditName  :  Boolean

EditSizeAndPos  :  Boolean

EditText  :  Boolean

Drawing Shapes

Draw

DrawHandles

Invalidate

IsNowVisible  :  Boolean

Getting and Setting Attributes

ConstrainBounds ( aRatio )

GetBounds  :  Rect

GetDisplay  :  Display

GetDocument  :  Doc

GetExtent  :  Point

GetObjectTag  :  Obj

GetOrigin  :  Point

GetShape  :  Shape

GetSiblingList  :  List

GetSymbol  :  Symbol

HasSiblings  :  Boolean

IsHit ( aRect ) :  Boolean

IsMoveable  :  Boolean

IsOwnerActive  :  Boolean

IsSelected  :  Boolean

IsTouchedBy ( aRect ) :  Boolean

IsVisible  :  Boolean

ReturnSymbols  :  List

ReturnUniqueName  :  String

Select

SelectToEdit

SetBounds ( aRect )

SetDisplay ( aDisplay )

SetExtent ( aPoint )

SetObjectTag ( anObj )

SetOrigin ( aPoint )

SetSelected ( isSelected )

SetSymbol ( aSymbol )

SetSymbols ( aSymbolList )

SetVisible ( isVisible )

Unselect

Transforming Graphics

Offset ( aPoint )

Project ( aPrj )

UnProject ( aPrj )

__________

See also

Display
GraphicList
Template
View
Layout


GetFillObject (Graphic)
GetFillObject

 Gets the fill object of aGraphic.

Syntax

aGraphic.GetFillObject

Returns

Obj


IsFilled (Graphic)
IsFilled

 Returns TRUE if aGraphic is filled by some object, otherwise returns FALSE.

Syntax

aGraphic.IsFilled

Returns

Boolean


IsFilledBy (Graphic)
IsFilledBy

 Returns TRUE if aGraphic can be filled by objects of aClass, otherwise returns FALSE.

Syntax

aGraphic.IsFilledBy (aClass)

Returns

Boolean


SetFillObject (Graphic)
SetFillObject

 Sets the fill object of aGraphic to anObj.

Syntax

aGraphic.SetFillObject (anObj)


CanEditText (Graphic)
CanEditText

Returns TRUE if aGraphic has associated editable text, returns FALSE otherwise.

Syntax

aGraphic.CanEditText

Returns

Boolean


CanProject (Graphic)
CanProject

Returns TRUE if aGraphic can be projected, returns FALSE otherwise.

Syntax

aGraphic.CanProject

Returns

Boolean


CanSimplify (Graphic)
CanSimplify

Returns TRUE if aGraphic can be reduced to graphics, returns FALSE otherwise.

Syntax

aGraphic.CanSimplify

Returns

Boolean


CanUndo (Graphic)
CanUndo

Returns TRUE if a graphic edit involving aGraphic can be undone.

Syntax

aGraphic.CanUndo

Returns

Boolean


IsGroup (Graphic)
IsGroup

Returns TRUE if aGraphic is a GraphicGroup. GraphicGroup is a subclass of Graphic.

Syntax

aGraphic.IsGroup

Returns

Boolean


Edit (Graphic)
Edit

Displays a dialog box to allow the user to edit the properties of aGraphic. aListofGraphics should contain all the Graphics in the document.

Syntax

aGraphic.Edit (aListofGraphics)

Returns

Boolean


EditName (Graphic)
EditName

Shows the name editor for aGraphic.

Syntax

aGraphic.EditName

Returns

Boolean


EditSizeAndPos (Graphic)
EditSizeAndPos

Shows the size and position editor for aGraphic.

Syntax

aGraphic.EditSizeAndPos

Returns

Boolean


EditText (Graphic)
EditText

Shows the text editor for aGraphic. Use this only if CanEditText returns TRUE. ABSTRACT

Syntax

aGraphic.EditText

Returns

Boolean


Draw (Graphic)
Draw

Draws aGraphic on its Display. ABSTRACT If aGraphic is not an element on a GraphicList, you must explicitly set a Display object.

 aGraphic = GraphicShape.Make( Line.make( 0@0, 1@1 ))
 aGraphic.SetDisplay( av.GetActiveDoc.GetDisplay )
 aGraphic.GetSymbol.SetColor( color.GetRed )
 aGraphic.Draw
 aGraphic.Invalidate

Syntax

aGraphic.Draw


DrawHandles (Graphic)
DrawHandles

Draws the selection handles of aGraphic on its Display.

Syntax

aGraphic.DrawHandles


Invalidate (Graphic)
Invalidate

Invalidates the portion of the Display occupied by aGraphic. Invalidate causes the portion of the display covered by aGraphic to be redrawn. Note: Sometimes when if you are using aGraphic.Invalidate in a for each loop, the wrong region of the screen may be invalated. You can work around this by removing the graphic from the document's graphicList and then moving it, setting its display, and then reinserting it into the document's graphicList.

 'Get the first graphic in the GraphicList - assume a point
 g = av.GetActiveDoc.GetGraphics.Get(0)

 g.Invalidate                       'erase current
 g.SetOrigin( g.GetShape + (-3@2))  'move it
 g.Invalidate                       'redraw

Syntax

aGraphic.Invalidate


IsNowVisible (Graphic)
IsNowVisible

Returns TRUE if aGraphic should be drawn now, otherwise returns FALSE.

Syntax

aGraphic.IsNowVisible

Returns

Boolean


ConstrainBounds (Graphic)
ConstrainBounds

Adjust aGraphic's bounds to have the aspect ratio specified in aRatio. aRatio is point where the x coordinate specifies the width and the y the height.

Syntax

aGraphic.ConstrainBounds (aRatio)


GetBounds (Graphic)
GetBounds

Gets the bounds of aGraphic.

Syntax

aGraphic.GetBounds

Returns

Rect


GetDisplay (Graphic)
GetDisplay

Gets the display of aGraphic.

Syntax

aGraphic.GetDisplay

Returns

Display


GetDocument (Graphic)
GetDocument

Get the document that owns the Dpy the graphic is associated with.

Syntax

aGraphic.GetDocument

Returns

Doc


GetExtent (Graphic)
GetExtent

Gets extent of aGraphic.

Syntax

aGraphic.GetExtent

Returns

Point


GetObjectTag (Graphic)
GetObjectTag

Gets the object tag of aGraphic.

Syntax

aGraphic.GetObjectTag

Returns

Obj


GetOrigin (Graphic)
GetOrigin

Gets origin (lower left) of aGraphic.

Syntax

aGraphic.GetOrigin

Returns

Point


GetShape (Graphic)
GetShape

Gets the shape of aGraphic.

Syntax

aGraphic.GetShape

Returns

Shape


GetSiblingList (Graphic)
GetSiblingList

Returns a list containing aGraphic's siblings.

Syntax

aGraphic.GetSiblingList

Returns

List


GetSymbol (Graphic)
GetSymbol

Gets the symbol of aGraphic. In the case of graphics that have more than one symbol, like GraphicGroups, GetSymbol returns the first symbol.

Syntax

aGraphic.GetSymbol

Returns

Symbol


HasSiblings (Graphic)
HasSiblings

Returns TRUE if aGraphic has siblings. Only GraphicLabel class object can have siblings, thus all other sub-classes of graphic will return FALSE.

Syntax

aGraphic.HasSiblings

Returns

Boolean


IsHit (Graphic)
IsHit

Returns TRUE if aRect intersects aGraphic, otherwise returns FALSE.

Syntax

aGraphic.IsHit (aRect)

Returns

Boolean


IsMoveable (Graphic)
IsMoveable

Returns TRUE if aGraphic can be moved.

Syntax

aGraphic.IsMoveable

Returns

Boolean


IsOwnerActive (Graphic)
IsOwnerActive

Returns TRUE if aGraphic's display is the display for the active document. Use aGraphic.SetDisplay(aDisplay) set a graphic to either a display.

Syntax

aGraphic.IsOwnerActive

Returns

Boolean


IsSelected (Graphic)
IsSelected

Returns TRUE if aGraphic is selected, otherwise returns FALSE.

Syntax

aGraphic.IsSelected

Returns

Boolean


IsTouchedBy (Graphic)
IsTouchedBy

Returns TRUE if aRect intersects the sides of aGraphic, otherwise returns FALSE.

Syntax

aGraphic.IsTouchedBy (aRect)

Returns

Boolean


IsVisible (Graphic)
IsVisible

Returns TRUE if aGraphic is visible, otherwise returns FALSE.

Syntax

aGraphic.IsVisible

Returns

Boolean


ReturnSymbols (Graphic)
ReturnSymbols

Returns a list of symbols used by aGraphic. Use ReturnSymbols when retrieving the symbols for GraphicGroups For Graphics with just one symbol, like GraphicShapes or GraphicText, use the GetSymbol request.

Syntax

aGraphic.ReturnSymbols

Returns

List


ReturnUniqueName (Graphic)
ReturnUniqueName

Generates a unique name for aGraphic. Multiple invocations of this request will return different names.

Syntax

aGraphic.ReturnUniqueName

Returns

String


Select (Graphic)
Select

Selects aGraphic. Select causes an invalidation.

Syntax

aGraphic.Select


SelectToEdit (Graphic)
SelectToEdit

Selects aGraphic for editing. SelectToEdit causes an invalidation.

Syntax

aGraphic.SelectToEdit


SetBounds (Graphic)
SetBounds

Sets the bounds of aGraphic to aRect.

Syntax

aGraphic.SetBounds (aRect)


SetDisplay (Graphic)
SetDisplay

Sets the display of aGraphic to aDisplay.

Syntax

aGraphic.SetDisplay (aDisplay)


SetExtent (Graphic)
SetExtent

Sets the extent of aGraphic.

Syntax

aGraphic.SetExtent (aPoint)


SetObjectTag (Graphic)
SetObjectTag

Sets the object tag of aGraphic.

Syntax

aGraphic.SetObjectTag (anObj)


SetOrigin (Graphic)
SetOrigin

Sets the origin of aGraphic to aPoint.

Syntax

aGraphic.SetOrigin (aPoint)


SetSelected (Graphic)
SetSelected

Sets the selected status of aGraphic to isSelected. SetSelected DOES NOT cause an invalidation of aGraphic.

Syntax

aGraphic.SetSelected (isSelected)


SetSymbol (Graphic)
SetSymbol

Sets the symbol of aGraphic to aSymbol.

Syntax

aGraphic.SetSymbol (aSymbol)


SetSymbols (Graphic)
SetSymbols

Sets the symbols of aGraphic to aSymbolList. Use SetSymbols to set the symbols of the elements in GraphicGroups.

Syntax

aGraphic.SetSymbols (aSymbolList)


SetVisible (Graphic)
SetVisible

Sets the visible state of aGraphic to isVisible.

Syntax

aGraphic.SetVisible (isVisible)


Unselect (Graphic)
Unselect

Unselects aGraphic. Unselect causes an invalidation.

Syntax

aGraphic.Unselect


Offset (Graphic)
Offset

Offsets aGraphic by aPoint.

Syntax

aGraphic.Offset (aPoint)


Project (Graphic)
Project

Projects aGraphic to aPrj.

Syntax

aGraphic.Project (aPrj)


UnProject (Graphic)
UnProject

Unprojects aGraphic from aPrj.

Syntax

aGraphic.UnProject (aPrj)


ScaleBarFrame

 A ScalebarFrame is a kind of Frame which knows how to draw a scale bar into a layout. See 'Adding a scale bar to a layout' for more information.

Attributes

Interval.The Interval is the width of one major division on the scale bar.

Preserve Interval.The preserve interval property determines whether the ScaleBarFrame will remain constant when the view that the ScaleBarFrame is linked to changes scales. If this property is set to TRUE, and the associated view changes scales, the overall size of the ScaleBarFrame will be adjusted accordingly. If this property is set to FALSE, then the ScaleBarFrame will remain the same size, but then the interval will be adjusted accordingly when the view that it is associated with changes scales.

Intervals.Intervals is how many intervals are drawn to the right of zero.

Divisions.Divisions is how many smaller divisions are used in one interval to the left of zero. If Divisions are 0, this interval will not be drawn.

Style.The Style is the way the scalebar looks.

Units.The Units that the scalebar are in.

Inherits From

Graphic

Enumerations

ScaleBarFrameStyleEnum

Class Requests

Making ScaleBarFrames

Make ( aRect ) :  ScaleBarFrame

Instance Requests

Displaying Dialog Boxes

Edit ( aListofGraphics ) :  Boolean

Drawing Shapes

Draw

Filling Frames

GetFillObject  :  Obj

IsFilled  :  Boolean

IsFilledBy ( aClass ) :  Boolean

SetFillObject ( anObj )

Getting and Setting Attributes

CanSimplify  :  Boolean

GetDivisions  :  Number

GetInterval  :  Number

GetIntervals  :  Number

GetPreserveInterval  :  Boolean

GetStyle  :  ScaleBarFrameStyleEnum

GetTextRatio  :  Number

GetUnits  :  UnitsLinearEnum

GetViewFrame  :  ViewFrame

ReturnSymbols  :  List

SetBounds ( aRect )

SetDisplay ( aDisplay )

SetDivisions ( aNumber )

SetInterval ( aNumber )

SetIntervals ( aNumber )

SetPreserveInterval ( aBoolean )

SetStyle ( aGSBarStyle )

SetSymbols ( aSymbolList )

SetTextRatio ( aRatio )

SetUnits ( aMeasEnum )

SetViewFrame ( aViewFrame )

__________

See also

GraphicList
ViewFrame
Template
Layout


Make (ScaleBarFrame)
Make

Makes a ScaleBarFrame. The lower left point and width of the rectangle is used to position the frame. The size of the current text symbol determines the height.

Syntax

ScaleBarFrame.Make (aRect)

Returns

ScaleBarFrame


Edit (ScaleBarFrame)
Edit

Displays a dialog box to allow the user to edit the properties of aScaleBarFrame. aListofGraphics should contain all the ScaleBarFrames in the document.

Syntax

aScaleBarFrame.Edit (aListofGraphics)

Returns

Boolean


Draw (ScaleBarFrame)
Draw

Draws aScaleBarFrame on its Display.

Syntax

aScaleBarFrame.Draw


GetFillObject (ScaleBarFrame)
GetFillObject

 Gets the fill object of aScalebarFrame.

Syntax

aScalebarFrame.GetFillObject

Returns

Obj


IsFilled (ScaleBarFrame)
IsFilled

 Returns TRUE if aScalebarFrame is filled by some object, otherwise returns FALSE.

Syntax

aScalebarFrame.IsFilled

Returns

Boolean


IsFilledBy (ScaleBarFrame)
IsFilledBy

 Returns TRUE if aScalebarFrame can be filled by objects of aClass, otherwise returns FALSE.

Syntax

aScalebarFrame.IsFilledBy (aClass)

Returns

Boolean


SetFillObject (ScaleBarFrame)
SetFillObject

 Sets the fill object of aScalebarFrame to anObj.

Syntax

aScalebarFrame.SetFillObject (anObj)


CanSimplify (ScaleBarFrame)
CanSimplify

Returns TRUE, since ScaleBarFrames can be turned into graphics.

Syntax

aScaleBarFrame.CanSimplify

Returns

Boolean


GetDivisions (ScaleBarFrame)
GetDivisions

Gets the number of divisions to the left of zero in aScaleBarFrame.

Syntax

aScaleBarFrame.GetDivisions

Returns

Number


GetInterval (ScaleBarFrame)
GetInterval

Gets the interval of aScaleBarFrame.

Syntax

aScaleBarFrame.GetInterval

Returns

Number


GetIntervals (ScaleBarFrame)
GetIntervals

Gets the number of intervals to the right of zero.

Syntax

aScaleBarFrame.GetIntervals

Returns

Number


GetPreserveInterval (ScaleBarFrame)
GetPreserveInterval

Returns the preserve interval property of aScaleBarFrame.

Syntax

aScaleBarFrame.GetPreserveInterval

Returns

Boolean


GetStyle (ScaleBarFrame)
GetStyle

Gets the style of aScaleBarFrame.

Syntax

aScaleBarFrame.GetStyle

Returns

ScaleBarFrameStyleEnum


GetTextRatio (ScaleBarFrame)
GetTextRatio

Gets the text ratio of aScaleBarFrame.

Syntax

aScaleBarFrame.GetTextRatio

Returns

Number


GetUnits (ScaleBarFrame)
GetUnits

Gets the units of aScaleBarFrame.

Syntax

aScaleBarFrame.GetUnits

Returns

UnitsLinearEnum


GetViewFrame (ScaleBarFrame)
GetViewFrame

Gets the ViewFrame of aScaleBarFrame.

Syntax

aScaleBarFrame.GetViewFrame

Returns

ViewFrame


ReturnSymbols (ScaleBarFrame)
ReturnSymbols

Returns a list of symbols used by aScaleBarFrame.

Syntax

aScaleBarFrame.ReturnSymbols

Returns

List


SetBounds (ScaleBarFrame)
SetBounds

Sets the bounds of aScalebarFrame to aRect.

Syntax

aScalebarFrame.SetBounds (aRect)


SetDisplay (ScaleBarFrame)
SetDisplay

Sets the display the text is drawn on. aDisplay must be a PageDisplay (layout).

Syntax

aScalebarFrame.SetDisplay (aDisplay)


SetDivisions (ScaleBarFrame)
SetDivisions

Sets the number of divisions to the left of zero in aScaleBarFrame to aNumber.

Syntax

aScaleBarFrame.SetDivisions (aNumber)


SetInterval (ScaleBarFrame)
SetInterval

Sets the interval of aScaleBarFrame to aNumber.

Syntax

aScaleBarFrame.SetInterval (aNumber)


SetIntervals (ScaleBarFrame)
SetIntervals

Sets the number of intervals to the right of zero to aNumber.

Syntax

aScaleBarFrame.SetIntervals (aNumber)


SetPreserveInterval (ScaleBarFrame)
SetPreserveInterval

Sets the preserve interval property of aScaleBarFrame to aBoolean. The preserve interval property determines whether the interval of the scalebar will remain constant. If set to TRUE the aScaleBarFrame will change size if the view it is linked to changes scale. If set to FALSE, the ScaleBarFrame will remain the same size, but the interval will be adjusted if the view it is linked to changes scales.

Syntax

aScaleBarFrame.SetPreserveInterval (aBoolean)


SetStyle (ScaleBarFrame)
SetStyle

Sets the style of aScaleBarFrame to aGSBarStyle.

Syntax

aScaleBarFrame.SetStyle (aGSBarStyle)


SetSymbols (ScaleBarFrame)
SetSymbols

Sets the symbols of aScaleBarFrame to aSymbolList.

Syntax

aScaleBarFrame.SetSymbols (aSymbolList)


SetTextRatio (ScaleBarFrame)
SetTextRatio

Sets the text ratio of aScaleBarFrame to aRatio.

Syntax

aScaleBarFrame.SetTextRatio (aRatio)


SetUnits (ScaleBarFrame)
SetUnits

Sets the units of aScaleBarFrame to aMeasEnum.

Syntax

aScaleBarFrame.SetUnits (aMeasEnum)


SetViewFrame (ScaleBarFrame)
SetViewFrame

Sets the ViewFrame of aScaleBarFrame to aViewFrame.

Syntax

aScaleBarFrame.SetViewFrame (aViewFrame)


ScaleBarFrameStyleEnum

 ScaleBarFrameStyleEnum defines the different scalebar types.

#SCALEBARFRAME_STYLE_ALTFILLED

A bar with alternate halves of bands filled.

#SCALEBARFRAME_STYLE_FILLED

A bar with alternate bands filled.

#SCALEBARFRAME_STYLE_HOLLOW

A bar with hollow bands.

#SCALEBARFRAME_STYLE_LINED

A bar with lines down the middle of alternate bands.

#SCALEBARFRAME_STYLE_TEXT

The scale as a ratio.


GraphicSet
Example

 A GraphicSet is a list of Graphics that are also contained in aView's GraphicList. The visibility of the Graphics contained in aGraphicSet is controlled by the Theme that aGraphicSet belongs to. Thus, Graphics must be added to both aView's GraphicList and aTheme's GraphicSet. Graphics that are only added to aGraphicSet will never be visible because they are not also in aView's GraphicList. Adding a graphic that is already in aView's GraphicList is the same as choosing the Attach Graphics choice in the Theme menu.

A Graphic may be in more than one GraphicSet. Its visibility will depend upon the position of the Themes in the TOC. The Graphic will assume the visibility property of the Theme highest in the TOC.

The GraphicSet is synchronized with the View's GraphicList so that if you remove aGraphic from the View's GraphicList, it will also be removed from all GraphicSets that contained that particular Graphic. If you only remove an item from aGraphicSet, it will remain in aView's GraphicList and any other GraphicSets that contain that graphic. Removing aGraphic from aGraphicSet is the same as choosing Detach Graphics choice in the Theme menu.

You can toggle the visibility or the selected state of all Graphics associated with a Theme by using its GraphicSet. Note that the Theme's visibilty will override any visibility that is set to the GraphicSet. The override will occur the next time the theme is redrawn.

To access the GraphicSet, issue the Theme request GetGraphics. Use List requests to add Graphics to the GraphicSet.

Attributes

Selected.The subset of the GraphicSet which is currently selected.

Visible.The visibility of all elements of the GraphicSet.

Inherits From

List

Instance Requests

Getting and Setting Attributes

Invalidate

SetSelected ( isSelected )

SetVisible ( isVisible )

Supporting Autolabelling

CanConvertOverlappingLabels ( anOverlapColor ) :  Boolean

ConvertOverlappingLabels ( anOverlapColor )

HasLabels  :  Boolean

HasOverlappingLabels ( anOverlapColor ) :  Boolean

SelectLabels

SelectOverlappingLabels ( anOverlapColor )

__________

See also

GraphicList
Theme


Invalidate (GraphicSet)
Invalidate

Invalidates the portion of the Display occupied by the graphics in aGraphicSet. Invalidate causes the portion of the display covered by aGraphicSet to be redrawn.

Syntax

aGraphicSet.Invalidate


SetSelected (GraphicSet)
SetSelected

Sets the selection flag of each graphic in aGraphicSet to isSelected.

Syntax

aGraphicSet.SetSelected (isSelected)


SetVisible (GraphicSet)
SetVisible
Example

Sets the visibility of each graphic in aGraphicSet to isVisible.

Syntax

aGraphicSet.SetVisible (isVisible)


CanConvertOverlappingLabels (GraphicSet)
CanConvertOverlappingLabels

Returns TRUE if aGraphicSet contains both Graphic Labels and overlapping Graphic Labels.

Syntax

aGraphicSet.CanConvertOverlappingLabels (anOverlapColor)

Returns

Boolean


ConvertOverlappingLabels (GraphicSet)
ConvertOverlappingLabels

Converts all overlapping Graphic Labels to non-overlapping Graphic Labels.

Syntax

aGraphicSet.ConvertOverlappingLabels (anOverlapColor)


HasLabels (GraphicSet)
HasLabels

Returns TRUE if aGraphicSet contains Graphic Text or Graphic Labels.

Syntax

aGraphicSet.HasLabels

Returns

Boolean


HasOverlappingLabels (GraphicSet)
HasOverlappingLabels

Returns TRUE if aGraphicSet contains overlapping Graphic Text or Graphic Labels.

Syntax

aGraphicSet.HasOverlappingLabels (anOverlapColor)

Returns

Boolean


SelectLabels (GraphicSet)
SelectLabels

Select all Graphic Text or Graphic Labels in aGraphicSet.

Syntax

aGraphicSet.SelectLabels


SelectOverlappingLabels (GraphicSet)
SelectOverlappingLabels

Select all Graphic Text or Graphic Labels in aGraphicSet.

Syntax

aGraphicSet.SelectOverlappingLabels (anOverlapColor)


GraphicShape
Discussion

 A GraphicShape is a kind of Graphic which knows how to draw a geometric shape (such as a rectangle or circle).

Inherits From

Graphic

Inherited By

GEdgeRec
GNodeRec
GShapeRec

Class Requests

Making GraphicShapes

Make ( aShape ) :  GraphicShape

Instance Requests

Checking Capabilities of a GraphicShape

CanProject  :  Boolean

CanTransform  :  Boolean

Displaying Dialog Boxes

EditSizeAndPos  :  Boolean

Drawing Shapes

Draw

DrawHandles

Getting and Setting Attributes

GetOrigin  :  Point

GetShape  :  Shape

IsHit ( aRect ) :  Boolean

SelectEdit

SetBounds ( aRect )

SetDisplay ( aDisplay )

SetOrigin ( aPoint )

SetShape ( aShape )

Transforming GraphicShapes

Offset ( aPoint )

Project ( aPrj )

UnProject ( aPrj )

__________

See also

Shape
Display
GraphicList


Make (GraphicShape)
Make

Makes a GraphicShape containing aShape.

Syntax

GraphicShape.Make (aShape)

Returns

GraphicShape


CanProject (GraphicShape)
CanProject

Returns TRUE if aGraphicShape can be projected, returns FALSE otherwise.

Syntax

aGraphicShape.CanProject

Returns

Boolean


CanTransform (GraphicShape)
CanTransform

Returns TRUE if aGraphicShape can be transformed, returns FALSE otherwise.

Syntax

aGraphicShape.CanTransform

Returns

Boolean


EditSizeAndPos (GraphicShape)
EditSizeAndPos

Shows the size and position editor for aGraphicShape.

Syntax

aGraphicShape.EditSizeAndPos

Returns

Boolean


Draw (GraphicShape)
Draw

Draws aGraphicShape on its Display.

Syntax

aGraphicShape.Draw


DrawHandles (GraphicShape)
DrawHandles

Draws the selection handles of aGraphicShape on its Display.

Syntax

aGraphicShape.DrawHandles


GetOrigin (GraphicShape)
GetOrigin

Gets origin (lower left) of aGraphicShape.

Syntax

aGraphicShape.GetOrigin

Returns

Point


GetShape (GraphicShape)
GetShape

Gets the shape of aGraphicShape.

Syntax

aGraphicShape.GetShape

Returns

Shape


IsHit (GraphicShape)
IsHit

Returns TRUE if aRect intersects aGraphicShape, otherwise returns FALSE.

Syntax

aGraphicShape.IsHit (aRect)

Returns

Boolean


SelectEdit (GraphicShape)
SelectEdit

Selects aGraphicShape for editing. SelectEdit causes an invalidation.

Syntax

aGraphicShape.SelectEdit


SetBounds (GraphicShape)
SetBounds

Sets the bounds of aGraphicShape to aRect.

Syntax

aGraphicShape.SetBounds (aRect)


SetDisplay (GraphicShape)
SetDisplay

Sets the display of aGraphicShape to aDisplay.

Syntax

aGraphicShape.SetDisplay (aDisplay)


SetOrigin (GraphicShape)
SetOrigin

Sets the origin of aGraphicShape to aPoint.

Syntax

aGraphicShape.SetOrigin (aPoint)


SetShape (GraphicShape)
SetShape

Sets the shape of aGraphicShape to aShape.

Syntax

aGraphicShape.SetShape (aShape)


Offset (GraphicShape)
Offset

Offsets aGraphicShape by aPoint.

Syntax

aGraphicShape.Offset (aPoint)


Project (GraphicShape)
Project

Projects aGraphicShape to aPrj.

Syntax

aGraphicShape.Project (aPrj)


UnProject (GraphicShape)
UnProject

Unprojects aGraphicShape from aPrj.

Syntax

aGraphicShape.UnProject (aPrj)


GShapeRec

 A GShapeRec is a GFeature representing a proxy record for a shape stored in a feature table.

Inherits From

GraphicShape

__________

See also


GraphicText
Discussion

 A GraphicText object is a kind of Graphic which knows how to draw symbolized strings objects.

Inherits From

Graphic

Inherited By

GraphicLabel
SplineText

Class Requests

Making GraphicTexts

Make ( aString, aPoint ) :  GraphicText

Instance Requests

Checking Capabilities of a GraphicText

CanEditText  :  Boolean

CanProject  :  Boolean

Displaying Dialog Boxes

Edit ( aList ) :  Boolean

EditSizeAndPos  :  Boolean

EditText  :  Boolean

Drawing Shapes

Draw

Invalidate

SetDisplay ( aDisplay )

Getting and Setting Attributes

GetAlignment  :  TextComposerJustEnum

GetAngle  :  Number

GetSpacing  :  Number

GetText  :  String

ReturnSymbols  :  List

SetAlignment ( aTxJust )

SetAngle ( anAngle )

SetBounds ( aRect )

SetSpacing ( aDistance )

SetSymbols ( aSymbolList )

SetText ( aString )

Filling Frames

GetFillObject  :  Obj

IsFilled  :  Boolean

IsFilledBy ( aClass ) :  Boolean

SetFillObject ( anObj )

Transforming GraphicTexts

ClearTransforms

Project ( aPrj )

UnProject ( aPrj )

__________

See also

GraphicList
TextPositioner
Font
Display
Layout


Make (GraphicText)
Make

Makes a GraphicText at aPoint containing aString.

Syntax

GraphicText.Make (aString, aPoint)

Returns

GraphicText


CanEditText (GraphicText)
CanEditText

Returns TRUE if aGraphicText has associated editable text, returns FALSE otherwise.

Syntax

aGraphicText.CanEditText

Returns

Boolean


CanProject (GraphicText)
CanProject

Returns TRUE if aGraphicText can be projected, returns FALSE otherwise.

Syntax

aGraphicText.CanProject

Returns

Boolean


Edit (GraphicText)
Edit

 Shows the text editor for aGraphicText. The list is not used by the GText subclass.

Syntax

aGraphicText.Edit (aList)

Returns

Boolean


EditSizeAndPos (GraphicText)
EditSizeAndPos

 Shows the size and position editor for aGraphicText.

Syntax

aGraphicText.EditSizeAndPos

Returns

Boolean


EditText (GraphicText)
EditText

Shows the text editor for aGraphicText. Use this only if CanEditText returns TRUE.

Syntax

aGraphicText.EditText

Returns

Boolean


Draw (GraphicText)
Draw

Draws aGraphicText on its Display.

Syntax

aGraphicText.Draw


Invalidate (GraphicText)
Invalidate

Invalidates the portion of the display occupied by aGraphicText causing it to be redrawn.

Syntax

aGraphicText.Invalidate


SetDisplay (GraphicText)
SetDisplay

Sets the display the text is drawn on.

Syntax

aGraphicText.SetDisplay (aDisplay)


GetAlignment (GraphicText)
GetAlignment

Gets the alignment of aGraphicText.

Syntax

aGraphicText.GetAlignment

Returns

TextComposerJustEnum


GetAngle (GraphicText)
GetAngle

Gets the rotation angle of aGraphicText.

Syntax

aGraphicText.GetAngle

Returns

Number


GetSpacing (GraphicText)
GetSpacing

Gets the line spacing of aGraphicText.

Syntax

aGraphicText.GetSpacing

Returns

Number


GetText (GraphicText)
GetText

Gets the text of aGraphicText.

Syntax

aGraphicText.GetText

Returns

String


ReturnSymbols (GraphicText)
ReturnSymbols

Returns a list of symbols used by aGraphicText.

Syntax

aGraphicText.ReturnSymbols

Returns

List


SetAlignment (GraphicText)
SetAlignment

Sets the alignment of aGraphicText to aTxJust. If aGraphicText has fewer than two lines, then SetAlignment will not affect how that text appears in a display. Only GraphicText that has more than one line and the lines have different numbers of characters or different lengths will change in appearance.

Syntax

aGraphicText.SetAlignment (aTxJust)


SetAngle (GraphicText)
SetAngle

Sets the rotation angle of aGraphicText to anAngle.

Syntax

aGraphicText.SetAngle (anAngle)


SetBounds (GraphicText)
SetBounds

Sets the bounds of aGraphicText to aRect.

Syntax

aGraphicText.SetBounds (aRect)


SetSpacing (GraphicText)
SetSpacing

Sets the line spacing of aGraphicText to aDistance.

Syntax

aGraphicText.SetSpacing (aDistance)


SetSymbols (GraphicText)
SetSymbols

Sets the symbols of aGraphicText to aSymbolList.

Syntax

aGraphicText.SetSymbols (aSymbolList)


SetText (GraphicText)
SetText

Sets the text of aGraphicText to aString.

Syntax

aGraphicText.SetText (aString)


GetFillObject (GraphicText)
GetFillObject

 Gets the fill object of aGraphicText.

Syntax

aGraphicText.GetFillObject

Returns

Obj


IsFilled (GraphicText)
IsFilled

 Returns TRUE if aGraphicText is filled by some object, otherwise returns FALSE.

Syntax

aGraphicText.IsFilled

Returns

Boolean


IsFilledBy (GraphicText)
IsFilledBy

 Returns TRUE if aGraphicText can be filled by objects of aClass, otherwise returns FALSE.

Syntax

aGraphicText.IsFilledBy (aClass)

Returns

Boolean


SetFillObject (GraphicText)
SetFillObject

 Sets the fill object of aGraphicText to anObj.

Syntax

aGraphicText.SetFillObject (anObj)


ClearTransforms (GraphicText)
ClearTransforms

Clears the transformations on aGraphicText.

Syntax

aGraphicText.ClearTransforms


Project (GraphicText)
Project

Projects aGraphicText to aPrj.

Syntax

aGraphicText.Project (aPrj)


UnProject (GraphicText)
UnProject

Unprojects aGraphicText from aPrj.

Syntax

aGraphicText.UnProject (aPrj)


ViewFrame

 A ViewFrame is a kind of Frame that knows how to draw a view inside a layout document. See 'Adding a view to a layout' for more information.

Attributes

LiveLinked.LiveLinked indicates whether the ViewFrame is updated every time the view changes.

MapDisplay.The MapDisplay is a MapDisplay object that does the coordinate transformation from map to page coordinates inside the ViewFrame.

ScalePreserved.ScalePreserved indicates whether the ViewFrame is drawn at the same scale as the view or to show as much of the map as the view does.

View.The View document drawn inside the ViewFrame.

Inherits From

Frame

Class Requests

Making ViewFrames

GetViewName ( aView ) :  String

Make ( aRect ) :  ViewFrame

Instance Requests

Displaying Dialog Boxes

Edit ( aListofGraphics ) :  Boolean

EditSizeAndPos  :  Boolean

Drawing Shapes

Draw

Filling Frames

GetFillObject  :  Obj

IsFilled  :  Boolean

IsFilledBy ( aClass ) :  Boolean

SetFillObject ( anObj )

Getting and Setting Attributes

CanSimplify  :  Boolean

GetMapDisplay  :  Display

GetUserScale  :  Number

GetView  :  View

IsExtentPreserved  :  Boolean

IsLiveLinked  :  Boolean

IsScalePreserved  :  Boolean

ReturnScale  :  Number

SetBounds ( aRect )

SetDisplay ( aDisplay )

SetExtentPreserved ( isPreserved )

SetScalePreserved ( isPreserved )

SetUserScale ( aScale )

SetView ( aView, isLiveLink )

Repositioning ViewFrames

Offset ( aPoint )

__________

See also

Layout
GraphicList
Display
Template
View


GetViewName (ViewFrame)
GetViewName

Gets the name of aView.

Syntax

ViewFrame.GetViewName (aView)

Returns

String


Make (ViewFrame)
Make

Makes a ViewFrame in aRect. aRect is a rectangle that specifies the origin and extent of the ViewFrame. You must associate a view with the ViewFrame.

In the example below, aViewFrame is created to be 5 inches square and positioned at the lower left hand corner of the layout.

 myLayout = av.GetActiveDoc
 origin = myLayout.GetDisplay.ReturnMarginExtent.ReturnOrigin

 aViewFrame = ViewFrame.Make( Rect.Make( origin,(5@5)))
 myLayout.GetGraphics.Add( aViewFrame )

Syntax

ViewFrame.Make (aRect)

Returns

ViewFrame


Edit (ViewFrame)
Edit

Displays a dialog box to allow the user to edit the properties of aViewFrame. aListofGraphics should contain all the ViewFrames in the document.

Syntax

aViewFrame.Edit (aListofGraphics)

Returns

Boolean


EditSizeAndPos (ViewFrame)
EditSizeAndPos

Shows the size and position editor for aViewFrame.

Syntax

aViewFrame.EditSizeAndPos

Returns

Boolean


Draw (ViewFrame)
Draw

Draws aViewFrame on its Display.

Syntax

aViewFrame.Draw


GetFillObject (ViewFrame)
GetFillObject

 Gets the fill object of aViewFrame.

Syntax

aViewFrame.GetFillObject

Returns

Obj


IsFilled (ViewFrame)
IsFilled

 Returns TRUE if aViewFrame is filled by some object, otherwise returns FALSE.

Syntax

aViewFrame.IsFilled

Returns

Boolean


IsFilledBy (ViewFrame)
IsFilledBy

 Returns TRUE if aViewFrame can be filled by objects of aClass, otherwise returns FALSE.

Syntax

aViewFrame.IsFilledBy (aClass)

Returns

Boolean


SetFillObject (ViewFrame)
SetFillObject

 Sets the fill object of aViewFrame to anObj.

Syntax

aViewFrame.SetFillObject (anObj)


CanSimplify (ViewFrame)
CanSimplify

Returns TRUE, since ViewFrames can be turned into graphics.

Syntax

aViewFrame.CanSimplify

Returns

Boolean


GetMapDisplay (ViewFrame)
GetMapDisplay

Gets the map Display of aViewFrame. This is not the MapDisplay of the ViewFrame's fill object, which is a view. Instead this represents a way to return a coordinate in view's coordinate system, rather than the layout's PageDisplay. See the GratGrids.LayoutGraticule.Create script that is in the Graticule and Grids extension for a practical example of how this request can be used.

Syntax

aViewFrame.GetMapDisplay

Returns

Display


GetUserScale (ViewFrame)
GetUserScale

Gets the user defined scale of aViewFrame.

Syntax

aViewFrame.GetUserScale

Returns

Number


GetView (ViewFrame)
GetView

Gets the view of aViewFrame.

Syntax

aViewFrame.GetView

Returns

View


IsExtentPreserved (ViewFrame)
IsExtentPreserved

Returns TRUE if the view extent is preserved, otherwise returns FALSE.

Syntax

aViewFrame.IsExtentPreserved

Returns

Boolean


IsLiveLinked (ViewFrame)
IsLiveLinked

Returns TRUE if aViewFrame is live-linked, returns FALSE otherwise.

Syntax

aViewFrame.IsLiveLinked

Returns

Boolean


IsScalePreserved (ViewFrame)
IsScalePreserved

Returns TRUE if the scale is preserved, otherwise returns FALSE.

Syntax

aViewFrame.IsScalePreserved

Returns

Boolean


ReturnScale (ViewFrame)
ReturnScale

Returns the scale of aViewFrame.

Syntax

aViewFrame.ReturnScale

Returns

Number


SetBounds (ViewFrame)
SetBounds

Sets the bounds of aViewFrame to aRect.

Syntax

aViewFrame.SetBounds (aRect)


SetDisplay (ViewFrame)
SetDisplay

Sets the display of aViewFrame to aDisplay.

Syntax

aViewFrame.SetDisplay (aDisplay)


SetExtentPreserved (ViewFrame)
SetExtentPreserved

Sets scale preservation of aViewFrame to isPreserved.

Syntax

aViewFrame.SetExtentPreserved (isPreserved)


SetScalePreserved (ViewFrame)
SetScalePreserved

Sets scale preservation of aViewFrame to isPreserved.

Syntax

aViewFrame.SetScalePreserved (isPreserved)


SetUserScale (ViewFrame)
SetUserScale

Sets the user defined scale of aViewFrame to aScale.

Syntax

aViewFrame.SetUserScale (aScale)


SetView (ViewFrame)
SetView

Sets the view of aViewFrame to aView and the link status to isLiveLink.

Syntax

aViewFrame.SetView (aView, isLiveLink)


Offset (ViewFrame)
Offset

Offsets aViewFrame by aPoint. Offset moves aViewFrame from its current position horizontally by the X component of aPoint and vertically by the Y component of aPoint. The X and Y offsets are specified in inches.

 aViewFrame = aLayout.GetGraphics.Get(0)
 aViewFrame.Offset( 3@4 )  ' Move 3 inches right and 4 up
 aLayout.Invalidate        ' Redisplay

Syntax

aViewFrame.Offset (aPoint)


DocFrame

 A DocFrame is a kind of Frame that knows how to draw a table or chart document into a layout document. See 'Adding a table to a layout' and 'Adding a chart to a layout' for more information.

Attributes

FramedDoc.The FramedDoc is the Table or Chart document displayed in the DocFrame.

FramedDocClass.The DocClass can be either Table or Chart and determines which class of objects are framed.

Inherits From

PictureFrame

Class Requests

Making DocFrames

Make ( aRect, aDocClass ) :  DocFrame

Instance Requests

Displaying Dialog Boxes

Edit ( aListofGraphics ) :  Boolean

Drawing Shapes

Draw

Filling Frames

GetFillObject  :  Obj

IsFilled  :  Boolean

IsFilledBy ( aClass ) :  Boolean

SetFillObject ( anObj )

Getting and Setting Attributes

CanUndo  :  Boolean

GetFramedDoc  :  Doc

GetFramedDocClass  :  Classes

SetFramedDoc ( aDocument )

SetFramedDocClass ( aDocClass )

SetRefresh ( aGFrameRefresh )

__________

See also

GraphicList
Display
Table
Chart
Template


Make (DocFrame)
Make

Makes a DocFrame in aRect for aDocClass.

Syntax

DocFrame.Make (aRect, aDocClass)

Returns

DocFrame


Edit (DocFrame)
Edit

Shows the property editor for aDocFrame.

Syntax

aDocFrame.Edit (aListofGraphics)

Returns

Boolean


Draw (DocFrame)
Draw

Draws aDocFrame on its Display.

Syntax

aDocFrame.Draw


GetFillObject (DocFrame)
GetFillObject

 Gets the fill object of aDocFrame.

Syntax

aDocFrame.GetFillObject

Returns

Obj


IsFilled (DocFrame)
IsFilled

 Returns TRUE if aDocFrame is filled by some object, otherwise returns FALSE.

Syntax

aDocFrame.IsFilled

Returns

Boolean


IsFilledBy (DocFrame)
IsFilledBy

 Returns TRUE if aDocFrame can be filled by objects of aClass, otherwise returns FALSE.

Syntax

aDocFrame.IsFilledBy (aClass)

Returns

Boolean


SetFillObject (DocFrame)
SetFillObject

 Sets the fill object of aDocFrame to anObj.

Syntax

aDocFrame.SetFillObject (anObj)


CanUndo (DocFrame)
CanUndo

Returns FALSE.

Syntax

aDocFrame.CanUndo

Returns

Boolean


GetFramedDoc (DocFrame)
GetFramedDoc

Gets the framed Doc of aDocFrame.

Syntax

aDocFrame.GetFramedDoc

Returns

Doc


GetFramedDocClass (DocFrame)
GetFramedDocClass

Gets the framed Doc class of aDocFrame.

Syntax

aDocFrame.GetFramedDocClass

Returns

Class


SetFramedDoc (DocFrame)
SetFramedDoc

Sets the framed Doc of aDocFrame to aDocument.

Syntax

aDocFrame.SetFramedDoc (aDocument)


SetFramedDocClass (DocFrame)
SetFramedDocClass

Sets the framed Doc class of aDocFrame to aDocClass.

Syntax

aDocFrame.SetFramedDocClass (aDocClass)


SetRefresh (DocFrame)
SetRefresh

Sets the refresh style of aDocFrame to aGFrameRefresh.

Syntax

aDocFrame.SetRefresh (aGFrameRefresh)


Hammer
Discussion	Example

 This class implements the Hammer-Aitoff projection. The Hammer-Aitoff projection is a modification of the Lambert Azimuthal Equal-Area projection.

Inherits From

Prj

Class Requests

Creating Hammer-Aitoff Projections

Make ( aRect ) :  Hammer

Instance Requests

Projecting and unprojecting points

ProjectPt ( aPoint ) :  Boolean

UnProjectPt ( aPoint ) :  Boolean

Hammer-Aitoff Projection Parameters

Recalculate

ReturnCentralMeridian  :  Number

SetCentralMeridian ( aLongitude )

__________

See also

CoordSys
Spheroid


Make (Hammer)
Make
Example

Creates a Hammer-Aitoff projection. aRect is the bounding rectangle of the area being projected. Use decimal degrees for the coordinates of aRect.

Syntax

Hammer.Make (aRect)

Returns

Hammer


ProjectPt (Hammer)
ProjectPt
Example

Projects the point aPoint. Returns TRUE if aPoint is visible, FALSE otherwise; however, this always returns a point.

Syntax

aHammer.ProjectPt (aPoint)

Returns

Boolean


UnProjectPt (Hammer)
UnProjectPt
Example

Unprojects the point aPoint. Returns TRUE if aPoint can be unprojected, FALSE otherwise; however, this always returns a point.

Syntax

aHammer.UnProjectPt (aPoint)

Returns

Boolean


Recalculate (Hammer)
Recalculate

Updates the internal parameters of the projection. This must be called after changing any parameters of the Hammer-Aitoff projection.

Syntax

aHammer.Recalculate


ReturnCentralMeridian (Hammer)
ReturnCentralMeridian

Returns the central meridian as a longitude in degrees.

Syntax

aHammer.ReturnCentralMeridian

Returns

Number


SetCentralMeridian (Hammer)
SetCentralMeridian
Example

Sets the longitude at which to center the projection. aLongitude is a longitude in degrees.

Syntax

aHammer.SetCentralMeridian (aLongitude)


Help

 The Help object produces an on-line help system which provides hypertext jumps, context sensitive help and topical searching capabilities. The help system displays a set of ASCII files containing the help text along with control codes for formatting the text and structuring the hypertext cross references between different help topics. Users are free to create and use their own custom help files. To learn how to create your own help files, see Building your own help file. To learn how to use the help system, see How to Use Help.

Displaying your own help files

On UNIX, the script below creates a new Help object and displays the specified Help file.

  _myHelp= Help.Make
  _myHelp.SetFile("$HOME/help/test.hlp".AsFileName)
  _myHelp.SetTitle("a title")
  _myHelp.Show

On Windows, using the script above, the new Help object disappears after a few seconds; the new help object is garbage collected. Here are 3 workarounds:

1. Create the help object in one script associating the new help object with a global variable or an ObjectTag. In another script, set the file and show the help object.

Script 1:

 _myHelp= Help.Make

Script 2:

  _myHelp.SetFile("c:\help\test.hlp".AsFileName)
  _myHelp.SetTitle("a title")
  _myHelp.Show

2. You can use the system.execute request to start a new help system:

 system.execute ("winhelp.exe c:\help\test.hlp")

Or, you can simply launch the help file by double clicking the help file in the Windows File Manager or Program Manager.

3. Instead of creating a new Help object, use the existing one and make your help file the current help file. This means that each time you display default ArcView help, the help file changes back to ArcView help files. With this method, you need only one script:

 av.Help.SetFile("c:\help\test.hlp".AsFileName)
 av.Help.SetTitle("a title")
 av.Help.Show

With option 2, you can display more than one Help window. Note that context sensitive help appears only in the help object returned by av.Help.

Attributes

File. File is the help file displayed in the help object. There are two predefined files: the ArcView help file (AVFile) and the Avenue class hierarchy file (ClassesFile).

Title. The Title of the help window may be modified to reflect the content of the help file.

Inherits From

Obj

Class Requests

Creating Help

Make  :  Help

Instance Requests

Manipulating Help Windows

Close

IsOpen  :  Boolean

Maximize

Minimize

Move ( deltaX, delatY )

MoveTo ( X, Y )

Resize ( Width, Height )

Restore

ReturnExtent  :  Point

ReturnOrigin  :  Point

Show

Getting and Setting Attributes

GetAVFile  :  FileName

GetClassesFile  :  FileName

GetFile  :  FileName

GetTitle  :  String

SetAVFile

SetClassesFile

SetFile ( FileName )

SetTitle ( aTitle )

Help Functions

Context

ExecuteMacro ( MacroString )

RegisterExtension ( aHelpModule )

Search

SearchUsing ( SearchString )

SetHelping ( state )

ShowTopic ( aTopicName )

UnregisterExtension ( aHelpModule )

Accessing Help Topics

GetCurrentTopic  :  String

PrintTopic ( aTopicName )

ReturnText ( aTopicName ) :  String

WriteAll ( aFileName, aTopicName )

__________

See also

Application


Make (Help)
Make

Creates a Help object. Users creating their own help object should assign it to a global variable or attach it to an object tag property. This will prevent the object from being disposed of during garbage collection. See the examples and explanations in the class description.

Syntax

Help.Make

Returns

Help


Close (Help)
Close

Closes the help window.

Syntax

aHelp.Close


IsOpen (Help)
IsOpen

Returns TRUE if the help window is open. On Windows, IsOpen will always return TRUE, because it is always possible to open the help system, even when a modal dialog is active.

Syntax

aHelp.IsOpen

Returns

Boolean


Maximize (Help)
Maximize

Resizes the help window to occupy the entire extent of the screen.

Syntax

aHelp.Maximize


Minimize (Help)
Minimize

Replaces the help window with an iconic representation.

Syntax

aHelp.Minimize


Move (Help)
Move

Moves the help window relative to its current position. deltaX and deltaY are the number of pixels to move the window.

Syntax

aHelp.Move (deltaX, delatY)


MoveTo (Help)
MoveTo

Moves the help window to a new position. identified by X, Y.

Syntax

aHelp.MoveTo (X, Y)


Resize (Help)
Resize

Resizes the help window to the specified Width and Height. Width and Height are pixel values.

Syntax

aHelp.Resize (Width, Height)


Restore (Help)
Restore

Restores an iconified window or a maximized window.

Syntax

aHelp.Restore


ReturnExtent (Help)
ReturnExtent

 Returns the extent of aHelp. The extent is in pixels. On Windows, due to limitations of the native help system, this request returns nil.

Syntax

aHelp.ReturnExtent

Returns

Point


ReturnOrigin (Help)
ReturnOrigin

 Returns the origin of aHelp. The position is in pixels. On Windows, due to limitations of the native help system, this request returns nil.

Syntax

aHelp.ReturnOrigin

Returns

Point


Show (Help)
Show

Displays the help object. See the explanation and example in the class description.

Syntax

aHelp.Show


GetAVFile (Help)
GetAVFile

Gets the ArcView help default file.

Syntax

aHelp.GetAVFile

Returns

FileName


GetClassesFile (Help)
GetClassesFile

Gets the ArcView's Avenue Classes file.

Syntax

aHelp.GetClassesFile

Returns

FileName


GetFile (Help)
GetFile

Gets the current file displayed in aHelp.

Syntax

aHelp.GetFile

Returns

FileName


GetTitle (Help)
GetTitle

Gets aHelp's window title.

On Windows, due to limitations of the native help system, this request returns the internal title, not the actual window title.

Syntax

aHelp.GetTitle

Returns

String


SetAVFile (Help)
SetAVFile

Sets the current help object to be the ArcView default.

Syntax

aHelp.SetAVFile


SetClassesFile (Help)
SetClassesFile

Sets the current help object to be ArcView's Avenue Classes file.

Syntax

aHelp.SetClassesFile


SetFile (Help)
SetFile

Sets the current help object to the given filename.

Syntax

aHelp.SetFile (FileName)


SetTitle (Help)
SetTitle

Sets the title of the help window to the given string aTitle.

On Windows, due to limitations of the native help system, this request sets only the internal title, not the actual window title.

Syntax

aHelp.SetTitle (aTitle)


Context (Help)
Context

Displays help about the active window

Syntax

aHelp.Context


ExecuteMacro (Help)
ExecuteMacro

Executes the specified WinHelp macro. The string specifies the name of the Help macro(s) to execute. If the string specifies multiple macros names, the names must be separated by semicolons. You must use the short form of the macro name for some macros because WinHelp does not support the long name. Here are a few examples:

av.Help.ExecuteMacro("FD()") - displays the Help Topics dialog.

av.Help.ExecuteMacro("Search()") - displays the Help Topics dialog with the index tab on top.

av.Help.ExecuteMacro("JI(""c:/arcview/help/arcview.hlp"", ""What_is_a_view_"")") - jumps to the specific topic by topic ID.

av.Help.ExecuteMacro("JH(""c:/arcview/help/arcview.hlp"", 2186970052)") - jumps to a topic identified by hash number.

On Windows, use a forward slash for path specifications as shown above. Make sure to check your Help Compiler documentation to see what macros are supported.

Syntax

aHelp.ExecuteMacro (MacroString)


RegisterExtension (Help)
RegisterExtension

Registers the extension help resource module "aHelpModule" with the Help system. This resource module will be searched when the Help system looks for context-sensitive help topics.

Syntax

aHelp.RegisterExtension (aHelpModule)


Search (Help)
Search

Displays the Search window.

Syntax

aHelp.Search


SearchUsing (Help)
SearchUsing

 Displays the Search window with SearchString as the default search string.

Syntax

aHelp.SearchUsing (SearchString)


SetHelping (Help)
SetHelping

Sets Helping mode to state. If state is TRUE, invokes the help tool to display the help about a desired user interface element.

Syntax

aHelp.SetHelping (state)


ShowTopic (Help)
ShowTopic

Displays the help window focused on aTopicName. aTopicName can be either the name of a topic in the current help file or it can specify a topic in a new help file using the following format: <aTopic>@<aHelpFile>.

For example: av.Help.ShowTopic("myTopic") displays the topic "myTopic" in the current help file. av.Help.ShowTopic("myTopic@myHelpFile.hlp") will open the help file "myHelpFile.hlp" and display "myTopic".

Note that providing a help file in this manner will change the current help file.

Syntax

aHelp.ShowTopic (aTopicName)


UnregisterExtension (Help)
UnregisterExtension

Unregisters the extension help resource module "aHelpModule" from the Help system. "aHelpModule" will no longer be searched when the Help system looks for context-sensitive help topics.

Syntax

aHelp.UnregisterExtension (aHelpModule)


GetCurrentTopic (Help)
GetCurrentTopic

Gets the current topic name.

On Windows, due to limitations of the native help system, this request returns nil.

Syntax

aHelp.GetCurrentTopic

Returns

String


PrintTopic (Help)
PrintTopic

Displays aHelp and prints aTopicName. If aTopicName is NULL, prints the current topic.

Syntax

aHelp.PrintTopic (aTopicName)


ReturnText (Help)
ReturnText

Returns the text of aTopicName. If aTopicName is NULL, returns the current topic's text.

On Windows, due to limitations of the native help system, this request returns nil.

Syntax

aHelp.ReturnText (aTopicName)

Returns

String


WriteAll (Help)
WriteAll

Writes aTopicName and its subtopics to aFileName. If aTopicName is the null string, writes the current topic and its subtopics.

Syntax

aHelp.WriteAll (aFileName, aTopicName)


IconMgr

 IconMgr lets the user choose an icon from a list of icons. From IconMgr, you can modify the current list of icons adding or deleting icons.

The IconManager allows you to subset the icons displayed in it based upon their size. Icons in tools and buttons must be no larger than 24, so, when called from the Customize Dialog, the IconMgr displays ONLY those icons that are small enough to use on a tool or button. While an icon MAY APPEAR at a certain index in this icon manager, remember that not all the icons are displayed. For example, the index for the Bex icon is 24 in the default list of icons, but it appears to be 16 in the list that is small enough to use on a button. Also note that the list of icons is dynamic; you can add and delete icons to this list, so the index of a particular icon in the list can change.

An easy way to retrieve a specific icon is to use a NameDictionary. Make a NameDictionary of the icon list and then retrieve icons by their names. For example:

 y = IconMgr.GetIcons

 n = NameDictionary.Make( 100 )
 for each i in y
   n.Add( i )
 end

 x = n.Get("Bex")  ' Get the icon named Bex
 msgbox.info( x.GetName, "")

Attributes

Icon list. The list of icons displayed in the icon manager. Add and Delete icons using list requests. Add a list of icons with the AddIcons request.

Inherits From

ModalDialog

Class Requests

IconMgr

AddIcons ( anIconList )

GetIcons  :  List

LoadIcon  :  Icon

Show ( maxSize ) :  Icon

ShowWithDefault ( maxSize, defIcon ) :  Icon

__________

See also

Icon


AddIcons (IconMgr)
AddIcons

 Adds icons in anIconList to the current icon list. anIconList is a list containing only Icon elements.

Syntax

IconMgr.AddIcons (anIconList)


GetIcons (IconMgr)
GetIcons

 Gets the list of icons. Add and delete icons from this list using List requests.

Syntax

IconMgr.GetIcons

Returns

List


LoadIcon (IconMgr)
LoadIcon
Discussion

 Displays a FileWin and lets the user choose a file from which to build an Icon. Returns the new icon. You must add this icon to the icon list.

Syntax

IconMgr.LoadIcon

Returns

Icon


Show (IconMgr)
Show

 Displays the dialog box listing available icons and returns the selected icon or nil if you hit cancel. The argument maxSize allows you to specify the maximize pixel size of the listed icons. If maxSize is 0, all icons will be displayed.

Syntax

IconMgr.Show (maxSize)

Returns

Icon


ShowWithDefault (IconMgr)
ShowWithDefault

 Displays a dialog box listing available icons. The chosen icon, or nil is returned. To limit the listing to only those icons If maxSize is 0, all icons will be displayed. defIcon is the default value and appears highlighted when the dialog is invoked.

Syntax

IconMgr.ShowWithDefault (maxSize, defIcon)

Returns

Icon


IdentifyWin

 An IdentifyWin is a window which lets the user see fields and values of a single record in a VTab at a time. The window is not a live link so changes to the VTab are not reflected in the window.

IdentifyWin.Make can be used to create arbitrary identify windows. However, the standard ArcView identify tools on views, tables, and charts use the Identify request on VTab which adds the entry to the identify window that can be obtained with the IdentifyWin.The request. The Identify request on VTab also blinks the feature, row, or data marker corresponding to the identified record on all documents based on that VTab.

Inherits From

Window

Class Requests

Making IdentifyWin windows

Make  :  IdentifyWin

The  :  IdentifyWin

Instance Requests

Manipulating IdentifyWin windows

Add ( aClientObject, aKey, aName )

Clear

Close

Open

__________

See also

VTab


Make (IdentifyWin)
Make

Makes an IdentifyWin.

Syntax

IdentifyWin.Make

Returns

IdentifyWin


The (IdentifyWin)
The

Gets the IdentifyWin that ArcView uses.

Syntax

IdentifyWin.The

Returns

IdentifyWin


Add (IdentifyWin)
Add

Adds aName to anIdentifyWin and associates it with the information for aKey in aClientObject. aClientObject may be a VTab or a Theme. If aClientObject is a VTab then aKey must be a record number. If aClientObject is aTheme then aKey must be the appropriate key for the theme, either a record number or a numeric feature ID or a point object depending on the type of theme.

Syntax

anIdentifyWin.Add (aClientObject, aKey, aName)


Clear (IdentifyWin)
Clear

Clears the contents of anIdentifyWin.

Syntax

anIdentifyWin.Clear


Close (IdentifyWin)
Close

Closes anIdentifyWin.

Syntax

anIdentifyWin.Close


Open (IdentifyWin)
Open

Opens anIdentifyWin and empties it.

Syntax

anIdentifyWin.Open


ImageLegend

 An ImageLegend is a legend for an image theme. An image legend is made up of image lookup tables (ImageLookup) and color maps (ColorMap). The ImageLegend class has subclasses for multi-band and single band image legends. Multi-band legends have separate lookup tables for the red, green, and blue bands. Single band legends have a single lookup table together with a color map.

Inherits From

Obj

Inherited By

MultiBandLegend
SingleBandLegend

__________

See also

ITheme


Interval

 Instances of the Interval class represent finite intervals with a finite number of subdivisions. The subdivision values are calculated, rather than stored, in order to save space.

You can use an interval in the Avenue 'for each' construct. This statement

  for each i in 1..10

creates an interval object by sending the number '1' the .. request with parameter '10' and then iterating over the resulting Interval obejct. The step value defaults to 1. This could be changed by sending the 'by' request to the interval:

  for each i in 1..10 by 1.5

Attributes

Upper The upper bound of the Interval

Lower The lower bound of the Interval

Increment The step size for the Interval

Inherits From

Collection

Inherited By

Duration

Instance Requests

Manipulating Intervals

= anObject :  Boolean

AsString  :  String

by aNumber :  Interval

Count  :  Number

Find ( aNumber ) :  Boolean

Get ( i ) :  Number

GetIncrement  :  Number

GetLower  :  Number

GetUpper  :  Number

SetIncrement ( aNumber ) :  Interval

SetLower ( aNumber ) :  Interval

SetUpper ( aNumber ) :  Interval

__________

See also

Number


= (Interval)
=

return true when anInterval and anObject are the same object, or have the same value (i.e., the same attributes).

Syntax

anInterval = anObject

Returns

Boolean


AsString (Interval)
AsString

return a string describing the lower and upper bounds of anInterval and its step size. The current default format for numbers is used.

Syntax

anInterval.AsString

Returns

String


by (Interval)
by

Same as anInterval.SetIncrement(aNumber)

Syntax

anInterval by aNumber

Returns

Interval


Count (Interval)
Count

return the number of subdivisions in anInterval.

Syntax

anInterval.Count

Returns

Number


Find (Interval)
Find

return true when aNumber can be "found" within anInterval. This test is inclusive of both the lower and upper bounds.

Syntax

anInterval.Find (aNumber)

Returns

Boolean


Get (Interval)
Get

return the ith step in anIList. For example, in the Interval (1..5 by 0.5), the fifth step is 3.5.

Syntax

anInterval.Get (i)

Returns

Number


GetIncrement (Interval)
GetIncrement

return the step size of anInterval

Syntax

anInterval.GetIncrement

Returns

Number


GetLower (Interval)
GetLower

get the lower bound of anInterval

Syntax

anInterval.GetLower

Returns

Number


GetUpper (Interval)
GetUpper

get the upper bound of anInterval

Syntax

anInterval.GetUpper

Returns

Number


SetIncrement (Interval)
SetIncrement

Set the size of the subdivision for anInterval.

Syntax

anInterval.SetIncrement (aNumber)

Returns

Interval


SetLower (Interval)
SetLower

change the lower bound to aNumber

Syntax

anInterval.SetLower (aNumber)

Returns

Interval


SetUpper (Interval)
SetUpper

change the upper bound to aNumber

Syntax

anInterval.SetUpper (aNumber)

Returns

Interval


ImageLookup

 An ImageLookup is an image lookup table used to map the pixel values stored in an image to a set of values which will become colors on the screen. The mapping can be an identity mapping where each value directly becomes a color, or a more complicated mapping function.

The output value of the image lookup table associated with the legend of an image goes through a ColorMap before being displayed on the screen.

Refer to the documentation on image legends in ArcView for a discussion of the different options.

Inherits From

Obj

Inherited By

IdentityLookup
IntervalLookup
LinearLookup

Instance Requests

Getting and Setting Attributes of an ImageLookup

Lookup ( aValue ) :  Number

__________

See also

ImageLegend
ITheme


Lookup (ImageLookup)
Lookup

Looks up aValue in anImageLookup and returns the corresponding output value.

Syntax

anImageLookup.Lookup (aValue)

Returns

Number


IntervalLookup

 An IntervalLookup maps each pixel value in an equal-width interval between the minimum and maximum pixel values to the same output value. Therefore, the lowest group of pixel values will map to value 0, the next group of the same size will map to value 1, etc. There are (Maximum - Minimum) / NumIntervals pixel values per interval.

Attributes

NumIntervals.The number of intervals between the minimum and maximum value of the IntervalLookup.

Minimum.The minimum is the smallest value in the IntervalLookup. Any smaller values will be mapped to the first interval (numbered 0).

Maximum.The maximum is the largest value in the IntervalLookup. Any larger values will be mapped to the last interval (numbered NumIntervals - 1).

Inherits From

ImageLookup

Class Requests

Making an IntervalLookup

Make ( aMin, aMax, numIntervals ) :  IntervalLookup

Instance Requests

Getting and Setting Attributes of an IntervalLookup

Clone  :  IntervalLookup

GetNumIntervals  :  Number

Lookup ( aValue ) :  Number

__________

See also

ImageLegend
ISrc


Make (IntervalLookup)
Make

Makes an equal interval lookup table with numIntervals for values between aMin and aMax.

Syntax

IntervalLookup.Make (aMin, aMax, numIntervals)

Returns

IntervalLookup


Clone (IntervalLookup)
Clone

Clones anIntervalLookup.

Syntax

anIntervalLookup.Clone

Returns

IntervalLookup


GetNumIntervals (IntervalLookup)
GetNumIntervals

Gets the number of intervals of anIntervalLookup.

Syntax

anIntervalLookup.GetNumIntervals

Returns

Number


Lookup (IntervalLookup)
Lookup

Looks up aValue in anIntervaLookup and returns the corresponding output value.

Syntax

anIntervalLookup.Lookup (aValue)

Returns

Number


IdentityLookup

 An IdentityLookup is an image lookup table that outputs the same value that is input to it. An IdentityLookup is the default lookup table to use for images.

Inherits From

ImageLookup

Class Requests

Making an IdentityLookup

Make  :  IdentityLookup

Instance Requests

Getting and Setting Attributes

Clone  :  IdentityLookup

Lookup ( aValue ) :  Number

__________

See also

ImageLegend
ISrc


Make (IdentityLookup)
Make

Makes an IdentityLookup.

Syntax

IdentityLookup.Make

Returns

IdentityLookup


Clone (IdentityLookup)
Clone

Clones anIdentityLookup.

Syntax

anIdentityLookup.Clone

Returns

IdentityLookup


Lookup (IdentityLookup)
Lookup

Looks up aValue in anImageLookup and returns the corresponding output value.

Syntax

anIdentityLookup.Lookup (aValue)

Returns

Number


LinearLookup

 A LinearLookup is a piecewise-linear image lookup table. A LinearLookup contains a set of points. For each input value, the next smaller and next larger x coordinate of the points is found and the output value is linearly interpolated from the y coordinate of the points. This kind of map allows the greatest degree of fine-tuning of the display of the image.

Attributes

Points.Points is a list of points defining the mapping from input to output values.

Inherits From

ImageLookup

Class Requests

Making a LinearLookup

Make ( Points ) :  LinearLookup

MakeLine ( aStartPoint, anEndPoint ) :  LinearLookup

Instance Requests

Getting and Setting Attributes of a LinearLookup

AddPoint ( aPoint )

Clone  :  LinearLookup

GetPoints  :  List

Lookup ( aValue ) :  Number

__________

See also

ISrc
ImageLegend


Make (LinearLookup)
Make

Makes a LinearLookup with values defined by the points in Points.

Syntax

LinearLookup.Make (Points)

Returns

LinearLookup


MakeLine (LinearLookup)
MakeLine

Makes a LinearLookup with values defined by the two points aStartPoint and anEndPoint.

Syntax

LinearLookup.MakeLine (aStartPoint, anEndPoint)

Returns

LinearLookup


AddPoint (LinearLookup)
AddPoint

Inserts a point into aLinearLookup

Syntax

aLinearLookup.AddPoint (aPoint)


Clone (LinearLookup)
Clone

Clones aLinearLookup.

Syntax

aLinearLookup.Clone

Returns

LinearLookup


GetPoints (LinearLookup)
GetPoints

Gets the list of points in aLinearLookup.

Syntax

aLinearLookup.GetPoints

Returns

List


Lookup (LinearLookup)
Lookup

Looks up aValue in aLinearLookup and returns the corresponding output value.

Syntax

aLinearLookup.Lookup (aValue)

Returns

Number


ImageWin

 A ImageWin is a modeless window which displays the contents of an image file. You can use requests inherited from Window to minimize, maximize, resize and position an ImageWin.

ImageWin supports the following file formats:

 X-Bitmap (generated by "bitmap" utility on X Windows)
 MacPaint
 Microsoft DIB (Device-Independent Bitmap)
 Sun raster files
 XWD (X Windows Dump Format)
 GIF (Graphics Interchange Format)
 TIFF (Tag Image File Format)
 TIFF/LZW commpressed image data

Inherits From

Window

Class Requests

ImageWin

Make ( aFileName, aTitle ) :  ImageWin

Instance Requests

ImageWin

GetFileName  :  FileName

GetScaled  :  Boolean

Open

SetFileName ( aFileName )

SetScaled ( isScaled )

__________

See also

ISrc
ITheme
View


Make (ImageWin)
Make

 Creates a window containing the image file named aFilename. aTitle is the window's title. Use Open to open the window. You can minimize, maximize, resize, close, etc. the ImageWin with requests inherited from Window.

ImageWin supports the following file formats:

 X-Bitmap (generated by  bitmap' utility on X Windows)
 MacPaint
 Microsoft DIB (Device-Independent Bitmap)
 Sun raster files
 XWD (X Windows Dump Format)
 GIF (Graphics Interchange Format)
 TIFF (Tag Image File Format)
 TIFF/LZW commpressed image data

Here is an example of creating and displaying anImageWin.

 anImageWin = ImageWin.Make( "building.tif".AsFileName, "BUILDING" )
 anImageWin.SetScaled( TRUE )
 anImageWin.Open

Syntax

ImageWin.Make (aFileName, aTitle)

Returns

ImageWin


GetFileName (ImageWin)
GetFileName

Gets the name of the file shown in anImageWin.

Syntax

anImageWin.GetFileName

Returns

FileName


GetScaled (ImageWin)
GetScaled

TRUE if the image is scaled to fit within the ImageWin.

Syntax

anImageWin.GetScaled

Returns

Boolean


Open (ImageWin)
Open

Opens anImageWin. See the example under Make.

Syntax

anImageWin.Open


SetFileName (ImageWin)
SetFileName

Sets the file displayed in anImageWin to aFileName.

Syntax

anImageWin.SetFileName (aFileName)


SetScaled (ImageWin)
SetScaled

 If isScaled is TRUE, the image is scaled to fit within the ImageWin.

Syntax

anImageWin.SetScaled (isScaled)


ImgCat

 An ImgCat is an Image Data Source based on an Image Catalog. An image catalog is an organized collection of spatially referenced images, that can be accessed as one logical image. An image catalog can be drawn in an image theme with an image legend. An ImgCat can be created from a table of any supported image file on disk. Refer to the online help for images for a list of supported file formats.

Requests on ImgCat are provided to geo-reference it, or align it with the coordinate system of an existing map. The MapExtent determines where the image is drawn on the map.

An ImgCat can also be clipped so that not all of it needs to be displayed. The ClipExtent determines which portions of the map extent are actually displayed and determines the extent of the image theme.

The set of files displayed in the source browser when browsing for images corresponds to the set of files in the current directory that have extensions that are in a list of supported image extensions. The user can run the SetChecking request on the Image Catalog class to enable the display of the image catalogs. Note that enabling image catalog checking causes all files in a directory including any non-image files to be opened and checked for a valid image catalog before it appears in the Source Browser.

Attributes

SrcName.The SrcName describes the location of the data files making up the image catalog.

MapExtent.The MapExtent is the extent of the entire image in map coordinates. Geo-referencing an image changes the map extent.

ClipExtent.The ClipExtent is the extent of the portion of the image of interest. Areas of the image outside of the ClipExtent will not be drawn. This attribute is set with the Definition area of the Image Theme Properties dialog box.

NumImages.NumImages is the number of Images in an image catalog table. The lead image is the first selected image in the image catalog table.

NumBands.NumBands is the number of bands of data making up the lead image. Each pixel has a value in each band. Gray-scale images have one band. Color images have three bands for red, green, and blue. Images from other sources may have more bands although only three can be displayed at a time.

Inherits From

ImgSrc

Class Requests

ImgCat

IsValidFileName ( aFileName ) :  Boolean

Make ( aSrcName ) :  ImgCat

SetChecking ( checkingOnFlag )

Instance Requests

GeoReferencing an ImgCat

ReturnMapExtent  :  Rect

Getting and Setting the Attributes

ContainType ( aType ) :  Boolean

GetNumBands  :  Number

GetNumImages  :  Number

GetSrcName  :  SrcName

HasError  :  Boolean

ReturnClipExtent  :  Rect

ReturnExtent  :  Rect

ReturnImageNames  :  List

SetClipExtent ( anExtent )

__________

See also

ImgSrc
ITheme
ImageLegend
ImageLookup
BandStatistics
ColorMap
Display
ISrc


IsValidFileName (ImgCat)
IsValidFileName

Returns TRUE if aFileName contains a table of ImgCat SrcNames.

Syntax

ImgCat.IsValidFileName (aFileName)

Returns

Boolean


Make (ImgCat)
Make

Makes anImgCat from aSrcName.

Syntax

ImgCat.Make (aSrcName)

Returns

ImgCat


SetChecking (ImgCat)
SetChecking

Enables or disables checking for ImgCat SrcNames

Syntax

ImgCat.SetChecking (checkingOnFlag)


ReturnMapExtent (ImgCat)
ReturnMapExtent

Returns the map extent of anImgCat in map units. This is always the full extent of anImgCat.

Syntax

anImgCat.ReturnMapExtent

Returns

Rect


ContainType (ImgCat)
ContainType

Returns TRUE if anImgCat contains Images of type aType. Valid types are:

    Type  Image
     1    RLC
     2    Sun raster
     3    ERDAS
     7    TIFF
     8    BIL
     9    BIP
    10    GRID
    11    BSQ
    14    BMP
 >1000    UDF

A unique, but dynamic, type number over 1000 is registered to each User Defined Formats (UDF) (such as JPEG and IMAGINE) at the time they are loaded. This number may change depending on the order in which the UDFs are loaded (as when a project is closed and opened).

Syntax

anImgCat.ContainType (aType)

Returns

Boolean


GetNumBands (ImgCat)
GetNumBands

Gets the number of bands in the lead ISrc in anImgCat.

Syntax

anImgCat.GetNumBands

Returns

Number


GetNumImages (ImgCat)
GetNumImages

Gets the number of Images in anImgCat.

Syntax

anImgCat.GetNumImages

Returns

Number


GetSrcName (ImgCat)
GetSrcName

Gets the SrcName of anImgCat.

Syntax

anImgCat.GetSrcName

Returns

SrcName


HasError (ImgCat)
HasError

Returns TRUE if anImgCat has an error, otherwise returns FALSE.

Syntax

anImgCat.HasError

Returns

Boolean


ReturnClipExtent (ImgCat)
ReturnClipExtent

Returns the clip extent of anImgCat in map units. This is the same extent that is returned with anImgCat.ReturnExtent. If you create an image theme out of anImgCat only this portion of anImgCat is displayed.

Syntax

anImgCat.ReturnClipExtent

Returns

Rect


ReturnExtent (ImgCat)
ReturnExtent

Returns the extent of anImgCat in map units. This is the same extent that is returned with anImgCat.ReturnClipExtent. If you create an image theme out of anImgCat only this portion of anImgCat is displayed. This extent can be changed with anImgCat.SetClipExtent.

Syntax

anImgCat.ReturnExtent

Returns

Rect


ReturnImageNames (ImgCat)
ReturnImageNames

Returns all ISrc names in anImgCat.

Syntax

anImgCat.ReturnImageNames

Returns

List


SetClipExtent (ImgCat)
SetClipExtent

Sets the clip extent of anImgCat to anExtent. If you create an image theme out of anImgCat only this portion of anImgCat is displayed.

Syntax

anImgCat.SetClipExtent (anExtent)


ImgDLL

 An ImgDLL is an Image Data Source that can be drawn in an image theme with an image legend.

The ImgDLL class also allows you to add support for any image format you want. It is done by registering an external DLL that knows how to read the image format and can write a BIL/BIP/BSQ image.

The external DLL is used to query basic information about the input image and to extract temporary BIL/BIP/BSQ images for display. The DLL must contain the following exported entry points:

 IsValidFile
 QueryImageInfo
 GetImage

The DLL can also contain the following optional exported entry point:

 QueryBandStats

Each of the these entry points are described below.

Local definitions

The ImgDLL external image DLL supports the following functions. Each of these are defined as typedefs below.

 int IsValidFile(path)
    Returns TRUE if the input path name points to a valid image file.
    FALSE is returned otherwise.

 int QueryImageInfo(path, nbands, width, height, MBR)
    Queries the input image defined by path for the number of bands,
    image width in pixels, image height in pixels and the geo-referenced
    Minimum Bounding Rectangle (MBR). The MBR is expressed as left, top,
    right, and bottom. TRUE is returned on success, FALSE is returned otherwise.

 int GetImage(path, out_path, clip_MBR, out_width, out_height)
    Extracts an image from path into the temporary image out_path in the output format
    defined when the format is registered with ImgDLL with the RegisterFormat
    class request. The output format must be either a BIL, BIP, or BSQ image.
    The clip_MBR is the extent needed from the image in map coordinates.
    The out_width and out_height is the needed size for the temporary output
    image in pixels. The MBR is expressed as left, top, right, and bottom.
    TRUE is returned on success, FALSE on error.

 int QueryBandStats(path, band, statistics)
   Queries the input image defined by path for the given band for the band
   statistics. The statistics are returned as min, max, mean, and stdev.
   This function is optional.

   typedef int (*IsValidFileFuncType)(char *);
   typedef int (*QueryImageInfoFuncType)(char *, long *, long *, long *, double *);
   typedef int (*GetImageFuncType)(char *, char *, double *, long, long);
   typedef int (*QueryBandStatsFuncType)(char *, long, double *);

Search on "extended image formats" in the on-line help index for more information on adding support for an extended image format to ArcView GIS.

Attributes

SrcName.The SrcName describes the location of the data files making up the image.

MapExtent.The MapExtent is the extent of the entire image in map coordinates. Geo-referencing an image changes the map extent.

ClipExtent.The ClipExtent is the extent of the portion of the image of interest. Areas of the image outside of the ClipExtent will not be drawn. This attribute is set with the Definition area of the Image Theme Properties dialog box.

NumColumns.NumColumns is the number of columns in the image or number of pixels horizontally across the image.

NumBands.NumBands is the number of bands of data making up the image. Each pixel has a value in each band. Gray-scale images have one band. Color images have three bands for red, green, and blue. Images from other sources may have more bands although only three can be displayed at a time.

Inherits From

ImgSrc

Class Requests

ImgDLL

GetFormatUseCount ( formatFileExtension ) :  Number

IsValidFileName ( aFileName ) :  Boolean

Make ( aSrcName ) :  ImgDLL

RegisterFormat ( aFileName, formatFileExtension, outputImageFormat ) :  Boolean

UnregisterFormat ( formatFileExtension ) :  Boolean

Instance Requests

Getting and Setting the Attributes of ImgDLLs

GetBandStatistics  :  List

GetNumBands  :  Number

GetNumColumns  :  Number

GetNumRows  :  Number

HasError  :  Boolean

MatchPoints ( fromPoint, toPoint )

MatchRectangles ( fromExtent, toExtent )

ReturnClipExtent  :  Rect

ReturnExtent  :  Rect

ReturnMapExtent  :  Rect

ReturnType  :  Number

SetClipExtent ( anExtent )

SetMapExtent ( newExtent )

__________

See also

ImgSrc
ISrc
ITheme
ImgCat


GetFormatUseCount (ImgDLL)
GetFormatUseCount

Gets the number of formatFileExtension image sources being used by ArcView. formatFileExtension should be the same extension used to register the image file format with ImgDLL. This should be used to see if it is safe to use ImgDLL.UnregisterFormat.

Syntax

ImgDLL.GetFormatUseCount (formatFileExtension)

Returns

Number


IsValidFileName (ImgDLL)
IsValidFileName

Returns TRUE if the file extension of aFileName matches one of the format file extensions registered with ImgDLL. The file extension of the image on disk must always match the formatFileExtension registered with ImgDLL to be considered a valid file name.

Syntax

ImgDLL.IsValidFileName (aFileName)

Returns

Boolean


Make (ImgDLL)
Make

Makes an ImgDLL from aSrcName. For example,

   isOK = ImgDLL.IsValidFileName("c:\mydata\example.sid".AsFileName)
   if (isOK) then
     myImgDLL = ImgDLL.Make("c:\mydata\example.sid".AsSrcName)
   end

Syntax

ImgDLL.Make (aSrcName)

Returns

ImgDLL


RegisterFormat (ImgDLL)
RegisterFormat

 Registers a new image file format with ImgDLL. Once the image file format is registered it can be used as a source for an image theme. aFileName is the name of the DLL that reads the new image file format and outputs a BIL/BIP/BSQ image for ArcView to read. formatFileExtension is the extension that should be used to register the new image file format with ImgDLL. It is also used to browse for image files of this type. outputImageFormat denotes the type of image that the DLL defined with aFileName will write. It must be: "bil", "bip", or "bsq".

Syntax

ImgDLL.RegisterFormat (aFileName, formatFileExtension, outputImageFormat)

Returns

Boolean


UnregisterFormat (ImgDLL)
UnregisterFormat

Unregisters an image file format defined by formatFileExtension from ImgDLL. formatFileExtension should be the same extension used to register the image file format with ImgDLL. Once you unregister the image file format you will no longer be able to add these image sources as image themes.

Syntax

ImgDLL.UnregisterFormat (formatFileExtension)

Returns

Boolean


GetBandStatistics (ImgDLL)
GetBandStatistics

Gets the list of band statistics of anImgDLL. The list returned contains BandStatistics objects.

Syntax

anImgDLL.GetBandStatistics

Returns

List


GetNumBands (ImgDLL)
GetNumBands

Gets the number of bands in anImgDLL.

Syntax

anImgDLL.GetNumBands

Returns

Number


GetNumColumns (ImgDLL)
GetNumColumns

Gets the number of columns of anImgDLL.

Syntax

anImgDLL.GetNumColumns

Returns

Number


GetNumRows (ImgDLL)
GetNumRows

Gets the number of rows of anImgDLL.

Syntax

anImgDLL.GetNumRows

Returns

Number


HasError (ImgDLL)
HasError

Returns TRUE if anImgDLL has an error, otherwise returns FALSE.

Syntax

anImgDLL.HasError

Returns

Boolean


MatchPoints (ImgDLL)
MatchPoints

Translates the map extent of anImgDLL so that fromPoint in the current map extent becomes toPoint in the resulting map extent.

Syntax

anImgDLL.MatchPoints (fromPoint, toPoint)


MatchRectangles (ImgDLL)
MatchRectangles

Scales and translates the map extent of anImgDLL so that fromExtent in the current map extent becomes toExtent in the resulting map extent.

Syntax

anImgDLL.MatchRectangles (fromExtent, toExtent)


ReturnClipExtent (ImgDLL)
ReturnClipExtent

Returns the clip extent of anImgDLL in map units. This is the same extent that is returned with anISrc.ReturnExtent. If you create an image theme out of anImgDLL only this portion of anImgDLL is displayed.

Syntax

anImgDLL.ReturnClipExtent

Returns

Rect


ReturnExtent (ImgDLL)
ReturnExtent

Returns the extent of anImgDLL in map units. This is the same extent that is returned with anImgDLL.ReturnClipExtent. If you create an image theme out of anImgDLL only this portion of anImgDLL is displayed. This extent can be changed with anImgDLL.SetClipExtent.

Syntax

anImgDLL.ReturnExtent

Returns

Rect


ReturnMapExtent (ImgDLL)
ReturnMapExtent

Returns the map extent of anImgDLL in map units. This is always the full extent of anImgDLL.

Syntax

anImgDLL.ReturnMapExtent

Returns

Rect


ReturnType (ImgDLL)
ReturnType

Returns the type of the temporary BIL/BIP/BSQ created to display anImgDLL. Valid types are:

  8   BIL
  9   BIP
 11   BSQ

Syntax

anImgDLL.ReturnType

Returns

Number


SetClipExtent (ImgDLL)
SetClipExtent

Sets the clip extent of anImgDLL to anExtent. If you create an image theme out of anImgDLL only this portion of anImgDLL is displayed.

Syntax

anImgDLL.SetClipExtent (anExtent)


SetMapExtent (ImgDLL)
SetMapExtent

Sets the map extent of anImgDLL to newExtent.

Syntax

anImgDLL.SetMapExtent (newExtent)


ImgSrc

 ImgSrc is an ABSTRACT Image Data Source superclass. It defines the behavior of its subclasses through defining its own requests. An ImgSrc is an Image Data Source that can be drawn in an image theme with an image legend. An ImgSrc can be created from any supported image file or image catalog on disk.

The set of files displayed in the source browser when browsing for images corresponds to the set of files in the current directory that have extensions that are in a list of supported image extensions, and the Image catalogs in that directory.

Attributes

SrcName.The SrcName describes the location of the data files making up the image source.

MapExtent.The MapExtent is the extent of the entire image in map coordinates. Geo-referencing an image changes the map extent.

ClipExtent.The ClipExtent is the extent of the portion of the image of interest. Areas of the image outside of the ClipExtent will not be drawn. This attribute is set with the Definition area of the Image Theme Properties dialog box.

Inherits From

Obj

Inherited By

ImgCat
ImgDLL
ISrc

Class Requests

ImgSrc

IsValidFileName ( aFileName ) :  Boolean

Make ( aSrcName ) :  ImgSrc

Instance Requests

Getting and Setting the Attributes

GetNumBands  :  Number

GetSrcName  :  SrcName

HasError  :  Boolean

ReturnClipExtent  :  Rect

ReturnExtent  :  Rect

ReturnType  :  Number

SetClipExtent ( anExtent )

GeoReferencing an ImgSrc

ReturnMapExtent  :  Rect

SetMapExtent ( newExtent )

__________

See also

ITheme
ImageLegend
ImageLookup
BandStatistics
ColorMap
Display
ISrc
ImgCat


IsValidFileName (ImgSrc)
IsValidFileName

Returns TRUE if aFileName confirms to the extension rules for ImgSrc Names.

Syntax

ImgSrc.IsValidFileName (aFileName)

Returns

Boolean


Make (ImgSrc)
Make

Makes an ImgSrc from aSrcName.

Syntax

ImgSrc.Make (aSrcName)

Returns

ImgSrc


GetNumBands (ImgSrc)
GetNumBands

Gets the number of bands in anImgSrc.

Syntax

anImgSrc.GetNumBands

Returns

Number


GetSrcName (ImgSrc)
GetSrcName

Returns the SrcName associated with anImgSrc

Syntax

anImgSrc.GetSrcName

Returns

SrcName


HasError (ImgSrc)
HasError

Returns TRUE if anImgSrc has an error, otherwise returns FALSE.

Syntax

anImgSrc.HasError

Returns

Boolean


ReturnClipExtent (ImgSrc)
ReturnClipExtent

Returns the clip extent of anImgSrc in map units. This is the same extent that is returned with anImgSrc.ReturnExtent. If you create an image theme out of anImgSrc only this portion of anImgSrc is displayed.

Syntax

anImgSrc.ReturnClipExtent

Returns

Rect


ReturnExtent (ImgSrc)
ReturnExtent

Returns the extent of anImgSrc in map units. This is the same extent that is returned with anImgSrc.ReturnClipExtent. If you create an image theme out of anImgSrc only this portion of anImgSrc is displayed. This extent can be changed with anImgSrc.SetClipExtent.

Syntax

anImgSrc.ReturnExtent

Returns

Rect


ReturnType (ImgSrc)
ReturnType

Returns the type of anImgSrc. Valid types are:

  1   RLC
  2   Sun raster
  3   ERDAS
  7   TIFF
  8   BIL
  9   BIP
 10   GRID
 11   BSQ
 14   BMP

A unique, but dynamic, type number over 1000 is registered to each User Defined Formats (UDF) (such as JPEG and IMAGINE) at the time they are loaded. This number may change depending on the order in which the UDFs are loaded (as when a project is closed and opened).

Syntax

anImgSrc.ReturnType

Returns

Number


SetClipExtent (ImgSrc)
SetClipExtent

Sets the clip extent of anImgSrc to anExtent. If you create an image theme out of anImgSrc only this portion of anImgSrc is displayed.

Syntax

anImgSrc.SetClipExtent (anExtent)


ReturnMapExtent (ImgSrc)
ReturnMapExtent

Returns the map extent of anImgSrc in map units. This is always the full extent of anImgSrc.

Syntax

anImgSrc.ReturnMapExtent

Returns

Rect


SetMapExtent (ImgSrc)
SetMapExtent

Sets the map extent of anImgSrc to newExtent.

Syntax

anImgSrc.SetMapExtent (newExtent)


INFODir

 An INFODir reads INFO directories and gives the user access to INFO file names. A valid INFO directory contains a file called either arc.dir or arcdr9, depending upon the version of INFO or ARC/INFO used to store the data. An INFODir object lets the user query the contents of the INFO directory file. If the identifying file is arc.dir, the INFO directory is said to be 8.3 or "eight dot three" compliant. ArcView works best with 8.3 INFO data.

Attributes

FileName.The FileName is the file name that points to the base INFO directory.

Entries.Entries is a list of FileNames for the files in the INFO directory.

Inherits From

Obj

Class Requests

Accessing external data for an INFODir

FileExists ( aFileName ) :  Boolean

IsValid ( aFile ) :  Boolean

Making an InfoDir

Make ( aFileName ) :  INFODir

Working with files

CanCreateFile ( aFileName ) :  Boolean

Instance Requests

Getting Attributes

ContainsFile ( aString ) :  Boolean

GetFiles  :  List

Is8Dot3  :  Boolean

__________

See also

VTab


FileExists (INFODir)
FileExists

Returns TRUE if aFileName represents an existing INFO file. Otherwise returns FALSE.

Syntax

INFODir.FileExists (aFileName)

Returns

Boolean


IsValid (INFODir)
IsValid

Returns TRUE if aFile contains an arcdr9 or arc.dir file. Otherwise returns FALSE.

Syntax

INFODir.IsValid (aFile)

Returns

Boolean


Make (INFODir)
Make

Makes an INFODir for the arcdr9 or arc.dir file in the directory at aFileName.

Syntax

INFODir.Make (aFileName)

Returns

INFODir


CanCreateFile (INFODir)
CanCreateFile

Returns TRUE if the INFO file referenced by aFileName can be created. Otherwise returns FALSE.

Syntax

INFODIR.CanCreateFile (aFileName)

Returns

Boolean


ContainsFile (INFODir)
ContainsFile

Returns TRUE if anINFODir contains the file named aString. Otherwise returns FALSE.

Syntax

anINFODir.ContainsFile (aString)

Returns

Boolean


GetFiles (INFODir)
GetFiles

Gets the list of files in anINFODir.

Syntax

anINFODir.GetFiles

Returns

List


Is8Dot3 (INFODir)
Is8Dot3

Returns TRUE if the INFO directory is in 8.3 format. Otherwise returns FALSE.

Syntax

anINFODir.Is8Dot3

Returns

Boolean


ISrc

 An ISrc is an Image Data Source that can be drawn in an image theme with an image legend. An ISrc can be created from any supported image file on disk. Refer to the on- line help for images for a list of supported file formats.

Requests on ISrc are provided to geo-reference it, or align it with the coordinate system of an existing map. The MapExtent determines where the image is drawn on the map. It can be changed with the MatchRectangles and MatchPoints requests which align parts of the image with parts of the map.

An ISrc can also be clipped so that not all of it needs to be displayed. The ClipExtent determines which portions of the map extent are actually displayed and determines the extent of the image theme.

The set of files displayed in the source browser when browsing for images corresponds to the set of files in the current directory that have extensions that are in a list of supported image extensions. The ReturnExtensions and SetExtensions class requests on ISrc can be used to control this set of extensions. The SetExtensionChecking request can be used to enable or disable extension checking. Note that disabling extension checking causes all files in a directory including any non image files to appear in the Source Browser, and transfers the responsibility of picking image files to the user.

Attributes

SrcName.The SrcName describes the location of the data files making up the image.

MapExtent.The MapExtent is the extent of the entire image in map coordinates. Geo-referencing an image changes the map extent.

ClipExtent.The ClipExtent is the extent of the portion of the image of interest. Areas of the image outside of the ClipExtent will not be drawn. This attribute is set with the Definition area of the Image Theme Properties dialog box.

NumColumns.NumColumns is the number of columns in the image or the number of pixels horizontally across the image.

NumRows.NumRows is the number of rows in the image or the number of pixels vertically down the image.

NumBands.NumBands is the number of bands of data making up the image. Each pixel has a value in each band. Gray-scale images have one band. Color images have three bands for red, green, and blue. Images from other sources may have more bands although only three can be displayed at a time.

Inherits From

ImgSrc

Class Requests

ISrc

IsValidFileName ( aFileName ) :  Boolean

Make ( aSrcName ) :  ISrc

ReturnExtensions  :  List

ReturnTypeFromFileExt ( anExtension ) :  Number

SetExtensionChecking ( checkingOnFlag )

SetExtensions ( anExtStringList )

Instance Requests

GeoReferencing an ISrc

MatchPoints ( fromPoint, toPoint )

MatchRectangles ( fromRect, toRect )

ReturnMapExtent  :  Rect

SetMapExtent ( newExtent )

Getting and Setting the Attributes of ISrcs

BuildBandStatistics

GetBandStatistics  :  List

GetNumBands  :  Number

GetNumColumns  :  Number

GetNumRows  :  Number

GetSrcName  :  SrcName

HasError  :  Boolean

ReturnClipExtent  :  Rect

ReturnExtent  :  Rect

ReturnType  :  Number

SetClipExtent ( anExtent )

__________

See also

ImgSrc
ITheme
ImageLegend
ImageLookup
BandStatistics
ColorMap
Display


IsValidFileName (ISrc)
IsValidFileName

Returns TRUE if aFileName adheres to the extension rules for ISrc SrcNames.

Syntax

ISrc.IsValidFileName (aFileName)

Returns

Boolean


Make (ISrc)
Make

Makes an ISrc from aSrcName. For example,

   isOK = ISrc.IsValidFileName("$AVDATA/atlanta/images/eosatimg.bil".asFileName)
   if (isOK) then
     myISrc = ISrc.Make("$AVDATA/atlanta/images/eosatimg.bil".asSrcName)
   end

Syntax

ISrc.Make (aSrcName)

Returns

ISrc


ReturnExtensions (ISrc)
ReturnExtensions

Returns the list of valid ISrc SrcName extensions. The default list of valid extensions is: gis, lan, sun, rs, ras, rlc, tif, tff, tiff, bil, bip, bsq, and bmp. This list can be retrieved and modified and then set using the SetExtensions request.

Syntax

ISrc.ReturnExtensions

Returns

List


ReturnTypeFromFileExt (ISrc)
ReturnTypeFromFileExt

Returns the type of a valid ISrc SrcName file extension. The default list of valid extensions and the valid types are:

    Type  Image         Valid Extensions (Default list)
     1    RLC                rlc
     2    Sun raster         rs, ras, sun
     3    ERDAS              gis, lan
     7    TIFF               tif, tff, tiff
     8    BIL                bil
     9    BIP                bip
    10    GRID               (none)
    11    BSQ                bsq
    14    BMP                bmp
 >1000    UDF                (user-defined)

A unique, but dynamic, type number over 1000 is registered to each User Defined Formats (UDF) (such as JPEG and IMAGINE) at the time they are loaded. This number may change depending on the order in which the UDFs are loaded (as when a project is closed and opened).

 MsgBox.Info(ISrc.ReturnTypeFromFileExt("bmp").asString,"BMP type is...")

Syntax

ISrc.ReturnTypeFromFileExt (anExtension)

Returns

Number


SetExtensionChecking (ISrc)
SetExtensionChecking

Enables or disables extension checking for ISrc SrcNames. If TRUE, the list of valid extensions is checked. If FALSE then all files will be offered as a potential ISrc in the source browser. It is then up to the user to ensure that a valid filename is passed to ISrc.

Syntax

ISrc.SetExtensionChecking (checkingOnFlag)


SetExtensions (ISrc)
SetExtensions

Sets the list of valid ISrc SrcName extensions. All files with other extensions will be ignored.

In this example, only images with the extensions .tf or .tif will appear in the Add Theme dialog as possible image sources:

      ISrc.SetExtensions({"tf","tif"})

If you just want to add .tf to the default list, use this:

ImgExts = ISrc.ReturnExtensions MsgBox.ListAsString(ImgExts, "Here are the current extensions", "Image Extensions") ISrc.SetExtensions(ImgExts+{"tf"}) ImgExt2 = ISrc.ReturnExtensions MsgBox.ListAsString(ImgExt2, "Here are the updated extensions", "Image Extensions")

Syntax

ISrc.SetExtensions (anExtStringList)


MatchPoints (ISrc)
MatchPoints

Translates the map extent of anISrc so that fromPoint in the current map extent becomes toPoint in the resulting map extent.

Syntax

anISrc.MatchPoints (fromPoint, toPoint)


MatchRectangles (ISrc)
MatchRectangles

Scales and translates the map extent of anISrc so that fromRect in the current map extent becomes toRect in the resulting map extent.

Syntax

anISrc.MatchRectangles (fromRect, toRect)


ReturnMapExtent (ISrc)
ReturnMapExtent

Returns the map extent of anISrc. This is always the full extent of anISrc.

Syntax

anISrc.ReturnMapExtent

Returns

Rect


SetMapExtent (ISrc)
SetMapExtent

Sets the map extent of anISrc to newExtent.

Syntax

anISrc.SetMapExtent (newExtent)


BuildBandStatistics (ISrc)
BuildBandStatistics

Builds band statistics for anISrc.

Syntax

anISrc.BuildBandStatistics


GetBandStatistics (ISrc)
GetBandStatistics

Gets the list of band statistics of anISrc. The list returned contains BandStatistics objects.

Syntax

anISrc.GetBandStatistics

Returns

List


GetNumBands (ISrc)
GetNumBands

Gets the number of bands in anISrc.

Syntax

anISrc.GetNumBands

Returns

Number


GetNumColumns (ISrc)
GetNumColumns

Gets the number of columns of anISrc.

Syntax

anISrc.GetNumColumns

Returns

Number


GetNumRows (ISrc)
GetNumRows

Gets the number of rows of anISrc.

Syntax

anISrc.GetNumRows

Returns

Number


GetSrcName (ISrc)
GetSrcName

Gets the SrcName of anISrc.

Syntax

anISrc.GetSrcName

Returns

SrcName


HasError (ISrc)
HasError

Returns TRUE if anISrc has an error, otherwise returns FALSE.

Syntax

anISrc.HasError

Returns

Boolean


ReturnClipExtent (ISrc)
ReturnClipExtent

Returns the clip extent of anISrc in map units. This is the same extent that is returned with anISrc.ReturnExtent. If you create an image theme out of anISrc only this portion of anISrc is displayed.

Syntax

anISrc.ReturnClipExtent

Returns

Rect


ReturnExtent (ISrc)
ReturnExtent

Returns the Extent of anISrc in map units. This is the same extent that is returned with anISrc.ReturnClipExtent. If you create an image theme out of anISrc only this portion of anISrc is displayed. This extent can be changed with anISrc.SetClipExtent.

Syntax

anISrc.ReturnExtent

Returns

Rect


ReturnType (ISrc)
ReturnType

Returns the type of anISrc. Valid types are:

  1   RLC
  2   Sun raster
  3   ERDAS
  7   TIFF
  8   BIL
  9   BIP
 10   GRID
 11   BSQ
 14   BMP

A unique, but dynamic, type number over 1000 is registered to each User Defined Formats (UDF) (such as JPEG and IMAGINE) at the time they are loaded. This number may change depending on the order in which the UDFs are loaded (as when a project is closed and opened).

Syntax

anISrc.ReturnType

Returns

Number


SetClipExtent (ISrc)
SetClipExtent

Sets the clip extent of anISrc to anExtent. If you create an image theme out of anISrc only this portion of anISrc is displayed.

Syntax

anISrc.SetClipExtent (anExtent)


ITheme
Related Topics

 An ITheme is a visual representation of an ImgSrc that can be used as a theme in a view. The ImgSrc refers to the file on disk making up the image. The ILegend of the ITheme includes lookup tables and color maps that describe how a pixel value in the image becomes a color on the screen.

Attributes

ImgSrc.The ImgSrc is the object that refers to image's source data.

Inherits From

Theme

Class Requests

Making IThemes

Make ( anImgSrc ) :  ITheme

MakeFromSrc ( anImgSrc ) :  ITheme

Instance Requests

Getting and Setting Attributes

CanFindByPoint  :  Boolean

EditLegend

GetImgSrc  :  ImgSrc

InvalidateLegend

ReturnExtent  :  Rect

SetLegend ( anImageLegend )

UpdateLegend

__________

See also

ImageLegend
ImgSrc


Make (ITheme)
Make

Makes an ITheme from anImgSrc. This is the same as ITheme.MakeFromSrc. This example shows how to create an ITheme and add it to the view.

 SN = SrcName.Make("C:\DATA\IMAGES\PHOTO.TIF")
 MyImageSrc = ImgSrc.Make(SN)
 MyITheme = ITheme.Make(MyImageSrc)
 MyView = av.GetActiveDoc
 MyView.AddTheme(MyITheme)
 MyITheme.SetVisible(TRUE)

Syntax

ITheme.Make (anImgSrc)

Returns

ITheme


MakeFromSrc (ITheme)
MakeFromSrc

Makes an ITheme from anImgSrc. This is the same as ITheme.Make. This example shows how to create an ITheme and add it to the view.

 SN = SrcName.Make("C:\DATA\IMAGES\HOUSE.RS")
 MyImageSrc = ImgSrc.Make(SN)
 MyITheme = ITheme.MakeFromSrc(MyImageSrc)
 MyView = av.GetActiveDoc
 MyView.AddTheme(MyITheme)
 MyITheme.SetVisible(TRUE)

Syntax

ITheme.MakeFromSrc (anImgSrc)

Returns

ITheme


CanFindByPoint (ITheme)
CanFindByPoint

Returns FALSE because pixels in an Image theme cannot be found by pointing.

Syntax

anITheme.CanFindByPoint

Returns

Boolean


EditLegend (ITheme)
EditLegend

Opens the Image Legend Editor for anITheme.

Syntax

anITheme.EditLegend


GetImgSrc (ITheme)
GetImgSrc

Gets the ImgSrc (Image Source) for anITheme.

Syntax

anITheme.GetImgSrc

Returns

ImgSrc


InvalidateLegend (ITheme)
InvalidateLegend

Invalidates the ImageLegend for anITheme. See Theme.InvalidateLegend.

Syntax

anITheme.InvalidateLegend


ReturnExtent (ITheme)
ReturnExtent

Returns the extent of anITheme in map units.

Syntax

anITheme.ReturnExtent

Returns

Rect


SetLegend (ITheme)
SetLegend

Sets the Legend for anITheme to anImageLegend. NOTE: Although, the jump on anImageLegend goes to Obj, the argument is an ImageLegend object. See Theme.SetLegend for more explanation.

Syntax

anITheme.SetLegend (anImageLegend)


UpdateLegend (ITheme)
UpdateLegend

Updates anITheme to reflect changes to its legend. UpdateLegend causes an invalidate on both the theme and its legend.

Syntax

anITheme.UpdateLegend


Labeler
Example

 The Labeler object knows how to label the features of a theme based on parameters you can modify. You should make one Labeler object per view you are labeling. You can use the same Labeler object to label one or more themes as long as they are in the same View.

The labeler object works by having themes loaded into it. When a theme is loaded into the labeler, the geometry of each feature than can be labeled and the graphic text that will be used to label that feature are passed into the labeler. The labeler figures out the best location for these graphic text elements. A labeler also keeps track of each graphicText element once it has found a good location for it so that other graphicText labels will not be placed in an overlapping position. If a label cannot be placed, it is because there are either other features that should not be overlaid by labels, or other labels that should not be overlapped nearby.

The Labeler object has different default settings for point, line and polygon features. You can change these defaults once and have it affect all themes you load into the labeler object thereafter. Or you can change the settings for each theme you load, just prior to loading it. These settings are described below:

Attributes

RemoveDuplicates.Sets whether the labeler will pre-process features so that no duplicate labels will be placed on contiguously named features.

FeatureWeight.Sets the level of importance the geometric features of a theme has with respect to whether labels can be placed on top of the geometry. The default for points is high, meaning labels will not be placed on a point's symbol, while for lines and polygon perimeters, the feature weight is low.

LabelWeight.Sets the level of importance of other labels that the labeler object has already placed with respect to whether new labels can be placed in an overlapping fashion. High is the default for all types of geometries, meaning that labels will no overlap. A LabelWeight of medium means that only when there is no other available position will labels overlap.

LinePlacement.Determines whether labels for line features will be placed above, on, or below the line they are representing.

ViewExtent.If true, then the labeler will only load features that are currently visible in the view's extent. Otherwise all features in a theme will be loaded into the labeler.

UnplacedLabels.Unplaced labels are those labels which overlap other labels or do not fit aesthetically next to the feature they represent. The labeler keeps track of these labels and when you use aView.GetAutoLabels, you have the option to request that these labels be placed on your view as well.

Inherits From

Obj

Enumerations

LabelWeightEnum

Class Requests

Creating Labeler

Make ( rect ) :  Labeler

Instance Requests

Labeler

GetFeatureWeight  :  LabelWeightEnum

GetLabelWeight  :  LabelWeightEnum

GetLinePlacement  :  Number

Load ( aTheme ) :  Boolean

RemoveDuplicates ( aBool )

RemovingDuplicates  :  Boolean

SetFeatureWeight ( aLabelWeightEnum )

SetLabelWeight ( aLabelWeightEnum )

SetLinePlacement ( aNumb )

__________

See also

FTheme
GraphicList
View


Make (Labeler)
Make
Example

Makes a labeler object. A rect should correspond to to the area of the view you wish to label. Use aView.GetDisplay.ReturnVisExtent or aView.GetDisplay.ReturnExtent to set whether you are labeling only the visible extent or the entire extent.

Syntax

Labeler.Make (rect)

Returns

Labeler


GetFeatureWeight (Labeler)
GetFeatureWeight

Get the feature weight in labeling.

Syntax

aLabeler.GetFeatureWeight

Returns

LabelWeightEnum


GetLabelWeight (Labeler)
GetLabelWeight

Get the label weight in labeling.

Syntax

aLabeler.GetLabelWeight

Returns

LabelWeightEnum


GetLinePlacement (Labeler)
GetLinePlacement

Get the line placement mask.

Syntax

aLabeler.GetLinePlacement

Returns

Number


Load (Labeler)
Load
Example

Loads the features of aTheme into aLabeler. If false is returned, then something has gone wrong and you should verify your parameters, theme, and LabelField. Note, aTheme must be Visible and Active to be properly loaded into aLabeler.

Syntax

aLabeler.Load (aTheme)

Returns

Boolean


RemoveDuplicates (Labeler)
RemoveDuplicates
Example

Set to true to remove duplicates.

Syntax

aLabeler.RemoveDuplicates (aBool)


RemovingDuplicates (Labeler)
RemovingDuplicates

Returns true if alabeler removing duplicates.

Syntax

aLabeler.RemovingDuplicates

Returns

Boolean


SetFeatureWeight (Labeler)
SetFeatureWeight
Example

Set the feature weight in labeling.

Syntax

aLabeler.SetFeatureWeight (aLabelWeightEnum)


SetLabelWeight (Labeler)
SetLabelWeight
Example

set the weight of existing labels.

Syntax

aLabeler.SetLabelWeight (aLabelWeightEnum)


SetLinePlacement (Labeler)
SetLinePlacement

Set the line placement mask. Use the following masks to control label placement for line features:

1 place labels above lines 2 place labels below lines 4 place labels on top of lines

Syntax

aLabeler.SetLinePlacement (aNumb)


LabelWeightEnum

 LabelWeights are used to determine whether a label can overlap features or other labels. You can separately determine weights for features and labels.

#LABEL_WEIGHT_NO

No weight, finds the best position for a label regardless of other features or labels. This option is quite fast as the fewest calculations are needed.

#LABEL_WEIGHT_LOW

Low weight, if an overlap is detected in the primary label position, one more position will be tried before the label is placed in the better of the two positions.

#LABEL_WEIGHT_MEDIUM

Medium weight, if an overlap is detected in the primary label position, all other positions will be explored. Then the label is placed in the best alternative position. This option may require more time as more calculations are necessary.

#LABEL_WEIGHT_HIGH

High weight, only labels features when the label does not overlap with other labels or features. This option may require more time as more calculations are necessary.


AutoLabelDialog

 AutoLabelDialog is the modal dialog box used for Auto-labeling.

Inherits From

ModalDialog

Class Requests

Showing a AutoLabelDialog

Show ( aTheme )

__________

See also

Labeler


Show (AutoLabelDialog)
Show

Shows the Auto-label dialog to Auto-label aTheme.

Syntax

AutoLabelDialog.Show (aTheme)


Lambert
Discussion	Example

 This class implements the Lambert Conformal Conic projection.

Inherits From

Prj

Class Requests

Creating Lambert Conformal Conic Projections

CanDoSpheroid  :  Boolean

Make ( aRect ) :  Lambert

Instance Requests

Projecting and unprojecting points

ProjectPt ( aPoint ) :  Boolean

UnProjectPt ( aPoint ) :  Boolean

Lambert Conformal Conic Parameters

Recalculate

ReturnCentralMeridian  :  Number

ReturnFalseEasting  :  Number

ReturnFalseNorthing  :  Number

ReturnLowerStandardParallel  :  Number

ReturnReferenceLatitude  :  Number

ReturnUpperStandardParallel  :  Number

SetCentralMeridian ( aLongitude )

SetFalseEasting ( aFalseEasting )

SetFalseNorthing ( aFalseNorthing )

SetLowerStandardParallel ( aLatitude )

SetReferenceLatitude ( aLatitude )

SetUpperStandardParallel ( aLatitude )

__________

See also

CoordSys
Spheroid


CanDoSpheroid (Lambert)
CanDoSpheroid

Returns TRUE if a class of projection supports arbitrary spheroids and FALSE if it only supports the sphere. The Lambert class always returns TRUE.

Syntax

Lambert.CanDoSpheroid

Returns

Boolean


Make (Lambert)
Make
Example

Creates a Lambert Conformal Conic projection. aRect is the bounding rectangle of the area being projected. Use decimal degrees for the coordinates of aRect.

Syntax

Lambert.Make (aRect)

Returns

Lambert


ProjectPt (Lambert)
ProjectPt
Example

Projects the point aPoint. Returns TRUE if aPoint is visible, FALSE otherwise; however, this always returns a point.

Syntax

aLambert.ProjectPt (aPoint)

Returns

Boolean


UnProjectPt (Lambert)
UnProjectPt
Example

Unprojects the point aPoint. Returns TRUE if aPoint can be unprojected, FALSE otherwise; however, this always returns a point.

Syntax

aLambert.UnProjectPt (aPoint)

Returns

Boolean


Recalculate (Lambert)
Recalculate

Updates the internal parameters of the projection. This must be called after changing any parameters of the Lambert Conformal Conic projection.

Syntax

aLambert.Recalculate


ReturnCentralMeridian (Lambert)
ReturnCentralMeridian

Returns the central meridian in degrees.

Syntax

aLambert.ReturnCentralMeridian

Returns

Number


ReturnFalseEasting (Lambert)
ReturnFalseEasting

Returns the value of x at the central meridian.

Syntax

aLambert.ReturnFalseEasting

Returns

Number


ReturnFalseNorthing (Lambert)
ReturnFalseNorthing

Returns the value of y at the central meridian.

Syntax

aLambert.ReturnFalseNorthing

Returns

Number


ReturnLowerStandardParallel (Lambert)
ReturnLowerStandardParallel

Returns the lower of the two latitudes at which there is no distortion in scale.

Syntax

aLambert.ReturnLowerStandardParallel

Returns

Number


ReturnReferenceLatitude (Lambert)
ReturnReferenceLatitude

Returns the latitude iin degrees at which y is 0.

Syntax

aLambert.ReturnReferenceLatitude

Returns

Number


ReturnUpperStandardParallel (Lambert)
ReturnUpperStandardParallel

Returns the upper of the two latitudes at which there is no distortion in scale.

Syntax

aLambert.ReturnUpperStandardParallel

Returns

Number


SetCentralMeridian (Lambert)
SetCentralMeridian
Example

Sets the central meridian to aLongitude. aLongitude is a longitude in degrees.

Syntax

aLambert.SetCentralMeridian (aLongitude)


SetFalseEasting (Lambert)
SetFalseEasting
Example

Sets the value of x at the central meridian.

Syntax

aLambert.SetFalseEasting (aFalseEasting)


SetFalseNorthing (Lambert)
SetFalseNorthing
Example

Sets the value of y at the central meridian.

Syntax

aLambert.SetFalseNorthing (aFalseNorthing)


SetLowerStandardParallel (Lambert)
SetLowerStandardParallel
Example

Sets the lower of the two latitudes at which there is no distortion in scale. These parallels may not be on opposite sides and equidistant from the equator. aLatitude is the latitude in degrees of the lower parallel.

Syntax

aLambert.SetLowerStandardParallel (aLatitude)


SetReferenceLatitude (Lambert)
SetReferenceLatitude
Example

Sets the latitude at which y is 0. aLatitude is a latitude in degrees.

Syntax

aLambert.SetReferenceLatitude (aLatitude)


SetUpperStandardParallel (Lambert)
SetUpperStandardParallel
Example

Sets the upper of the two latitudes at which there is no distortion in scale. These parallels may not be on opposite sides and equidistant from the equator. aLatitude is the latitude in degrees of the upper parallel.

Syntax

aLambert.SetUpperStandardParallel (aLatitude)


Layer

 The layer class provides requests to get the information on an ARC/INFO map library layer or ArcStorm library layer that would enable you to create SrcName objects for library feature sources. A SrcName object that describes the data source for a library feature source has two parts: the layer's fullname (LibrarianName.LibraryName.LayerName) and the feature class.

Return the list of layer objects in a library with the request aLibrary.ReturnLayers. Use the GetName or GetFullName requests to access the layer names. The class request ReturnSrcNames returns a list of SrcName objects for all the feature classes in the named library layer.

Attributes

FullName.FullName is the long name of the layer in the form LibrarianName.LibraryName.LayerName. If LibrarianName is omitted, the ARC/INFO Librarian is assumed.

Name. Name is the layer name.

Inherits From

Obj

Class Requests

Making a Layer

ReturnSrcNames ( aLayerName ) :  List

Instance Requests

Manipulating a Layer

GetFullName  :  String

GetName  :  String

__________

See also

SrcName
Library
Librarian


ReturnSrcNames (Layer)
ReturnSrcNames

Returns a list of SrcName objects for the layer identified by the string aLayerName. aLayerName is the fullname for the layer: LibrarianName.LibraryName.LayerName.

Syntax

Layer.ReturnSrcNames (aLayerName)

Returns

List


GetFullName (Layer)
GetFullName

Gets the full name of aLayer.

Syntax

aLayer.GetFullName

Returns

String


GetName (Layer)
GetName

Gets the name of aLayer.

Syntax

aLayer.GetName

Returns

String


Layout

 A Layout is a kind of document which provides interactive map layout capabilities to the ArcView user. Each layout organizes a list of graphic objects. It can then draw those objects to the screen, send them to a printer, and send them to one of several standard graphics file formats. For a thorough discussion of the capabilities of the layout document, see 'Layout' in the on-line help.

Attributes

Display.The PageDisplay on which the elements of the Layout are drawn.

Graphics.The GraphicList containing the graphic elements of the Layout.

Inherits From

Doc

Class Requests

Making Layouts

Make  :  Layout

MakeWithGUI ( aGUIName ) :  Layout

Instance Requests

Displaying Dialog Boxes

EditProperties  :  Boolean

Print

Generic Document Requests

IsSymWinClient  :  Boolean

Templates

AsTemplate  :  Template

UseTemplate ( aTemplate )

Getting and Setting Attributes

GetDisplay  :  Display

GetGraphics  :  GraphicList

Manipulating a Layout

Draw ( aDisplay )

Export  :  FileName

ExportToFile ( aFileName, aFormatString, aListOfParameters ) :  FileName

Invalidate

User Interaction (Apply Events only)

ReturnUserCircle  :  Circle

ReturnUserLine  :  Line

ReturnUserPolygon  :  Polygon

ReturnUserPolyLine  :  PolyLine

ReturnUserRect  :  Rect

Select

SelectToEdit

Setting State of Editing

GetSelectMode  :  GraphicsSelectModeEnum

SetSelectMode ( aGraphicsSelectMode )

__________

See also

PageSetupDialog
Theme
View
GraphicList
Shape
Frame
Template


Make (Layout)
Make

Makes a Layout.

Syntax

Layout.Make

Returns

Layout


MakeWithGUI (Layout)
MakeWithGUI

Makes a Layout and sets its initial GUI to be the one named aGUIName.

Syntax

Layout.MakeWithGUI (aGUIName)

Returns

Layout


EditProperties (Layout)
EditProperties

Allows the user to edit the properties of aLayout.

Syntax

aLayout.EditProperties

Returns

Boolean


Print (Layout)
Print

 prints aLayout on the default printer.

Syntax

aLayout.Print


IsSymWinClient (Layout)
IsSymWinClient

Is aLayout a client of the SymWin (returns TRUE).

Syntax

aLayout.IsSymWinClient

Returns

Boolean


AsTemplate (Layout)
AsTemplate

Generate a template from the layout.

Syntax

aLayout.AsTemplate

Returns

Template


UseTemplate (Layout)
UseTemplate

 Replace the graphics in the layout with those in the specified template.

Syntax

aLayout.UseTemplate (aTemplate)


GetDisplay (Layout)
GetDisplay

Gets the Display of aLayout. The object returned is a PageDisplay.

Syntax

aLayout.GetDisplay

Returns

Display


GetGraphics (Layout)
GetGraphics

Gets the GraphicList of aLayout.

Syntax

aLayout.GetGraphics

Returns

GraphicList


Draw (Layout)
Draw

Draws aLayout on aDisplay.

Syntax

aLayout.Draw (aDisplay)


Export (Layout)
Export

Shows the graphics export file browser. If user presses OK, exports aLayout to the specified file format. The window for aLayout must be open before you can use this request. Returns the export file name.

Syntax

aLayout.Export

Returns

FileName


ExportToFile (Layout)
ExportToFile

Exports the display of aLayout to a file specified by aFileName in the format specified by aFormatString, which must be a valid format returned by aDisplay.ReturnExportFormats. A ListOfParameters is a list containing options offered by each of the export formats. For example, all export formats containing options offer a resolution, so aList containing a number will export the file at the resolution specified. To see the different choices click the "options" button in the export dialogue for each of the export types. aLayout's window must be open before you can use this request.

Syntax

aLayout.ExportToFile (aFileName, aFormatString, aListOfParameters)

Returns

FileName


Invalidate (Layout)
Invalidate

Invalidates the entire area of aLayout.

Syntax

aLayout.Invalidate


ReturnUserCircle (Layout)
ReturnUserCircle

Gets a circle from the user on aLayout and sends information about the shape to the ArcView status area.

Syntax

aLayout.ReturnUserCircle

Returns

Circle


ReturnUserLine (Layout)
ReturnUserLine

Gets a line from the user on aLayout and sends information about the shape to the ArcView status area.

Syntax

aLayout.ReturnUserLine

Returns

Line


ReturnUserPolygon (Layout)
ReturnUserPolygon

Gets a polygon from the user on aLayout and sends information about the shape to the ArcView status area.

Syntax

aLayout.ReturnUserPolygon

Returns

Polygon


ReturnUserPolyLine (Layout)
ReturnUserPolyLine

Gets a polyline from the user on aLayout and sends information about the shape to the ArcView status area.

Syntax

aLayout.ReturnUserPolyLine

Returns

PolyLine


ReturnUserRect (Layout)
ReturnUserRect

Gets a rectangle from the user on aLayout and sends information about the shape to the ArcView status area.

Syntax

aLayout.ReturnUserRect

Returns

Rect


Select (Layout)
Select

Selects the graphic element at the current mouse location.

Syntax

aLayout.Select


SelectToEdit (Layout)
SelectToEdit

Allows the user to select graphics on aLayout with vertex handles drawn for editing.

Syntax

aLayout.SelectToEdit


GetSelectMode (Layout)
GetSelectMode

Return the GraphicsSelectMode for selecting graphics in aLayout.

Syntax

aLayout.GetSelectMode

Returns

GraphicsSelectModeEnum


SetSelectMode (Layout)
SetSelectMode

Set select mode for selecting graphics in aView to aGraphicsSelectMode.

Syntax

aLayout.SetSelectMode (aGraphicsSelectMode)


LabelButton
Related Topics

 LabelButtons are buttons that display text rather than icons. They typically are found at the top of the project document window.

Like Buttons, Label Buttons recognize the Click event; A LabelButton receives a click event when the user clicks on that button or when an Avenue script issues the request aLabelButton.Click.

Attributes

Click. A LabelButton receives a click event when the user "clicks" the button. The click attribute specifies the Avenue script to be executed when the event occurs.

Label. The Label is a string that appears on the face of the button. The Label should identify the function of the click event.

Inherits From

Control

Class Requests

LabelButtons

Make  :  LabelButton

Instance Requests

Using LabelButtons

Click

Getting/Setting LabelButton attributes

GetClick  :  String

GetLabel  :  String

HasScript ( aScriptName ) :  Boolean

SetClick ( aScriptName )

SetLabel ( aLabel )

__________

See also

Project
Button
Choice


Make (LabelButton)
Make

Creates a LabelButton.

Syntax

LabelButton.Make

Returns

LabelButton


Click (LabelButton)
Click

 Triggers the "Click" event executing the script identified by the click property.

Syntax

aLabelButton.Click


GetClick (LabelButton)
GetClick

 Gets the script that is executed on a click event.

Syntax

aLabelButton.GetClick

Returns

String


GetLabel (LabelButton)
GetLabel

 Gets the label used by the button.

Syntax

aLabelButton.GetLabel

Returns

String


HasScript (LabelButton)
HasScript

Returns TRUE when aLabelButton is associated with a script named aScriptName.

Syntax

aLabelButton.HasScript (aScriptName)

Returns

Boolean


SetClick (LabelButton)
SetClick

 Sets aScriptName to execute on a click event.

Syntax

aLabelButton.SetClick (aScriptName)


SetLabel (LabelButton)
SetLabel

 Sets aLabel to the be the label drawn on the button..

Syntax

aLabelButton.SetLabel (aLabel)


Classification
Example

 A Classification is an element in a Legend with one classification per symbol; a Classification represents a value or range of values for symbolization. A Classification contains a range of values and a label. The values may be either numeric or text. You can verify the type of classification (string or numeric) with the IsText request. The label is the name associated with the Classification.

There are several types of legends: simple, equal interval, quantile and unique. The attributes of the classification vary based on the legend type.

Attributes

Label.Label is the text used to describe the classification in the table of contents of the view.

Minimum.Minimum is the lowest value in the Classification. This attribute is used primarily by equal interval and quantile legends. Unique legends apply the same value to both Minimum and Maximum and Simple legends have no value for Minimum or Maximum.

Maximum.Maximum is the highest value in the Classification. This attribute is used primarily by equal interval and quantile legends. Unique legends apply the same value to both Minimum and Maximum and Simple legends have no value for Minimum or Maximum.

RangeString.Range string is the string edited in the Legend Editor containing the Minimum, a space, a dash, a space and the Maximum (ex. "Minimum - Maximum").

Inherits From

Obj

Enumerations

SortTypeEnum

Class Requests

Making a Classification

Make ( aMinValue, aMaxValue ) :  Classification

MakeDisjoint ( aList ) :  Classification

Instance Requests

Getting and Setting Attributes

Contains ( aValue ) :  Boolean

GetComponents  :  List

GetLabel  :  String

GetPrecision  :  Number

IsDisjoint  :  Boolean

IsEmpty  :  Boolean

IsNoData  :  Boolean

IsText  :  Boolean

ReturnMaximum  :  Obj

ReturnMinimum  :  Obj

ReturnRangeString  :  String

SetLabel ( aLabel )

SetMaximum ( aValue )

SetMinimum ( aValue )

SetPrecision ( aNumber )

SetRangeString ( aString ) :  Boolean

__________

See also

Legend


Make (Classification)
Make

Makes a Classification that contains values between aMinValue and aMaxValue. aMinValue and aMaxValue may be any object, but they must be the same type. Here is an example of classifications on state names.

 a = Classification.Make("A*", "F*")
 b = Classification.Make("F*", "M*")
 c = Classification.Make("M*", "S*")
 d = Classification.Make("S*", "Z*")
 ClassLst = {a, b, c, d}
 theTheme = av.GetProject.FindDoc("View1").FindTheme("State")
 theLegend = theTheme.GetLegend
 theLegend.SetLegendType(#LEGEND_TYPE_COLOR)
 theLegend.Quantile(theTheme, "State_name", 4)
 theClassList = theLegend.GetClassifications
 cnt = 0
 for each i in theClassList
   theClassList.Set(cnt, ClassLst.Get(cnt))
   cnt = cnt + 1
 end
 theTheme.UpdateLegend

Syntax

Classification.Make (aMinValue, aMaxValue)

Returns

Classification


MakeDisjoint (Classification)
MakeDisjoint

Makes an disjoint Classification from aList of simple Classifications.

Syntax

Classification.MakeDisjoint (aList)

Returns

Classification


Contains (Classification)
Contains

Returns TRUE if aValue is in the range of aClassification, FALSE otherwise.

Syntax

aClassification.Contains (aValue)

Returns

Boolean


GetComponents (Classification)
GetComponents

Returns the list of components for a disjoint classification

Syntax

aClassification.GetComponents

Returns

List


GetLabel (Classification)
GetLabel

Gets the label of aClassification.

Syntax

aClassification.GetLabel

Returns

String


GetPrecision (Classification)
GetPrecision

Gets the precision of aClassification.

Syntax

aClassification.GetPrecision

Returns

Number


IsDisjoint (Classification)
IsDisjoint

Returns TRUE if aClassification is disjoint.

Syntax

aClassification.IsDisjoint

Returns

Boolean


IsEmpty (Classification)
IsEmpty

Returns TRUE if aClassification is empty (i.e. created with MakeEmpty), otherwise returns FALSE.

Syntax

aClassification.IsEmpty

Returns

Boolean


IsNoData (Classification)
IsNoData

Returns TRUE if aClassification is NoData class.

Syntax

aClassification.IsNoData

Returns

Boolean


IsText (Classification)
IsText

Returns TRUE if aClassification is text, otherwise returns FALSE.

Syntax

aClassification.IsText

Returns

Boolean


ReturnMaximum (Classification)
ReturnMaximum

Returns the maximum for aClassification.

Syntax

aClassification.ReturnMaximum

Returns

Obj


ReturnMinimum (Classification)
ReturnMinimum

Returns the minimum for aClassification.

Syntax

aClassification.ReturnMinimum

Returns

Obj


ReturnRangeString (Classification)
ReturnRangeString

Returns the range of values as a string.

Syntax

aClassification.ReturnRangeString

Returns

String


SetLabel (Classification)
SetLabel

Sets the label of aClassification to aLabel.

Syntax

aClassification.SetLabel (aLabel)


SetMaximum (Classification)
SetMaximum

Sets the maximum of aClassification to aValue.

Syntax

aClassification.SetMaximum (aValue)


SetMinimum (Classification)
SetMinimum

Sets the minimum of aClassification to aValue.

Syntax

aClassification.SetMinimum (aValue)


SetPrecision (Classification)
SetPrecision

Sets the precision of aClassification.

Syntax

aClassification.SetPrecision (aNumber)


SetRangeString (Classification)
SetRangeString

Sets the range of values to aString. Returns TRUE if the range is parsed successfully, otherwise returns FALSE.

Syntax

aClassification.SetRangeString (aString)

Returns

Boolean


SortTypeEnum

 This is the sort type.

#LCLASS_SORTTYPE_VALUE

Sort by value.

#LCLASS_SORTTYPE_LABEL

Sort by label.

#LCLASS_SORTTYPE_COUNT

Sort by count.


Legend
Discussion

 A Legend contains information necessary to display a theme's features using different symbolization schemes. This information includes classifications, Null values and symbols, Normalizations, Advanced display options, and sorting details that affect how a legend appears in a View document's Table of Contents or a Legend Frame in a Layout.

Inherits From

Obj

Enumerations

LegendTypeEnum

LegendClassTypeEnum

LegendNormTypeEnum

LegendLoadTypeEnum

StatTypeEnum

Class Requests

Making Legends

Make ( aSymType ) :  Legend

Instance Requests

Generic Object Requests

Clone  :  Legend

Manipulating Classifications

GetClassifications  :  List

GetIndex ( aList ) :  Number

GetNumClasses  :  Number

GetSymbol ( aList, aBoolean ) :  Symbol

GetSymbols  :  SymbolList

ResetClasses ( aTheme, aFieldName )

ReturnClassInfo ( anIndex ) :  List

ReturnFieldNames  :  List

SetClassInfo ( anIndex, aList )

Getting and Setting Legend Properties

GetClassType  :  LegendClassTypeEnum

GetDensity  :  Number

GetExtension ( aLegendExtensionClass ) :  LegendExtension

GetFieldNames  :  List

GetLegendType  :  LegendTypeEnum

GetLineOffset  :  Number

GetNormFieldName  :  String

GetNormType  :  LegendNormTypeEnum

GetNumStdDev  :  Number

GetPrecision  :  Number

GetRefScale  :  Number

GetRotationFieldName  :  String

GetSizeFieldName  :  String

IsScaled  :  Boolean

RemoveExtension ( aLegendExtensionClass )

SetDensity ( aNumber )

SetExtension ( aLegendExtension )

SetFieldNames ( aList )

SetLegendType ( aLegendType )

SetLineOffset ( anOffset )

SetNormFieldName ( aString )

SetNormType ( aNormType )

SetPrecision ( aNumber )

SetRefScale ( aScale )

SetRotationFieldName ( aString )

SetScaleSymbols ( aBoolean )

SetSizeFieldName ( aString )

Classifying a Legend

Area ( aTheme, aString, numClasses )

ColumnChart ( aTheme, aListOfFieldNames, aListOfSymbols, aBackgroundSymbol )

Dot ( aString, aNumber, aMarkerSymbol, aShadeSymbol )

Interval ( aTheme, aString, numClasses )

Natural ( aTheme, aString, numClasses )

PieChart ( aTheme, aListOfFieldNames, aListOfSymbols, aBackgroundSymbol, aSizeFieldName )

Quantile ( aTheme, aString, numClasses )

ReturnBestDensity ( aTheme, aString, aMarkerSymbol ) :  Number

SingleSymbol

StdDev ( aTheme, aString, numStdDev )

Unique ( aTheme, aString )

Drawing and Symbolizing a Legend

DisplayNoDataClass ( aBoolean )

Draw ( aDisplay, aTextSymbol, aRect, isClipped )

GetNullSymbol  :  Symbol

GetNullValue ( aFieldName ) :  Value

IsNoDataClassDisplayed  :  Boolean

RestoreSymbols

ReturnDefaultSymbol  :  Symbol

ReturnRowHeight ( aRow, aDisplay, aTextSymbol, areWeClippingYet ) :  Number

ScaleSymbols ( aDisplay )

SetNullSymbol ( aSymbol )

SetNullValue ( aFieldName, aValue )

Manipulating a Legend

Copy ( srcLegend )

Load ( aSavedLegend, loadType ) :  Boolean

Save ( aFileName ) :  Boolean

__________

See also

Theme
Classification
Symbol
SymbolList


Make (Legend)
Make

Makes a Legend for aSymType. The new legend uses the current default symbol for that type. The default symbol is highlighted in the SymbolWindow.

Syntax

Legend.Make (aSymType)

Returns

Legend


Clone (Legend)
Clone

Clones aLegend.

Syntax

aLegend.Clone

Returns

Legend


GetClassifications (Legend)
GetClassifications
Example

Gets the list of classifications in aLegend. A simple legend has one classification.

Syntax

aLegend.GetClassifications

Returns

List


GetIndex (Legend)
GetIndex
Example

Gets the index of the class corresponding to aList of values. The values should correspond to the fieldnames returned by ReturnFieldNames.

Syntax

aLegend.GetIndex (aList)

Returns

Number


GetNumClasses (Legend)
GetNumClasses

Gets the number of classifications.

Syntax

aLegend.GetNumClasses

Returns

Number


GetSymbol (Legend)
GetSymbol

Gets the symbol corresponding to aList of values. The values should correspond to the fieldnames returned by ReturnFieldNames. If the feature is selected (the flag is TRUE), then the symbol is modified to show that it is selected.

Syntax

aLegend.GetSymbol (aList, aBoolean)

Returns

Symbol


GetSymbols (Legend)
GetSymbols
Example

Gets the list of the symbols in aLegend. This is returned as a SymbolList. Normally, the symbols list corresponds one-to-one with the classifications list, however, if the No Data class is not displayed the Null symbol will still be the last symbol in SymbolList . returned by GetSymbols.

Syntax

aLegend.GetSymbols

Returns

SymbolList


ResetClasses (Legend)
ResetClasses

Clear all existing classifications and create a new list containing only the nodata class.

Syntax

aLegend.ResetClasses (aTheme, aFieldName)


ReturnClassInfo (Legend)
ReturnClassInfo

Returns a list containing information describing the class specified by anIndex. anIndex is the position of a class within aLegend. The elements of this list are:

   0: label string, appears in the Label column in the Legend Editor
   1: range string, appears in the Value column in the Legend Editor
   2: a symbol to represent the features whose values are within the value range
   3: minimum value for the class
   4: maximum value for the class
   (3+2n: min n) Elements 5 through n are used only for Chart legends.
   (4+2n: max n)

This information can also be accessed from the classification class, but it may be more convenient to use this convention.

Syntax

aLegend.ReturnClassInfo (anIndex)

Returns

List


ReturnFieldNames (Legend)
ReturnFieldNames
Example

Return a list of strings specifying the fields containing the values needed by GetSymbol and GetIndex. This is a superset of the fields on which we are classifying (returned by GetFieldNames).

Syntax

aLegend.ReturnFieldNames

Returns

List


SetClassInfo (Legend)
SetClassInfo

Set the parameters of the class specified by anIndex using aList. The parameters in the list include:

   0: label string, appears in the Label column in the Legend Editor
   1: range string, appears in the Value column in the Legend Editor
   2: a symbol to represent the features whose values are within the value range
   3: minimum value for the class
   4: maximum value for the class
   (3+2n: min n) Elements 5 through n are used only for Chart legends.
   (4+2n: max n)

Syntax

aLegend.SetClassInfo (anIndex, aList)


GetClassType (Legend)
GetClassType

Get the type of classification: interval, quantile, standard deviation, natural breaks, or equal area.

Syntax

aLegend.GetClassType

Returns

LegendClassTypeEnum


GetDensity (Legend)
GetDensity

For dot density mapping, get the number of values per dot, as in "one dot = <density>".

Syntax

aLegend.GetDensity

Returns

Number


GetExtension (Legend)
GetExtension

 Gets the legend extension object for the class specified by aLegendExtensionClass.

Syntax

aLegend.GetExtension (aLegendExtensionClass)

Returns

LegendExtension


GetFieldNames (Legend)
GetFieldNames

Get a list of strings specifying the fields on which we are classifying.

Syntax

aLegend.GetFieldNames

Returns

List


GetLegendType (Legend)
GetLegendType

Get the type of legend: simple, color, symbol, unique, dot density, or chart.

Syntax

aLegend.GetLegendType

Returns

LegendTypeEnum


GetLineOffset (Legend)
GetLineOffset

Get offset (in points: 1/72 inch) used to draw line symbols.

Syntax

aLegend.GetLineOffset

Returns

Number


GetNormFieldName (Legend)
GetNormFieldName

Get the normalization field name.

Syntax

aLegend.GetNormFieldName

Returns

String


GetNormType (Legend)
GetNormType

Get the type of normalization: none, normalize by percent of total, or normalize by field.

Syntax

aLegend.GetNormType

Returns

LegendNormTypeEnum


GetNumStdDev (Legend)
GetNumStdDev

For standard deviation classifications, get the number of standard deviations per class. This value can only be set by reclassifying using the StdDev request.

Syntax

aLegend.GetNumStdDev

Returns

Number


GetPrecision (Legend)
GetPrecision

Get the precision at which the data will be displayed in the legend. The number represents the power of 10 that the values of the legend will be rounded to, e.g., a 3 means round to the nearest thousand, while a -3 means round to the nearest thousandth.

Syntax

aLegend.GetPrecision

Returns

Number


GetRefScale (Legend)
GetRefScale

Get reference scale used to scale symbols based on the view's scale.

Syntax

aLegend.GetRefScale

Returns

Number


GetRotationFieldName (Legend)
GetRotationFieldName

Get the symbol rotation field name.

Syntax

aLegend.GetRotationFieldName

Returns

String


GetSizeFieldName (Legend)
GetSizeFieldName

For pie chart mapping, get the name of the field used to determine the radius of the pies.

Syntax

aLegend.GetSizeFieldName

Returns

String


IsScaled (Legend)
IsScaled

Return TRUE if symbols are scaled based on the view's scale, FALSE otherwise.

Syntax

aLegend.IsScaled

Returns

Boolean


RemoveExtension (Legend)
RemoveExtension

 Removes the extension object for the class aLegendExtensionClass.

Syntax

aLegend.RemoveExtension (aLegendExtensionClass)


SetDensity (Legend)
SetDensity

For dot density mapping, set the number of values per dot, as in "one dot = <density>".

Syntax

aLegend.SetDensity (aNumber)


SetExtension (Legend)
SetExtension

 Sets aLegendExtension to be the legend extension object for the class of aLegendExtension.

Syntax

aLegend.SetExtension (aLegendExtension)


SetFieldNames (Legend)
SetFieldNames

Specify the fields on which we are classifying using a list of strings. Note that currently this just sets the fields, and doesn't reclassify the legend. It is used by the CadReader and to read old ArcView Project and Legend files.

Syntax

aLegend.SetFieldNames (aList)


SetLegendType (Legend)
SetLegendType

Set the type of legend: simple, color, symbol, unique, dot density, or chart. aLegend's type is a precondition and must be set before you do anything else to it.

Syntax

aLegend.SetLegendType (aLegendType)


SetLineOffset (Legend)
SetLineOffset

Set offset (in points: 1/72 inch) used to draw line symbols. Use a Negative offset to offset the symbol to the left of the digitized direction. Use a offset of zero to remove aLegend's offset.

Syntax

aLegend.SetLineOffset (anOffset)


SetNormFieldName (Legend)
SetNormFieldName
Example

Set the normalization field name.

Syntax

aLegend.SetNormFieldName (aString)


SetNormType (Legend)
SetNormType
Example

Set the type of normalization: none, normalize by percent of total, or normalize by field.

Syntax

aLegend.SetNormType (aNormType)


SetPrecision (Legend)
SetPrecision

Set the precision at which the data will be displayed in the legend. The number represents the power of 10 that the values of the legend will be rounded to, e.g., a 3 means round to the nearest thousand, while a -3 means round to the nearest thousandth.

Syntax

aLegend.SetPrecision (aNumber)


SetRefScale (Legend)
SetRefScale

Set reference scale used to scale symbols based on the view's scale.

Syntax

aLegend.SetRefScale (aScale)


SetRotationFieldName (Legend)
SetRotationFieldName

Set the symbol rotation field name.

Syntax

aLegend.SetRotationFieldName (aString)


SetScaleSymbols (Legend)
SetScaleSymbols

Set the property of aLegend that determines whether symbols are scaled based on the view's scale.

Syntax

aLegend.SetScaleSymbols (aBoolean)


SetSizeFieldName (Legend)
SetSizeFieldName

For pie chart mapping, set the name of the field used to determine the radius of the pies.

Syntax

aLegend.SetSizeFieldName (aString)


Area (Legend)
Area
Example

Classifies aLegend by dividing it up into numClasses classifications of equal area using the values in the field named by aString in aTheme. This is only supported for numeric fields. The theme must support the calculation of the frequency distribution of the field value, as well as the calculation of the area of each feature.

Syntax

aLegend.Area (aTheme, aString, numClasses)


ColumnChart (Legend)
ColumnChart
Example

 Sets up a column chart legend for aListOfFieldNames.

Syntax

aLegend.ColumnChart (aTheme, aListOfFieldNames, aListOfSymbols, aBackgroundSymbol)


Dot (Legend)
Dot
Example

Sets up a dot density legend for the field named by aString.

Syntax

aLegend.Dot (aString, aNumber, aMarkerSymbol, aShadeSymbol)


Interval (Legend)
Interval
Example

Classifies aLegend by dividing it up into numClasses equal intervals calculated from the field named by aString in aTheme. This is only supported for numeric fields. The theme must support the calculation of the min and max of the field value.

Syntax

aLegend.Interval (aTheme, aString, numClasses)


Natural (Legend)
Natural
Example

Classifies aLegend by dividing it up into numClasses classifications by using a fanschy schmanschy algorithm on the values in the field named by aString in aTheme to determine the best place for the class breaks. This is only supported for numeric fields. The theme must support the calculation of the frequency distribution of the field value.

Syntax

aLegend.Natural (aTheme, aString, numClasses)


PieChart (Legend)
PieChart
Example

 Sets up a pie chart legend for aListOfFieldNames.

Syntax

aLegend.PieChart (aTheme, aListOfFieldNames, aListOfSymbols, aBackgroundSymbol, aSizeFieldName)


Quantile (Legend)
Quantile
Example

Classifies aLegend by dividing into numClasses classifications of equal size using the values in the field named by aString in aTheme. This is only supported for numeric fields. The theme must support the calculation of the frequency distribution of the field value.

Syntax

aLegend.Quantile (aTheme, aString, numClasses)


ReturnBestDensity (Legend)
ReturnBestDensity
Example

 Calculates the "ideal" density for the field named by aString in aTheme given the size of aMarkerSymbol.

Syntax

aLegend.ReturnBestDensity (aTheme, aString, aMarkerSymbol)

Returns

Number


SingleSymbol (Legend)
SingleSymbol
Example

Sets aLegend to be a single symbol legend.

Syntax

aLegend.SingleSymbol


StdDev (Legend)
StdDev
Example

Classifies aLegend by dividing it into intervals of numStdDev width calculated from the field named by aString in aTheme. This is only supported for numeric fields. The theme must support the calculation of the standard deviation of the field value.

Syntax

aLegend.StdDev (aTheme, aString, numStdDev)


Unique (Legend)
Unique
Example

Creates one classification for each unique value in the field named by aString in aTheme.

Syntax

aLegend.Unique (aTheme, aString)


DisplayNoDataClass (Legend)
DisplayNoDataClass

If TRUE, draw nodata class in table of contents and legend editor.

Syntax

aLegend.DisplayNoDataClass (aBoolean)


Draw (Legend)
Draw

Draws aLegend into aRect on aDisplay with aTextSymbol to draw text. If isClipped is TRUE, the symbol is clipped to a standard rectangle, otherwise it is completely drawn

Syntax

aLegend.Draw (aDisplay, aTextSymbol, aRect, isClipped)


GetNullSymbol (Legend)
GetNullSymbol

Gets the symbol used for values not found in aLegend.

Syntax

aLegend.GetNullSymbol

Returns

Symbol


GetNullValue (Legend)
GetNullValue

Gets the null value for aFieldName. aLegend.

Syntax

aLegend.GetNullValue (aFieldName)

Returns

Value


IsNoDataClassDisplayed (Legend)
IsNoDataClassDisplayed

Return TRUE if nodata class is drawn in table of contents and legend editor.

Syntax

aLegend.IsNoDataClassDisplayed

Returns

Boolean


RestoreSymbols (Legend)
RestoreSymbols

Restores the symbols in the legend after drawing. Normally you would call ScaleSymbols, then perform drawing, then call RestoreSymbols.

Syntax

aLegend.RestoreSymbols


ReturnDefaultSymbol (Legend)
ReturnDefaultSymbol

Returns the default symbol for aLegend.

Syntax

aLegend.ReturnDefaultSymbol

Returns

Symbol


ReturnRowHeight (Legend)
ReturnRowHeight

 Returns the height of the specified legend row.

Syntax

aLegend.ReturnRowHeight (aRow, aDisplay, aTextSymbol, areWeClippingYet)

Returns

Number


ScaleSymbols (Legend)
ScaleSymbols

Scales the symbols in the legend based on the scale and units of aDisplay.

Syntax

aLegend.ScaleSymbols (aDisplay)


SetNullSymbol (Legend)
SetNullSymbol

Sets the symbol used for values not found in aLegend to aSymbol.

Syntax

aLegend.SetNullSymbol (aSymbol)


SetNullValue (Legend)
SetNullValue
Example

Sets the null value for aFieldName.

Syntax

aLegend.SetNullValue (aFieldName, aValue)


Copy (Legend)
Copy

Copies the attributes of srcLegend to aLegend.

Syntax

aLegend.Copy (srcLegend)


Load (Legend)
Load

Loads the legend in the filename aSavedLegend into aLegend.

Syntax

aLegend.Load (aSavedLegend, loadType)

Returns

Boolean


Save (Legend)
Save

Saves the symbols and classifications from aLegend into aFileName. Returns TRUE if successful, otherwise returns FALSE. Use aLegend.Load( aFileName, loadType ) to restore this file. ArcView uses the .avl extension for saved legend files.

Syntax

aLegend.Save (aFileName)

Returns

Boolean


LegendTypeEnum

 The type of legend. This corresponds to the panel in the legend editor.

#LEGEND_TYPE_OLD

ArcView 2 legend. You should not set a new legend object to LEGEND_TYPE_OLD because it is only used when reading an ArcView 2 legend from file (.avl).

#LEGEND_TYPE_SIMPLE

Single Symbol Legend.

#LEGEND_TYPE_COLOR

Graduated Color Legend.

#LEGEND_TYPE_SYMBOL

Graduated Symbol Legend.

#LEGEND_TYPE_UNIQUE

Unique Value Legend.

#LEGEND_TYPE_DOT

Dot Legend.

#LEGEND_TYPE_CHART

Chart Legend.


LegendClassTypeEnum

 The type of classification.

#LEGEND_CLASSTYPE_EQUALAREA

Equal area classification.

#LEGEND_CLASSTYPE_INTERVAL

Equal interval classification.

#LEGEND_CLASSTYPE_NATURAL

Natural breaks classification.

#LEGEND_CLASSTYPE_QUANTILE

Quantile classification.

#LEGEND_CLASSTYPE_STDDEV

Standard deviation classification.


LegendNormTypeEnum

 The type of normalization.

#LEGEND_NORMTYPE_NONE

No normalization.

#LEGEND_NORMTYPE_PERCENT

Normalize by percent of total.

#LEGEND_NORMTYPE_FIELD

Normalize by field.


LegendLoadTypeEnum

 The type of operation to perform when a saved legend is loaded.

#LEGEND_LOADTYPE_ALL

#LEGEND_LOADTYPE_CLASSESANDSYMBOLS

#LEGEND_LOADTYPE_CLASSES

#LEGEND_LOADTYPE_SYMBOLS


StatTypeEnum

 The type of statistic returned by ReturnStatistics.

#STATTYPE_COUNT

Count

#STATTYPE_SUM

Sum

#STATTYPE_MIN

Minimum

#STATTYPE_MAX

Maximum

#STATTYPE_MEAN

Mean

#STATTYPE_STDDEV

Standard deviation


LegendExtension

 The LegendExtension abstract class support the addition of Extension specific information to the Legend class. A sub class of LegendExtension can be used to store Extension-specific legend information that can be accessed through the sub class instance requests.

LegendExtensions can be added to a Legend using the aLegend.SetExtension request by passing an instance of a LegendExtension. A LegendExtension can be retrieved from a Legend using the aLegend.GetExtension request by passing the LegendExtension sub class. To remove a LegendExtension from a Theme, use the aTheme.RemoveExtension request and pass in a LegExtension sub class.

A LegendExtension can elect to override the AdvancedDialog used by the LegendEditor and provide its own implementation of the dialog.

Inherits From

ExtensionObject

Instance Requests

LegendExtensions

OverrideAdvancedDialog  :  Boolean

ShowAdvancedDialog ( theOwningTheme )

__________

See also

Doc


OverrideAdvancedDialog (LegendExtension)
OverrideAdvancedDialog

 Returns TRUE if the legend extension wishes to override the advanced properties editor dialog used in the Legend Editor. If TRUE is reurned then the extension must provide an implementation for the ShowAdvancedDialog request.

Syntax

aLegendExtension.OverrideAdvancedDialog

Returns

Boolean


ShowAdvancedDialog (LegendExtension)
ShowAdvancedDialog

 Shows the advanced dialog used to edit the Legend Extension properties.

Syntax

aLegendExtension.ShowAdvancedDialog (theOwningTheme)


Library

 The Library class defines an ARC/INFO map library or an ArcStorm library.

Attributes

Layers.The layers in the Library. Each library contains zero or more layers of data.

Librarian.Librarian is the librarian containing the Library. This attribute applies only to ArcStorm data sources.

Path.The path to the Library. The path is specified by the LOCATION field in the info table $ARCHOME/tables/libraries for map libraries, or by a line in the library's $ARCHOME/arcstorm file.

Index Coverage.The index coverage of the library. The library's structure and composition is defined by its index coverage.

Inherits From

Obj

Class Requests

Making a Library

Exists ( aLibName ) :  Boolean

GetLocation ( aLibName ) :  FileName

Make ( aLibName, aLibrarianName ) :  Library

Instance Requests

Manipulating a Library

GetIndexPath  :  String

GetLibrarianName  :  String

GetName  :  String

GetPath  :  String

IsArcStorm  :  Boolean

ReturnIndexSrcNames  :  List

ReturnLayers  :  List

__________

See also

SrcName
Librarian
Layer


Exists (Library)
Exists

Returns TRUE if the library named aLibName exists. Exists checks the ArcStorm directory for a file named aLibName and it checks the NAME field in the Libraries table (in $ARCHOME/tables). The directory identified by "Location" must be accessible (mounted with read permission) for that library to be visible.

Syntax

Library.Exists (aLibName)

Returns

Boolean


GetLocation (Library)
GetLocation

Makes a filename containing the location of the library named aLibName. The location is the value of the location field in the file $ARCHOME/arcstorm/<aLibName> or in the INFO table $ARCHOME/tables/libraries.

Syntax

Library.GetLocation (aLibName)

Returns

FileName


Make (Library)
Make

Makes a Library object from the library named aLibName in the librarian named aLibrarianName. You can use the Null string ("") for aLibrarianName if the library is not in an ArcStorm data base (it is an ARC/INFO map library).

Here are two examples that make a Library object from the map library named "maplib":

 myLib = Library.Make ("maplib", "")
 myLib = Library.Make("maplib", "ARC/INFO*LIBRARIAN")

This example makes a Library object from an ArcStorm library named "stormdb.reglib" in the librarian "arcview":

 myLib = Library.Make ("stormdb.reglib", "arcview")

Syntax

Library.Make (aLibName, aLibrarianName)

Returns

Library


GetIndexPath (Library)
GetIndexPath

Gets the path to the index coverage for aLibrary.

Syntax

aLibrary.GetIndexPath

Returns

String


GetLibrarianName (Library)
GetLibrarianName

Gets the name of the ArcStorm Librarian containing aLibrary. Returns a null string if aLibrary is not part of an ArcStorm data base.

Syntax

aLibrary.GetLibrarianName

Returns

String


GetName (Library)
GetName

Gets the name of aLibrary.

Syntax

aLibrary.GetName

Returns

String


GetPath (Library)
GetPath

Gets the path to aLibrary. Path is the value of the Location field in the file $ARCHOME/arcstorm/<aLibName> or in LOCATION field of the INFO table $ARCHOME/tables/libraries.

Syntax

aLibrary.GetPath

Returns

String


IsArcStorm (Library)
IsArcStorm

Returns TRUE if aLibrary is an ArcStorm library

Syntax

aLibrary.IsArcStorm

Returns

Boolean


ReturnIndexSrcNames (Library)
ReturnIndexSrcNames

Returns a list of SrcNames for the index coverage of the library.

Syntax

aLibrary.ReturnIndexSrcNames

Returns

List


ReturnLayers (Library)
ReturnLayers

Returns the list of layers in aLibrary.

Syntax

aLibrary.ReturnLayers

Returns

List


Librarian

 A Librarian is an ArcStorm Database. By default, ArcStorm data bases are defined in $ARCHOME/arcstorm. The definition file identifies the path to the librarian. A Librarian contains zero or more Libraries.

One "special" Librarian object is the data base of ARC/INFO map libraries. This "special" Librarian is named "ARC/INFO*LIBRARIAN". Its path is $ARCHOME/tables/libraries.

Attributes

Libraries.Libraries is a list of the libraries contained in a librarian.

Path.Path is the location of the librarian data base. This path is specified in the librarian definition file. Librarian definition files by default are located in $ARCHOME/arcstorm.

Name. The librarian name is the name of the librarian.

Inherits From

Obj

Class Requests

Getting a Librarian Object

Make ( aLibrarianName ) :  Librarian

ReturnLibrarians  :  List

Instance Requests

Accessing Librarian Attributes

GetName  :  String

GetPath  :  String

ReturnLibraries  :  List

__________

See also

SrcName
Library
Layer


Make (Librarian)
Make

Makes a Librarian object from the ArcStorm librarian file aLibrarianName. If aLibrarianName is just a filename without a path, the path $ARCHOME/arcstorm is assumed.

Syntax

Librarian.Make (aLibrarianName)

Returns

Librarian


ReturnLibrarians (Librarian)
ReturnLibrarians

Returns a list of all accessible Librarians in $ARCHOME/arcstorm. A librarian is accessible if you can read its data source file (disk is mounted with read permissions on file). One special librarian object in this list is the data base of map libraries; this librarian object is named ARC/INFO*LIBRARIES and its location is $ARCHOME/tables/libraries.

Syntax

Librarian.ReturnLibrarians

Returns

List


GetName (Librarian)
GetName

Gets the name of the Librarian.

Syntax

aLibrarian.GetName

Returns

String


GetPath (Librarian)
GetPath

Gets the path of the Librarian.

Syntax

aLibrarian.GetPath

Returns

String


ReturnLibraries (Librarian)
ReturnLibraries

Returns a list of libraries in aLibrarian.

Syntax

aLibrarian.ReturnLibraries

Returns

List


Line
Related Topics

 A Line is a single geometric line segment defined by two points.

Attributes

Start.Start is the point at which the line segment starts.

End.End is the point at which the line segment ends.

The following script gives these results:

 Line:  0.000000,0.000000 5.000000,5.000000
 Point: 2.5, 2.5
 Point: 0 0
 Point: 5 5

 l = Line.Make( 0@0, 5@5)
 msgbox.report(l.AsString+nl+
              l.ReturnCenter.AsString+nl+
              l.ReturnStart.AsString+nl+
              l.ReturnEnd.AsString, "")

Inherits From

Shape

Inherited By

LineM

Class Requests

Making Lines

Make ( aStartPoint, anEndPoint ) :  Line

MakeNull  :  Line

Instance Requests

Converting a Line

AsMultiPoint  :  MultiPoint

AsPolyLine  :  PolyLine

Generic Object Requests

= anObj :  Boolean

AsString  :  String

Getting and Setting Attributes

GetDimension  :  Number

IsNull  :  Boolean

ReturnCenter  :  Point

ReturnEnd  :  Point

ReturnStart  :  Point

Manipulating a Line

Move ( moveX, moveY ) :  Line

Snap ( aShape, snapDistance ) :  Boolean

Relating two Shapes

Contains ( aShape ) :  Boolean

Intersects ( aShape ) :  Boolean

Transforming a Line

ReturnClipped ( aRect ) :  Shape

ReturnMerged ( aShape ) :  PolyLine

ReturnOffset ( anOffset ) :  Line

ReturnProjected ( aPrj ) :  Shape

ReturnUnprojected ( aPrj ) :  Shape

__________

See also

Circle
Oval
Point
Rect
PolyLine
Polygon
MultiPoint


Make (Line)
Make

Makes a line from aStartPoint to anEndPoint.

 myLine = Line.Make( 0@0, 5@5 )

Syntax

Line.Make (aStartPoint, anEndPoint)

Returns

Line


MakeNull (Line)
MakeNull

Makes the NULL Line.

Syntax

Line.MakeNull

Returns

Line


AsMultiPoint (Line)
AsMultiPoint

Returns a MultiPoint representing aLine.

Syntax

aLine.AsMultiPoint

Returns

MultiPoint


AsPolyLine (Line)
AsPolyLine

Returns a PolyLine representing aLine.

Syntax

aLine.AsPolyLine

Returns

PolyLine


= (Line)
=

Returns TRUE if aLine and anObj are equal, otherwise returns FALSE.

Syntax

aLine = anObj

Returns

Boolean


AsString (Line)
AsString

Returns a string describing the line in the form LINE: x1,y1 x2,y2

Syntax

aLine.AsString

Returns

String


GetDimension (Line)
GetDimension

Returns 1. In ArcView, points have dimension 0, lines have dimension 1 and polygons have dimension 2. Only shapes with dimension 1 or greater have a length. Only shapes with dimension 2 have an area.

Syntax

aLine.GetDimension

Returns

Number


IsNull (Line)
IsNull

Returns TRUE if aLine is NULL, otherwise returns FALSE.

Syntax

aLine.IsNull

Returns

Boolean


ReturnCenter (Line)
ReturnCenter

Returns the center point of aLine.

Syntax

aLine.ReturnCenter

Returns

Point


ReturnEnd (Line)
ReturnEnd

Returns the end point of aLine.

Syntax

aLine.ReturnEnd

Returns

Point


ReturnStart (Line)
ReturnStart

Returns the start point of aLine.

Syntax

aLine.ReturnStart

Returns

Point


Move (Line)
Move

Moves aLine by moveX and moveY and returns it.

Syntax

aLine.Move (moveX, moveY)

Returns

Line


Snap (Line)
Snap

Snaps the vertices of aLine to vertices of aShape within snapDistance. Returns TRUE if snapping occurred, otherwise returns FALSE.

Syntax

aLine.Snap (aShape, snapDistance)

Returns

Boolean


Contains (Line)
Contains

Returns TRUE if aLine contains aShape, otherwise returns FALSE.

Syntax

aLine.Contains (aShape)

Returns

Boolean


Intersects (Line)
Intersects

Returns TRUE if aLine intersects aShape, otherwise returns FALSE.

Syntax

aLine.Intersects (aShape)

Returns

Boolean


ReturnClipped (Line)
ReturnClipped

Returns aLine clipped to aRect. The result will be NULL if aLine and aRect do not intersect.

Syntax

aLine.ReturnClipped (aRect)

Returns

Shape


ReturnMerged (Line)
ReturnMerged

Merges aLine and aShape into a new shape.

Syntax

aLine.ReturnMerged (aShape)

Returns

PolyLine


ReturnOffset (Line)
ReturnOffset

Returns a new Line which is the left or right linear offest of the aLine. The offset is towards the left when aOffset < 0 and is towards the right when anOffset > 0.

Syntax

aLine.ReturnOffset (anOffset)

Returns

Line


ReturnProjected (Line)
ReturnProjected

Returns aLine projected by aPrj. The result may be a different kind of shape or have more points than the original in order to be visually pleasing.

Syntax

aLine.ReturnProjected (aPrj)

Returns

Shape


ReturnUnprojected (Line)
ReturnUnprojected

Returns aLine unprojected by aPrj. The result may be a different kind of shape or have more points than the original in order to be visually pleasing.

Syntax

aLine.ReturnUnprojected (aPrj)

Returns

Shape


LineM

 A LineM is a single geometric line segment defined by two points. For each point, you have an m-value. You can use the m-value as a measure along the line.

Attributes

Start.Start is the point at which the line segment starts.

StartMStartM is m-value at the start of the line segment.

End.End is the point at which the line segment ends.

EndMEndM is m-value at the end of the line segment.

The following script gives these results:

 LineM:  0.000000,0.000000,0.000000 5.000000,5.000000,5.000000
 Point: 2.5, 2.5
 PointM: 0 0 0
 PointM: 5 5 5

 l = LineM.Make(0@0&0, 5@5&5)
 msgbox.report(l.AsString+nl+
              l.ReturnCenter.AsString+nl+
              l.ReturnStart.AsString+nl+
              l.ReturnEnd.AsString, "")

Inherits From

Line

Inherited By

LineZ

Class Requests

Making LineMs

Make ( aStartPoint, anEndPoint ) :  LineM

MakeNull  :  LineM

Instance Requests

Converting a LineM

AsLine  :  Line

AsPolyLineM  :  PolyLineM

Generic Object Requests

= anObj :  Boolean

AsString  :  String

IsMeasured  :  Boolean

Getting and Setting Attributes

ReturnEnd  :  PointM

ReturnMBB  :  RectM

ReturnStart  :  PointM

Transforming a Line

ReturnProjected ( aPrj ) :  Shape

ReturnUnprojected ( aPrj ) :  Shape

__________

See also

PointM
RectM
PolyLineM
PolygonM
MultiPointM


Make (LineM)
Make

Makes a LineM from aStartPoint to anEndPoint.

 myLineM = LineM.Make( 0@0&0, 5@5&5 )

Syntax

LineM.Make (aStartPoint, anEndPoint)

Returns

LineM


MakeNull (LineM)
MakeNull

Makes the NULL LineM.

Syntax

LineM.MakeNull

Returns

LineM


AsLine (LineM)
AsLine

Returns a Line representation of aLineM.

Syntax

aLineM.AsLine

Returns

Line


AsPolyLineM (LineM)
AsPolyLineM

Returns a PolyLineM representing aLineM.

Syntax

aLineM.AsPolyLineM

Returns

PolyLineM


= (LineM)
=

Returns TRUE if aLineM and anObj are equal, otherwise returns FALSE.

Syntax

aLineM = anObj

Returns

Boolean


AsString (LineM)
AsString

Returns a string describing aLineM. The string contains the keyword LineM followed by the two x,y,m points that define aLineM.

Syntax

aLineM.AsString

Returns

String


IsMeasured (LineM)
IsMeasured

Returns TRUE if the M values have been set

Syntax

aLineM.IsMeasured

Returns

Boolean


ReturnEnd (LineM)
ReturnEnd

Returns the end point of aLineM.

Syntax

aLineM.ReturnEnd

Returns

PointM


ReturnMBB (LineM)
ReturnMBB

Returns the MBB of aLineM. The MBB is the minimum bounding box surrounding aLineM.

Syntax

aLineM.ReturnMBB

Returns

RectM


ReturnStart (LineM)
ReturnStart

Returns the start point of aLineM.

Syntax

aLineM.ReturnStart

Returns

PointM


ReturnProjected (LineM)
ReturnProjected

Returns aLineM projected by aPrj. The result will be the same kind of shape and have the same number of points.

Syntax

aLine.ReturnProjected (aPrj)

Returns

Shape


ReturnUnprojected (LineM)
ReturnUnprojected

Returns aLineM unprojected by aPrj. The result will be the same kind of shape and have the same number of points.

Syntax

aLine.ReturnUnprojected (aPrj)

Returns

Shape


LineZ

 A LineZ is a single geometric line segment defined by two points.

Attributes

Start.Start is the point at which the line segment starts.

End.End is the point at which the line segment ends.

The following script gives these results:

 LineZ:  0.000000,0.000000,0.000000 5.000000,5.000000,5.000000
 Point: 2.5, 2.5, 2.5
 Point: 0 0 0
 Point: 5 5 5

 l = LineZ.Make(0@0@0, 5@5@5)
 msgbox.report(l.AsString+nl+
              l.ReturnCenter.AsString+nl+
              l.ReturnStart.AsString+nl+
              l.ReturnEnd.AsString, "")

Inherits From

LineM

Class Requests

Making LineZs

Make ( aStartPoint, anEndPoint ) :  LineZ

MakeNull  :  LineZ

Instance Requests

Converting a LineZ

AsPolyLineZ  :  PolyLineZ

Generic Object Requests

= anObj :  Boolean

AsString  :  String

HasZ  :  Boolean

IsMeasured  :  Boolean

Getting and Setting Attributes

ReturnCenter  :  PointZ

ReturnEnd  :  PointZ

ReturnMBB  :  RectZ

ReturnStart  :  PointZ

Transforming a LineZ

QueryZOffset ( anotherLineZ, aOffset ) :  LineZ

QueryZScale ( anotherLineZ, aScale ) :  LineZ

ReturnProjected ( aPrj ) :  Shape

ReturnUnprojected ( aPrj ) :  Shape

ZMove ( moveX, moveY, moveZ ) :  LineZ

ZOffset ( aOffset ) :  LineZ

ZScale ( aScale ) :  LineZ

__________

See also

Circle
Oval
Point
Rect
PolyLine
Polygon
MultiPoint


Make (LineZ)
Make

Makes a line from aStartPoint to anEndPoint.

 myLineZ = LineZ.Make( 0@0@0, 5@5@5 )

Syntax

LineZ.Make (aStartPoint, anEndPoint)

Returns

LineZ


MakeNull (LineZ)
MakeNull

Makes the NULL LineZ.

Syntax

LineZ.MakeNull

Returns

LineZ


AsPolyLineZ (LineZ)
AsPolyLineZ

Returns a PolyLineZ representing aLineZ.

Syntax

aLineZ.AsPolyLineZ

Returns

PolyLineZ


= (LineZ)
=

Returns TRUE if aLineZ and anObj are equal, otherwise returns FALSE.

Syntax

aLineZ = anObj

Returns

Boolean


AsString (LineZ)
AsString

Returns a string describing the line in the form LINE: x1,y1,z1 x2,y2,z2

Syntax

aLineZ.AsString

Returns

String


HasZ (LineZ)
HasZ

Returns TRUE if aLineZ has Z coordinates, otherwise returns FALSE.

Syntax

aLineZ.HasZ

Returns

Boolean


IsMeasured (LineZ)
IsMeasured

Returns TRUE if the M values have been set

Syntax

aLineZ.IsMeasured

Returns

Boolean


ReturnCenter (LineZ)
ReturnCenter

Returns the center point of aLineZ.

Syntax

aLineZ.ReturnCenter

Returns

PointZ


ReturnEnd (LineZ)
ReturnEnd

Returns the end point of aLineZ.

Syntax

aLineZ.ReturnEnd

Returns

PointZ


ReturnMBB (LineZ)
ReturnMBB

Returns the MBB of aLineZ. The MBB is the minimum bounding box surrounding aLineZ.

Syntax

aLineZ.ReturnMBB

Returns

RectZ


ReturnStart (LineZ)
ReturnStart

Returns the start point of aLineZ.

Syntax

aLineZ.ReturnStart

Returns

PointZ


QueryZOffset (LineZ)
QueryZOffset

Queries aLineZ into anotherLineZ altering it's z values by adding aOffset.

Syntax

aLineZ.QueryZOffset (anotherLineZ, aOffset)

Returns

LineZ


QueryZScale (LineZ)
QueryZScale

Queries aLineZ into anotherLineZ altering it's z values by multiplying with aScale.

Syntax

aLineZ.QueryZScale (anotherLineZ, aScale)

Returns

LineZ


ReturnProjected (LineZ)
ReturnProjected

Returns aLineZ projected by aPrj. The result will be the same kind of shape and have the same number of points as aLineZ.

Syntax

aLineZ.ReturnProjected (aPrj)

Returns

Shape


ReturnUnprojected (LineZ)
ReturnUnprojected

Returns aLineZ unprojected from aPrj. The result will be the same kind of shape and have the same number of points as aLineZ.

Syntax

aLineZ.ReturnUnprojected (aPrj)

Returns

Shape


ZMove (LineZ)
ZMove

Moves aLineZ by moveX, moveY and moveZ and returns it.

Syntax

aLineZ.ZMove (moveX, moveY, moveZ)

Returns

LineZ


ZOffset (LineZ)
ZOffset

Offsets aLineZ z values by aOffset.

Syntax

aLineZ.ZOffset (aOffset)

Returns

LineZ


ZScale (LineZ)
ZScale

Scales aLineZ z values by aScale.

Syntax

aLineZ.ZScale (aScale)

Returns

LineZ


List
Discussion

 A List is an ordered collection of heterogeneous objects. An object in collection is called an element of that collection. Each element in a list is referenced through a list index number. The first index is always 0 and the last index is always List.Count - 1.

Use lists when you need efficient sequential access to an unbounded number of objects, or when you need efficient random access based upon an the list index number.

Using Lists

You can use the 'for each' loop to gain access to each element in the list. Note also that "{", "}" serve as list delimiters.

  myList = { "red", 34, av.GetActiveDoc, av.GetProject.GetActive  }
  for each i in mylist
    msgbox.info( i.AsString, "List" )
  end

Certain lists can be sorted. See the Sort request for details.

You can use the '+' and '-' operators to merge and remove groups of elements. The '+' operator produces a new list that is the operand lists concatenated together. The '-' operator produces a list that contains elements from the left operand list that are not in the right operand list.

Inherits From

Collection

Inherited By

Clipboard
GraphicList
GraphicSet
SymbolList
Template

Class Requests

Creating a list

Make  :  List

Instance Requests

Updating Lists

Add ( anObj ) :  List

Insert ( anObj )

Remove ( anIndexNumber )

RemoveDuplicates

RemoveObj ( anObj )

Set ( anIndexNumber, anObj )

Shuffle ( anObj, anIndexNumber )

Sort ( ascending )

Examining Lists

Count  :  Number

Find ( anObj ) :  Number

FindByClass ( aClass ) :  Number

FindByValue ( anObj ) :  Number

Get ( anIndexNumber ) :  Obj

HasKindOf ( aClass ) :  Boolean

Operating on Entire Lists

+ anotherCollection :  List

- anotherCollection :  List

AsList  :  List

Clone  :  List

DeepClone  :  List

Empty

Merge ( anotherCollection ) :  List

__________

See also

Dictionary
String


Make (List)
Make

Creates a List. The list is initially empty. The assignment, aList = {}, also creates an empty list.

Syntax

List.Make

Returns

List


Add (List)
Add

Adds anObj to end of aList. aList is returned as the request result.

Syntax

aList.Add (anObj)

Returns

List


Insert (List)
Insert

Adds anObj to the beginning of the list.

Syntax

aList.Insert (anObj)


Remove (List)
Remove

Removes the element at anIndexNumber from aList. It does not destroy the element.

Syntax

aList.Remove (anIndexNumber)


RemoveDuplicates (List)
RemoveDuplicates

Removes duplicate objects from aList. For example, after executing the following script, myList contains { 34, "red", "blue", av.GetProject }. The ordering of remaining elements in aList is preserved.

   myList = { 34, "red", "blue", av.GetProject, "red", 34, av.GetProject, 34 }
   myList.RemoveDuplicates

Syntax

aList.RemoveDuplicates


RemoveObj (List)
RemoveObj

Removes the first occurrence in the list of the element anObj from the list. It does not destroy the element.

Syntax

aList.RemoveObj (anObj)


Set (List)
Set

Adds anObj to aList at anIndexNumber replacing the element already at that index.

Syntax

aList.Set (anIndexNumber, anObj)


Shuffle (List)
Shuffle

Moves anObj to one before index anIndexNumber. Elements from that position to the end of the list are shuffled to indexes anIndexNumber to list.count. Graphically, this is what happends.

   before: {a, b, c, d, e, f}
   shuffle(a, 3)
   after:  {b, c, a, d, e, f}

Think of "dragging" element a onto position 3, then "dropping" it. d, and all elements to its right, move right by one.

To shuffle element a to the end of the list, move it beyond the end of the list:

   before: {a, b, c, d, e, f}
   shuffle(a, list.count)
   after:  {b, c, d, e, f, a}

Syntax

aList.Shuffle (anObj, anIndexNumber)


Sort (List)
Sort

Sorts the elements of aList. aList MUST be a homogeneous list (all elements the same class) containing either String, Number or FileName elements. Ascending is true when the aList is to be sorted in ascending order.

Sort uses the comparison request anObj.Compare to determine the element ordering. Currently, anObj.Compare is defined only for Strings, Numbers, and Filenames. Thus, only homogeneous lists containing instances of one of these classes can be sorted. aList is sorted in place.

Syntax

aList.Sort (ascending)


Count (List)
Count

Returns the number of elements in the list.

Syntax

aList.Count

Returns

Number


Find (List)
Find

Finds the first occurrence of anObj in aList and returns its index number. If anObj is not aList element, Find returns -1. Because it searches for a particular object, Find does not locate "immutable" objects (strings and numbers) in aList; use FindByValue.

Syntax

aList.Find (anObj)

Returns

Number


FindByClass (List)
FindByClass

Finds the first element in aList of the class aClass and returns its index number. FindByClass returns -1 if an object of aClass is not a member of aList.

Syntax

aList.FindByClass (aClass)

Returns

Number


FindByValue (List)
FindByValue

Finds the first element in aList with the same value as anObj and returns its index number. This is slower than aList.Find. FindByValue returns -1 if no element in aList has the same value as anObj. Because it compares values, FindByValue does locate immutable objects (strings and numbers) in aList.

Syntax

aList.FindByValue (anObj)

Returns

Number


Get (List)
Get

Gets the element at anIndexNumber in the list. A run-time error occurs if anIndexNumber exceeds the value (aList.Count - 1).

Syntax

aList.Get (anIndexNumber)

Returns

Obj


HasKindOf (List)
HasKindOf

Returns whether or not the list contains any objects of a particular class. The statement below returns TRUE because the list includes an element that is a DOC (av.GetActiveDoc).

{ "red", 3, TRUE, av.GetActiveDoc, av.GetActiveGUI }.HasKindOf( DOC )

Syntax

aList.HasKindOf (aClass)

Returns

Boolean


+ (List)
+

 Returns a new list which contains the elements of aList and anotherCollection.

Syntax

aList + anotherCollection

Returns

List


- (List)
-

Returns a new list that contains those elements from aList that are not in anotherCollection.

Syntax

aList - anotherCollection

Returns

List


AsList (List)
AsList

Returns a clone of aList.

Syntax

aList.AsList

Returns

List


Clone (List)
Clone

Creates and returns a clone of the list. The elements in the list are not cloned. The cloned list references the same objects as the original list.

Syntax

aList.Clone

Returns

List


DeepClone (List)
DeepClone

Creates and returns a clone of the list and all its elements. The operation is called a "deep clone" because each element in the list is also cloned.

Syntax

aList.DeepClone

Returns

List


Empty (List)
Empty

Removes all elements from aList.

Syntax

aList.Empty


Merge (List)
Merge

 Merges the elements of anotherCollection into aList and returns aList.

Syntax

aList.Merge (anotherCollection)

Returns

List


ListDisplay

 A ListDisplay is a fictitious display surface whose purpose is to accumulate a list of graphic primitives that can later be merged with the current GraphicList.

Create a ListDisplay with the Make request and then draw various shapes to the ListDisplay. When you are done drawing shapes, issue the ListEnd request to close the ListDisplay object and return a list of graphics.

Inherits From

Display

Class Requests

Making ListDisplays

Make  :  ListDisplay

Instance Requests

Drawing Shapes

DrawIcon ( aRect, anIcon )

DrawLine ( aLine, aSymbol )

DrawMultiPoint ( aMultiPoint, aSymbol )

DrawOval ( aOval, aSymbol )

DrawPoint ( aPoint, aSymbol )

DrawPolygon ( aPolygon, aSymbol, DrawOutline )

DrawPolyLine ( aPolyLine, aSymbol )

DrawRect ( aRect, aSymbol )

DrawText ( aPoint, aString, aSymbol )

DrawTextPolyLine ( aPolyLine, aString, aSymbol )

HookupSymbol ( aSymbol )

ListEnd  :  List

__________

See also

GraphicList
Symbol
Shape
Display


Make (ListDisplay)
Make

Creates a new ListDisplay object.

Syntax

ListDisplay.Make

Returns

ListDisplay


DrawIcon (ListDisplay)
DrawIcon

Draws anIcon in aRect on aListDisplay.

Syntax

aListDisplay.DrawIcon (aRect, anIcon)


DrawLine (ListDisplay)
DrawLine

Draws aLine with aSymbol on aListDisplay.

Syntax

aListDisplay.DrawLine (aLine, aSymbol)


DrawMultiPoint (ListDisplay)
DrawMultiPoint

Draws aMultiPoint on aListDisplay with aSymbol.

Syntax

aListDisplay.DrawMultiPoint (aMultiPoint, aSymbol)


DrawOval (ListDisplay)
DrawOval

Draws aOval with aSymbol on aListDisplay.

Syntax

aListDisplay.DrawOval (aOval, aSymbol)


DrawPoint (ListDisplay)
DrawPoint

Draws aPoint with aSymbol on aListDisplay.

Syntax

aListDisplay.DrawPoint (aPoint, aSymbol)


DrawPolygon (ListDisplay)
DrawPolygon

Draws aPolygon with aSymbol on aListDisplay. If DrawOutline is TRUE, then the polygon is outlined. Otherwise, no outline is drawn.

Syntax

aListDisplay.DrawPolygon (aPolygon, aSymbol, DrawOutline)


DrawPolyLine (ListDisplay)
DrawPolyLine

Draws aPolyLine with aSymbol on aListDisplay.

Syntax

aListDisplay.DrawPolyLine (aPolyLine, aSymbol)


DrawRect (ListDisplay)
DrawRect

Draws aRect with aSymbol on aListDisplay.

Syntax

aListDisplay.DrawRect (aRect, aSymbol)


DrawText (ListDisplay)
DrawText

Draws aString at aPoint with aSymbol on aListDisplay.

Syntax

aListDisplay.DrawText (aPoint, aString, aSymbol)


DrawTextPolyLine (ListDisplay)
DrawTextPolyLine

Draws aString along aPolyLine on the ListDisplay with aSymbol.

Syntax

aListDisplay.DrawTextPolyLine (aPolyLine, aString, aSymbol)


HookupSymbol (ListDisplay)
HookupSymbol

Hooks up aSymbol to aListDisplay in terms of scale. Whenever aListDisplay is zoomed in or out, the symbol size will change accordingly.

Syntax

aListDisplay.HookupSymbol (aSymbol)


ListEnd (ListDisplay)
ListEnd

ListEnd closes aListDisplay and returns the list of graphics. Give this request after you have completed drawing various shapes into the aListDisplay.

Syntax

aListDisplay.ListEnd

Returns

List


Pen

 Pen is used to symbolize line data. Subclasses of Pen define simple, layered and vector line symbols.

Inherits From

Symbol

Inherited By

BasicPen
CompositePen
VectorPen

Instance Requests

Getting and Setting Attributes

GetBgColor  :  Color

GetOffset  :  Number

GetType  :  SymbolEnum

SetBgColor ( aColor )

SetOffset ( anOffset )

UnHook

__________

See also

Marker
Fill


GetBgColor (Pen)
GetBgColor

Gets NIL because aPen does not have a background color.

Syntax

aPen.GetBgColor

Returns

Color


GetOffset (Pen)
GetOffset

Gets the offset of aPen. The offset distance is in points (1/72 inch), where a positive number offsets the right of the digitized direction of the shape, and a negative number offsets to the left.

Syntax

aPen.GetOffset

Returns

Number


GetType (Pen)
GetType

Returns #SYMBOL_PEN.

Syntax

aPen.GetType

Returns

SymbolEnum


SetBgColor (Pen)
SetBgColor

Does nothing because aPen does not have a background color.

Syntax

aPen.SetBgColor (aColor)


SetOffset (Pen)
SetOffset

Sets the offset of aPen to anOffset. SetOffset only affects pen symbols that are used in a legend object for a line theme. To see how this works, add a line theme to a new view twice. Then run this script:

 v = av.GetActiveDoc
 t = v.GetThemes.Get(0)
 l = t.GetLegend
 l.GetSymbols.Get(0).SetOffset(3)
 t.UpdateLegend

The offset distance is in points (1/72 inch), where a positive number offsets the right of the digitized direction of the shape, and a negative number offsets to the left.

Syntax

aPen.SetOffset (anOffset)


UnHook (Pen)
UnHook

Unhook scale from symbol.

Syntax

aPen.UnHook


LockMgr

 The lockmgr class provides multi-user editing of shapes and tables.

LockMgr Functionality

From the lockmgr class you can... Setup a connection with the LockMgr Server.
 Request for file access.
 Find user of file.

Inherits From

Obj

Enumerations

FileAccessEnum

LockErrorEnum

Class Requests

LockMgr

Make ( aMachineName, aServerID, aVersionNo ) :  LockMgr

MakeFromFile  :  LockMgr

The  :  LockMgr

Instance Requests

LockMgr

GetErrorMsg  :  String

GetRefreshRate  :  Number

IsActive  :  Boolean

IsConnected  :  Boolean


Make (LockMgr)
Make

 Sets up an RPC link with the File Lock Manager Server process. Only one instance of the lockmgr object can be made. Subsequent calls to make just return the first object made. Always returns the lockmgr object. Use the instance requests IsConnected to determine if the connect attempt was successful. The parameters should point to the File Lock Manager Server application. For example, if the server is running on a machine called "bytebait", with Server ID 0x40000001, and Version No. 1, then these are the input parameters.

Syntax

LOCKMGR.Make (aMachineName, aServerID, aVersionNo)

Returns

LockMgr


MakeFromFile (LockMgr)
MakeFromFile

 Similiar to the Make request, but gets the input (machine name, server id and version no.) from $AVHOME/etc/default.flm. An example of this file (generated automatically when the Lock Manager Server is successfully started) is shown below:

bytebait 0x4000000 1

Syntax

LOCKMGR.MakeFromFile

Returns

LockMgr


The (LockMgr)
The

Returns the lockmgr object, if made, or else NULL.

Syntax

LOCKMGR.The

Returns

LockMgr


GetErrorMsg (LockMgr)
GetErrorMsg

Returns the error message string of the last lock manager operation. If the last transaction was a success, an empty string is returned.

Syntax

theLockMgr.GetErrorMsg

Returns

String


GetRefreshRate (LockMgr)
GetRefreshRate

Gets the Lock Manager server's UID refresh rate.

Syntax

theLockMgr.GetRefreshRate

Returns

Number


IsActive (LockMgr)
IsActive

Returns TRUE if the lockmgr is being used in this session.

Syntax

theLockMgr.IsActive

Returns

Boolean


IsConnected (LockMgr)
IsConnected

Call to determine if the lockmgr is connected to the server.

Syntax

theLockMgr.IsConnected

Returns

Boolean


FileAccessEnum

 Type of access requested by the client.

#LOCKMGR_SERV_PING

Ping to find if server is alive.

#LOCKMGR_SERV_GET_UID

Get Unique identifier for client.

#LOCKMGR_SERV_RELEASE_UID

Release UID after use by client.

#LOCKMGR_SERV_REFRESH_UID

Refresh UID using specified interval.

#LOCKMGR_SERV_REFRESH_RATE

Get the server refresh rate.

#LOCKMGR_SERV_REQ_READ

Request read access.

#LOCKMGR_SERV_REQ_EDIT

Request edit access.

#LOCKMGR_SERV_REQ_WRITE

Request write access.

#LOCKMGR_SERV_FREE_READ

Free read lock.

#LOCKMGR_SERV_FREE_EDIT

Free edit lock.

#LOCKMGR_SERV_FREE_WRITE

Free write lock.


LockErrorEnum

 Type of lock acquisition error

#LOCK_ERROR_NONE

No lock acquisition errors

#LOCK_ERROR_READ

Error in acquiring a Read Lock

#LOCK_ERROR_EDIT

Error in acquiring an Edit Lock

#LOCK_ERROR_WRITE

Error in acquiring a Write Lock


MapDisplay

 A MapDisplay is a kind of Display which uses map coordinates. Views are drawn in a MapDisplay.

See the class description of Display for more general information.

Inherits From

Display

Instance Requests

Manipulating Pixmaps

Pixmap ( aPixmap, aRect ) :  Boolean

ReturnPixmap ( aRect ) :  Pixmap

Drawing Shapes

BeginClip  :  Boolean

DrawEllipse ( anEllipse, aSymbol )

DrawGeoCurve ( aGeoCurve, aSymbol )

DrawIcon ( aRect, anIcon )

DrawLine ( aLine, aSymbol )

DrawMultiPoint ( aMultiPoint, aSymbol )

DrawOval ( anOval, aSymbol )

DrawPoint ( aPoint, aSymbol )

DrawPolygon ( aPolygon, aSymbol, DrawOutline )

DrawPolyLine ( aPolyLine, aSymbol )

DrawRect ( aRect, aSymbol )

DrawText ( aPoint, aString, aSymbol )

DrawTextPolyLine ( aPolyLine, aString, aSymbol )

EndClip

HookupSymbol ( aSymbol )

User Interaction (Apply Events only)

Pan

ReturnUserPoint  :  Point

Getting and Setting Attributes

GetResolution  :  DisplayResEnum

SetResolution ( aResQual )

Manipulating a MapDisplay

ExportEnd

Flush

Invalidate ( Erase )

InvalidateRect ( aRect )

Validate

ZoomToRect ( aRect )

__________

See also

PageDisplay
View
SrcName


Pixmap (MapDisplay)
Pixmap

Draws aPixmap on the portion of aMapDisplay delineated by aRect. The pixmap must have been obtained using ReturnPixmap and must have the exact same extent as aRect.

Syntax

aMapDisplay.Pixmap (aPixmap, aRect)

Returns

Boolean


ReturnPixmap (MapDisplay)
ReturnPixmap

Returns a pixmap containing the contents of the backing store for the portion of aMapDisplay delineated by aRect.

Syntax

aMapDisplay.ReturnPixmap (aRect)

Returns

Pixmap


BeginClip (MapDisplay)
BeginClip

Begins drawing on aMapDisplay. This request must be made before any of the Draw requests. After drawing, make the EndClip request. See the discussion in the Display class description on "Clipping and Invalidation."

Syntax

aMapDisplay.BeginClip

Returns

Boolean


DrawEllipse (MapDisplay)
DrawEllipse

Draws anEllipse with aSymbol on aMapDisplay.

Syntax

aMapDisplay.DrawEllipse (anEllipse, aSymbol)


DrawGeoCurve (MapDisplay)
DrawGeoCurve

Draws aGeoCurve with aSymbol on aMapDisplay.

Syntax

aMapDisplay.DrawGeoCurve (aGeoCurve, aSymbol)


DrawIcon (MapDisplay)
DrawIcon

Draws anIcon in aRect on aMapDisplay.

Syntax

aMapDisplay.DrawIcon (aRect, anIcon)


DrawLine (MapDisplay)
DrawLine

Draws aLine with aSymbol on aMapDisplay.

Syntax

aMapDisplay.DrawLine (aLine, aSymbol)


DrawMultiPoint (MapDisplay)
DrawMultiPoint

Draws aMultiPoint on the MapDisplay with aSymbol.

Syntax

aMapDisplay.DrawMultiPoint (aMultiPoint, aSymbol)


DrawOval (MapDisplay)
DrawOval

Draws anOval with aSymbol on aMapDisplay.

Syntax

aMapDisplay.DrawOval (anOval, aSymbol)


DrawPoint (MapDisplay)
DrawPoint

Draws aPoint with aSymbol on aMapDisplay.

Syntax

aMapDisplay.DrawPoint (aPoint, aSymbol)


DrawPolygon (MapDisplay)
DrawPolygon

Draws aPolygon with aSymbol on aMapDisplay. If DrawOutline is TRUE, then the polygon is outlined. Otherwise, no outline is drawn.

Syntax

aMapDisplay.DrawPolygon (aPolygon, aSymbol, DrawOutline)


DrawPolyLine (MapDisplay)
DrawPolyLine

Draws aPolyLine with aSymbol on aMapDisplay.

Syntax

aMapDisplay.DrawPolyLine (aPolyLine, aSymbol)


DrawRect (MapDisplay)
DrawRect

Draws aRect with aSymbol on aMapDisplay.

Syntax

aMapDisplay.DrawRect (aRect, aSymbol)


DrawText (MapDisplay)
DrawText

Draws aString at aPoint with aSymbol on aMapDisplay.

Syntax

aMapDisplay.DrawText (aPoint, aString, aSymbol)


DrawTextPolyLine (MapDisplay)
DrawTextPolyLine

Draws aString along aPolyLine with aSymbol on aMapDisplay.

Syntax

aMapDisplay.DrawTextPolyLine (aPolyLine, aString, aSymbol)


EndClip (MapDisplay)
EndClip

Ends drawing. This request must be made after a BeginClip followed by a group of Draw requests. See the discussion in the Display class description on "Clipping and Invalidation."

Syntax

aMapDisplay.EndClip


HookupSymbol (MapDisplay)
HookupSymbol

Hooks up aSymbol to aMapDisplay in terms of scale. Whenever aMapDisplay is zoomed in or out, the symbol size will change accordingly.

Syntax

aMapDisplay.HookupSymbol (aSymbol)


Pan (MapDisplay)
Pan

Pans aMapDisplay as the user drags, changing the VisibleRect of aMapDisplay.

Syntax

aMapDisplay.Pan


ReturnUserPoint (MapDisplay)
ReturnUserPoint

Gets the location of the mouse on aMapDisplay.

Syntax

aMapDisplay.ReturnUserPoint

Returns

Point


GetResolution (MapDisplay)
GetResolution

Gets the resolution quality of aMapDisplay.

Syntax

aMapDisplay.GetResolution

Returns

DisplayResEnum


SetResolution (MapDisplay)
SetResolution

Sets the resolution quality of aMapDisplay to aResQual.

Syntax

aMapDisplay.SetResolution (aResQual)


ExportEnd (MapDisplay)
ExportEnd

Stops exporting the graphics drawn on aMapDisplay.

Syntax

aMapDisplay.ExportEnd


Flush (MapDisplay)
Flush

Flushes all drawing to aMapDisplay. Use Flush to force the draw event to occur during the execution of an Avenue script.

Syntax

aMapDisplay.Flush


Invalidate (MapDisplay)
Invalidate

Invalidates the entire area of aMapDisplay. If Erase is TRUE, then aDisplay is completely erased at the next redraw. If you are only interested in redrawing several shapes on the display, use the Invalidate requests available on instances of the GraphicShape subclasses.

Syntax

aMapDisplay.Invalidate (Erase)


InvalidateRect (MapDisplay)
InvalidateRect

Invalidates the area of aMapDisplay defined by aRect. Only the area of the display specified by aRect is redrawn. See the discussion of "Clipping and Invalidation" for the class Display.

Syntax

aMapDisplay.InvalidateRect (aRect)


Validate (MapDisplay)
Validate

Validates the entire area of aMapDisplay. No further redraws occur.

Syntax

aMapDisplay.Validate


ZoomToRect (MapDisplay)
ZoomToRect

Zooms aMapDisplay to fit aRect. AMapDisplay must be open.

Syntax

aMapDisplay.ZoomToRect (aRect)


MultiBandLegend

 A MultiBandLegend is an image legend for a multiple-band image. A MultiBandLegend consists of a selection of three bands from a multi-band image together with a set of three image lookup tables (ImageLookup). The values of a pixel in the three selected bands are mapped into red, green, and blue colors using the three lookup tables. The ImageLookup class has subclasses to support a number of mappings including piecewise linear stretch, equal interval classification, etc.

Attributes

Band.The RedBand, GreenBand, and BlueBand are the numbers for the bands in the Image that are used for the red, green, and blue components of the display. Bands are numbered 0, 1, 2, etc.

ImageLookup.The RedImageLookup, GreenImageLookup, and BlueImageLookup are the image lookup tables used to transform the value of a pixel in the corresponding bands to red, green, and blue color components for display.

Inherits From

ImageLegend

Class Requests

Making a MultiBandLegend

Make ( aRedImageLookup, aGreenImageLookup, aBlueImageLookup ) :  MultiBandLegend

Instance Requests

Manipulating the Attributes of a MultiBandLegend

Clone  :  MultiBandLegend

GetBlueBand  :  Number

GetBlueImageLookup  :  ImageLookup

GetGreenBand  :  Number

GetGreenImageLookup  :  ImageLookup

GetRedBand  :  Number

GetRedImageLookup  :  ImageLookup

SetBlueBand ( aBandNumber )

SetBlueImageLookup ( anImageLookup )

SetGreenBand ( aBandNumber )

SetGreenImageLookup ( anImageLookup )

SetRedBand ( aBandNumber )

SetRedImageLookup ( anImageLookup )

__________

See also

ImageLookup
ImgSrc
ISrc
SingleBandLegend


Make (MultiBandLegend)
Make

 Makes a MultiBandLegend with aRedImageLookup applied to band 0, aGreenImageLookup applied to band 1, and aBlueImageLookup applied to band 2.

Syntax

MultiBandLegend.Make (aRedImageLookup, aGreenImageLookup, aBlueImageLookup)

Returns

MultiBandLegend


Clone (MultiBandLegend)
Clone

Clones aMultiBandLegend.

Syntax

aMultiBandLegend.Clone

Returns

MultiBandLegend


GetBlueBand (MultiBandLegend)
GetBlueBand

Gets the number of the band displayed as blue.

Syntax

aMultiBandLegend.GetBlueBand

Returns

Number


GetBlueImageLookup (MultiBandLegend)
GetBlueImageLookup

Gets the ImageLookup used to display the blue band.

Syntax

aMultiBandLegend.GetBlueImageLookup

Returns

ImageLookup


GetGreenBand (MultiBandLegend)
GetGreenBand

Gets the number of the band displayed as green.

Syntax

aMultiBandLegend.GetGreenBand

Returns

Number


GetGreenImageLookup (MultiBandLegend)
GetGreenImageLookup

Gets the ImageLookup used to display the green band.

Syntax

aMultiBandLegend.GetGreenImageLookup

Returns

ImageLookup


GetRedBand (MultiBandLegend)
GetRedBand

Gets the number of the band displayed as red.

Syntax

aMultiBandLegend.GetRedBand

Returns

Number


GetRedImageLookup (MultiBandLegend)
GetRedImageLookup

Gets the ImageLookup used to display the red band.

Syntax

aMultiBandLegend.GetRedImageLookup

Returns

ImageLookup


SetBlueBand (MultiBandLegend)
SetBlueBand

Sets the number of the band displayed as blue to aBandNumber.

Syntax

aMultiBandLegend.SetBlueBand (aBandNumber)


SetBlueImageLookup (MultiBandLegend)
SetBlueImageLookup

Sets the ImageLookup used to display the blue band to anImageLookup.

Syntax

aMultiBandLegend.SetBlueImageLookup (anImageLookup)


SetGreenBand (MultiBandLegend)
SetGreenBand

Sets the number of the band displayed as green to aBandNumber.

Syntax

aMultiBandLegend.SetGreenBand (aBandNumber)


SetGreenImageLookup (MultiBandLegend)
SetGreenImageLookup

Sets the ImageLookup used to display the green band to anImageLookup.

Syntax

aMultiBandLegend.SetGreenImageLookup (anImageLookup)


SetRedBand (MultiBandLegend)
SetRedBand

Sets the number of the band displayed as red to aBandNumber.

Syntax

aMultiBandLegend.SetRedBand (aBandNumber)


SetRedImageLookup (MultiBandLegend)
SetRedImageLookup

Sets the ImageLookup used to display the red band to anImageLookup.

Syntax

aMultiBandLegend.SetRedImageLookup (anImageLookup)


MatchCand

 The MatchCand class is a single candidate record which has been scored against a MatchKey by a MatchCase.

The MatchCand may be created by the MatchSource Search request and scored by the MatchCase ScoreCandidates request. Retrieve individual candidates from the MatchCase with the MatchCase requests GetBestCand and GetNthCand.

Inherits From

Obj

Instance Requests

Accessing MatchCand Attributes

GetMatchSourceRec  :  Number

GetMatchSourceRec2  :  Number

GetPosition  :  Number

GetScore  :  Number

GetSide  :  String

GetValue ( aMatchField ) :  String

IsIntersection  :  Boolean

__________

See also

MatchCase
MatchSource
MatchKey
MatchField


GetMatchSourceRec (MatchCand)
GetMatchSourceRec

 Gets aMatchCand's FTab record number in the Matchable theme (MatchSource).

Syntax

aMatchCand.GetMatchSourceRec

Returns

Number


GetMatchSourceRec2 (MatchCand)
GetMatchSourceRec2

 Gets aMatchCand's second FTab record number in the Matchable theme (MatchSource) for intersection candidates. This request will only work if aMatchSource.IsIntersection returns TRUE.

Syntax

aMatchCand.GetMatchSourceRec2

Returns

Number


GetPosition (MatchCand)
GetPosition

 For non-intersection candidates, gets the position along the candidate record's address range where the event is found. The returned value is expressed as a percentage along the address range. For intersection candidates, returns the node position of the intersection. A value of 0.0 indicates the from node of the FTab shape returned by aMatchCand.GetMatchSourceRec, a value of 100.0 indicates the to node of the FTab shape returned aMatchCand.GetMatchSourceRec.

Syntax

aMatchCand.GetPosition

Returns

Number


GetScore (MatchCand)
GetScore

 Gets aMatchCand's match score. Issue this request after scoring the candidates using aMatchCase.ScoreCandidates.

Syntax

aMatchCand.GetScore

Returns

Number


GetSide (MatchCand)
GetSide

 Gets the side of the candidate on which the event is found: L (left) or R (right).

Syntax

aMatchCand.GetSide

Returns

String


GetValue (MatchCand)
GetValue

 Gets aMatchCand's value for aMatchField.

Syntax

aMatchCand.GetValue (aMatchField)

Returns

String


IsIntersection (MatchCand)
IsIntersection

 Returns TRUE if aMatchCand is an intersection candidate.

Syntax

aMatchCand.IsIntersection

Returns

Boolean


MatchCase

 The Match Case class is comprised of a list of candidate records, a MatchKey and the weights describing how well the MatchKey matches to each candidate record.

Create a MatchCase with the Make request specifying the the MatchSource (the matchable theme) and a MatchKey. Populate a MatchCase with candidates through the MatchSource Search request. The MatchCase scores and ranks the candidates with the ScoreCandidates request.

If the address event is a street intersection address, you need to issue the AllowIntersections request on the MatchCase.

To learn how to apply the MatchCase requests in a geocoding script, see the Example of MatchSource class.

Inherits From

Obj

Class Requests

Creating a MatchCase

Make ( aMatchSource, aMatchKey ) :  MatchCase

Instance Requests

Evaluating MatchCase Candidates

AllowIntersections ( aMatchSource, aMatchKey )

GetBestCand  :  MatchCand

GetNthCand ( N ) :  MatchCand

GetNumCands  :  Number

ScoreCandidates  :  Boolean

__________

See also

MatchKey
MatchCand
MatchSource


Make (MatchCase)
Make

 Creates a new MatchCase from aMatchSource and aMatchKey. Populate the MatchCase with Candidates using the aMatchSource.Search request.

Syntax

MCase.Make (aMatchSource, aMatchKey)

Returns

MatchCase


AllowIntersections (MatchCase)
AllowIntersections

 Allows intersection matching for aMatchCase given aMatchSource and aMatchKey.

Syntax

aMatchCase.AllowIntersections (aMatchSource, aMatchKey)


GetBestCand (MatchCase)
GetBestCand

 Gets the best matching candidate. This request should be issued ONLY AFTER the MatchCase has been scored with the request ScoreCandidates.

Syntax

aMatchCase.GetBestCand

Returns

MatchCand


GetNthCand (MatchCase)
GetNthCand

 Gets aMatchCase's Nth best MatchCand. For the best candidate, N = 1 and for the worst candidate, N = aMatchCase.GetNumCands. This request should be issued ONLY after the MatchCase has been scored with the request ScoreCandidates.

Syntax

aMatchCase.GetNthCand (N)

Returns

MatchCand


GetNumCands (MatchCase)
GetNumCands

 Gets the number of candidates in aMatchCase.

Syntax

aMatchCase.GetNumCands

Returns

Number


ScoreCandidates (MatchCase)
ScoreCandidates

 Scores and ranks each candidate record to the MatchKey.

Syntax

aMatchCase.ScoreCandidates

Returns

Boolean


Units

 The Units class facilitates working with units of linear measure. There are no objects of class Units. All requests are sent to the Units class itself. The class allows you to work with measure units enumerations, and to convert numbers from one unit of measure to another. For more information, see 'Setting distance units' and 'Setting map units'

Inherits From

Obj

Enumerations

UnitsLinearEnum

Class Requests

Converting Units

Convert ( fromMeasure, fromUnits, toUnits ) :  Number

ConvertArea ( fromMeasure, fromUnits, toUnits ) :  Number

ConvertDecimalDegrees ( fromPoint1, fromPoint2, toUnits ) :  Number

Getting Unit Names

GetFullUnitString ( aUnit ) :  String

GetUnitString ( aUnit ) :  String

__________

See also

Prj
View


Convert (Units)
Convert

 Returns the value of fromMeasure converted from fromUnits to toUnits.

Syntax

Units.Convert (fromMeasure, fromUnits, toUnits)

Returns

Number


ConvertArea (Units)
ConvertArea

 Returns the value of fromMeasure converted from square fromUnits to square toUnits.

Syntax

Units.ConvertArea (fromMeasure, fromUnits, toUnits)

Returns

Number


ConvertDecimalDegrees (Units)
ConvertDecimalDegrees

 Returns the distance between fromPoint1 and fromPoint2 in toUnits. Both fromPoint1 and fromPoint2 must be decimal degrees (longitude, latitude) coordinates. This will return a much more accurate measure than using Units.Convert to convert a distance from decimal degrees to toUnits.

The GRS80 ellipsoid is used for the conversion.

Syntax

Units.ConvertDecimalDegrees (fromPoint1, fromPoint2, toUnits)

Returns

Number


GetFullUnitString (Units)
GetFullUnitString

 Gets the full name for aUnit.

Syntax

Units.GetFullUnitString (aUnit)

Returns

String


GetUnitString (Units)
GetUnitString

 Gets the abbreviated name for aUnit.

Syntax

Units.GetUnitString (aUnit)

Returns

String


UnitsLinearEnum

 The following units of measure are supported by ArcView. Conversion between units is based on the rule that 1 meter equals exactly 39.37 inches, and all other values shall be derived from that. This is as specified on pg. 51 of "Map Projections- A Working Manual," John P. Snyder, US Geological Survey Professional Paper 1395, United States Govt. Printing Office, 1987.

#UNITS_LINEAR_UNKNOWN

Unknown

#UNITS_LINEAR_INCHES

Inches

#UNITS_LINEAR_FEET

Feet

#UNITS_LINEAR_YARDS

Yards

#UNITS_LINEAR_MILES

Miles

#UNITS_LINEAR_MILLIMETERS

Millimeters

#UNITS_LINEAR_CENTIMETERS

Centimeters

#UNITS_LINEAR_METERS

Meters

#UNITS_LINEAR_KILOMETERS

Kilometers

#UNITS_LINEAR_NAUTICALMILES

Nautical miles

#UNITS_LINEAR_DEGREES

Decimal degrees


MenuBar

 The MenuBar is the top row in the DocGUI. A MenuBar contains a list of pulldown menus (Menu). Each Menu is labelled with a string that categorizes its elements (Choices).

Access the MenuBar on a DocGUI with the DocGUI's GetMenuBar request. Alter the list of menus in the menu bar with the requests Add, New, Shift or Remove (inherited from ControlSet).

You cannot disable menus on a MenuBar; you can, however, make them invisible.

Inherits From

ControlSet

Instance Requests

MenuBar Management

FindByLabel ( aLabel ) :  Menu

FindByScript ( aScriptName ) :  Choice

__________

See also

Menu
Choice
DocGUI
ButtonBar
ToolBar


FindByLabel (MenuBar)
FindByLabel

Returns the first menu in aMenuBar whose label is the same as aLabel. The character '&' is disregarded when doing the search. So if aLabel = "Window", it will find the menu whose label is "&Window".

Syntax

aMenuBar.FindByLabel (aLabel)

Returns

Menu


FindByScript (MenuBar)
FindByScript

Returns the first Choice amongst the menus of aMenuBar that contains a script named aScriptName.

Syntax

aMenuBar.FindByScript (aScriptName)

Returns

Choice


Mercator
Discussion	Example

 This class implements the Mercator projection.

Inherits From

Prj

Class Requests

Creating Mercator Projections

CanDoSpheroid  :  Boolean

Make ( aRect ) :  Mercator

Instance Requests

Using rhumb lines

ReturnRhumbLine ( aPoint, anotherPoint, aNumberOfPoints ) :  PolyLine

ReturnRhumbLineAzimuth ( aPoint, anotherPoint ) :  Number

ReturnRhumbLineDistance ( aPoint, anotherPoint ) :  Number

Mercator Parameters

Recalculate

ReturnCentralMeridian  :  Number

ReturnFalseEasting  :  Number

ReturnFalseNorthing  :  Number

ReturnLatitudeOfTrueScale  :  Number

SetCentralMeridian ( aLongitude )

SetFalseEasting ( aFalseEasting )

SetFalseNorthing ( aFalseNorthing )

SetLatitudeOfTrueScale ( aLatitude )

Projecting and unprojecting points

ProjectPt ( aPoint ) :  Boolean

UnProjectPt ( aPoint ) :  Boolean

__________

See also

CoordSys
Spheroid


CanDoSpheroid (Mercator)
CanDoSpheroid

Returns TRUE if a class of projection supports arbitrary spheroids and FALSE if it only supports the sphere. The Mercator class always returns TRUE.

Syntax

Mercator.CanDoSpheroid

Returns

Boolean


Make (Mercator)
Make
Example

Creates a Mercator projection. aRect is the bounding rectangle of the area being projected. Use decimal degrees for the coordinates of aRect.

Syntax

Mercator.Make (aRect)

Returns

Mercator


ReturnRhumbLine (Mercator)
ReturnRhumbLine

 Given two points in decimal degrees, returns a PolyLine in decimal degrees representing the rhumb line connecting those two points.

Syntax

aMercator.ReturnRhumbLine (aPoint, anotherPoint, aNumberOfPoints)

Returns

PolyLine


ReturnRhumbLineAzimuth (Mercator)
ReturnRhumbLineAzimuth

 Given two points in decimal degrees, returns the azimuth of the rhumb line connecting those two points.

Syntax

aMercator.ReturnRhumbLineAzimuth (aPoint, anotherPoint)

Returns

Number


ReturnRhumbLineDistance (Mercator)
ReturnRhumbLineDistance

 Given two points in decimal degrees, returns the length in meters of the rhumb line connecting those two points.

Syntax

aMercator.ReturnRhumbLineDistance (aPoint, anotherPoint)

Returns

Number


Recalculate (Mercator)
Recalculate

Updates the internal parameters of the projection. This must be called after changing any parameters of the Mercator projection.

Syntax

aMercator.Recalculate


ReturnCentralMeridian (Mercator)
ReturnCentralMeridian

Returns the central meridian in degrees.

Syntax

aMercator.ReturnCentralMeridian

Returns

Number


ReturnFalseEasting (Mercator)
ReturnFalseEasting

Returns the value of x at the central meridian.

Syntax

aMercator.ReturnFalseEasting

Returns

Number


ReturnFalseNorthing (Mercator)
ReturnFalseNorthing

Returns the value of y at the latitude of true scale.

Syntax

aMercator.ReturnFalseNorthing

Returns

Number


ReturnLatitudeOfTrueScale (Mercator)
ReturnLatitudeOfTrueScale

Returns the latitude of true scale in degrees.

Syntax

aMercator.ReturnLatitudeOfTrueScale

Returns

Number


SetCentralMeridian (Mercator)
SetCentralMeridian
Example

Sets the central meridian to aLongitude. aLongitude is a longitude in degrees.

Syntax

aMercator.SetCentralMeridian (aLongitude)


SetFalseEasting (Mercator)
SetFalseEasting

Sets the value of x at the central meridian.

Syntax

aMercator.SetFalseEasting (aFalseEasting)


SetFalseNorthing (Mercator)
SetFalseNorthing

Sets the value of y at the latitude of true scale.

Syntax

aMercator.SetFalseNorthing (aFalseNorthing)


SetLatitudeOfTrueScale (Mercator)
SetLatitudeOfTrueScale
Example

Sets the latitude of true scale to aLatitude. aLatitude is a latitude in degrees.

Syntax

aMercator.SetLatitudeOfTrueScale (aLatitude)


ProjectPt (Mercator)
ProjectPt
Example

Projects the point aPoint. Returns TRUE if aPoint is visible, FALSE otherwise; however, this always returns a point.

Syntax

aMercator.ProjectPt (aPoint)

Returns

Boolean


UnProjectPt (Mercator)
UnProjectPt
Example

Unprojects the point aPoint. Returns TRUE if aPoint can be unprojected, FALSE otherwise; however, this always returns a point.

Syntax

aMercator.UnProjectPt (aPoint)

Returns

Boolean


MatchField

 The MatchField class defines a single field within the matching candidate record. Each MatchField is referenced by a name. A MatchField may be associated with a corresponding FTab field in the matchable theme. Some MatchFields require a corresponding FTab field; use the IsRequired request to determine if the corresponding FTab field is required.

Inherits From

Obj

Enumerations

MatchFieldJustEnum

Instance Requests

MField

GetField  :  Field

GetName  :  String

IsRequired  :  Boolean

__________

See also

MatchCand
MatchCase
MatchSource


GetField (MatchField)
GetField

 Gets the associated field in matchable theme's FTab or returns NIL if the field has not been set. Use this request to verify that all required MatchFields have associated fields after a MatchSource.Make.

Syntax

aMatchField.GetField

Returns

Field


GetName (MatchField)
GetName

Gets aMatchField's name.

Syntax

aMatchField.GetName

Returns

String


IsRequired (MatchField)
IsRequired

 Returns TRUE if aMatchField requires an associated field in the matchable theme's FTab.

Syntax

aMatchField.IsRequired

Returns

Boolean


MatchFieldJustEnum

 These Enums define the MatchField output justification.

#MATCHFIELD_JUST_LEFT

Justify the field to the left.

#MATCHFIELD_JUST_RIGHT

Justify the field to the right.


LocateDialog

 The class LocateDialog defines a modal dialog box used for locating a single address.

Inherits From

ModalDialog

Class Requests

LocateDialog

GetLastAddress  :  String

GetLastZone  :  String

GetMatchPref  :  MatchPref

SetMatchPref ( aMatchPref )

Show ( aTheme ) :  Shape

ShowUsingDefault ( aTheme, Address, Zone ) :  Shape


GetLastAddress (LocateDialog)
GetLastAddress

Returns the last address used by the LocateDialog class.

Syntax

LocateDialog.GetLastAddress

Returns

String


GetLastZone (LocateDialog)
GetLastZone

Returns the last zone used by the the LocateDialog class. If the last event did not use zone an empty string is returned.

Syntax

LocateDialog.GetLastZone

Returns

String


GetMatchPref (LocateDialog)
GetMatchPref

Gets the MatchPref for LocateDialog.

Syntax

LocateDialog.GetMatchPref

Returns

MatchPref


SetMatchPref (LocateDialog)
SetMatchPref

Sets the MatchPref for LocateDialog to aMatchPref.

Syntax

LocateDialog.SetMatchPref (aMatchPref)


Show (LocateDialog)
Show

Returns the location of an address or a nil shape if the address cannot be found. NULL is returned if the dialog is dismissed.

Syntax

LocateDialog.Show (aTheme)

Returns

Shape


ShowUsingDefault (LocateDialog)
ShowUsingDefault

Returns the location of an address using the default Address and Zone or a nil shape if the address cannot be found. NULL is returned if the dialog is dismissed.

Syntax

LocateDialog.ShowUsingDefault (aTheme, Address, Zone)

Returns

Shape


Miller
Discussion	Example

 This class implements the Miller Cylindrical projection.

Inherits From

Prj

Class Requests

Creating Miller Cylindrical Projections

Make ( aRect ) :  Miller

Instance Requests

Projecting and unprojecting points

ProjectPt ( aPoint ) :  Boolean

UnProjectPt ( aPoint ) :  Boolean

Miller Cylindrical parameters

Recalculate

ReturnCentralMeridian  :  Number

SetCentralMeridian ( aLongitude )

__________

See also

CoordSys
Spheroid


Make (Miller)
Make
Example

Creates a Miller Cylindrical projection. aRect is the bounding rectangle of the area being projected. Use decimal degrees for the coordinates of aRect.

Syntax

Miller.Make (aRect)

Returns

Miller


ProjectPt (Miller)
ProjectPt
Example

Projects the point aPoint. Returns TRUE if aPoint is visible, FALSE otherwise; however, this always returns a point.

Syntax

aMiller.ProjectPt (aPoint)

Returns

Boolean


UnProjectPt (Miller)
UnProjectPt
Example

Unprojects the point aPoint. Returns TRUE if aPoint can be unprojected, FALSE otherwise; however, this always returns a point.

Syntax

aMiller.UnProjectPt (aPoint)

Returns

Boolean


Recalculate (Miller)
Recalculate

Updates the internal parameters of the projection. This must be called after changing any parameters of the Miller Cylindrical projection.

Syntax

aMiller.Recalculate


ReturnCentralMeridian (Miller)
ReturnCentralMeridian

Returns the central meridian in degrees.

Syntax

aMiller.ReturnCentralMeridian

Returns

Number


SetCentralMeridian (Miller)
SetCentralMeridian
Example

Sets the central meridian to aLongitude. aLongitude is a longitude in degrees.

Syntax

aMiller.SetCentralMeridian (aLongitude)


MatchKey
Discussion	Example

 The MatchKey class standardizes event strings based on the definitions in the standardization process file used to create the MatchKey.

To learn how to apply the MatchKey requests in a geocoding script, see the Example of MatchSource class.

Inherits From

Obj

Class Requests

MatchKeys

Make ( StanRules ) :  MatchKey

Instance Requests

Accessing Attributes of MatchKeys

AllowIntersections ( StanRules, Delimiter )

CanDoIntersections  :  Boolean

GetFieldLabel ( aMatchKeyFieldName ) :  String

GetKey  :  String

GetName  :  String

GetNthField ( aFieldNumber ) :  String

GetNumFields  :  Number

GetValue ( aMatchKeyFieldName ) :  String

GetXName  :  String

GetZoneKey  :  String

HasIntersection  :  Boolean

SetAliasTable ( anAliasTable )

SetKey ( anEventStr )

SetValue ( aMatchKeyFieldName, ValueStr )

SetZoneKey ( aZoneStr )

__________

See also

MatchPref
AddressStyle
MatchSource
StanEditDialog


Make (MatchKey)
Make
Example

Creates a new MatchKey given the name of a standardization rule file. Based on the specified rules, an address is standardized into the appropriate MatchKey fields. Values in the MatchKey fields may be replaced with the standard abbreviation.

Standardization rules reside in $AVHOME/geocode and have the .stn suffix. For example, "us_addr.stn" is the standardization rule for U.S. general addresses (e.g. "123 N Main St") and "us_intsc.stn" is the rule for U.S. intersection addresses (e.g. "Main St & 1st Ave").

If the address event is a street intersection address, you need to issue the AllowIntersections request on the MatchKey.

Syntax

MatchKey.Make (StanRules)

Returns

MatchKey


AllowIntersections (MatchKey)
AllowIntersections
Example

 Allows intersection events for aMatchKey given a standardization rules file and an intersection event delimiter.

Syntax

aMatchKey.AllowIntersections (StanRules, Delimiter)


CanDoIntersections (MatchKey)
CanDoIntersections

 Returns TRUE if aMatchKey can standardize intersections.

Syntax

aMatchKey.CanDoIntersections

Returns

Boolean


GetFieldLabel (MatchKey)
GetFieldLabel
Discussion	Example

 Gets the field label of a MatchKey field for aMatchKeyFieldName. The field label is an expanded version of the field name. The label cannot be used to access MatchField fields values.

Syntax

aMatchKey.GetFieldLabel (aMatchKeyFieldName)

Returns

String


GetKey (MatchKey)
GetKey

 Gets aMatchKey's key value. The key value is returned as an unstandardized string.

Syntax

aMatchKey.GetKey

Returns

String


GetName (MatchKey)
GetName

 Gets aMatchKey's name.

Syntax

aMatchKey.GetName

Returns

String


GetNthField (MatchKey)
GetNthField

 Gets the name of the MatchKey field at aFieldNumber. The fields are numbered with a zero offset.

Syntax

aMatchKey.GetNthField (aFieldNumber)

Returns

String


GetNumFields (MatchKey)
GetNumFields

 Gets the number of MatchKey Fields as defined by the standardization rules.

Syntax

aMatchKey.GetNumFields

Returns

Number


GetValue (MatchKey)
GetValue
Example

 Gets the standardized value associated with aMatchKeyFieldName.

Different MatchKeys may have a different number of aMatchKeyFieldNames and also different names. The MatchKey field names are defined in the standardization rule's data dictionary file. The file is stored in $AVHOME/geocode and has a .dct suffix. For example, "us_addr.dct" is the MatchKey data dictionary for "us_addr.stn" standardization rules. Typically "HN" is a field name for house number and "SN" is the name for street name. Use the GetNthFields reuqest to get the MatchKey field names.

Syntax

aMatchKey.GetValue (aMatchKeyFieldName)

Returns

String


GetXName (MatchKey)
GetXName

 Gets the name of the intersection MatchKey.

Syntax

aMatchKey.GetXName

Returns

String


GetZoneKey (MatchKey)
GetZoneKey

 Gets aMatchKey's zone key value. The zone key value is returned as a an unstandardized string.

Syntax

aMatchKey.GetZoneKey

Returns

String


HasIntersection (MatchKey)
HasIntersection

 Returns TRUE if aMatchKey currently contains an intersection event.

Syntax

aMatchKey.HasIntersection

Returns

Boolean


SetAliasTable (MatchKey)
SetAliasTable

 Sets the alias table for aMatchKey to anAliasTable. This Alias table overrides any alias table set in the match source or address style. If the alias table is incorrectly constructed, it will be ignored.

Syntax

aMatchKey.SetAliasTable (anAliasTable)


SetKey (MatchKey)
SetKey
Example

 Sets the key of aMatchKey to anEventStr and standardizes anEventStr. anEventStr is typically an address event.

Syntax

aMatchKey.SetKey (anEventStr)


SetValue (MatchKey)
SetValue

 Sets the value of aMatchKeyFieldName to ValueStr. This request enables you to "fix" the standardization for specific components of an address.

Different MatchKeys may have a different number of aMatchKeyFieldNames and also different names. The MatchKey field names are defined in the standardization rule's data dictionary file. The file is stored in $AVHOME/geocode and has a .dct suffix. For example, "us_addr.dct" is the MatchKey data dictionary for "us_addr.stn" standardization rules. Typically "HN" is a field name for house number and "SN" is the name for street name. Use the GetNthFields reuqest to get the MatchKey field names.

Syntax

aMatchKey.SetValue (aMatchKeyFieldName, ValueStr)


SetZoneKey (MatchKey)
SetZoneKey

 Sets the zone field in aMatchKey to aZoneStr. No standardization is performed for aZoneStr. The zone MatchKey field "ZN" must be a valid field name for aMatchKey. Use this request only if the MatchKey contains a street address. If the MatchKey contains an intersection address, this SetZoneKey request doesn't apply because intersection matching does not consider the zone. Using this request with an intersection MatchKey will generate an Avenue error.

Syntax

aMatchKey.SetZoneKey (aZoneStr)


Marker

 A Marker is graphic symbology used to draw a point on the screen. There are simple and layered marker symbols.

Inherits From

Symbol

Inherited By

BasicMarker
CompositeMarker

Instance Requests

Getting and Setting Attributes

GetType  :  SymbolEnum

Manipulating a Marker

UnHook

__________

See also

Fill
Pen
Text


GetType (Marker)
GetType

Returns #SYMBOL_MARKER.

Syntax

aMarker.GetType

Returns

SymbolEnum


UnHook (Marker)
UnHook

Unhooks aMarker from its scale so that it will not be resized when the scale changes.

Syntax

aMarker.UnHook


ModalDialog

 ModalDialog is used to show a modal dialog on the screen. Modal dialogs do not allow the user to continue to work in the application until they press OK or Cancel.

If you have loaded the OIScript extension library ($AVBIN/oiscript.dll) into ArcView and have access to Neuron Data's OpenEditor interface designer, you can create custom modal dialogs. With the special verb, AVExec, you can send Avenue scripts to ArcView from your custom dialog. However, there is an easier way to make custom dialogs now. Instead of using OIScript and OpenEditor, you can create custom dialogs using ArcView's Dialog Designer extension.

Inherits From

Obj

Inherited By

AreaOfInterestDialog
AutoLabelDialog
EventDialog
ExtensionWin
FileDialog
GeocodeDialog
IconMgr
LocateDialog
MatchPrefDialog
NorthArrowMgr
PageSetupDialog
ProjectionDialog
ReMatchDialog
ScriptMgr
SourceDialog
SourceManager
StanEditDialog
SummaryDialog
TemplateMgr
ThemeOnThemeDialog

Class Requests

ModalDialog

Show ( libFile, libName, modName, resName ) :  String

__________

See also

Window
MsgBox


Show (ModalDialog)
Show

Shows a modal dialog until the user presses a button that terminates the dialog (usually OK or Cancel). The dialog is defined as a resource ResName inside the resource module modName inside the library libName that is stored in the file libFile. Terminating a modal dialog returns a string to the calling script. Assuming that the modal dialog resource contains a pushbutton, then here is a script (using Neuron Data's scripting language) that will return the string "!" when the button is pushed:

     on event TBUT_HIT
       WIN_TerminateModalWin( WGT_GetWin(SELF), "!" );
     end event

Syntax

ModalDialog.Show (libFile, libName, modName, resName)

Returns

String


Mollweide
Discussion	Example

 This class implements the Mollweide projection. Alternate names for the Mollweide projection are Babinet, Elliptical, Homolographic and Homalographic.

Inherits From

Prj

Class Requests

Creating Mollweide Projections

Make ( aRect ) :  Mollweide

Instance Requests

Projecting and unprojecting points

ProjectPt ( aPoint ) :  Boolean

UnProjectPt ( aPoint ) :  Boolean

Mollweide Parameters

Recalculate

ReturnCentralMeridian  :  Number

SetCentralMeridian ( aLongitude )

__________

See also

Spheroid
CoordSys


Make (Mollweide)
Make
Example

Creates a Mollweide projection. aRect is the bounding rectangle of the area being projected. Use decimal degrees for the coordinates of aRect.

Syntax

Mollweide.Make (aRect)

Returns

Mollweide


ProjectPt (Mollweide)
ProjectPt
Example

Projects the point aPoint. Returns TRUE if aPoint is visible, FALSE otherwise; however, this always returns a point.

Syntax

aMollweide.ProjectPt (aPoint)

Returns

Boolean


UnProjectPt (Mollweide)
UnProjectPt
Example

Unprojects the point aPoint. Returns TRUE if aPoint can be unprojected, FALSE otherwise; however, this always returns a point.

Syntax

aMollweide.UnProjectPt (aPoint)

Returns

Boolean


Recalculate (Mollweide)
Recalculate

Updates the internal parameters of the projection. This must be called after changing any parameters of the Mollweide projection.

Syntax

aMollweide.Recalculate


ReturnCentralMeridian (Mollweide)
ReturnCentralMeridian

Returns the central meridian in degrees.

Syntax

aMollweide.ReturnCentralMeridian

Returns

Number


SetCentralMeridian (Mollweide)
SetCentralMeridian
Example

Sets the central meridian to aLongitude. aLongitude is a longitude in degrees.

Syntax

aMollweide.SetCentralMeridian (aLongitude)


MultiPoint
Related Topics

 A MultiPoint is a shape representing a set of points. Many geometric operations return a set of points instead of a single point.

Attributes

Count.Count is the number of points in the MultiPoint.

Inherits From

Shape

Inherited By

MultiPointM
PolyLine

Class Requests

Making MultiPoints

Make ( Points ) :  MultiPoint

MakeEmpty  :  MultiPoint

MakeNull  :  MultiPoint

Instance Requests

Converting a MultiPoint

AsList  :  List

AsMultiPoint  :  MultiPoint

ReturnBuffered ( aDistance ) :  Polygon

Generic Object Requests

= anObj :  Boolean

AsString  :  String

Getting and Setting Attributes

Count  :  Number

GetDimension  :  Number

IsEmpty  :  Boolean

IsNull  :  Boolean

ReturnCenter  :  Point

Manipulating a MultiPoint

Move ( moveX, moveY ) :  MultiPoint

Snap ( aShape, snapDistance ) :  Boolean

Relating two Shapes

Contains ( aShape ) :  Boolean

Intersects ( aShape ) :  Boolean

Transforming a MultiPoint

PointIntersection ( anotherShape ) :  MultiPoint

ReturnClipped ( aRect ) :  Shape

ReturnDifference ( anotherShape ) :  MultiPoint

ReturnMerged ( aShape ) :  MultiPoint

ReturnProjected ( aPrj ) :  Shape

ReturnUnprojected ( aPrj ) :  Shape

__________

See also

Point
PolyLine
Line
Circle
Oval
Rect
Polygon


Make (MultiPoint)
Make

Makes a MultiPoint from a list of points. This example creates a MultiPoint with four points.

 mp = MultiPoint.Make( {0@0, 2@2, 100@100, 15@391} )

Syntax

MultiPoint.Make (Points)

Returns

MultiPoint


MakeEmpty (MultiPoint)
MakeEmpty

Makes the empty MultiPoint.

Syntax

MultiPoint.MakeEmpty

Returns

MultiPoint


MakeNull (MultiPoint)
MakeNull

Makes the NULL MultiPoint.

Syntax

MultiPoint.MakeNull

Returns

MultiPoint


AsList (MultiPoint)
AsList

Returns aMultiPoint as a list of points.

Syntax

aMultiPoint.AsList

Returns

List


AsMultiPoint (MultiPoint)
AsMultiPoint

Clones aMultiPoint.

Syntax

aMultiPoint.AsMultiPoint

Returns

MultiPoint


ReturnBuffered (MultiPoint)
ReturnBuffered

Returns a buffer Polygon representing aMultiPoint buffered by aDistance. You can use the Shape.SetBufferResoultion request to set the buffer resolution preference which defines the smoothness of buffers.

Syntax

aMultiPoint.ReturnBuffered (aDistance)

Returns

Polygon


= (MultiPoint)
=

Returns TRUE if aMultiPoint and anObj are equal.

Syntax

aMultiPoint = anObj

Returns

Boolean


AsString (MultiPoint)
AsString

Returns a string describing aMultiPoint. The string contains the keyword MultiPoint, followed by the number of points in the MultiPoint, followed by the points. The script below returns the following:

 MultiPoint
 4
 0,10
 10,10
 10,0
 0,0

 mp = Multipoint.Make( {0@10, 10@10, 10@0, 0@0})
 msgbox.report( mp.AsString, "")

Syntax

aMultiPoint.AsString

Returns

String


Count (MultiPoint)
Count

Returns the number of points in aMultiPoint.

Syntax

aMultiPoint.Count

Returns

Number


GetDimension (MultiPoint)
GetDimension

Returns 0. In ArcView, points have dimension 0, lines have dimension 1 and polygons have dimension 2. Only shapes with dimension 1 or greater have a length. Only shapes with dimension 2 have an area.

Syntax

aMultiPoint.GetDimension

Returns

Number


IsEmpty (MultiPoint)
IsEmpty

Returns TRUE if aMultiPoint is empty, otherwise FALSE.

Syntax

aMultiPoint.IsEmpty

Returns

Boolean


IsNull (MultiPoint)
IsNull

Returns TRUE if aMultiPoint is NULL or empty, otherwise returns FALSE.

Syntax

aMultiPoint.IsNull

Returns

Boolean


ReturnCenter (MultiPoint)
ReturnCenter

Returns the center point of aMultiPoint. The center point is calculated from aMultiPoint's extent. This returns the point 5.0, 5.0.

 mp = Multipoint.Make( {0@10, 10@10, 10@0, 0@0})
 msgbox.info( mp.ReturnCenter.AsString, "")

Syntax

aMultiPoint.ReturnCenter

Returns

Point


Move (MultiPoint)
Move

Moves aMultiPoint by moveX and moveY and returns it. The x and y moves are applied to each point in the MultiPoint. The script below returns the following:

 MultiPoint
 4
 3,8
 13,8
 13,-2
 3,-2

 mp = Multipoint.Make( {0@10, 10@10, 10@0, 0@0})
 mp.Move( 3, -2 )
 msgbox.report( mp.AsString, "")

Syntax

aMultiPoint.Move (moveX, moveY)

Returns

MultiPoint


Snap (MultiPoint)
Snap

Snaps the points of aMultiPoint to vertices of aShape within snapDistance. Returns TRUE if snapping occurred, otherwise returns FALSE.

Syntax

aMultiPoint.Snap (aShape, snapDistance)

Returns

Boolean


Contains (MultiPoint)
Contains

Returns TRUE if aMultiPoint contains aShape, otherwise returns FALSE.

Syntax

aMultiPoint.Contains (aShape)

Returns

Boolean


Intersects (MultiPoint)
Intersects

Returns TRUE if aMultiPoint intersects aShape, otherwise returns FALSE.

Syntax

aMultiPoint.Intersects (aShape)

Returns

Boolean


PointIntersection (MultiPoint)
PointIntersection

Intersects aMultiPoint and anotherShape into a new MultiPoint shape.

Syntax

aMultiPoint.PointIntersection (anotherShape)

Returns

MultiPoint


ReturnClipped (MultiPoint)
ReturnClipped

The result is NULL.

Syntax

aMultiPoint.ReturnClipped (aRect)

Returns

Shape


ReturnDifference (MultiPoint)
ReturnDifference

Subtracts anotherShape from aMultiPoint into a new shape. It corresponds to set operation Difference where shapes are treated as point-sets. If Shapes are viewed as bitmaps, this would be an 'aShape AND (NOT anotherShape)' operation. aShape's dimensionality must be less or equal to anotherShape's dimensionality. The result will always have the dimensionality of aShape.

Syntax

aMultiPoint.ReturnDifference (anotherShape)

Returns

MultiPoint


ReturnMerged (MultiPoint)
ReturnMerged

Merges aMultiPoint and aShape into a new shape. aShape can be a MultiPoint or Point.

Syntax

aMultiPoint.ReturnMerged (aShape)

Returns

MultiPoint


ReturnProjected (MultiPoint)
ReturnProjected

Returns aMultiPoint projected by aPrj. The result may be a different kind of shape or have more points than the original in order to be visually pleasing.

Syntax

aMultiPoint.ReturnProjected (aPrj)

Returns

Shape


ReturnUnprojected (MultiPoint)
ReturnUnprojected

Returns aMultiPoint unprojected by aPrj. The result may be a different kind of shape or have more points than the original in order to be visually pleasing.

Syntax

aMultiPoint.ReturnUnprojected (aPrj)

Returns

Shape


MultiPointM

 A MultiPointM is a shape representing a set of (x,y,m) points. Many geometric operations return a set of points instead of a single point.

Inherits From

MultiPoint

Inherited By

MultiPointZ

Class Requests

Making MultiPointMs

Make ( Points ) :  MultiPointM

MakeNull  :  MultiPointM

Instance Requests

Getting and Setting Attributes

GetM  :  List

GetMForPoint ( anIndex ) :  Number

ReturnMBB  :  RectM

SetM ( aListOfM ) :  MultiPointM

SetMAsIndex  :  MultiPointM

SetMForPoint ( anIndex, aMvalue ) :  MultiPointM

SetMToNil  :  MultiPointM

Converting a MultiPointM

@ zValue :  MultiPointZ

AsList  :  List

AsMultiPoint  :  MultiPoint

Generic Object Requests

= anObj :  Boolean

AsString  :  String

IsMeasured  :  Boolean

Transforming a MultiPointM

ReturnProjected ( aPrj ) :  Shape

ReturnUnprojected ( aPrj ) :  Shape

__________

See also

PointM
LineM
RectM
PolyLineM
PolygonM
PointZ
LineZ
RectZ
MultiPointZ
PolyLineZ
PolygonZ


Make (MultiPointM)
Make

Makes a MultiPointM from a list of points. This example creates a MultiPointM with four points.

 mp = MultiPointM.Make( {0@0&5, 2@2&9, 100@100&15, 15@391&20} )

Syntax

MultiPointM.Make (Points)

Returns

MultiPointM


MakeNull (MultiPointM)
MakeNull

Makes the NULL MultiPointM.

Syntax

MultiPointM.MakeNull

Returns

MultiPointM


GetM (MultiPointM)
GetM

Returns a list of M values of aMultiPointM.

Syntax

aMultiPointM.GetM

Returns

List


GetMForPoint (MultiPointM)
GetMForPoint

Returns the M value of the point at the position anIndex of aMultiPointM.

Syntax

aMultiPointM.GetMForPoint (anIndex)

Returns

Number


ReturnMBB (MultiPointM)
ReturnMBB

Returns the MBB of aMultiPointM. The MBB is the minimum bounding box of aMultiPointM.

Syntax

aMultiPointM.ReturnMBB

Returns

RectM


SetM (MultiPointM)
SetM

Returns a MultiPointM which has the M values reset to the values in aListOfM. The number of elements in aListOfM must be the same as the number of points in aMultiPointM.

Syntax

aMultiPointM.SetM (aListOfM)

Returns

MultiPointM


SetMAsIndex (MultiPointM)
SetMAsIndex

Returns a MultiPointM which has the M values reset to the index of the point.

Syntax

aMultiPointM.SetMAsIndex

Returns

MultiPointM


SetMForPoint (MultiPointM)
SetMForPoint

Set the M value of the point at the position anIndex of aMultiPointM.

Syntax

aMultiPointM.SetMForPoint (anIndex, aMvalue)

Returns

MultiPointM


SetMToNil (MultiPointM)
SetMToNil

Returns a MultiPointM which has the M values reset to Null Numbers.

Syntax

aMultiPointM.SetMToNil

Returns

MultiPointM


@ (MultiPointM)
@

Returns a MultiPointZ with the x, y points and the m buffer preserved and a coordinate zValue set for all the points.

Syntax

aMultiPointM @ zValue

Returns

MultiPointZ


AsList (MultiPointM)
AsList

Returns aMultiPointM as a list of points.

Syntax

aMultiPointM.AsList

Returns

List


AsMultiPoint (MultiPointM)
AsMultiPoint

Returns a MultiPoint representation of aMultiPointM.

Syntax

aMultiPointM.AsMultiPoint

Returns

MultiPoint


= (MultiPointM)
=

Returns TRUE if aMultiPointM and anObj are equal.

Syntax

aMultiPointM = anObj

Returns

Boolean


AsString (MultiPointM)
AsString

Returns a string describing aMultiPointM. The string contains the keyword MultiPointM,the number of points in the MultiPointM, followed by the points. The script below returns the following:

 MultiPointM
 4
 0,10,5
 10,10,9
 10,0,15
 0,0,6

 mp = MultipointM.Make( {0@10&5, 10@10&9, 10@0&15, 0@0&6})
 msgbox.report( mp.AsString, "")

Syntax

aMultiPointM.AsString

Returns

String


IsMeasured (MultiPointM)
IsMeasured

Returns TRUE if the m buffer is set.

Syntax

aMultiPointM.IsMeasured

Returns

Boolean


ReturnProjected (MultiPointM)
ReturnProjected

Returns aMultiPointM projected by aPrj. The result will have the same number of points.

Syntax

aMultiPointM.ReturnProjected (aPrj)

Returns

Shape


ReturnUnprojected (MultiPointM)
ReturnUnprojected

Returns aMultiPointM unprojected by aPrj. The result will have the same number of points.

Syntax

aMultiPointM.ReturnUnprojected (aPrj)

Returns

Shape


MultiPointZ

 A MultiPointZ is a shape representing a set of (x,y,z) points. Many geometric operations return a set of points instead of a single point.

Attributes

Count.Count is the number of points in the MultiPointZ.

Inherits From

MultiPointM

Class Requests

Making MultiPointZs

Make ( aListofPointZs ) :  MultiPointZ

MakeNull  :  MultiPointZ

Instance Requests

Converting a MultiPointZ

AsList  :  List

Generic Object Requests

= anObj :  Boolean

AsString  :  String

HasZ  :  Boolean

IsMeasured  :  Boolean

Getting and Setting Attributes

ReturnCenter  :  PointZ

ReturnMBB  :  RectZ

Transforming a MultiPointZ

QueryZOffset ( anotherMultiPointZ, aOffset ) :  MultiPointZ

QueryZScale ( anotherMultiPointZ, aScale ) :  MultiPointZ

ReturnMerged ( aShape ) :  MultiPointZ

ReturnProjected ( aPrj ) :  Shape

ReturnUnprojected ( aPrj ) :  Shape

ZMove ( moveX, moveY, moveZ ) :  MultiPointZ

ZOffset ( aOffset ) :  MultiPointZ

ZScale ( aScale ) :  MultiPointZ

__________

See also

Point
PolyLine
Line
Circle
Oval
Rect
polygonD


Make (MultiPointZ)
Make

Makes a MultiPointZ from aListofPointZs. This example creates a MultiPointZ with four points.

 mp = MultiPointZ.Make( {0@0@5, 2@2@9, 100@100@15, 15@391@20} )

Syntax

MultiPointZ.Make (aListofPointZs)

Returns

MultiPointZ


MakeNull (MultiPointZ)
MakeNull

Makes the NULL MultiPointZ.

Syntax

MultiPointZ.MakeNull

Returns

MultiPointZ


AsList (MultiPointZ)
AsList

Returns aMultiPointZ as a list of pointZs.

Syntax

aMultiPointZ.AsList

Returns

List


= (MultiPointZ)
=

Returns TRUE if aMultiPointZ and anObj are equal.

Syntax

aMultiPointZ = anObj

Returns

Boolean


AsString (MultiPointZ)
AsString

Returns a string describing aMultiPointZ. The string contains the keyword MultiPointZ, followed by the number of points in the MultiPointZ, followed by the points. The script below returns the following:

 MultiPointZ
 4
 0,10,5
 10,10,9
 10,0,15
 0,0,6

 mp = MultipointZ.Make( {0@10@5, 10@10@9, 10@0@15, 0@0@6})
 msgbox.report( mp.AsString, "")

Syntax

aMultiPointZ.AsString

Returns

String


HasZ (MultiPointZ)
HasZ

Returns TRUE because aMultiPointZ has Z coordinates.

Syntax

aMultiPointZ.HasZ

Returns

Boolean


IsMeasured (MultiPointZ)
IsMeasured

Returns TRUE if aMultiPointZ has Measure coordinates, otherwise returns FALSE.

Syntax

aMultiPointZ.IsMeasured

Returns

Boolean


ReturnCenter (MultiPointZ)
ReturnCenter

Returns the center point of aMultiPointZ. The center point is calculated from aMultiPointZ's minimum bounding box. This returns the point 5.0, 5.0., 4.0

 mp = Multipoint.Make( {0@10@2, 10@10@6, 10@0@5, 0@0@3})
 msgbox.info( mp.ReturnCenter.AsString, "")

Syntax

aMultiPointZ.ReturnCenter

Returns

PointZ


ReturnMBB (MultiPointZ)
ReturnMBB

Returns the MBB of aMultiPointZ. The MBB is the minimum bounding box surrounding aMultiPointZ.

Syntax

aMultiPointZ.ReturnMBB

Returns

RectZ


QueryZOffset (MultiPointZ)
QueryZOffset

Queries aMultiPointZ into anotherMultiPointZ altering it's z values by adding aOffset.

Syntax

aMultiPointZ.QueryZOffset (anotherMultiPointZ, aOffset)

Returns

MultiPointZ


QueryZScale (MultiPointZ)
QueryZScale

Queries aMultiPointZ into anotherMultiPointZ altering it's z values by multiplying with aScale.

Syntax

aMultiPointZ.QueryZScale (anotherMultiPointZ, aScale)

Returns

MultiPointZ


ReturnMerged (MultiPointZ)
ReturnMerged

Merges aMultiPointZ and aShape into a new shape. aShape can be a MultiPointZ or PointZ.

Syntax

aMultiPointZ.ReturnMerged (aShape)

Returns

MultiPointZ


ReturnProjected (MultiPointZ)
ReturnProjected

Returns aMultiPointZ projected by aPrj. The result will have the same number of points as aMultiPointZ.

Syntax

aMultiPointZ.ReturnProjected (aPrj)

Returns

Shape


ReturnUnprojected (MultiPointZ)
ReturnUnprojected

Returns aMultiPointZ unprojected from aPrj. The result will have the same number of points as aMultiPointZ.

Syntax

aMultiPointZ.ReturnUnprojected (aPrj)

Returns

Shape


ZMove (MultiPointZ)
ZMove

Moves aMultiPointZ by moveX, moveY and moveZ and returns it. The x and y moves are applied to each point in the MultiPointZ. The script below returns the following:

 MultiPointZ
 4
 3,8,4
 13,8,5
 13,-2,6
 3,-2,7

 mp = Multipoint.Make( {0@10@1, 10@10@2, 10@0@3, 0@0@4})
 mp.ZMove( 3, -2, 3 )
 msgbox.report( mp.AsString, "")

Syntax

aMultiPointZ.ZMove (moveX, moveY, moveZ)

Returns

MultiPointZ


ZOffset (MultiPointZ)
ZOffset

Offsets aMultiPointZ z values by aOffset.

Syntax

aMultiPointZ.ZOffset (aOffset)

Returns

MultiPointZ


ZScale (MultiPointZ)
ZScale

Multiplies aMultiPointZ z values by aScale.

Syntax

aMultiPointZ.ZScale (aScale)

Returns

MultiPointZ


MatchPref

 The MatchPref (match preferences) class contains geocoding preferences such as spelling weight, minimum acceptable match score and criteria for user review of candidates. The default set of match preferences may be altered through Avenue. A MatchPref object is associated with a GeoName and contains the preference criteria used to generate that geocoded data set.

Inherits From

Obj

Enumerations

MatchPrefEnum

Class Requests

MPref

Make  :  MatchPref

Instance Requests

Accessing MatchPref Attributes

GetPref ( aPrefType ) :  Boolean

GetPrefVal ( aPrefType ) :  Number

Reset

SetPref ( aPrefType, aBoolean )

SetPrefVal ( aPrefType, aValue )

__________

See also

GeoName
MatchSource


Make (MatchPref)
Make

 Creates a new MatchPref object.

Syntax

MatchPref.Make

Returns

MatchPref


GetPref (MatchPref)
GetPref

 Gets the boolean preference value for the preference identified by aPrefType. This request should only be used with the preference types #MATCHPREF_NOREVIEW, #MATCHPREF_MULTBEST, #MATCHPREF_MULTGOOD and #MATCHPREF_NOCAND.

Syntax

aMatchPref.GetPref (aPrefType)

Returns

Boolean


GetPrefVal (MatchPref)
GetPrefVal

 Gets the numeric preference value for the preference identified by aPrefType. This request should only be used with the preference types #MATCHPREF_SPELLWEIGHT, #MATCHPREF_MINMATCHSCORE, and #MATCHPREF_MINCANDSCORE.

Syntax

aMatchPref.GetPrefVal (aPrefType)

Returns

Number


Reset (MatchPref)
Reset

 Resets aMatchPref to the default values.

Syntax

aMatchPref.Reset


SetPref (MatchPref)
SetPref

 Sets the preference identified by aPrefType to aBoolean. aPrefType must take a Boolean value. This request should only be used with the preference types #MATCHPREF_NOREVIEW, #MATCHPREF_MULTBEST, #MATCHPREF_MULTGOOD and #MATCHPREF_NOCAND.

Syntax

aMatchPref.SetPref (aPrefType, aBoolean)


SetPrefVal (MatchPref)
SetPrefVal

 Sets the preference identified by aPrefType to aValue. aPrefType must take a numeric value. This request should only be used with the preference types #MATCHPREF_SPELLWEIGHT, #MATCHPREF_MINMATCHSCORE, and #MATCHPREF_MINCANDSCORE.

Syntax

aMatchPref.SetPrefVal (aPrefType, aValue)


MatchPrefEnum

 MatchPrefEnum defines the preference types implemented by the MatchPref Class.

#MATCHPREF_NOREVIEW

Do not review candidates. This flag overrides all other flags.

#MATCHPREF_MULTBEST

Review candidates if multiple best matches are found. This condition exists if one or more candidates have the same highest score and the score is greater than the minimum acceptable match score.

#MATCHPREF_MULTGOOD

Review candidates if multiple good matches are found. This condition exists if one or more candidates have scores greater than the minimum acceptable match score.

#MATCHPREF_NOCAND

Review candidates if no matching candidates can be found.

#MATCHPREF_SPELLWEIGHT

Index search spelling sensitivity value.

#MATCHPREF_MINMATCHSCORE

Minimum acceptable match score.

#MATCHPREF_MINCANDSCORE

Minimum acceptable candidate score.


MatchPrefDialog

 The class MatchPrefDialog is a modal dialog box used for managing geocoding preferences.

Inherits From

ModalDialog

Class Requests

MatchPrefDialog

Show ( anMPref ) :  Boolean

__________

See also

MatchPref


Show (MatchPrefDialog)
Show

Shows the preferences window with the preference anMPref. True is returned if anMPref has been altered.

Syntax

MatchPrefDialog.Show (anMPref)

Returns

Boolean


MsgBox

 The MsgBox class provides requests for modal interaction with the end-user. Some requests prompt for user input, while others only display messages. All requests require the user to acknowledge the MsgBox by clicking a response.

Many MsgBox requests include arguments aMsg and aTitle. aMsg contains the message to the user. aTitle appears in the title bar of the dialog box.

Attributes

ErrorReporting. This controls whether error and messages are displayed in modal dialog boxes (which must be manually dismissed by the user) or passively logged. On Workstation platforms, this log is the console window from which ArcView was started. On Windows platforms, this log is a text file which gets written to the current working directory.

This attribute affects the behavior of the Warning and Error requests.

Inherits From

Obj

Class Requests

Display

Banner ( anImageFileName, duration, title ) :  Boolean

Error ( aMsg, aTitle )

ErrorHelp ( aMsg, aTitle, aTopic )

GetErrorReporting  :  Boolean

Info ( aMsg, aTitle )

Report ( aLongMsg, aTitle )

SetErrorReporting ( errorsInWindow )

Warning ( aMsg, aTitle )

User Input

AllYesNo ( aMsg, aTitle, defaultIsYes ) :  Obj

Choice ( aList, aMsg, aTitle ) :  Obj

ChoiceAsString ( aList, aMsg, aTitle ) :  Obj

Input ( aMsg, aTitle, defaultString ) :  String

List ( aList, aMsg, aTitle ) :  Obj

ListAsString ( aList, aMsg, aTitle ) :  Obj

LongYesNo ( aMsg, aTitle, defaultIsYes ) :  Boolean

MiniYesNo ( aMsg, defaultIsYes ) :  Boolean

MultiInput ( aMsg, aTitle, labels, defaults ) :  List

MultiList ( aList, aMsg, aTitle ) :  List

MultiListAsString ( aList, aMsg, aTitle ) :  List

Password  :  String

SaveChanges ( aMsg, aTitle, defaultIsYes ) :  Obj

YesNo ( aMsg, aTitle, defaultIsYes ) :  Boolean

YesNoCancel ( aMsg, aTitle, defaultIsYes ) :  Obj

__________

See also

FileDialog
SourceDialog
ScriptMgr
TextWin


Banner (MsgBox)
Banner

 Displays an image file in a modeless window. If duration is non-zero, the window will be closed automatically after the given amount of time in seconds; with duration 0, the window does not close automatically. The image file must be in one of the following singlefile formats: .tif, .im, .rs, .xbm, .bmp, and .gif. Returns TRUE if successful.

Syntax

MsgBox.Banner (anImageFileName, duration, title)

Returns

Boolean


Error (MsgBox)
Error

 Displays aMsg with an OK button and includes an Error icon in the dialog box. The title defaults to "Error" if aTitle is "".

Syntax

MsgBox.Error (aMsg, aTitle)


ErrorHelp (MsgBox)
ErrorHelp

 Displays aMsg with OK and Help buttons and includes an Error icon in the dialog box. If the Help window is open, clicking the Help button will show the topic associated with aMsg. The title defaults to "Error" if aTitle is "".

Syntax

MsgBox.ErrorHelp (aMsg, aTitle, aTopic)


GetErrorReporting (MsgBox)
GetErrorReporting

Returns TRUE when ArcView displays errors and warnings in a modal dialog box, and FALSE if they are logged.

Syntax

MsgBox.GetErrorReporting

Returns

Boolean


Info (MsgBox)
Info

 Displays aMsg with an OK button and includes an Info icon in the dialog box. The title defaults to "Info" if aTitle is "".

Syntax

MsgBox.Info (aMsg, aTitle)


Report (MsgBox)
Report

 Displays aLongMsg with an OK button. aLongMsg may be any length. The MsgBox scrolls up or down. The MsgBox may be resized. You must explicitly include newlines in aLongMsg to break it into multiple lines.

Syntax

MsgBox.Report (aLongMsg, aTitle)


SetErrorReporting (MsgBox)
SetErrorReporting

Controls whether or not error messages are displayed in modal dialog boxes or logged somewhere else. On Workstation platforms, 'somewhere else' means the window from which ArcView was launched. On Windows platforms, that means a text file which gets created in ArcView's current working directory.

When errorsInWindow is TRUE, then errors appear in a modal dialog box. When it is FALSE, they get logged.

Syntax

MsgBox.SetErrorReporting (errorsInWindow)


Warning (MsgBox)
Warning

 Displays aMsg with an OK button and includes a Warning icon in the dialog box. The title defaults to "Warning" if aTitle is "".

Syntax

MsgBox.Warning (aMsg, aTitle)


AllYesNo (MsgBox)
AllYesNo

 Displays aMsg with Yes, No, and 'Yes to All' buttons. AllYesNo returns TRUE if the user clicks Yes, FALSE for No and nil for 'yes to All'. If defaultIsYes is TRUE, then the "Yes" button is the default choice, else if defaultIsYes is FALSE, then "No" is the default choice, else if defaultIsYes is nil, then "Yes to All" is the default choice.

Syntax

MsgBox.AllYesNo (aMsg, aTitle, defaultIsYes)

Returns

Obj


Choice (MsgBox)
Choice

 Allow the user to select a named object from aList. This request creates a drop-down combo box from aList by calling GetName to obtain the name of each object. It returns the selected object or nil if the user clicks CANCEL.

Syntax

MsgBox.Choice (aList, aMsg, aTitle)

Returns

Obj


ChoiceAsString (MsgBox)
ChoiceAsString

 Allow the user to select an object from aList. Each object is represented in the drop-down combo box by a string obtained by sending the AsString request to the object. Use this request (instead of MsgBox.Choice) for lists that include "immutable" objects such as strings, numbers, or boolean values. Returns the selected object or nil if the user clicks CANCEL.

Syntax

MsgBox.ChoiceAsString (aList, aMsg, aTitle)

Returns

Obj


Input (MsgBox)
Input

 Allows the user to enter a text string. Input returns the string or nil if the user clicks Cancel. defaultString displays on the input line and is the default value.

Syntax

MsgBox.Input (aMsg, aTitle, defaultString)

Returns

String


List (MsgBox)
List

 Allow the user to select a named object from a aList. This request displays a scrolling list box that contains the names of the objects in aList. The selected object is returned if the user presses OK, or nil is returned if the user presses CANCEL.

Syntax

MsgBox.List (aList, aMsg, aTitle)

Returns

Obj


ListAsString (MsgBox)
ListAsString

 Allow the user to select an object from aList. This request displays a scrolling list box of strings obtained by sending the AsString request to each object in aList. Use this request (instead of MsgBox.List) for lists that include "immutable" objects such as strings, numbers, or boolean values. This request returns the selected object or nil if the user clicks CANCEL.

Syntax

MsgBox.ListAsString (aList, aMsg, aTitle)

Returns

Obj


LongYesNo (MsgBox)
LongYesNo

 Displays aMsg with Yes and No buttons in a large window. LongYesNo returns TRUE if the user clicks Yes and returns FALSE for No. If defaultIsYes is TRUE, then the "Yes" button is the default choice, otherwise the "No" button is the default choice.

Syntax

MsgBox.LongYesNo (aMsg, aTitle, defaultIsYes)

Returns

Boolean


MiniYesNo (MsgBox)
MiniYesNo

 Displays aMsg with Yes and No buttons in a small window; MiniYesNo has no title. MiniYesNo returns TRUE if the user clicks Yes and returns FALSE for No. If defaultIsYes is TRUE, then the "Yes" button is the default choice, otherwise the "No" button is the default choice.

Syntax

MsgBox.MiniYesNo (aMsg, defaultIsYes)

Returns

Boolean


MultiInput (MsgBox)
MultiInput

 Allows the user to enter up to 20 text strings. MultiInput returns a list of strings; the return list is empty if the user clicks Cancel. labels is the list of strings used to label each of the input fields. There is one input field per label. defaults is a list of default string values that correspond to the list of labels; the defaults list may be empty. The labels list and the defaults list (if not empty) must have the same number of elements.

  labels = { "catalog number", "size", "color", "price" }
  defaults = { "2Y4445G", "4", "red", "24.99" }
  order = MsgBox.MultiInput( "Make your order", "Order", labels, defaults )
  MsgBox.ListAsString( order, "Here is your order", "LOOK" )

Syntax

MsgBox.MultiInput (aMsg, aTitle, labels, defaults)

Returns

List


MultiList (MsgBox)
MultiList

 Same as MsgBox.List, but allows multiple objects to be selected from aList. The return value is a new list containing references to some of the objects in aList.

Syntax

MsgBox.MultiList (aList, aMsg, aTitle)

Returns

List


MultiListAsString (MsgBox)
MultiListAsString

 Same as MsgBox.ListAsString, but allows multiple objects to be selected from aList. The return value is a new list containing references to some of the objects in aList.

Syntax

MsgBox.MultiListAsString (aList, aMsg, aTitle)

Returns

List


Password (MsgBox)
Password

 Prompts the user for a password and echoes each typed character as a "*". Password returns the password string or nil if the user clicks Cancel.

Syntax

MsgBox.Password

Returns

String


SaveChanges (MsgBox)
SaveChanges

 Displays a platform-specific save-changes dialog. A standard Yes-No-Cancel dialog is shown.

Syntax

MsgBox.SaveChanges (aMsg, aTitle, defaultIsYes)

Returns

Obj


YesNo (MsgBox)
YesNo

 Displays aMsg with Yes and No buttons. YesNo returns TRUE if the user clicks Yes and returns FALSE for No. If defaultIsYes is TRUE, then the "Yes" button is the default choice, otherwise the "No" button is the default choice.

Syntax

MsgBox.YesNo (aMsg, aTitle, defaultIsYes)

Returns

Boolean


YesNoCancel (MsgBox)
YesNoCancel

 Displays aMsg with Yes, No, and Cancel buttons. YesNoCancel returns TRUE if the user clicks Yes, FALSE for No and nil for Cancel. If defaultIsYes is TRUE, then the "Yes" button is the default choice, else if defaultIsYes is FALSE, then "No" is the default choice, else if defaultIsYes is nil, then "Cancel" is the default choice.

Syntax

MsgBox.YesNoCancel (aMsg, aTitle, defaultIsYes)

Returns

Obj


MatchSource
Discussion	Example

 A MatchSource provides matching services to a Feature Theme. The MatchSource carries the information necessary for locating an event on that associated feature theme. A Theme is made matchable by setting its match source attribute to the MatchSource object through the Theme request SetMatchSource. After the MatchSource for a theme is created, you can geocode against the MatchSource.

Inherits From

Obj

Class Requests

Making a Theme Matchable

Make ( anAddStyle, aTheme, aFieldList ) :  MatchSource

Instance Requests

Accessing MatchSource Attributes

GetDefAliasTable  :  VTab

GetDefOffset  :  Number

GetDefSqueeze  :  Number

GetMatchFields  :  List

GetMaxScore  :  Number

GetName  :  String

GetStanRules  :  String

GetXDelimiter  :  String

GetXMatchFields  :  List

GetXMaxScore  :  Number

GetXStanRules  :  String

HasIntersections  :  Boolean

HasZone  :  Boolean

SetDefAliasTable ( AliasTable )

SetDefOffset ( anOffset )

SetDefSqueeze ( aSqueeze )

SetOffset ( anOffset )

SetSqueeze ( aSqueeze )

SetXDelimiter ( delimiter )

Creating a Geocoded data set

BatchMatch ( aGeoName, aGeoNameFTab )

EditMatch ( aGeoName, aGeoNameFTab )

EndMatch

GetPoint ( aMatchCand ) :  Point

GetScore ( RecNo ) :  Number

HasValidIndex  :  Boolean

InitGeoTheme ( aGeoName ) :  VTab

InvalIndex

IsMatched ( RecNo ) :  Boolean

OpenIndex

Search ( aMatchKey, SpellWeight, aMatchCase ) :  Number

ShowCandidate ( aMatchCand )

SingleMatch ( aMatchPref, AddressStr, ZoneStr ) :  Point

WriteMatch ( RecNo, aMatchKey, aMatchCand )

WriteUnMatch ( RecNo, aMatchKey )

__________

See also

AddressStyle
Theme
MatchCand
GeoName
MatchField
MatchCase


Make (MatchSource)
Make
Example

Makes a MatchSource object from aTheme using the address style anAddStyle. Use anAddressStyle.FindStyle to get the address style. You need to rerun the FindStyle request for each MatchSource you want to make. aFieldList is the list of fields from aTheme's FTab that corresponds to the list of MatchFields in the address style.

aFieldList MUST be constructed with caution - the fields in a FieldList associate with the MatchFields by position in the list. Use NIL to hold the "place" of unused optional fields. Search for Help on "Address Styles" in the on-line help for information about which fields are required, or use the MatchField IsRequired request to determine if a MatchField requires a corresponding FTab field.

To make aTheme matchable, you must issue the Theme request SetMatchSource.

Syntax

MatchSource.Make (anAddStyle, aTheme, aFieldList)

Returns

MatchSource


GetDefAliasTable (MatchSource)
GetDefAliasTable

 Gets aMatchSource's default place name alias table.

Syntax

aMatchSource.GetDefAliasTable

Returns

VTab


GetDefOffset (MatchSource)
GetDefOffset

 Gets aMatchSource's default offset value. The default offset value is used by the LocateDialog to offset the matched location from the line segment and is used as the default offset in the GeocodeDialog. A default offset of -1 indicates that the GeocodeDialog will not display the option for setting offset and left or right side will not be stored to an output geocoded theme. Any other value will be displayed as the default offset value in the GeocodeDialog.

Syntax

aMatchSource.GetDefOffset

Returns

Number


GetDefSqueeze (MatchSource)
GetDefSqueeze

 Gets aMatchSource's default squeeze value. The squeeze value is used to squeeze the geocoded points towards the middle of the line segment. The squeeze value is expressed as a percentage of the line segment's length, such as 5 percent.

Syntax

aMatchSource.GetDefSqueeze

Returns

Number


GetMatchFields (MatchSource)
GetMatchFields

 Gets aMatchSource's MatchFields. The returned MatchField List can be used to find the corresponding Fields in the matchable Theme's FTab.

Syntax

aMatchSource.GetMatchFields

Returns

List


GetMaxScore (MatchSource)
GetMaxScore

 Gets aMatchSource's maximum match score value.

Syntax

aMatchSource.GetMaxScore

Returns

Number


GetName (MatchSource)
GetName

 Gets aMatchSource's address style name.

Syntax

aMatchSource.GetName

Returns

String


GetStanRules (MatchSource)
GetStanRules
Example

 Gets the name of aMatchSource's standardization rules. Standardization rules reside in $AVHOME/geocode and have the .stn suffix.

A MatchSource may contain more than one standardization rule depending on what address style was applied to the MatchSource. If the address style also allows intersection geocoding, the MatchSource will also use intersection standardization rules. Use GetXStanRules to get the intersection standardization rules.

Syntax

aMatchSource.GetStanRules

Returns

String


GetXDelimiter (MatchSource)
GetXDelimiter

 Gets aMatchSource's event intersection delimiter. The intersection delimiter is used to delimit the left and right halves of an intersection event.

Syntax

aMatchSource.GetXDelimiter

Returns

String


GetXMatchFields (MatchSource)
GetXMatchFields

 Gets aMatchSource's intersection Match Fields.

Syntax

aMatchSource.GetXMatchFields

Returns

List


GetXMaxScore (MatchSource)
GetXMaxScore

 Gets aMatchSource's intersection maximum match score value.

Syntax

aMatchSource.GetXMaxScore

Returns

Number


GetXStanRules (MatchSource)
GetXStanRules
Example

 Gets the name of aMatchSource's intersection standardization rules. Standardization rules reside in $AVHOME/geocode and have the .stn suffix.

Syntax

aMatchSource.GetXStanRules

Returns

String


HasIntersections (MatchSource)
HasIntersections

 Returns TRUE if aMatchSource can match intersections.

Syntax

aMatchSource.HasIntersections

Returns

Boolean


HasZone (MatchSource)
HasZone

 Returns TRUE if aMatchSource considers zone while matching.

Syntax

aMatchSource.HasZone

Returns

Boolean


SetDefAliasTable (MatchSource)
SetDefAliasTable
Example

 Sets aMatchSource's default place name alias table. Search for Help on "place name aliases" for information about how to set up a place name alias table.

If you geocode addresses using the MatchKey and MatchCase objects, after you have created the MatchKey, set the alias table to the MatchKey using the aMatchKey.SetAliasTable request.

aMatchKey.SetAliasTable (aliasVTab)

Syntax

aMatchSource.SetDefAliasTable (AliasTable)


SetDefOffset (MatchSource)
SetDefOffset

 Sets aMatchSource's default offset value to anOffset. The default offset value is used by the LocateDialog to offset the matched location from the line segment and as the default offset value in the GeocodeDialog. A default offset of -1 indicates that the GeocodeDialog will not display the option for setting offset and left or right side will not be stored to an output geocoded theme. Any other value will be displayed as the default offset value in the GeocodeDialog.

Syntax

aMatchSource.SetDefOffset (anOffset)


SetDefSqueeze (MatchSource)
SetDefSqueeze

 Sets aMatchSource's default squeeze value to aSqueeze. The squeeze value is used to squeeze geocoded points towards the middle of the line segment. The squeeze value is expressed as a percentage of the line segment's length, such as 5 percent.

Syntax

aMatchSource.SetDefSqueeze (aSqueeze)


SetOffset (MatchSource)
SetOffset

 Sets aMatchSource's active offset value. The active offset is used by aMatchSource.GetPoint to offset the matched location from the line segment. Note that the LocateDialog uses the default offset which can be set using aMatchSource.SetDefOffset.

Syntax

aMatchSource.SetOffset (anOffset)


SetSqueeze (MatchSource)
SetSqueeze

 Sets aMatchSource's active squeeze value. The active squeeze is used by aMatchSource.GetPoint to squeeze the geocoded points towards the middle of the line segment. The squeeze value is expressed as a percentage of the line segment's length, such as 5 percent. Note that the LocateDialog uses the default squeeze which can be set using aMatchSource.SetDefSqueeze.

Syntax

aMatchSource.SetSqueeze (aSqueeze)


SetXDelimiter (MatchSource)
SetXDelimiter

 Sets aMatchSource's event intersection delimiter. The intersection delimiter is used to delimit the left and right halves of an intersection event.

Syntax

aMatchSource.SetXDelimiter (delimiter)


BatchMatch (MatchSource)
BatchMatch
Example

 Performs batch mode geocoding on the input FTab. aGeoNameFTab is the feature table of the geocoded data set defined by aGeoName. You don't need to run EndMatch after the process. BatchMatch will reset the MatchSource and close the index when it is done.

Syntax

aMatchSource.BatchMatch (aGeoName, aGeoNameFTab)


EditMatch (MatchSource)
EditMatch
Example

 Geocodes addresses or edits a geocoded data set interactively using the Geocoding Editor. aGeoNameFTab is the feature table of the geocoded data set defined by aGeoName. You don't need to run EndMatch after the process. EditMatch will reset the MatchSource and close the index when it is done.

Syntax

aMatchSource.EditMatch (aGeoName, aGeoNameFTab)


EndMatch (MatchSource)
EndMatch

 Ends a matching session. Issue this command after the Search request to reset the MatchSource. EndMatch closes the index file which is opened using the InitGeoTheme or OpenIndex requests.

Syntax

aMatchSource.EndMatch


GetPoint (MatchSource)
GetPoint

 Gets the location (point) for aMatchCand. aMatchSoure.GetPoint returns a reference to MatchSource's point buffer. The point must be cloned if aMatchSource.GetPoint is to be called multiple times inside of a loop.

Syntax

aMatchSource.GetPoint (aMatchCand)

Returns

Point


GetScore (MatchSource)
GetScore

 Returns the match score for the event at RecNo record in the geocoded table. GetScore can be issued only after InitGeoTheme has been issued; the geocoded theme is the theme identified by the InitGeoTheme argument aGeoName.

Syntax

aMatchSource.GetScore (RecNo)

Returns

Number


HasValidIndex (MatchSource)
HasValidIndex

 Returns true if aMatchSource's index is currently valid. An invalid index will be rebuilt the next time a Search request is issued.

Syntax

aMatchSource.HasValidIndex

Returns

Boolean


InitGeoTheme (MatchSource)
InitGeoTheme
Example

 Creates and returns a geocoded data set. The new geocoded theme is initialized using aGeoName's event table. Each event is given a NULL shape and its match status is set to unmatched. The new FTab can be geocoded using aMatchSource.EditMatch, aMatchSource.BatchMatch or using aMatchSource.Search and aMatchSource.WriteMatch/WriteUnMatch.

Syntax

aMatchSource.InitGeoTheme (aGeoName)

Returns

VTab


InvalIndex (MatchSource)
InvalIndex

 Sets aMatchSource's index to be invalid. An invalid index will be rebuild the next time a Search request is issued.

Syntax

aMatchSource.InvalIndex


IsMatched (MatchSource)
IsMatched

 Returns TRUE if the event at RecNo record in the geocoded theme has a match. IsMatched can be issued only after InitGeoTheme has been issued; the geocoded theme is the theme identified by the InitGeoTheme argument aGeoName.

Syntax

aMatchSource.IsMatched (RecNo)

Returns

Boolean


OpenIndex (MatchSource)
OpenIndex
Example

 Opens the index for aMatchSource. Use OpenIndex when you want to locate addresses but do not want to create a geocoded theme. For example, you may simply want the point location of an address. If you are creating a geocoded theme, DO NOT USE OpenIndex; InitGeoTheme handles the indexing.

The MatchSource index is recreated if the index file is stale or cannot be found. Otherwise, the index is simply opened. You must index the match source if you do single matching. The index is closed using the MatchSource request EndMatch; you must close the index.

Syntax

aMatchSource.OpenIndex


Search (MatchSource)
Search
Example

 Searches aMatchSource given aMatchKey and spelling weight adding candidates to aMatchCase. Spelling weights should be in the range of 0 to 100 with 80 being a good default weight value. Search returns the number of candidates found. After completing the search, use MatchCase requests to ScoreCandidates and retrieve - GetBestCand, GetNthCand.

Before you use the Search request to search for candidates, you must use aMatchSource.OpenIndex to open the index for aMatchSource if you are not creating a geocoded theme by issuing the request InitGeoTheme.

Syntax

aMatchSource.Search (aMatchKey, SpellWeight, aMatchCase)

Returns

Number


ShowCandidate (MatchSource)
ShowCandidate

 Flashes the given candidate in the view.

Syntax

aMatchSource.ShowCandidate (aMatchCand)


SingleMatch (MatchSource)
SingleMatch
Example

 Matches a single address or a single address with zone and returns the geocoded point. If the address cannot be matched, a null point is returned.

Syntax

aMatchSource.SingleMatch (aMatchPref, AddressStr, ZoneStr)

Returns

Point


WriteMatch (MatchSource)
WriteMatch

 Writes a matched record to the address table. RecNo is the record number in the address table. aMatchKey identifies the MatchKey. aMatchCand is the selected candidate. WriteMatch requires that InitGeoTheme has first been issued to initialize the address table.

Syntax

aMatchSource.WriteMatch (RecNo, aMatchKey, aMatchCand)


WriteUnMatch (MatchSource)
WriteUnMatch

 Writes an unmatched record to the address table. The unmatched record has an empty point field. RecNo is the record number in the address table and aMatchKey is the MatchKey. WriteUnMatch requires that InitGeoTheme has first been issued to initialize the address table.

Syntax

aMatchSource.WriteUnMatch (RecNo, aMatchKey)


NameDictionary

 A dictionary is a collection of key/value pairs. In a generic dictionary, the key is any object which identifies any other object called the value. In a Name Dictionary, the key for an object is its name. This constraint allows us to implement this type of dictionary more efficiently than if the key/value relationship were arbitrary.

If you change the name of an object while it is in a name dictionary, the name dictionary may get corrupted. If you need to change an object's name, remove it, rename it, then re-add.

If you are adding a Boolean object to a name dictionary, you should clone that object first. For example,

   bool1 = TRUE.Clone
   bool1.SetName("aName")
   aNameDict.Set(bool1)

Inherits From

Collection

Class Requests

Creating a NameDictionary

Make ( size ) :  NameDictionary

Instance Requests

Updating a NameDictionary

Add ( anObj ) :  Boolean

Get ( aName ) :  Obj

GetSize  :  Number

Remove ( aName ) :  Boolean

Set ( anObj )

SetSize ( newSize )

Examining a NameDictionary

Count  :  Number

ReturnKeys  :  List

Operating on Entire NameDictionaries

+ anotherCollection :  Collection

AsList  :  List

ForceMerge ( anotherNameDictionary ) :  Collection

Merge ( anotherNameDictionary ) :  Collection

Object Management

Empty

__________

See also

List
Dictionary


Make (NameDictionary)
Make

See Dictionary.Make.

Syntax

NameDictionary.Make (size)

Returns

NameDictionary


Add (NameDictionary)
Add

 Adds anObj to the dictionary. If the dictionary contains no object referenced by anObj's name, Add inserts anObj and returns TRUE. If an object referenced by anObj's name already exists, Add does NOT insert anObj and returns FALSE.

Syntax

aNameDictionary.Add (anObj)

Returns

Boolean


Get (NameDictionary)
Get

 Gets the object associated with aName. Get returns nil if the dictionary contains no object referenced by aName.

Syntax

aNameDictionary.Get (aName)

Returns

Obj


GetSize (NameDictionary)
GetSize

 Gets the size of the dictionary. Size is the pre-allocated size specified with the Make request or altered with SetSize. Interrogate the number of elements in the dictionary with the Count request.

Syntax

aNameDictionary.GetSize

Returns

Number


Remove (NameDictionary)
Remove

 Removes the object identified by aName from the dictionary. Remove returns TRUE if the dictionary contained an object referenced by aName and FALSE if no such object existed.

Syntax

aNameDictionary.Remove (aName)

Returns

Boolean


Set (NameDictionary)
Set

 Similar to the Add request, Set adds the object to the dictionary, but, if anObj has the same name as any existing object in the dictionary, it replaces the existing object with anObj. More efficient than Add, use Set when it really doesn't matter whether the dictionary already contains an object with the same name or not.

Syntax

aNameDictionary.Set (anObj)


SetSize (NameDictionary)
SetSize

 Sets the size of the dictionary to newSize.

Syntax

aNameDictionary.SetSize (newSize)


Count (NameDictionary)
Count

 Returns the number of objects currently stored in the dictionary.

Syntax

aNameDictionary.Count

Returns

Number


ReturnKeys (NameDictionary)
ReturnKeys

Creates a list of the current object names stored in aNameDictionary and returns that list.

Syntax

aNameDictionary.ReturnKeys

Returns

List


+ (NameDictionary)
+

Produces either a new dictionary or a new list by merging the values from aNameDictionary and anotherCollection. A dictionary is produced when anotherCollection is also a dictionary. Only values with unique keys are added to the result.

Syntax

aNameDictionary + anotherCollection

Returns

Collection


AsList (NameDictionary)
AsList

Returns the list of objects in the aNameDictionary. The objects are not ordered.

Syntax

aNameDictionary.AsList

Returns

List


ForceMerge (NameDictionary)
ForceMerge

Merges the values from anotherCollection into aNameDictionary. Associations in aNameDictionary are replaced if they have keys equals to those in anotherNameDictionary.

Syntax

aNameDictionary.ForceMerge (anotherNameDictionary)

Returns

Collection


Merge (NameDictionary)
Merge

Merges the assocations from anotherCollection into aNameDictionary. Associations in aNameDictionary are not replaced when they have keys equal to those in anotherNameDictionary.

Syntax

aNameDictionary.Merge (anotherNameDictionary)

Returns

Collection


Empty (NameDictionary)
Empty

Removes all elements of aNameDictionary.

Syntax

aNameDictionary.Empty


Nearside
Discussion	Example

 This class implements the Vertical Near-Side Perspective projection.

Inherits From

Perspective

Class Requests

Creating Vertical Near-Side Perspective Projections

CanDoCustom  :  Boolean

Make ( anExtent ) :  Nearside

Instance Requests

Vertical Near-Side Perspective Parameters

ReturnHeight  :  Number

SetHeight ( aHeight )

__________

See also

Spheroid
CoordSys


CanDoCustom (Nearside)
CanDoCustom

Returns TRUE if a class of projections supports customization and FALSE if it only supports fixed parameters. The Nearside class always returns TRUE.

Syntax

Nearside.CanDoCustom

Returns

Boolean


Make (Nearside)
Make
Example

Creates a Vertical Near-Side Perspective projection. anExtent is the bounding rectangle of the area being projected. Use decimal degrees for the coordinates of anExtent.

Syntax

Nearside.Make (anExtent)

Returns

Nearside


ReturnHeight (Nearside)
ReturnHeight

Returns the height of the viewpoint above the earth's surface. Do not call this if this is an orthographic projection, since the height is really infinity and therefore can't be returned as a number. aHeight is the height of the viewpoint above the earth's surface in meters.

Syntax

aNearside.ReturnHeight

Returns

Number


SetHeight (Nearside)
SetHeight
Example

Sets the viewpoint to the given height above the earth's surface. aHeight is the height of the viewpoint above the earth's surface in meters.

Syntax

aNearside.SetHeight (aHeight)


NewZealand
Discussion	Example

 This class implements the Cauchy-Rieman based general conformal projection used for the New Zealand National Grid. DO NOT USE IT FOR ANY PROJECTION OTHER THAN NEW ZEALAND.

Inherits From

Prj

Class Requests

Creating New Zealand Projections

CanDoCustom  :  Boolean

CanDoSpheroid  :  Boolean

Make ( aRect ) :  NewZealand

Instance Requests

Projecting and unprojecting points

ProjectPt ( aPoint ) :  Boolean

UnProjectPt ( aPoint ) :  Boolean

New Zealand Parameters

CalcHorizon

Recalculate

__________

See also

Spheroid
CoordSys


CanDoCustom (NewZealand)
CanDoCustom

Returns TRUE if a class of projections supports customization and FALSE if it only supports fixed parameters. The NewZealand class always returns FALSE.

Syntax

NewZealand.CanDoCustom

Returns

Boolean


CanDoSpheroid (NewZealand)
CanDoSpheroid

Returns TRUE if a class of projection supports arbitrary spheroids and FALSE if it only supports the sphere. The NewZealand class always returns TRUE.

Syntax

NewZealand.CanDoSpheroid

Returns

Boolean


Make (NewZealand)
Make
Example

Create a Cauchy-Rieman projection object with its internal parameters set to correct values for the New Zealand National Grid. The argument is there only for consistency with the Prj superclass and is ignored.

Use decimal degrees for the coordinates of aRect.

Syntax

NewZealand.Make (aRect)

Returns

NewZealand


ProjectPt (NewZealand)
ProjectPt
Example

Projects the point aPoint. Returns TRUE if aPoint is visible, FALSE otherwise; however, this always returns a point.

Syntax

aNewZealand.ProjectPt (aPoint)

Returns

Boolean


UnProjectPt (NewZealand)
UnProjectPt
Example

Unprojects the point aPoint. Returns TRUE if aPoint can be unprojected, FALSE otherwise; however, this always returns a point.

Syntax

aNewZealand.UnProjectPt (aPoint)

Returns

Boolean


CalcHorizon (NewZealand)
CalcHorizon

Calculates the polygon representing the boundary of the visible area of the earth in projected space.

Syntax

aNewZealand.CalcHorizon


Recalculate (NewZealand)
Recalculate

Updates the internal parameters of the projection. This must be called after changing any parameters of the New Zealand projection.

Syntax

aNewZealand.Recalculate


Font

 A Font is a font or typeface. There can be many instances of a Font in the system at one time. A Font can be created in one of several ways: 1) The MakeDefault request can be called which creates a default instance of a font (the particular font that gets created for default is Helvetica or very similar), 2) The MakeStandard request can be called which creates one of the standard 12 fonts available on any platform (see FontEnum for what the standard fonts are), 3) The Make request can be called which creates an instance of a Font based on the font family and style names. A list of available font families and styles can be retreived using the FontManager.

To the Avenue programmer, a Font object is meaningful within the context of a TextSymbol, aMarkerSymbol of style pattern, and of a VectorPenMarker or VectorPenVertexMarker. As system resources go, fonts are expensive, and should be reused wherever possible, rather than creating new instances of the same font. For instance, the GraphicLabel class, introduced in ArcView 3.0, takes special care to reuse font objects by using just one font object in many text labels.

In the Windows environment, ArcView learns about which fonts it can use from the Windows Font Manager. In a UNIX environment ArcView learns about the fonts it has access to from a file called font.ndx which is located in the $AVHOME/etc directory. When ArcView starts up, it initializes the list of fonts that it can use from these sources and that list remains static throughout the runtime of that ArcView session, thus if you want to add to the fonts that ArcView knows about you must restart ArcView.

Attributes

Family.The Family is the font family the font belongs to such as Helvetica or TimesRoman.

Style.The Style is "Bold", "Italic", or a similar style of the Font.

Inherits From

Obj

Enumerations

FontWgtEnum

FontWidenessEnum

FontEnum

Class Requests

Making Fonts

GetDefault  :  Font

Make ( aFamilyName, aStyleName ) :  Font

MakeDefault  :  Font

MakeStandard ( FontEnum ) :  Font

SetDefault ( aFamilyName, aStyleName ) :  Font

Instance Requests

Generic Object Managements

= anotherFont :  Boolean

Getting and Setting Attributes

GetFamily  :  String

GetStyle  :  String

SetStyle ( aStyleName )

__________

See also

FontManager
TextSymbol


GetDefault (Font)
GetDefault

Same as MakeDefault, but always returns the same default font object. If you obtain a font object via this request, then send the request SetDefault to the Font class, then obtain another font object via GetDefault, those two font objects will be distinct. SetDefault generates a new default font object which is returned by subsequent calls to GetDefault.

Syntax

Font.GetDefault

Returns

Font


Make (Font)
Make

Makes a Font of aFamilyName and aStyleName.

Syntax

Font.Make (aFamilyName, aStyleName)

Returns

Font


MakeDefault (Font)
MakeDefault

Makes a default Font.

Syntax

Font.MakeDefault

Returns

Font


MakeStandard (Font)
MakeStandard

Makes a standard system-independent font.

Syntax

Font.MakeStandard (FontEnum)

Returns

Font


SetDefault (Font)
SetDefault

Sets a default Font to aFamilyName and aStyleName. Subsequent calls to MakeDefault and GetDefault will be affected by this.

Syntax

Font.SetDefault (aFamilyName, aStyleName)

Returns

Font


= (Font)
=

Returns True if a aFont and anotherFont reference the same font objector, if they are different objects, they have the same settings.

Syntax

aFont = anotherFont

Returns

Boolean


GetFamily (Font)
GetFamily

Gets the family name of aFont.

Syntax

aFont.GetFamily

Returns

String


GetStyle (Font)
GetStyle

Gets the style name of aFont.

Syntax

aFont.GetStyle

Returns

String


SetStyle (Font)
SetStyle

Sets the style name of aFont.

Syntax

aFont.SetStyle (aStyleName)


FontWgtEnum

 Defines the weight of the font or how thick the strokes making up the letters are.

#FONT_WGT_NORMAL

Normal strokes

#FONT_WGT_THICK

Thick strokes

#FONT_WGT_THIN

Thin strokes


FontWidenessEnum

 Defines the wideness of the font face. The wideness is constant for a given face and has to do with whether a font face is condensed, normal, or wide. This is unlike the concept of width, which defines how wide the characters are in page coordinates.

#FONT_WIDENESS_CONDENSED

Closer together characters

#FONT_WIDENESS_NORMAL

Normal width

#FONT_WIDENESS_WIDE

Wide characters


FontEnum

 Defines the platform independent font faces.

#FONT_COUR

Courier-Roman

#FONT_COURB

Courier-Bold

#FONT_COURBI

Courier-BoldItalic

#FONT_COURI

Courier-Italic

#FONT_HELV

Helvetica-Roman

#FONT_HELVB

Helvetica-Bold

#FONT_HELVBI

Helvetica-BoldItalic

#FONT_HELVI

Helvetica-Italic

#FONT_TIME

Times-Roman

#FONT_TIMEB

Times-Bold

#FONT_TIMEBI

Times-BoldItalic

#FONT_TIMEI

Times-Italic

#FONT_GOTHM

GothicBBB-Medium-H

#FONT_GOTHMH

GothicBBB-Medium-Hankaku


FontManager

 The FontManager manages the fonts available within the system. There is a single instance of the FontManager within the system. Requests to the FontManager include those which indicate the available font families and the styles within those families, as well as retreiving attributes of a given font family/style combination.

To inquire from the system what font families are available, you use the ReturnFamilies request, which returns a list of available font family names. To get a list of styles available for a given font family, you use the ReturnStyles, and pass the name of the family your inquiring about.

You can get information on a font's Weight, Wideness, Bold, Italic, MonoSpaced, and Serif by calling the appropriate request.

Inherits From

Obj

Class Requests

Making FontManagers

The  :  FontManager

Instance Requests

Getting information from the FontManager

GetWeight ( aFamilyName, aStyleName ) :  FontWgtEnum

GetWideness ( aFamilyName, aStyleName ) :  FontWidenessEnum

HasStyle ( aFamilyName, aStyleName ) :  Boolean

IsBold ( aFamilyName, aStyleName ) :  Boolean

IsItalic ( aFamilyName, aStyleName ) :  Boolean

IsMonoSpaced ( aFamilyName, aStyleName ) :  Boolean

IsSerif ( aFamilyName, aStyleName ) :  Boolean

ReturnCommonFamilyName ( aFamilyName ) :  String

ReturnFamilies  :  List

ReturnFontName ( aFamilyName, aStyleName ) :  String

ReturnStyles ( aFamilyName ) :  List

__________

See also

Font
SymbolWin
TextSymbol
Symbol


The (FontManager)
The

Returns the FontManager.

Syntax

FontManager.The

Returns

FontManager


GetWeight (FontManager)
GetWeight

Gets the weight of aFamilyName in aStyleName.

Syntax

aFontManager.GetWeight (aFamilyName, aStyleName)

Returns

FontWgtEnum


GetWideness (FontManager)
GetWideness

Gets the wideness of aFamilyName in aStyleName.

Syntax

aFontManager.GetWideness (aFamilyName, aStyleName)

Returns

FontWidenessEnum


HasStyle (FontManager)
HasStyle

Returns TRUE if aFamilyName includes aStyleName, otherwise returns FALSE.

Syntax

aFontManager.HasStyle (aFamilyName, aStyleName)

Returns

Boolean


IsBold (FontManager)
IsBold

Returns TRUE if aFamilyName and aStyleName is bold, otherwise returns FALSE.

Syntax

aFontManager.IsBold (aFamilyName, aStyleName)

Returns

Boolean


IsItalic (FontManager)
IsItalic

Returns TRUE if aFamilyName and aStyleName is italic, otherwise returns FALSE.

Syntax

aFontManager.IsItalic (aFamilyName, aStyleName)

Returns

Boolean


IsMonoSpaced (FontManager)
IsMonoSpaced

Returns TRUE if aFamilyName and aStyleName is mono-spaced, otherwise returns FALSE.

Syntax

aFontManager.IsMonoSpaced (aFamilyName, aStyleName)

Returns

Boolean


IsSerif (FontManager)
IsSerif

Returns TRUE if aFamilyName and aStyleName has serifs, otherwise returns FALSE.

Syntax

aFontManager.IsSerif (aFamilyName, aStyleName)

Returns

Boolean


ReturnCommonFamilyName (FontManager)
ReturnCommonFamilyName

Returns the common name of aFamilyName. If the family has no common name, it returns NIL. Look at the file $AVHOME/etc/comftnam.dat for the a list of family names and common names.

Syntax

aFontManager.ReturnCommonFamilyName (aFamilyName)

Returns

String


ReturnFamilies (FontManager)
ReturnFamilies

Returns a list of font families available on this machine.

Syntax

aFontManager.ReturnFamilies

Returns

List


ReturnFontName (FontManager)
ReturnFontName

Returns the font name given aFamilyName and aStyleName.

Syntax

aFontManager.ReturnFontName (aFamilyName, aStyleName)

Returns

String


ReturnStyles (FontManager)
ReturnStyles

Returns a list of styles in aFamilyName.

Syntax

aFontManager.ReturnStyles (aFamilyName)

Returns

List


Nil

 The Nil class defines the characteristics of the sole 'value-less' object in the Avenue system. This object is called nil.

Inherits From

Value

Instance Requests

The Nil object

= anObj :  Boolean

AsString  :  String

__________

See also

Boolean
String
Number


= (Nil)
=

Returns TRUE if anObj is nil.

Syntax

nil = anObj

Returns

Boolean


AsString (Nil)
AsString

Returns the string "nil".

Syntax

nil.AsString

Returns

String


NorthArrowMgr

 NorthArrowMgr manages the application's north arrow list. Use the NorthArrow request Edit to display the NorthArrowMgr dialog box. NorthArrowMgr reads the current set of north arrows from $HOME/north.def (if the file exists) or from the default $AVHOME/etc/north.def.

The NorthArrowMgr requests Add and Merge create (if not already created) and alter the file $HOME/north.def including the user specified north arrows in the file.

Inherits From

ModalDialog

Class Requests

Adding NorthArrows to NorthArrowMgr

Add ( aGraphic )

Merge ( aListofGraphics )

__________

See also

NorthArrow
Graphic


Add (NorthArrowMgr)
Add

 Adds aGraphic to the list of available NorthArrows. Add creates or updates the file $HOME/north.def.

Syntax

NorthArrowMgr.Add (aGraphic)


Merge (NorthArrowMgr)
Merge

 Adds a list of graphics to available NorthArrows. Merge creates or updates the file $HOME/north.def.

Syntax

NorthArrowMgr.Merge (aListofGraphics)


Pixmap
Related Topics

 A PixMap is a generic bitmap representation of something that is on a display object. The pixmap object supports creating export images for the ArcView Internet Map Server Extension. The purpose is to be able specify a rectangle for the extent of what is to be captured in the exported image and the size in pixels that the representation will be exported to. The pixmap class has no practical value to you as an Avenue programmer unless you intend to export a JPEG image from a layout's display. Here is how you might do that:

 theLayout = av.GetProject.FindDoc("Layout1")
 theLayout.GetDisplay.Flush 'Draws what you want to see in your image
 theLayout.Draw(theLayout.GetDisplay)
 ' You can make this any rectangle on the display that you
 ' wish to define.  This is convenient for exporting only a
 ' small part of the display.
 thePixMap = theLayout.GetDisplay.ReturnPixMap(theLayout.GetDisplay.ReturnVisExtent)
 theImageFileName = "$TEMP/myimage.jpg".AsFileName
 theExportStatus = thePixMap.ExportToJPEG(theImageFileName,80,false)
 if (theExportStatus = false) then
   'The image could not be exported take appropriate actions
 else
   'The image was successfully exported, so take appropriate actions
 end

Inherits From

Obj


Number
Discussion	Related Topics

 A Number is a kind of Value in Avenue. Like all other objects in the ArcView system, numbers are manipulated by sending them requests. For example, 1 + 2 is interpreted as The 1 object is sent the request Plus with parameter 2. The object 3 is produced as the result of evaluating the request.

Operator Precedence

Avenue operator precedence is strictly left to right. In the following equation, x receives the value 24. With traditional precedence rules, the equation yields the value 14.

  x = 5 + 3 * 3

Avenue evaluates parenthetic expressions first. With parentheses, the above equation can be modified to yield expected results.

  x = 5 + (3 * 3)

Null numbers

Avenue supports the concept of a null number. A Null number differs from the nil object; a null number is a number object with a null value where the nil object is an instance of the nil class. A null number defeats any calculation of which is it a part. For example, 2*3 + <the null number> produces a null number as a result. Invalid numeric operations return the null number. For example, -4.Sqrt.IsNull returns TRUE. When issued an AsString request, the null number returns "Number null".

Formatting

The number class, scripts, and individual numbers each have a property called the format string. This string controls the output of the AsString request. It also controls what kind of strings can accept the AsNumber request. The format string contains one or more d's with one character other than 'd' also possibly appearing. The d's represent digits. The other character is called the radix character, also known as the decimal point. Digits to the left of the radix character indicate that "at least this many digits" are to be displayed. Digits to the right of the radix character indicate that "exactly this many digits" are to be displayed. Here is an example:

  "d.dd" - at least one digit to the left of the decimal point and exactly
           two characters to the right.

When using numbers, you can accept the system default format. For numbers less than about 10^6, this format prints integers without any decimal point, and prints floating point numbers with six digits of precision. For numbers greater than 10^6, scientific notation is used. Also with the default format, the decimal point changes to a comma in European countries.

You can define a custom default format string for the application, for individual scripts or for individual numbers.

 Number.SetDefFormat( "d.ddd" )     ' application default

 aScript.SetNumberFormat( "d,dddd") ' script default

 aNumber.SetFormat( "dd" )          ' object

A number object checks first for a format on the object, next for a format on the script, next for a customization for the application and last uses the system default.

The application default remains until you disable it or you end your ArcView session. The application default is NOT saved with projects you may have run during the session. You must reset the application default on each invocation of ArcView (perhaps use the application startup script). The script default remains through the execution of the defining script. The instance default remains for the life of that instance.

To remove a format, pass the empty string instead of a format string. For example, aNumber.SetFormat( "" ) removes the instance format. Removing a number instance format, the format returns to the script format. Removing a script instance format, the format returns to the system format. And removing the application format, the format returns to the system default format.

The current default format (either application or script) determines the behavior of the AsNumber request on string objects. For example, if the custom format string is "d,dd", then "1,30".AsNumber produces the quantity one and three/tenths, but "1.30".AsNumber fails.

Inherits From

Value

Class Requests

Numbers

GetDefFormat  :  String

GetEuler  :  Number

GetPi  :  Number

MakeNull  :  Number

MakeRandom ( min, max ) :  Number

SetDefFormat ( aFormatString )

Instance Requests

Formatting Numbers

GetFormat  :  String

SetFormat ( aFormatString ) :  Number

SetFormatPrecision ( num ) :  Number

Numeric Conversions

.. anotherNumber :  Interval

@ Y :  Point

AsChar  :  String

AsDate  :  Date

AsDays  :  Duration

AsDegrees  :  Number

AsHexString  :  String

AsHours  :  Duration

AsMinutes  :  Duration

AsRadians  :  Number

AsSeconds  :  Duration

AsString  :  String

AsYears  :  Duration

Arithmetic Operations

* anotherNumber :  Number

+ anotherNumber :  Number

- anotherNumber :  Number

/ anotherNumber :  Number

Negate  :  Number

^ anotherNumber :  Number

Numeric Classification

= anotherNumber :  Boolean

IsInfinity  :  Boolean

IsNull  :  Boolean

Max anotherNumber :  Number

Min anotherNumber :  Number

Numeric Functions

Abs  :  Number

ACos  :  Number

ASin  :  Number

ATan  :  Number

Ceiling  :  Number

Cos  :  Number

Floor  :  Number

Ln  :  Number

Log ( aBase ) :  Number

Mod anotherNumber :  Number

Round  :  Number

Sin  :  Number

Sqrt  :  Number

Tan  :  Number

Truncate  :  Number

__________

See also

Script
Interval
Date
String


GetDefFormat (Number)
GetDefFormat

Returns the current default format string or NIL when the system default is being used.

Syntax

Number.GetDefFormat

Returns

String


GetEuler (Number)
GetEuler

 Gets Euler's Number (e, the base of natural logarithms).

Syntax

Number.GetEuler

Returns

Number


GetPi (Number)
GetPi

 Gets pi.

Syntax

Number.GetPi

Returns

Number


MakeNull (Number)
MakeNull

Makes a null number object.

Syntax

Number.MakeNull

Returns

Number


MakeRandom (Number)
MakeRandom

 Returns a random number between min and max inclusive. UNIX systems base MakeRandom on the system service rand() which is not a great random number generator (see man pages for details).

Syntax

Number.MakeRandom (min, max)

Returns

Number


SetDefFormat (Number)
SetDefFormat

 Sets the default numeric string format to be aFormatString. Any existing number objects which do not have overriding formatting strings attached to them (through the script default or the number object default) will use this format string. Sending "" or nil as the format string will install the system default string as the current default.

Syntax

Number.SetDefFormat (aFormatString)


GetFormat (Number)
GetFormat

Gets the current format string used by aNumber. Nil is returned if aNumber is using the either the script object's or the Number class's format string.

Syntax

aNumber.GetFormat

Returns

String


SetFormat (Number)
SetFormat

Sets the format control string for aNumber to be aFormatString. aNumber will then ignore any default format used by the script object or Number class. To nullify the effect of a previously installed format string, send SetFormat("") to aNumber. aNumber will then use the current default format string.

Syntax

aNumber.SetFormat (aFormatString)

Returns

Number


SetFormatPrecision (Number)
SetFormatPrecision

 Sets the number of decimal digits to round off when formatting aNumber to num. This does not change the value of aNumber. It has the same effect as SetFormat except that it does not change the radix character. For example, if num = 3, aNumber will be formatted as d.ddd or d,ddd depending on what the radix character has been set to.

Syntax

aNumber.SetFormatPrecision (num)

Returns

Number


.. (Number)
..

 Creates an Interval over aNumber, anotherNumber .

Syntax

aNumber .. anotherNumber

Returns

Interval


@ (Number)
@

Creates a point. X is the X coordinate and Y is the Y coordinate.

Syntax

X @ Y

Returns

Point


AsChar (Number)
AsChar

 Returns a string with one character. That character is the ASCII byte whose value is aNumber.

Syntax

aNumber.AsChar

Returns

String


AsDate (Number)
AsDate

Returns a new date object whose year is obtained from the first four (most significant) digits of aNumber, whose month is obtained from the fifth and sixth digits, and whose day of the month is obtained from the last 2 digits.

Syntax

aNumber.AsDate

Returns

Date


AsDays (Number)
AsDays

 Creates a new Duration object spanning aNumber of days.

Syntax

aNumber.AsDays

Returns

Duration


AsDegrees (Number)
AsDegrees

 Assumes aNumber is a radian measure and returns the same measure in degrees.

Syntax

aNumber.AsDegrees

Returns

Number


AsHexString (Number)
AsHexString

 Returns a hexadecimal string representation of aNumber.

Syntax

aNumber.AsHexString

Returns

String


AsHours (Number)
AsHours

 Creates a new Duration object spanning aNumber of hours.

Syntax

aNumber.AsHours

Returns

Duration


AsMinutes (Number)
AsMinutes

 Creates a new Duration object spanning aNumber of minutes.

Syntax

aNumber.AsMinutes

Returns

Duration


AsRadians (Number)
AsRadians

 Assumes aNumber is a degree measure and returns the same measure in radians.

Syntax

aNumber.AsRadians

Returns

Number


AsSeconds (Number)
AsSeconds

 Creates a new Duration object spanning aNumber of seconds.

Syntax

aNumber.AsSeconds

Returns

Duration


AsString (Number)
AsString

 Returns a string representation of aNumber. AsString uses the active number format string.

Syntax

aNumber.AsString

Returns

String


AsYears (Number)
AsYears

 Creates a new Duration object spanning aNumber of years (a Year is 365 days).

Syntax

aNumber.AsYears

Returns

Duration


* (Number)
*

 Multiplies the operands and returns the product.

Syntax

aNumber * anotherNumber

Returns

Number


+ (Number)
+

 Adds the operands and returns the sum.

Syntax

aNumber + anotherNumber

Returns

Number


- (Number)
-

 Subtracts the operands and returns the difference.

Syntax

aNumber - anotherNumber

Returns

Number


/ (Number)
/

 Divides the operands and returns the quotient.

Syntax

aNumber / anotherNumber

Returns

Number


Negate (Number)
Negate

 Returns negated value of aNumber. Preferred usage: -aNumber

Syntax

aNumber.Negate

Returns

Number


^ (Number)
^

 Raises aNumber to the power of anotherNumber and returns the result.

Syntax

aNumber ^ anotherNumber

Returns

Number


= (Number)
=

 Compares the operands returning TRUE when aNumber and anotherNumber are either the same object or have the same value.

Syntax

aNumber = anotherNumber

Returns

Boolean


IsInfinity (Number)
IsInfinity

Returns true when aNumber is infinity.

Syntax

aNumber.IsInfinity

Returns

Boolean


IsNull (Number)
IsNull

Returns true when aNumber is a null number.

Syntax

aNumber.IsNull

Returns

Boolean


Max (Number)
Max

 Returns the maximum of the pair of operands. You can also use postfix notation for this request: x.Max(y).

Syntax

aNumber Max anotherNumber

Returns

Number


Min (Number)
Min

 Returns the minimum of the pair of operands. You can also use postfix notation for this request: x.Min(y).

Syntax

aNumber Min anotherNumber

Returns

Number


Abs (Number)
Abs

 Returns the absolute value of aNumber.

Syntax

aNumber.Abs

Returns

Number


ACos (Number)
ACos

Returns the angle (in radians) for which aNumber is its cosine. The returned angle is in the range 0..pi radians.

Syntax

aNumber.ACos

Returns

Number


ASin (Number)
ASin

Returns the angle (in radians) for which aNumber is its sine. The returned angle is in the range -pi/2..pi/2 radians.

Syntax

aNumber.ASin

Returns

Number


ATan (Number)
ATan

Returns the angle (in radians) for which aNumber is the tangent. The returned angle is in the range -pi/2 .. pi/2 .

Syntax

aNumber.ATan

Returns

Number


Ceiling (Number)
Ceiling

Returns the least integer greater than aNumber.

Syntax

aNumber.Ceiling

Returns

Number


Cos (Number)
Cos

 Returns the Cos of aNumber. Cos expects a radian value; use the AsRadians command to convert from degrees.

Syntax

aNumber.Cos

Returns

Number


Floor (Number)
Floor

Returns the greatest integer less than aNumber.

Syntax

aNumber.Floor

Returns

Number


Ln (Number)
Ln

Returns the natural logarithm of aNumber.

Syntax

aNumber.Ln

Returns

Number


Log (Number)
Log

Returns the logarithm to aBase of aNumber.

Syntax

aNumber.Log (aBase)

Returns

Number


Mod (Number)
Mod

 Returns the remainder of the operands (modulo). The sign of the result is the same as aNumber.

Syntax

aNumber Mod anotherNumber

Returns

Number


Round (Number)
Round

Rounds aNumber to the nearest integer.

Syntax

aNumber.Round

Returns

Number


Sin (Number)
Sin

 Returns the Sin of aNumber. Sin expects a radian value; use the AsRadians request to convert from degrees.

Syntax

aNumber.Sin

Returns

Number


Sqrt (Number)
Sqrt

 Returns the square root of aNumber. The Null number returns when aNumber is negative.

Syntax

aNumber.Sqrt

Returns

Number


Tan (Number)
Tan

Returns the tangent of aNumber (assumed to be in radians).

Syntax

aNumber.Tan

Returns

Number


Truncate (Number)
Truncate

 Truncates at the decimal point returning the integer portion of aNumber.

Syntax

aNumber.Truncate

Returns

Number


Obj

 Class Obj is the most generic object class. It is the abstract superclass for all other classes in the ArcView class hierarchy. Any subclass of Obj inherits all the generic object behavior, including object management, persistence, and most importantly, the object request mechanism.

Attributes

Name. The object's name is accessed and altered with the GetName and SetName requests. Many requests, such as MsgBox.List use the object's name to identify it.

Class. The object is an instance of a class. The requests Is and GetClass allow you to find out about an object's class. IsSubClassOf and GetClassName are class requests and they give more information about the class itself. IsSubClassOf tells you if the target class is a subclass of the argument.

  View.IsSubClassOf( Doc )    ' returns TRUE
GetClassName gets the string name of the class. For example,

  View.GetClassName   ' returns the string "View".

Inherits From

Obj

Inherited By

AddressStyle
Application
AttrUpdate
BandStatistics
ChartDisplay
ChartPart
Classification
Codepage
Collection
Color
ColorMap
Control
CoordSys
Coverage
Date
DBICursor
DDEClient
DDEServer
Digit
Display
DLL
DLLProc
Doc
DocGUI
DocWin
ExtensionObject
Field
File
FileName
Font
FontManager
Graphic
Help
Icon
ImageLegend
ImageLookup
ImgSrc
INFODir
Labeler
Layer
Legend
Librarian
Library
LockMgr
MatchCand
MatchCase
MatchField
MatchKey
MatchPref
MatchSource
ModalDialog
MsgBox
ODB
PageManager
Palette
Pixmap
Printer
Prj
RPCClient
RPCServer
Script
Shape
Spheroid
SQLCon
SrcName
Stipple
Symbol
SymbolWin
System
TextComposer
TextPositioner
TGraphic
Theme
Threshold
TOC
Units
Value
Vector
VTab
Window

Class Requests

Objects

GetClassName  :  String

HasInstances  :  Boolean

IsSubclassOf ( anotherClass ) :  Boolean

Instance Requests

Handling Objects

<> anotherObj :  Boolean

= anotherObj :  Boolean

AsString  :  String

Clone  :  Obj

GetClass  :  Classes

GetName  :  String

Is ( aClass ) :  Boolean

SetName ( aName )

__________

See also

ODB


GetClassName (Obj)
GetClassName

Gets the class name of aClass. For example, assume myView is a view object, then the request

       myView.GetClass.GetClassName
returns the string "View".

Syntax

aClass.GetClassName

Returns

String


HasInstances (Obj)
HasInstances

Returns TRUE when aClass has at least one instance. For example, lets say you have created a view, then View.HasInstances returns TRUE and Doc.HasInstances also returns TRUE (because views are documents, also).

Syntax

aClass.HasInstances

Returns

Boolean


IsSubclassOf (Obj)
IsSubclassOf

Returns TRUE if aClass is a subclass of anotherClass. For example, the following statements return true:

  List.IsSubClassOf( Collection )
  av.GetActiveDoc.GetClass.IsSubClassOf( DOC )

Syntax

aClass.IsSubclassOf (anotherClass)

Returns

Boolean


<> (Obj)
<>

Opposite of =. Performs an inequality test between anObj and the anotherObj. This default equality test sees if the objects use the same memory.

Syntax

anObj <> anotherObj

Returns

Boolean


= (Obj)
=

Performs an equality test between anObj and the anotherObj. This default equality test sees if the objects use the same memory.

Syntax

anObj = anotherObj

Returns

Boolean


AsString (Obj)
AsString

Creates a string which contains the name of the object.

Syntax

anObj.AsString

Returns

String


Clone (Obj)
Clone

Clones anObj and associated objects by recursively descending the properties and creating shallow clones.

Syntax

anObj.Clone

Returns

Obj


GetClass (Obj)
GetClass

Returns the class of anObj. You can issue class requests to the result of the request. For example, this statement returns the class of the Active document, creates a new document like it and then tells the user the class of the document.

 ' Make a new one if it is NOT a project
  if (av.GetActiveDoc.Is( Project ).NOT ) then
    theClass = av.GetActiveDoc.GetClass
    newDoc = theClass.Make
    msgbox.info( theClass.GetClassName, "The document is a..." )
  end

Syntax

anObj.GetClass

Returns

Class


GetName (Obj)
GetName

Gets anObj's name.

Syntax

anObj.GetName

Returns

String


Is (Obj)
Is

Returns True if anObj is an instance of aClass or any of its subclasses. This instance request is similar to the class request, IsSubClassOf. For example, the following statements return TRUE:

  av.GetProject.Is( Project ) ' This is a Project object
  av.GetProject.Is( Doc )     ' Project is a subclass of Doc

  av.GetActiveGUI.GetMenuBar.Is( MenuBar )    ' This is a MenuBar
  av.GetActiveGUI.GetMenuBar.Is( ControlSet ) ' a subclass of ControlSet
  av.GetActiveGUI.GetMenuBar.Is( Control )    ' a subclass of Control

Syntax

anObj.Is (aClass)

Returns

Boolean


SetName (Obj)
SetName

Sets anObj's name to aName.

Syntax

anObj.SetName (aName)


ObliqueMercator
Discussion	Example

 This class implements the Hotine Oblique Mercator projection.

Inherits From

Prj

Class Requests

Creating Oblique Mercator Projections

CanDoSpheroid  :  Boolean

Make ( aRect ) :  ObliqueMercator

Instance Requests

Projecting and unprojecting points

ProjectPt ( aPoint ) :  Boolean

UnProjectPt ( aPoint ) :  Boolean

Oblique Mercator Projections

Recalculate

ReturnAzimuthOfCentralLine  :  Number

ReturnCentralLatitude  :  Number

ReturnCentralLongitude  :  Number

ReturnFalseEasting  :  Number

ReturnFalseNorthing  :  Number

ReturnScale  :  Number

SetAzimuthOfCentralLine ( anAzimuth )

SetCentralLatitude ( aLatitude )

SetCentralLongitude ( aLongitude )

SetFalseEasting ( aFalseEasting )

SetFalseNorthing ( aFalseNorthing )

SetScale ( aScale )

__________

See also

Spheroid
CoordSys


CanDoSpheroid (ObliqueMercator)
CanDoSpheroid

Returns TRUE if a class of projection supports arbitrary spheroids and FALSE if it only supports the sphere. The Oblique Mercator class always returns TRUE.

Syntax

Oblmerc.CanDoSpheroid

Returns

Boolean


Make (ObliqueMercator)
Make
Example

Creates an Oblique Mercator projection. aRect is the bounding rectangle of the area being projected. Use decimal degrees for the coordinates of aRect.

Syntax

Oblmerc.Make (aRect)

Returns

ObliqueMercator


ProjectPt (ObliqueMercator)
ProjectPt
Example

Projects the point aPoint. Returns TRUE if aPoint is visible, FALSE otherwise; however, this always returns a point.

Syntax

anOblmerc.ProjectPt (aPoint)

Returns

Boolean


UnProjectPt (ObliqueMercator)
UnProjectPt
Example

Unprojects the point aPoint. Returns TRUE if aPoint can be unprojected, FALSE otherwise; however, this always returns a point.

Syntax

anOblmerc.UnProjectPt (aPoint)

Returns

Boolean


Recalculate (ObliqueMercator)
Recalculate

Updates the internal parameters of the projection. This must be called after changing any parameters of the Oblique Mercator projection.

Syntax

anOblmerc.Recalculate


ReturnAzimuthOfCentralLine (ObliqueMercator)
ReturnAzimuthOfCentralLine

Returns the azimuth of the central line through the central point. The return value is the angle of the azimuth east of north in degrees.

Syntax

anOblmerc.ReturnAzimuthOfCentralLine

Returns

Number


ReturnCentralLatitude (ObliqueMercator)
ReturnCentralLatitude

Returns the latitude in degrees of the central point.

Syntax

anOblmerc.ReturnCentralLatitude

Returns

Number


ReturnCentralLongitude (ObliqueMercator)
ReturnCentralLongitude

Returns the longitude in degrees of the central point.

Syntax

anOblmerc.ReturnCentralLongitude

Returns

Number


ReturnFalseEasting (ObliqueMercator)
ReturnFalseEasting

Returns the value of x at the central meridian.

Syntax

anOblmerc.ReturnFalseEasting

Returns

Number


ReturnFalseNorthing (ObliqueMercator)
ReturnFalseNorthing

Returns the value of y at the central meridian.

Syntax

anOblmerc.ReturnFalseNorthing

Returns

Number


ReturnScale (ObliqueMercator)
ReturnScale

Returns the scale along the central line. The return value is 1 when true scale is in effect.

Syntax

anOblmerc.ReturnScale

Returns

Number


SetAzimuthOfCentralLine (ObliqueMercator)
SetAzimuthOfCentralLine
Example

Sets the azimuth of the central line through the central point. anAzimuth is the angle of the azimuth east of north in degrees.

Syntax

anOblmerc.SetAzimuthOfCentralLine (anAzimuth)


SetCentralLatitude (ObliqueMercator)
SetCentralLatitude
Example

Sets the latitude of the central point to aLatitude. aLatitude is a latitude in degrees.

Syntax

anOblmerc.SetCentralLatitude (aLatitude)


SetCentralLongitude (ObliqueMercator)
SetCentralLongitude
Example

Sets the longitude of the central point to aLongitude. aLongitude is a longitude in degrees.

Syntax

anOblmerc.SetCentralLongitude (aLongitude)


SetFalseEasting (ObliqueMercator)
SetFalseEasting
Example

Sets the value of x at the central meridian.

Syntax

anOblmerc.SetFalseEasting (aFalseEasting)


SetFalseNorthing (ObliqueMercator)
SetFalseNorthing
Example

Sets the value of y at the central meridian.

Syntax

anOblmerc.SetFalseNorthing (aFalseNorthing)


SetScale (ObliqueMercator)
SetScale
Example

Sets the scale along the central line. aScale is a number, where "1" represents true scale.

Syntax

anOblmerc.SetScale (aScale)


ODB

 An ODB (Object Data Base) provides a file-based storage and retrieval system for objects. An object data base is a collection of objects which can be written to a textfile. When an ODB is restored from an existing ODB textfile, the objects are re-created from their definitions in the textfile.

ArcView's project file (*.apr) is an ODB file which stores the objects making up a saved ArcView session.

Each object data base has a header, followed by the sequence of object definitions. Header lines are indicated by a '/' in the first column. The first header line is mandatory. It indicates the version number of the ODB.

Using an ODB

Use an ODB when you need to save objects (such as scripts, buttons, views, etc) to disk. This is much easier than developing your own file formats.

To create a new odb object, you must first make it, add roots to it, and then commit it. Making an ODB identifies what disk file the odb will be saved to when it is committed. Adding roots to an ODB means specifying those objects that can be directly accessed from the ODB. For example, if you add a dictionary object as a root to an ODB, all the objects inside that dictionary also get added to the ODB, but you can only access the dictionary directly from the odb. To access the other objects, you must use the Get request on the dictionary. An ODB can have multiple roots. Committing an ODB means writing to disk all roots (and their associated objects).

The following Avenue example writes three strings to an odb file.

  myODB = ODB.Make("myFirst.odb".AsFileName)
  myODB.Add("String 1")
  myODB.Add("String 2")
  myODB.Add("String 3")
  myODB.Commit

This script reads those stored objects back into variables.

 myODB = ODB.Open("myFirst.odb".AsFileName)
 s1 = myODB.Get(0)
 s2 = myODB.Get(1)
 s3 = myODB.Get(2)

ODBs and Extensions

ODBs can be dependent upon extensions. Dependencies on ODBs work the same as dependencies on extensions. For a complete discussion of dependencies, see the class Extension.

To set the dependecies of an ODB, you would get the ODB's dependencies list and add the dependent extension's filename to this list. For example, this script makes the ODB myODB dependent upon the Spatial Analyst Extension.

 myODB.GetDependencies.Add("$AVEXT/spatial.avx".AsFileName)

Inherits From

Obj

Inherited By

Extension

Class Requests

Object Data Bases

Make ( aFileName ) :  ODB

Open ( aFileName ) :  ODB

OpenAndInstall ( aFileName ) :  ODB

Instance Requests

Using Object Data Bases

Add ( anObject )

Clear

Commit  :  Boolean

Count  :  Number

Get ( anIndex ) :  Obj

Getting and Setting Attributes

GetCodepage  :  Number

GetDependencies  :  List

GetFileName  :  FileName

GetGUINames  :  List

GetVersion  :  Number

__________

See also

Application
Project
File


Make (ODB)
Make

Creates an object data base object file which will be written to aFileName when it is committed.

Syntax

ODB.Make (aFileName)

Returns

ODB


Open (ODB)
Open

Opens the object data base specified by aFileName. If the ODB contained in aFileName has dependencies on Extension ODBs, those will be opened first. If a dependency cannot be found, the user will be prompted to locate it. If this prompt is cancelled, then the Open request will be aborted and nil will be returned as the result.

Syntax

ODB.Open (aFileName)

Returns

ODB


OpenAndInstall (ODB)
OpenAndInstall

Opens the odb file named by aFileName, loads, and installs all extensions upon which it is dependent. This differs from the Open request, which loads those extensions, but does not install them.

Do not use this request on extension files (.avx). Use Extension.Open(aFileName) instead to load extensions.

Syntax

ODB.OpenAndInstall (aFileName)

Returns

ODB


Add (ODB)
Add

Adds anObject as a new root object to anODB.

Syntax

anODB.Add (anObject)


Clear (ODB)
Clear

Clears all objects from anODB.

Syntax

anODB.Clear


Commit (ODB)
Commit

Commits changes to the object data base and writes anODB to disk. Returns TRUE if successful.

Syntax

anODB.Commit

Returns

Boolean


Count (ODB)
Count

Returns the number of root objects in anODB.

Syntax

anODB.Count

Returns

Number


Get (ODB)
Get

Returns the root object located at anIndex in anODB.

Syntax

anODB.Get (anIndex)

Returns

Obj


GetCodepage (ODB)
GetCodepage

Returns the codepage used for anODB.

Syntax

anODB.GetCodepage

Returns

Number


GetDependencies (ODB)
GetDependencies

Returns the list of extensions and shared libraries upon which anODB is dependent. This list will contain extension objects and/or library reference numbers if aODB has any dependencies.

Syntax

anODB.GetDependencies

Returns

List


GetFileName (ODB)
GetFileName

Returns the file name to which anODB will be be stored.

Syntax

anODB.GetFileName

Returns

FileName


GetGUINames (ODB)
GetGUINames

Returns a list of GUI names contained in anODB.

Syntax

anODB.GetGUINames

Returns

List


GetVersion (ODB)
GetVersion

Returns the version as a number between 20 and 99 inclusive.

Syntax

anODB.GetVersion

Returns

Number


Orthographic
Discussion	Example

 This class implements the Orthographic (Oblique) projection.

Inherits From

Perspective

Class Requests

Creating Orthographic Projections

CanDoCustom  :  Boolean

Make ( aRect ) :  Orthographic

__________

See also

Spheroid
CoordSys


CanDoCustom (Orthographic)
CanDoCustom

Returns TRUE if a class of projections supports customization and FALSE if it only supports fixed parameters. The orthographic class always returns TRUE.

Syntax

Ortho.CanDoCustom

Returns

Boolean


Make (Orthographic)
Make
Example

Creates an Orthographic projection. aRect is the bounding rectangle of the area being projected. Use decimal degrees for the coordinates of aRect.

Syntax

Ortho.Make (aRect)

Returns

Orthographic


Oval

 An Oval is a geometric ellipse drawn inside a rectangle. The width and height of the rectangle are twice the major and minor axes of the ellipse. The axes of the ellipse must be parallel to the x- and y-axes of the coordinate space.

Attributes

Origin.The Origin is the starting point of the rectangle in which the oval is inscribed. If the width and height are both positive, it is the bottom, lefthand corner.

Size.The Size is a point representing the width and height of the oval.

Inherits From

Shape

Class Requests

Making Ovals

Make ( anOrigin, aSize ) :  Oval

MakeNull  :  Oval

Instance Requests

Converting an Oval

AsArc ( startAngle, endAngle ) :  PolyLine

AsMultiPoint  :  MultiPoint

AsPolygon  :  Polygon

Generic Object Requests

= anObj :  Boolean

AsString  :  String

Getting and Setting Attributes

GetDimension  :  Number

IsNull  :  Boolean

ReturnCenter  :  Point

SetOrigin ( aPoint ) :  Oval

SetSize ( aPoint ) :  Oval

Manipulating an Oval

ExpandBy ( aDistance ) :  Oval

InsetBy ( aDistance ) :  Oval

Move ( moveX, moveY ) :  Oval

Snap ( aShape, snapDistance ) :  Boolean

Relating two shapes

Contains ( aShape ) :  Boolean

Intersects ( aShape ) :  Boolean

Transforming an Oval

ReturnClipped ( clipRect ) :  Shape

ReturnDifference ( aShape ) :  Polygon

ReturnIntersection ( aShape ) :  Polygon

ReturnMerged ( aShape ) :  Polygon

ReturnProjected ( aPrj ) :  Shape

ReturnUnion ( aShape ) :  Polygon

ReturnUnprojected ( aPrj ) :  Shape

__________

See also

Circle
Line
Point
Polygon
Rect
MultiPoint
PolyLine


Make (Oval)
Make

Makes an Oval contained in the rectangle defined by anOrigin and aSize. anOrigin is a the origin point of the rectangle. aSize is a point where the X and Y values represent the width and height of the rectangle.

This oval begins at point 3,3 with width 5 and height 10. It has an area of 39.2699.

 anOval = Oval.Make( 1@1, 5@10)
 msgbox.info( anOval.ReturnArea.AsString, "")

Syntax

Oval.Make (anOrigin, aSize)

Returns

Oval


MakeNull (Oval)
MakeNull

Makes the NULL Oval.

Syntax

Oval.MakeNull

Returns

Oval


AsArc (Oval)
AsArc

Returns a PolyLine representing an arc of anOval. Arc is defined in a clock-wise direction, starting at startAngle, and ending at endAngle. Angles start at positive Y-axis direction.

Syntax

anOval.AsArc (startAngle, endAngle)

Returns

PolyLine


AsMultiPoint (Oval)
AsMultiPoint

Returns a MultiPoint representing anOval.

Syntax

anOval.AsMultiPoint

Returns

MultiPoint


AsPolygon (Oval)
AsPolygon

Returns a Polygon representing anOval.

Syntax

anOval.AsPolygon

Returns

Polygon


= (Oval)
=

Returns TRUE when anOval and anObj are equal, otherwise returns FALSE.

Syntax

anOval = anObj

Returns

Boolean


AsString (Oval)
AsString

Returns a string describing the oval in the form "Oval: 10.000000,10.000000 4.000000,6.000000".

Syntax

anOval.AsString

Returns

String


GetDimension (Oval)
GetDimension

Returns 2. In ArcView, points have dimension 0, lines have dimension 1 and polygons have dimension 2. Only shapes with dimension 1 or greater have a length. Only shapes with dimension 2 have an area.

Syntax

anOval.GetDimension

Returns

Number


IsNull (Oval)
IsNull

Returns TRUE if anOval is NULL, otherwise returns FALSE.

Syntax

anOval.IsNull

Returns

Boolean


ReturnCenter (Oval)
ReturnCenter

Returns the center point of anOval.

Syntax

anOval.ReturnCenter

Returns

Point


SetOrigin (Oval)
SetOrigin

Sets the origin of anOval to aPoint.

Syntax

anOval.SetOrigin (aPoint)

Returns

Oval


SetSize (Oval)
SetSize

Sets the size of anOval to aPoint. The width of anOval is the X component of aPoint and the height is the Y component.

Syntax

anOval.SetSize (aPoint)

Returns

Oval


ExpandBy (Oval)
ExpandBy

Expands anOval by aDistance. All four sides are moved out by aDistance.

Syntax

anOval.ExpandBy (aDistance)

Returns

Oval


InsetBy (Oval)
InsetBy

Insets anOval by aDistance. All four sides are moved in by aDistance.

Syntax

anOval.InsetBy (aDistance)

Returns

Oval


Move (Oval)
Move

Moves anOval by moveX and moveY and returns it. The script below returns the following:

 RESULT
 Oval: 5.000000,7.000000 5.000000,10.000000

 o = Oval.Make( 3@3, 5@10 )
 o.Move(  2,4 )
 msgbox.report( o.AsString, "")

Syntax

anOval.Move (moveX, moveY)

Returns

Oval


Snap (Oval)
Snap

Snaps the vertices of anOval to vertices of aShape within snapDistance. Returns TRUE if snapping occurred, otherwise returns FALSE.

Syntax

anOval.Snap (aShape, snapDistance)

Returns

Boolean


Contains (Oval)
Contains

Returns TRUE if anOval contains aShape, otherwise returns FALSE.

Syntax

anOval.Contains (aShape)

Returns

Boolean


Intersects (Oval)
Intersects

Returns TRUE if anOval intersects aShape, otherwise returns FALSE.

Syntax

anOval.Intersects (aShape)

Returns

Boolean


ReturnClipped (Oval)
ReturnClipped

Returns anOval clipped to clipRect. The result will be NULL if anOval and clipRect do not intersect.

Syntax

anOval.ReturnClipped (clipRect)

Returns

Shape


ReturnDifference (Oval)
ReturnDifference

Returns the difference between anOval and aShape into a new shape.

Syntax

anOval.ReturnDifference (aShape)

Returns

Polygon


ReturnIntersection (Oval)
ReturnIntersection

Returns the intersection of anOval and aShape into a new shape.

Syntax

anOval.ReturnIntersection (aShape)

Returns

Polygon


ReturnMerged (Oval)
ReturnMerged

Merges anOval and aShape into a new shape.

Syntax

anOval.ReturnMerged (aShape)

Returns

Polygon


ReturnProjected (Oval)
ReturnProjected

Returns anOval projected by aPrj. The result may be a different kind of shape or have more points than the original in order to be visually pleasing.

Syntax

anOval.ReturnProjected (aPrj)

Returns

Shape


ReturnUnion (Oval)
ReturnUnion

Returns the union of anOval and aShape into a new shape.

Syntax

anOval.ReturnUnion (aShape)

Returns

Polygon


ReturnUnprojected (Oval)
ReturnUnprojected

Returns anOval unprojected by aPrj. The result may be a different kind of shape or have more points than the original in order to be visually pleasing.

Syntax

anOval.ReturnUnprojected (aPrj)

Returns

Shape


PageDisplay

 A PageDisplay is a kind of Display which has double precision coordinates distributed in page space. Layouts draw in a PageDisplay.

Attributes

Grid.The grid can be visible or invisible and active or inactive. If the grid is active, mouse movements will snap to the grid corners. The grid mesh is the distance between the pixels in Display coordinates. The grid is never printed. Grid applies only to PageDisplay.

Margin.The empty edge of the page when printed is the margin. The margin can be visible or invisible on the screen. The MarginExtent is the rectangle of the page inside the margins.

PrinterPageSize.PrinterPageSize determines whether the page size of the current printer is used as the page size of the PageDisplay.

PrinterMargins.PrinterMargins determines whether the margins of the current printer is used as the margins of the PageDisplay.

Inherits From

Display

Instance Requests

Manipulating Pixmaps

Pixmap ( aPixmap, aRect ) :  Boolean

ReturnPixmap ( aRect ) :  Pixmap

User Interaction (Apply Events only)

Pan

ReturnUserPoint  :  Point

Drawing Shapes

BeginClip  :  Boolean

DrawIcon ( aRect, anIcon )

DrawLine ( aLine, aSymbol )

DrawMultiPoint ( aMultiPoint, aSymbol )

DrawOval ( anOval, aSymbol )

DrawPoint ( aPoint, aSymbol )

DrawPolygon ( aPolygon, aSymbol, DrawOutline )

DrawPolyLine ( aPolyLine, aSymbol )

DrawRect ( aRect, aSymbol )

DrawText ( aPoint, aString, aSymbol )

DrawTextPolyLine ( aPolyLine, aString, aSymbol )

EndClip

HookupSymbol ( aSymbol )

Manipulating a PageDisplay

ExportEnd

Flush

Invalidate ( Erase )

InvalidateRect ( aRect )

UndoZoom

Validate

ZoomToActual

ZoomToPage

ZoomToRect ( aRect )

Getting and Setting Attributes

GetResolution  :  DisplayResEnum

IsGridActive  :  Boolean

IsGridVisible  :  Boolean

IsMarginVisible  :  Boolean

IsUsingPrinterMargins  :  Boolean

IsUsingPrinterPageSize  :  Boolean

SetGridActive ( isActive )

SetGridMesh ( aMesh )

SetGridVisible ( isVisible )

SetMargin ( aRect )

SetMarginVisible ( isVisible )

SetPageSize ( aPoint )

SetResolution ( aResQual )

SetUnits ( aUnit )

SetUsingPrinterMargins ( isUsed )

SetUsingPrinterPageSize ( isUsed )

__________

See also

MapDisplay
PageSetupDialog


Pixmap (PageDisplay)
Pixmap

Draw aPixmap on the portion of aPageDisplay delineated by aRect. The pixmap must have been obtained using ReturnPixmap and must have the exact same extent as aRect.

Syntax

aPageDisplay.Pixmap (aPixmap, aRect)

Returns

Boolean


ReturnPixmap (PageDisplay)
ReturnPixmap

Return a pixmap containing the contents of the backing store for the portion of aPageDisplay delineated by aRect.

Syntax

aPageDisplay.ReturnPixmap (aRect)

Returns

Pixmap


Pan (PageDisplay)
Pan

Pans aPageDisplay as the user drags, changing the VisibleRect of aPageDisplay.

Syntax

aPageDisplay.Pan


ReturnUserPoint (PageDisplay)
ReturnUserPoint

Gets the location of the mouse on aPageDisplay.

Syntax

aPageDisplay.ReturnUserPoint

Returns

Point


BeginClip (PageDisplay)
BeginClip

Begins drawing on aPageDisplay. This request must be made before any of the Draw requests. After drawing, make the EndClip request. See the discussion in the Display class description on "Clipping and Invalidation."

Syntax

aPageDisplay.BeginClip

Returns

Boolean


DrawIcon (PageDisplay)
DrawIcon

Draws anIcon in aRect on aPageDisplay.

Syntax

aPageDisplay.DrawIcon (aRect, anIcon)


DrawLine (PageDisplay)
DrawLine

Draws aLine with aSymbol on aPageDisplay.

Syntax

aPageDisplay.DrawLine (aLine, aSymbol)


DrawMultiPoint (PageDisplay)
DrawMultiPoint

Draws aMultiPoint on aPageDisplay with aSymbol.

Syntax

aPageDisplay.DrawMultiPoint (aMultiPoint, aSymbol)


DrawOval (PageDisplay)
DrawOval

Draws anOval with aSymbol on aPageDisplay.

Syntax

aPageDisplay.DrawOval (anOval, aSymbol)


DrawPoint (PageDisplay)
DrawPoint

Draws aPoint with aSymbol on aPageDisplay.

Syntax

aPageDisplay.DrawPoint (aPoint, aSymbol)


DrawPolygon (PageDisplay)
DrawPolygon

Draws aPolygon with aSymbol on aPageDisplay. If DrawOutline is TRUE, then the polygon is outlined. Otherwise, no outline is drawn.

Syntax

aPageDisplay.DrawPolygon (aPolygon, aSymbol, DrawOutline)


DrawPolyLine (PageDisplay)
DrawPolyLine

Draws aPolyLine with aSymbol on aPageDisplay.

Syntax

aPageDisplay.DrawPolyLine (aPolyLine, aSymbol)


DrawRect (PageDisplay)
DrawRect

Draws aRect with aSymbol on aPageDisplay.

Syntax

aPageDisplay.DrawRect (aRect, aSymbol)


DrawText (PageDisplay)
DrawText

Draws aString at aPoint with aSymbol on aPageDisplay.

Syntax

aPageDisplay.DrawText (aPoint, aString, aSymbol)


DrawTextPolyLine (PageDisplay)
DrawTextPolyLine

Draws aString along aPolyLine on the PageDisplay with aSymbol.

Syntax

aPageDisplay.DrawTextPolyLine (aPolyLine, aString, aSymbol)


EndClip (PageDisplay)
EndClip

Ends drawing. This request must be made after a BeginClip followed by a group of Draw requests. See the discussion in the Display class description on "Clipping and Invalidation".

Syntax

aPageDisplay.EndClip


HookupSymbol (PageDisplay)
HookupSymbol

Hooks up aSymbol to aPageDisplay in terms of scale. Whenever aPageDisplay is zoomed in or out, the symbol size will change accordingly.

Syntax

aPageDisplay.HookupSymbol (aSymbol)


ExportEnd (PageDisplay)
ExportEnd

Stops exporting the graphics drawn on aPageDisplay.

Syntax

aPageDisplay.ExportEnd


Flush (PageDisplay)
Flush

Flushes all drawing to aPageDisplay. Use Flush to force the draw event to occur during the execution of an Avenue script.

Syntax

aPageDisplay.Flush


Invalidate (PageDisplay)
Invalidate

Invalidates the entire area of aPageDisplay. If Erase is TRUE, then aPageDisplay is completely erased at the next redraw. See the discussion of Clipping and Invalidation for the class Display.

Syntax

aPageDisplay.Invalidate (Erase)


InvalidateRect (PageDisplay)
InvalidateRect

Invalidates the area of aPageDisplay defined by aRect. Only the area of the display specified by aRect is redrawn. See the discussion of "Clipping and Invalidation" for the class Display.

Syntax

aPageDisplay.InvalidateRect (aRect)


UndoZoom (PageDisplay)
UndoZoom

undoes the last zoom or pan operation on aPageDisplay.

Syntax

aPageDisplay.UndoZoom


Validate (PageDisplay)
Validate

Validates the entire area of aPageDisplay. No further redraws occur.

Syntax

aPageDisplay.Validate


ZoomToActual (PageDisplay)
ZoomToActual

Zooms so that one inch on the screen is one inch on aPageDisplay. APageDisplay must be open.

Syntax

aPageDisplay.ZoomToActual


ZoomToPage (PageDisplay)
ZoomToPage

Zooms aPageDisplay to show the entire page. APageDisplay must be open.

Syntax

aPageDisplay.ZoomToPage


ZoomToRect (PageDisplay)
ZoomToRect

Zooms aPageDisplay to fit aRect. APageDisplay must be open.

Syntax

aPageDisplay.ZoomToRect (aRect)


GetResolution (PageDisplay)
GetResolution

Gets the resolution quality of aPageDisplay.

Syntax

aPageDisplay.GetResolution

Returns

DisplayResEnum


IsGridActive (PageDisplay)
IsGridActive

Returns TRUE if the grid is active, otherwise returns FALSE.

Syntax

aPageDisplay.IsGridActive

Returns

Boolean


IsGridVisible (PageDisplay)
IsGridVisible

Returns TRUE if the grid is visible, otherwise returns FALSE.

Syntax

aPageDisplay.IsGridVisible

Returns

Boolean


IsMarginVisible (PageDisplay)
IsMarginVisible

Returns TRUE if the margins of aPageDisplay are visible, otherwise returns FALSE.

Syntax

aPageDisplay.IsMarginVisible

Returns

Boolean


IsUsingPrinterMargins (PageDisplay)
IsUsingPrinterMargins

Returns TRUE if aPageDisplay is using the printer's margins, otherwise returns FALSE.

Syntax

aPageDisplay.IsUsingPrinterMargins

Returns

Boolean


IsUsingPrinterPageSize (PageDisplay)
IsUsingPrinterPageSize

Returns TRUE if aPageDisplay is using the printer's page size, otherwise returns FALSE.

Syntax

aPageDisplay.IsUsingPrinterPageSize

Returns

Boolean


SetGridActive (PageDisplay)
SetGridActive

Sets the grid activity of aPageDisplay to isActive.

Syntax

aPageDisplay.SetGridActive (isActive)


SetGridMesh (PageDisplay)
SetGridMesh

Sets the grid mesh of aPageDisplay to aMesh.

Syntax

aPageDisplay.SetGridMesh (aMesh)


SetGridVisible (PageDisplay)
SetGridVisible

Sets the grid visibility to isVisible.

Syntax

aPageDisplay.SetGridVisible (isVisible)


SetMargin (PageDisplay)
SetMargin

Sets the margins of aPageDisplay to aRect. aRect is defined by the lower left and upper right points.

Syntax

aPageDisplay.SetMargin (aRect)


SetMarginVisible (PageDisplay)
SetMarginVisible

Sets the margin visibility to isVisible.

Syntax

aPageDisplay.SetMarginVisible (isVisible)


SetPageSize (PageDisplay)
SetPageSize

Sets the page size of aPageDisplay to aPoint.

Syntax

aPageDisplay.SetPageSize (aPoint)


SetResolution (PageDisplay)
SetResolution

Sets the resolution quality of aPageDisplay to aResQual.

Syntax

aPageDisplay.SetResolution (aResQual)


SetUnits (PageDisplay)
SetUnits

Sets the units to aUnit for PageDisplay. Does not do anything for PageDisplay (units are always #UNITS_LINEAR_INCHES). Use the SetDistanceUnits request to return coordinates and graphic sizes in other units of measurement.

Syntax

aPageDisplay.SetUnits (aUnit)


SetUsingPrinterMargins (PageDisplay)
SetUsingPrinterMargins

Sets whether the printer margins are used to isUsed.

Syntax

aPageDisplay.SetUsingPrinterMargins (isUsed)


SetUsingPrinterPageSize (PageDisplay)
SetUsingPrinterPageSize

Sets whether the printer page size is used as the page size of aPageDisplay to isUsed.

Syntax

aPageDisplay.SetUsingPrinterPageSize (isUsed)


Palette

 A Palette is used for managing lists of symbols. It allows you to load and save these lists and also import ARC/INFO linesets and shadesets. A Palette contains four lists, one for each of the following symbol types: Fill, Pen, Marker, and Color.

Most requests on a Palette can be applied to either one list (using the correct PaletteListEnum) or to all lists (using the PALETTE_ALL PaletteListEnum.) See the individual requests, below, for details.

Inherits From

Obj

Enumerations

PaletteListEnum

Class Requests

Palettes

Make  :  Palette

MakeFromFile ( aFileName ) :  Palette

Instance Requests

Palettes

Clear ( aPaletteListEnum )

GetList ( aPaletteListEnum ) :  SymbolList

Import  :  Boolean

ImportAILineSet ( aFile ) :  Boolean

ImportAIShadeSet ( aFile ) :  Boolean

ImportFromFile ( aFile ) :  Boolean

Load ( aPaletteListEnum ) :  Boolean

LoadFromFile ( aPaletteListEnum, aFile ) :  Boolean

Save ( aPaletteListEnum )

SaveToFile ( aPaletteListEnum, aFile )

SetList ( aPaletteListEnum, aSymList )

__________

See also

SymbolList


Make (Palette)
Make

Creates aPalette.

Syntax

Palette.Make

Returns

Palette


MakeFromFile (Palette)
MakeFromFile

 Creates aPalette from the named file.

Syntax

Palette.MakeFromFile (aFileName)

Returns

Palette


Clear (Palette)
Clear
Example

 Clears the aPaletteListEnum list.

Syntax

aPalette.Clear (aPaletteListEnum)


GetList (Palette)
GetList

the aPaletteListEnum list.

Syntax

aPalette.GetList (aPaletteListEnum)

Returns

SymbolList


Import (Palette)
Import

 Displays a FileWin and loads an AVIcon, appending it to the PALETTE_MARKER list.

Syntax

aPalette.Import

Returns

Boolean


ImportAILineSet (Palette)
ImportAILineSet

 Loads an ARC/INFO line symbol set from the line symbol set file aFile, appending it to the PALETTE_PEN list.

Syntax

aPalette.ImportAILineSet (aFile)

Returns

Boolean


ImportAIShadeSet (Palette)
ImportAIShadeSet

 Loads an ARC/INFO shade symbol set from the shade symbol set file aFile, appending it to the PALETTE_FILL list.

Syntax

aPalette.ImportAIShadeSet (aFile)

Returns

Boolean


ImportFromFile (Palette)
ImportFromFile

 Loads an AVIcon from aFile, appending it to the PALETTE_MARKER list.

Syntax

aPalette.ImportFromFile (aFile)

Returns

Boolean


Load (Palette)
Load

 Displays a FileWin and loads a list of aPaletteListEnum, appending it to the existing aPaletteListEnum list.

Syntax

aPalette.Load (aPaletteListEnum)

Returns

Boolean


LoadFromFile (Palette)
LoadFromFile
Example

 Loads from aFile a list of aPaletteListEnum, appending it to the existing aPaletteListEnum list. The first object in the file must be a palette object.

Syntax

aPalette.LoadFromFile (aPaletteListEnum, aFile)

Returns

Boolean


Save (Palette)
Save

 Displays a FileWin and saves the aPaletteListEnum list.

Syntax

aPalette.Save (aPaletteListEnum)


SaveToFile (Palette)
SaveToFile

the aPaletteListEnum list to aFile.

Syntax

aPalette.SaveToFile (aPaletteListEnum, aFile)


SetList (Palette)
SetList

the aPaletteListEnum list of aPalette to aSymList.

Syntax

aPalette.SetList (aPaletteListEnum, aSymList)


PaletteListEnum

 Which Palette Symbol List.

#PALETTE_LIST_ALL

All symbol lists. Only use #PALETTE_LIST_ALL when using theSymbolWin.RefreshPalette Avenue request and then only when more than one palette list needs to be updated.

#PALETTE_LIST_FILL

Fill symbol list

#PALETTE_LIST_PEN

Pen symbol list

#PALETTE_LIST_MARKER

Marker symbol list

#PALETTE_LIST_COLOR

Color symbol list


Pattern

 A pattern is a string which is a short-hand representation for a set (possibly infinite) of other strings. Patterns make it easy to perform more complex comparisons between strings than the simple string equality test.

In patterns, the characters '*' and '?' have special meaning. The '*' means any number of characters can be inserted at this point. The '?' means any single character can be inserted at this point. So, this if-test is true:

  P = "Yes*".AsPattern
  S = "Yes, I say."
  if (P = S) then
    MsgBox.Info("Yes is the word", "")
  end

The special meaning of any '*' or '?' can be removed by prefixing one with the backslash character '\'. This means that this pattern, "\*", has one character in it, an asterisk. This also means that this pattern will only compare successfully against a string which also contains only one asterisk. For example:

 P = "\*".AsPattern
 S1 = "*"
 S2 = "a"
 if (P = S1) then
   MsgBox.Info("You'll get here", "")
 end
 if (P = S2) then
   MsgBox.Info("But you won't get here", "")
 end

This presents a problem when using patterns to select filenames which are in PC format. This example won't work:

 P = "c:\home\*.dbf".AsPattern
 F = "c:\home\table.dbg"
 if (P = F) then
  MsgBox.Info("You won't get here", "")
 end

Use two backslashes in a row to represent a single literal backslash:

 P = "c:\\home\\*.dbf".AsPattern
 F = "c:\home\table.dbf"
 if (P = F) then
  MsgBox.Info("You will get here", "")
 end

Inherits From

String

Class Requests

Creating Patterns

Make ( aString ) :  Pattern

Instance Requests

Comparing Patterns

= anObject :  Boolean

__________

See also

FileName


Make (Pattern)
Make

 Creates a pattern from aString. Use the "*" character to match zero or more characters or the "?" character to match any single character. The string request AsPattern performs the same function.

Syntax

Pattern.Make (aString)

Returns

Pattern


= (Pattern)
=

When anObject is a string, = returns TRUE if the string is in the set of strings defined by aPattern. When anObject is another pattern, = performs a character-by-character comparison between the patterns and returns true if the patterns are identical.

Syntax

aPattern = anObject

Returns

Boolean


PageSetupDialog

 The Page Setup modal dialog box allows the user to set the page size and other information for a Display. For a complete discussion of the capabilities of this Dialog, refer to 'Page Setup' in the on-line help.

Inherits From

ModalDialog

Class Requests

PgSetup

Show ( aDisplay ) :  Boolean

__________

See also

Layout
Display


Show (PageSetupDialog)
Show

Shows the page setup dialog for aDisplay. TRUE is returned if the user hits the OK button.

Syntax

PageSetupDialog.Show (aDisplay)

Returns

Boolean


PageManager

 PageManager defines the standard page sizes for printers and plotters. Requests on PageManager get the size and units of each page size.

Inherits From

Obj

Enumerations

PageManagerSizeEnum

Class Requests

Getting Information from the PageManager

FindSize ( aSize ) :  PageManagerSizeEnum

GetUnits ( aPageSizeEnum ) :  UnitsLinearEnum

ReturnSize ( aPageSize ) :  Point

__________

See also

Layout
Printer


FindSize (PageManager)
FindSize

Finds the page size closest in size to aSize. If none matches, returns #PAGEMANAGER_SIZE_CUSTOM. aSize is a point whose x coordinate is the width in inches and whose y coordinate is the height in inches. You must convert metric measurements to inches; use the Units Convert request.

 ' Returns #PAGEMANAGER_SIZE_LETTER
 msgbox.info( PageManager.FindSize( 8.5 @ 11). AsString, "")

 ' Returns #PAGEMANAGER_SIZE_A0
 x = Units.Convert( 84.1, #UNITS_LINEAR_CENTIMETERS, #UNITS_LINEAR_INCHES)
 y = Units.Convert( 118.9, #UNITS_LINEAR_CENTIMETERS, #UNITS_LINEAR_INCHES)
 msgbox.info( PageManager.FindSize( x @ y ).AsString, "Page Size")

Syntax

PageManager.FindSize (aSize)

Returns

PageManagerSizeEnum


GetUnits (PageManager)
GetUnits

Gets the units usually used with this paper size. For example, if aPageSizeEnum is #PAGEMANAGER_SIZE_A0, the returned units enumeration is #UNITS_LINEAR_CENTIMETERS.

Syntax

PageManager.GetUnits (aPageSizeEnum)

Returns

UnitsLinearEnum


ReturnSize (PageManager)
ReturnSize

Returns the size of aPageSize. The size is a point whose x coordinate is the width in inches and y coordinate is the height in inches. If aPageSize is PAGEMANAGER_SIZE_CUSTOM, the size is the point 0@0.

Syntax

PageManager.ReturnSize (aPageSize)

Returns

Point


PageManagerSizeEnum

 Common page sizes.

#PAGEMANAGER_SIZE_A0

84.1 x 118.9 cm

#PAGEMANAGER_SIZE_A1

59.4 x 84.1 cm

#PAGEMANAGER_SIZE_A2

42.0 x 59.4 cm

#PAGEMANAGER_SIZE_A3

29.7 x 42.0 cm

#PAGEMANAGER_SIZE_A4

21.0 x 29.7 cm

#PAGEMANAGER_SIZE_C

17.0 x 22.0 in.

#PAGEMANAGER_SIZE_CAMERA

7.3 x 11.0 in.

#PAGEMANAGER_SIZE_CUSTOM

User defined

#PAGEMANAGER_SIZE_D

22.0 x 34.0 in.

#PAGEMANAGER_SIZE_E

34.0 x 44.0 in.

#PAGEMANAGER_SIZE_LEGAL

8.5 x 14.0 in.

#PAGEMANAGER_SIZE_LETTER

8.5 x 11.0 in.

#PAGEMANAGER_SIZE_PRINTER

Size is the same as the current printer

#PAGEMANAGER_SIZE_TABLOID

11.0 x 17.0 in.


PieChartSymbol

 A PieChartSymbol is graphic symbology used to draw a pie chart on the screen for a given feature or graphic. # xExample: Make_a_PieChart_Symbol

Inherits From

ChartSymbol

Class Requests

Making a PieSymbol

Make  :  PieChartSymbol

Instance Requests

Getting and Setting Attributes

IsFirstValueRadius  :  Boolean

SetFirstValueRadius ( aBoolean )

__________

See also

ChartSymbol
ColumnChartSymbol


Make (PieChartSymbol)
Make

Makes a PieChartSymbol.

Syntax

PieChartSymbol.Make

Returns

PieChartSymbol


IsFirstValueRadius (PieChartSymbol)
IsFirstValueRadius

Returns aBoolean that tells whether the first value of aPieChartSymbol's value list is to be used to set aPieChartSymbol's radius.

Syntax

aPieChartSymbol.IsFirstValueRadius

Returns

Boolean


SetFirstValueRadius (PieChartSymbol)
SetFirstValueRadius

Sets whether the first value in aPieChartSymbol's value list is to be used as the radius for the PieChartSymbol.

Syntax

aPieChartSymbol.SetFirstValueRadius (aBoolean)


Menu

 A Menu is a ControlSet that manages a collection of menu choices and separators. A MenuBar contains a collection of Menus. The Menu has a label property that identifies the menu; this label displays in the MenuBar.

In this example, the script accesses the first menu in the active GUI and makes all controls invisible.

  aMenu = av.GetActiveGUI.GetMenuBar.GetControls.Get( 0 )
  for each c in aMenu
    c.SetVisible( false )
  end

Manipulate the choices and separators within the Menu through requests inherited from ControlSet: Add, New, Shift, Remove.

Attributes

Label. Label is the string that names the Menu. The label appears in the MenuBar and titles the functionality of the choices within the Menu.

Inherits From

ControlSet

Inherited By

Popup

Class Requests

Creating Menus

Make  :  Menu

Instance Requests

Getting and Setting Menu Attributes

GetLabel  :  String

SetLabel ( aMenuLabel )

Generic Control Management

FindByLabel ( aLabel ) :  Choice

__________

See also

MenuBar
Choice
Space


Make (Menu)
Make

Creates a Menu.

Syntax

Menu.Make

Returns

Menu


GetLabel (Menu)
GetLabel

Returns aMenu's label.

Syntax

aMenu.GetLabel

Returns

String


SetLabel (Menu)
SetLabel

Sets aMenu's label to aMenuLabel.

Syntax

aMenu.SetLabel (aMenuLabel)


FindByLabel (Menu)
FindByLabel

Returns the first Choice in aMenu whose label is the same as aLabel. The character '&' is disregarded when doing this search. So, if aMenu is the Window menu, and aLabel is "Cascade", the returned object will be the Choice whose label is "&Cascade".

Syntax

aMenu.FindByLabel (aLabel)

Returns

Choice


Point
Related Topics

 A Point is a combination of two numbers used to represent either a planar (X-Y) or spherical (longitude-latitude) point.

Attributes

X.X is a number representing the x-coordinate of the point. This is also sometimes used as a longitude.

Y.Y is a number representing the y-coordinate of the point. This is also sometimes used as a latitude.

Inherits From

Shape

Inherited By

PointM

Enumerations

PointSnapEnum

Class Requests

Making Points

Make ( anX, aY ) :  Point

MakeNull  :  Point

Instance Requests

Converting a Point

AsMultiPoint  :  MultiPoint

Generic Object Requests

= anObj :  Boolean

AsString  :  String

Getting and Setting Attributes

GetDimension  :  Number

GetX  :  Number

GetY  :  Number

IsNull  :  Boolean

ReturnCenter  :  Point

SetX ( aNumber )

SetY ( aNumber )

Transforming a Point

ReturnClipped ( aRect ) :  Shape

ReturnMerged ( anotherShape ) :  MultiPoint

ReturnProjected ( aPrj ) :  Shape

ReturnUnprojected ( aPrj ) :  Shape

Manipulating a Point

Move ( moveX, moveY ) :  Point

Snap ( anotherShape, snapDistance ) :  Boolean

Relating two Shapes

* ( anotherPoint ) :  Point

+ ( anotherPoint ) :  Point

- ( aPoint ) :  Point

/ ( anotherPoint ) :  Point

Intersects ( aShape ) :  Boolean

__________

See also

PolyLine
Circle
Line
Oval
Polygon
Rect
MultiPoint
PointTextPositioner


Make (Point)
Make

Makes a Point from anX and aY.

 p = Point.Make(-117,33)

The binary operator '@' can also be used to make a Point. For example,

 p1 = -117@33
 p2 = 1@(-1)

Syntax

Point.Make (anX, aY)

Returns

Point


MakeNull (Point)
MakeNull

Makes a NULL Point.

Syntax

Point.MakeNull

Returns

Point


AsMultiPoint (Point)
AsMultiPoint

Returns a MultiPoint representation of aPoint.

Syntax

aPoint.AsMultiPoint

Returns

MultiPoint


= (Point)
=

Returns TRUE when aPoint is equal to anObj, otherwise returns FALSE.

Syntax

aPoint = anObj

Returns

Boolean


AsString (Point)
AsString

Returns the string "Point: x y".

Syntax

aPoint.AsString

Returns

String


GetDimension (Point)
GetDimension

Returns 0. In ArcView, points have dimension 0, lines have dimension 1 and polygons have dimension 2. Only shapes with dimension 1 or greater have a length. Only shapes with dimension 2 have an area.

Syntax

aPoint.GetDimension

Returns

Number


GetX (Point)
GetX

Returns the x coordinate of aPoint.

Syntax

aPoint.GetX

Returns

Number


GetY (Point)
GetY

Returns the y coordinate of aPoint.

Syntax

aPoint.GetY

Returns

Number


IsNull (Point)
IsNull

Returns TRUE if aPoint is NULL, otherwise returns FALSE.

Syntax

aPoint.IsNull

Returns

Boolean


ReturnCenter (Point)
ReturnCenter

Returns the center point of aPoint. If aPoint is not NULL, it returns the clone of aPoint.

Syntax

aPoint.ReturnCenter

Returns

Point


SetX (Point)
SetX

Sets the x coordinate of aPoint to aNumber.

Syntax

aPoint.SetX (aNumber)


SetY (Point)
SetY

Sets the x coordinate of aPoint to aNumber.

Syntax

aPoint.SetY (aNumber)


ReturnClipped (Point)
ReturnClipped

The result is NULL.

Syntax

aPoint.ReturnClipped (aRect)

Returns

Shape


ReturnMerged (Point)
ReturnMerged

Merges aPoint and anotherShape into a new shape.

Syntax

aPoint.ReturnMerged (anotherShape)

Returns

MultiPoint


ReturnProjected (Point)
ReturnProjected

Returns aPoint projected by aPrj. The result may be a different kind of shape or have more points than the original in order to be visually pleasing.

Syntax

aPoint.ReturnProjected (aPrj)

Returns

Shape


ReturnUnprojected (Point)
ReturnUnprojected

Returns aPoint unprojected by aPrj.

Syntax

aPoint.ReturnUnprojected (aPrj)

Returns

Shape


Move (Point)
Move

Moves aPoint by moveX and moveY and returns it.

Syntax

aPoint.Move (moveX, moveY)

Returns

Point


Snap (Point)
Snap

Snaps aPoint to vertices of anotherShape within snapDistance. Returns TRUE if snapping occurred, otherwise returns FALSE.

Syntax

aPoint.Snap (anotherShape, snapDistance)

Returns

Boolean


* (Point)
*

Returns a new point with the components of aPoint multiplied by the corresponding components of anotherPoint.

Syntax

aPoint.* (anotherPoint)

Returns

Point


+ (Point)
+

Returns a new point with the components of aPoint added to the corresponding components of anotherPoint.

Syntax

aPoint.+ (anotherPoint)

Returns

Point


- (Point)
-

Returns a new point with the components of aPoint subtracted from the corresponding components of aPoint.

Syntax

aPoint.- (aPoint)

Returns

Point


/ (Point)
/

Returns a new point with the components of aPoint divided by the corresponding components of anotherPoint.

Syntax

aPoint./ (anotherPoint)

Returns

Point


Intersects (Point)
Intersects

Returns TRUE if aPoint intersects aShape, otherwise returns FALSE.

Syntax

aPoint.Intersects (aShape)

Returns

Boolean


PointSnapEnum

 Types of specific point snapping. Used in conjunction with the UserSnap request request on FTheme, and interactive request on View.

#POINT_SNAP_NONE

No point snapping in effect.

#POINT_SNAP_VERTEX

Snaps point to closest vertex of shape.

#POINT_SNAP_BOUNDARY

Snaps point to closest boundary line of shape.

#POINT_SNAP_ENDPOINT

Snaps point to closest endpoint of PolyLine.

#POINT_SNAP_INTERSECTION

Snaps point to nearest intersection between shapes.


PointM

 A PointM is a combination of three numbers used to represent either a cartesian (X-Y-M) or spherical (longitude-latitude-M) point.

Attributes

X.X is a number representing the x-coordinate of the point. This is also sometimes used as a longitude.

Y.Y is a number representing the y-coordinate of the point. This is also sometimes used as a latitude.

Z.M is a number representing the m-value of the point. It could be also used as any kind of measure.

Inherits From

Point

Inherited By

PointZ

Class Requests

Making PointMs

Make ( X, Y, M ) :  PointM

MakeNull  :  PointM

Instance Requests

Converting a PointM

@ zValue :  PointZ

AsMultiPointM  :  MultiPointM

AsPoint  :  Point

Generic Object Requests

= anObj :  Boolean

AsString  :  String

IsMeasured  :  Boolean

Getting and Setting Attributes

GetM  :  Number

ReturnMBB  :  RectM

SetM ( aNumber ) :  PointM

Relating two Shapes

* anotherPoint :  PointM

+ anotherPoint :  PointM

- anotherPoint :  PointM

/ anotherPoint :  PointM

Transforming a PointM

ReturnProjected ( aPrj ) :  Shape

ReturnUnprojected ( aPrj ) :  Shape

__________

See also

LineM
RectM
MultiPointM
PolyLineM
PolygonM
PointZ
LineZ
RectZ
MultiPointZ
PolyLineZ
PolygonZ


Make (PointM)
Make

Makes a PointM from X, Y, and M. The binary operator 'X@Y&M' can also be used to make a PointM.

Syntax

PointM.Make (X, Y, M)

Returns

PointM


MakeNull (PointM)
MakeNull

Makes the NULL PointM.

Syntax

PointM.MakeNull

Returns

PointM


@ (PointM)
@

Returns a PointZ with coordinates x, y, and m preserved and coordinate z set to zValue.

Syntax

aPointM @ zValue

Returns

PointZ


AsMultiPointM (PointM)
AsMultiPointM

Returns a MultiPointM representation of aPointM.

Syntax

aPointM.AsMultiPointM

Returns

MultiPointM


AsPoint (PointM)
AsPoint

Returns a Point representation of aPointM.

Syntax

aPointM.AsPoint

Returns

Point


= (PointM)
=

Returns TRUE when aPointM is equal to anObj, otherwise returns FALSE.

Syntax

aPointM = anObj

Returns

Boolean


AsString (PointM)
AsString

Returns the string "PointM: x y m".

Syntax

aPointM.AsString

Returns

String


IsMeasured (PointM)
IsMeasured

Returns TRUE if aPointM has M value, otherwise returns FALSE.

Syntax

aPointM.IsMeasured

Returns

Boolean


GetM (PointM)
GetM

Returns the m coordinate of aPoint.

Syntax

aPointM.GetM

Returns

Number


ReturnMBB (PointM)
ReturnMBB

Returns the MBB of aPointM. The MBB is the minimum bounding box aPointM.

Syntax

aPointM.ReturnMBB

Returns

RectM


SetM (PointM)
SetM

Sets the m coordinate of aPoint to aNumber.

Syntax

aPointM.SetM (aNumber)

Returns

PointM


* (PointM)
*

Returns a new point with the components of aPointM multiplied by the corresponding components of anotherPoint.

Syntax

aPointM * anotherPoint

Returns

PointM


+ (PointM)
+

Returns a new point with the components of aPointM added to the corresponding components of anotherPoint.

Syntax

aPointM + anotherPoint

Returns

PointM


- (PointM)
-

Returns a new point with the components of anotherPoint subtracted from the corresponding components of aPointM.

Syntax

aPointM - anotherPoint

Returns

PointM


/ (PointM)
/

Returns a new point with the components of aPointM divided by the corresponding components of anotherPoint.

Syntax

aPointM / anotherPoint

Returns

PointM


ReturnProjected (PointM)
ReturnProjected

Returns aPointM projected by aPrj.

Syntax

aPointM.ReturnProjected (aPrj)

Returns

Shape


ReturnUnprojected (PointM)
ReturnUnprojected

Returns aPointM unprojected by aPrj.

Syntax

aPointM.ReturnUnprojected (aPrj)

Returns

Shape


PointZ

 A PointZ is a combination of three numbers used to represent either a cartesian (X-Y-Z) or spherical (longitude-latitude-elevation) point.

Attributes

X.X is a number representing the x-coordinate of the point. This is also sometimes used as a longitude.

Y.Y is a number representing the y-coordinate of the point. This is also sometimes used as a latitude.

Z.Z is a number representing the z-coordinate of the point. This is also sometimes used as a elevation.

Inherits From

PointM

Class Requests

Making PointZs

Make ( anX, aY, aZ ) :  PointZ

MakeNull  :  PointZ

Instance Requests

Converting a PointZ

AsMultiPointZ  :  MultiPointZ

Generic Object Requests

= anObj :  Boolean

AsString  :  String

HasZ  :  Boolean

IsMeasured  :  Boolean

Getting and Setting Attributes

GetZ  :  Number

PolarQuery ( pivotZ, azimuth, inclination, radius )

ReturnCenter  :  PointZ

ReturnMBB  :  RectZ

SetZ ( aNumber )

Manipulating a PointZ

PolarMove ( pivotZ, dAzimuth, dInclination, dRadius ) :  PointZ

PolarSet ( pivotZ, azimuth, inclination, radius ) :  PointZ

ZMove ( moveX, moveY, moveZ ) :  PointZ

Relating two Shapes

* ( anotherPointZ ) :  PointZ

+ ( anotherPointZ ) :  PointZ

- ( anotherPointZ ) :  PointZ

/ ( anotherPointZ ) :  PointZ

Add ( aVector ) :  PointZ

ReturnMerged ( anotherShape ) :  MultiPointZ

Subtract ( anotherPointZ ) :  Vector

Transforming a PointZ

QueryZOffset ( anotherPointZ, aOffset ) :  PointZ

QueryZScale ( anotherPointZ, aScale ) :  PointZ

ReturnProjected ( aPrj ) :  Shape

ReturnUnprojected ( aPrj ) :  Shape

ZOffset ( aOffset ) :  PointZ

ZScale ( aScale ) :  PointZ

__________

See also

PolyLine
Circle
Line
Oval
Polygon
Rect
MultiPoint


Make (PointZ)
Make

Makes a PointZ from anX, aY, and aZ. The binary operator '@' can also be used to make a PointZ.

Syntax

PointZ.Make (anX, aY, aZ)

Returns

PointZ


MakeNull (PointZ)
MakeNull

Makes the NULL PointZ.

Syntax

PointZ.MakeNull

Returns

PointZ


AsMultiPointZ (PointZ)
AsMultiPointZ

Returns a MultiPointZ representation of aPointZ.

Syntax

aPointZ.AsMultiPointZ

Returns

MultiPointZ


= (PointZ)
=

Returns TRUE when aPointZ is equal to anObj, otherwise returns FALSE.

Syntax

aPointZ = anObj

Returns

Boolean


AsString (PointZ)
AsString

Returns the string "PointZ: x y z".

Syntax

aPointZ.AsString

Returns

String


HasZ (PointZ)
HasZ

Returns TRUE because aPointZ has Z coordinates.

Syntax

aPointZ.HasZ

Returns

Boolean


IsMeasured (PointZ)
IsMeasured

Returns TRUE if aPointZ has Measure coordinates, otherwise returns FALSE.

Syntax

aPointZ.IsMeasured

Returns

Boolean


GetZ (PointZ)
GetZ

Returns the z coordinate of aPointZ.

Syntax

aPointZ.GetZ

Returns

Number


PolarQuery (PointZ)
PolarQuery

Queries azimuth, inclination and radius of aPointZ relative to pivotZ. Azimuth, inclination, and radius must exist, and be initialized to valid numbers (e.g. 0.0) before issuing this request. Do not pass null numbers.

Syntax

aPointZ.PolarQuery (pivotZ, azimuth, inclination, radius)


ReturnCenter (PointZ)
ReturnCenter

Returns the center point of aPointZ.

Syntax

aPointZ.ReturnCenter

Returns

PointZ


ReturnMBB (PointZ)
ReturnMBB

Returns the MBB of aPointZ. The MBB is the minimum bounding box aPointZ.

Syntax

aPointZ.ReturnMBB

Returns

RectZ


SetZ (PointZ)
SetZ

Sets the z coordinate of aPointZ to aNumber.

Syntax

aPointZ.SetZ (aNumber)


PolarMove (PointZ)
PolarMove

Moves aPointZ relative to pivotZ. dAzimuth, dInclination and dRadius are changes to the values in question.

Syntax

aPointZ.PolarMove (pivotZ, dAzimuth, dInclination, dRadius)

Returns

PointZ


PolarSet (PointZ)
PolarSet

Sets aPointZ's x/y/z relative to pivotZ according to the specified azimuth, inclination and radius.

Syntax

aPointZ.PolarSet (pivotZ, azimuth, inclination, radius)

Returns

PointZ


ZMove (PointZ)
ZMove

Moves aPointZ by moveX, moveY and moveZ and returns it.

Syntax

aPointZ.ZMove (moveX, moveY, moveZ)

Returns

PointZ


* (PointZ)
*

Returns a new point with the components of aPointZ multiplied by the corresponding components of anotherPointZ.

Syntax

aPointZ.* (anotherPointZ)

Returns

PointZ


+ (PointZ)
+

Returns a new point with the components of aPointZ added to the corresponding components of anotherPointZ.

Syntax

aPointZ.+ (anotherPointZ)

Returns

PointZ


- (PointZ)
-

Returns a new point with the components of anotherPointZ subtracted from the corresponding components of aPointZ.

Syntax

aPointZ.- (anotherPointZ)

Returns

PointZ


/ (PointZ)
/

Returns a new point with the components of aPointZ divided by the corresponding components of anotherPointZ.

Syntax

aPointZ./ (anotherPointZ)

Returns

PointZ


Add (PointZ)
Add

Returns a new point that is the result of adding aVector to aPoint.

Syntax

aPointZ.Add (aVector)

Returns

PointZ


ReturnMerged (PointZ)
ReturnMerged

Merges aPointZ and anotherShape into a new shape.

Syntax

aPointZ.ReturnMerged (anotherShape)

Returns

MultiPointZ


Subtract (PointZ)
Subtract

Returns a vector of difference between anotherPointZ and aPointZ.

Syntax

aPointZ.Subtract (anotherPointZ)

Returns

Vector


QueryZOffset (PointZ)
QueryZOffset

Queries aPointZ into anotherPointZ altering it's z values by adding aOffset.

Syntax

aPointZ.QueryZOffset (anotherPointZ, aOffset)

Returns

PointZ


QueryZScale (PointZ)
QueryZScale

Queries aPointZ into anotherPointZ altering it's z values by multiplying with aScale.

Syntax

aPointZ.QueryZScale (anotherPointZ, aScale)

Returns

PointZ


ReturnProjected (PointZ)
ReturnProjected

Returns aPointZ projected by aPrj.

Syntax

aPointZ.ReturnProjected (aPrj)

Returns

Shape


ReturnUnprojected (PointZ)
ReturnUnprojected

Returns aPointZ unprojected by aPrj.

Syntax

aPointZ.ReturnUnprojected (aPrj)

Returns

Shape


ZOffset (PointZ)
ZOffset

Offsets aPointZ z values by aOffset.

Syntax

aPointZ.ZOffset (aOffset)

Returns

PointZ


ZScale (PointZ)
ZScale

Multiplies aPointZ's z value by aScale.

Syntax

aPointZ.ZScale (aScale)

Returns

PointZ


Polygon
Related Topics

 A Polygon is a representation of a set of parts (rings). Each part (ring) is a set of vertices connected by segments that close back to the first vertex. A ring cannot contain self-intersections.

The neighborhood to the right of an observer walking along the ring in vertex order is the inside of the polygon. Vertices for a single-ringed polygon are, therefore, always in clockwise order.

The Make request converts a list containing a lists of points (a ring) into a Polygon. Each point within the lists (rings) connects to its neighbors but the lists do not connect to each other. The first and last point in each list connect to each other. If the first and last points are the same, the last point is dropped.

Inherits From

PolyLine

Inherited By

Annotation
PolygonM

Class Requests

Making Polygons

Make ( aListofListsofPoints ) :  Polygon

MakeEmpty  :  Polygon

MakeNull  :  Polygon

Instance Requests

Converting a Polygon

AsPolygon  :  Polygon

AsPolyLine  :  PolyLine

Explode  :  List

ReturnBuffered ( aDistance ) :  Polygon

Getting and Setting Attributes

GetDimension  :  Number

IsEmpty  :  Boolean

IsNull  :  Boolean

ReturnCenter  :  Point

Manipulating a Polygon

Clean  :  Polygon

Relating two Shapes

Contains ( aShape ) :  Boolean

Intersects ( aShape ) :  Boolean

Transforming a Polygon

LineIntersection ( anotherShape ) :  PolyLine

PointIntersection ( anotherShape ) :  MultiPoint

ReturnClipped ( aRect ) :  Shape

ReturnDifference ( aShape ) :  Polygon

ReturnIntersection ( aShape ) :  Polygon

ReturnMerged ( aShape ) :  Polygon

ReturnProjected ( aPrj ) :  Shape

ReturnUnion ( aShape ) :  Polygon

ReturnUnprojected ( aPrj ) :  Shape

Split ( aPolyLine ) :  List

__________

See also

Circle
Line
MultiPoint
Oval
Point
Rect
Shape
PolygonTextPositioner


Make (Polygon)
Make

 Makes a Polygon from aListofListsofPoints. A polygon may have multiple rings.

aListofListsofPoints is a list that contains lists of points. Each list of points defines a ring. A connection is made between the first and last points in each list. If the last point is the same as the first point, the last point is dropped.

This example creates a polygon comprised of two triangular rings.

 p = Polygon.Make( {{0@0, 1@1, 0@1}, {2@2, 1@2, 1@0}} )

Syntax

Polygon.Make (aListofListsofPoints)

Returns

Polygon


MakeEmpty (Polygon)
MakeEmpty

Makes the empty Polygon.

Syntax

Polygon.MakeEmpty

Returns

Polygon


MakeNull (Polygon)
MakeNull

Makes the NULL Polygon.

Syntax

Polygon.MakeNull

Returns

Polygon


AsPolygon (Polygon)
AsPolygon

Clones aPolygon.

Syntax

aPolygon.AsPolygon

Returns

Polygon


AsPolyLine (Polygon)
AsPolyLine

Returns aPolygon boundary as PolyLine.

Syntax

aPolygon.AsPolyLine

Returns

PolyLine


Explode (Polygon)
Explode

Returns a list of single-connected Polygons representing aPolygon.

For example, using the States shapefile which comes with ArcView, select the islands of Hawaii, then use Convert to Shapefile from the Theme menu to make a new Hawaiian shapefile. Make the theme editable, select the islands (all are one multi-part Polygon), then run this script. It will modify the shapefile to contain seven records (one for each island) instead of just one.

 theView  = av.GetActiveDoc
 theTheme = theView.GetEditableTheme
 theFTab  = theTheme.GetFTab
 theFTab.BeginTransaction
 fldShape = theFTab.FindField("shape")
 sel = theFTab.GetSelection.GetNextSet(-1)
 theShp = theFtab.ReturnValue(fldShape,sel)
 aList = theShp.Explode
 ' For this example, attributes are not preserved
 for each f in aList
   rec = theFTab.AddRecord
   theFTab.SetValue(fldShape,rec,f)
 end
 theFTab.RemoveRecord(sel)
 theFTab.UpdateSelection
 theFtab.EndTransaction
 theTheme.Invalidate(TRUE)

Syntax

aPolygon.Explode

Returns

List


ReturnBuffered (Polygon)
ReturnBuffered

Returns a buffer Polygon representing aPolygon buffered by aDistance. If aDistance is negative, result will represent aPolygon inset by aDistance. You can use the Shape.SetBufferResolution request to set the buffer resolution preference which defines the smoothness of buffers.

Syntax

aPolygon.ReturnBuffered (aDistance)

Returns

Polygon


GetDimension (Polygon)
GetDimension

Returns 2. In ArcView, a point has dimension 0, lines have dimension 1, and polygons have dimension 2. Only shapes with dimension 1 or greater have a length. Only shapes with dimension 2 have an area.

Syntax

aPolygon.GetDimension

Returns

Number


IsEmpty (Polygon)
IsEmpty

Returns TRUE if aPolygon is empty, otherwise returns FALSE.

Syntax

aPolygon.IsEmpty

Returns

Boolean


IsNull (Polygon)
IsNull

Returns TRUE if aPolygon is NULL or empty, otherwise returns FALSE.

Syntax

aPolygon.IsNull

Returns

Boolean


ReturnCenter (Polygon)
ReturnCenter

Returns the center (centroid) of aPolygon. The center of aPolygon is determined by taking the center point of aPolygon's bounding box. If the center of the bounding box does not fall inside aPolygon, then the point is moved in the shortest X direction to put it inside aPolygon.

Syntax

aPolygon.ReturnCenter

Returns

Point


Clean (Polygon)
Clean

Returns a Polygon that has the same vertices as aPolygon but is "clean". A clean polygon is one that:

1. Has no self-intersections. This means that a segment belonging to one ring may not intersect a segment belonging to another ring. The rings of a polygon can touch each other at vertices, but not along segments.

2. Has the inside of the polygon on the "correct" side of the line which defines it. The neighborhood to the right of an observer walking along the ring in vertex order is the inside of the polygon. Vertices for a single, ringed polygon are, therefore, always in clockwise order. Rings defining holes in these polygons have a counter-clockwise orientation. "Dirty" polygons occur when the rings which define holes in the polygon also go clockwise, which causes overlapping interiors.

Syntax

aPolygon.Clean

Returns

Polygon


Contains (Polygon)
Contains

Returns TRUE if aPolygon contains aShape, otherwise returns FALSE.

Syntax

aPolygon.Contains (aShape)

Returns

Boolean


Intersects (Polygon)
Intersects

Returns TRUE if aPolygon intersects aShape, otherwise returns FALSE.

Syntax

aPolygon.Intersects (aShape)

Returns

Boolean


LineIntersection (Polygon)
LineIntersection

Intersects aPolygon and anotherShape into a new PolyLine shape that captures the intersection lines. LineIntersection on two polygons returns a polyline that represents the segment of the boundaries that is common to both polygons.

Syntax

aPolygon.LineIntersection (anotherShape)

Returns

PolyLine


PointIntersection (Polygon)
PointIntersection

Intersects aPolygon and anotherShape into a new MultiPoint shape that captures the intersection points.

Syntax

aPolygon.PointIntersection (anotherShape)

Returns

MultiPoint


ReturnClipped (Polygon)
ReturnClipped

Returns aPolygon clipped to aRect. The result will be NULL if aPolygon and aRect do not intersect.

Syntax

aPolygon.ReturnClipped (aRect)

Returns

Shape


ReturnDifference (Polygon)
ReturnDifference

Returns the difference between aPolygon and aShape into a new shape. aShape gets subtracted from aPolygon. The portion of aPolygon that is overlapped by aShape is removed. aPolygon's dimensionality must be less or equal to aShape's dimensionality. The result will always have the dimensionality of aPolygon.

Syntax

aPolygon.ReturnDifference (aShape)

Returns

Polygon


ReturnIntersection (Polygon)
ReturnIntersection

Returns the intersection of aPolygon and aShape into a new shape. aPolygon and aShape need not be of the same dimensionality. The result will always have the smaller dimensionality of the two input shapes. For example, if aShape is a polyline then the result will be a PolyLine.

Syntax

aPolygon.ReturnIntersection (aShape)

Returns

Polygon


ReturnMerged (Polygon)
ReturnMerged

Merges aPolygon and aShape into a new shape. aShape must have a dimension of 2. aShape can be a Polygon, Circle, Oval, or Rect.

ReturnMerged is similar to ReturnUnion except in cases where the two input shapes overlap. With ReturnMerged the resulting shape will have a hole where the shapes overlapped but with ReturnUnion there will be no hole.

Syntax

aPolygon.ReturnMerged (aShape)

Returns

Polygon


ReturnProjected (Polygon)
ReturnProjected

Returns aPolygon projected by aPrj. The result may be a different kind of shape or have more points than the original in order to be visually pleasing.

Syntax

aPolygon.ReturnProjected (aPrj)

Returns

Shape


ReturnUnion (Polygon)
ReturnUnion

Returns the union of aPolygon and aShape into a new shape. aShape must have a dimension of 2. aShape can be a Polygon, Circle, Oval, or Rect.

ReturnUnion is similar to ReturnMerged except in cases where the two input shapes overlap. With ReturnMerged the resulting shape will have a hole where the shapes overlapped but with ReturnUnion there will be no hole.

Syntax

aPolygon.ReturnUnion (aShape)

Returns

Polygon


ReturnUnprojected (Polygon)
ReturnUnprojected

Returns aPolygon unprojected by aPrj. The result may be a different kind of shape or have more points than the original in order to be visually pleasing.

Syntax

aPolygon.ReturnUnprojected (aPrj)

Returns

Shape


Split (Polygon)
Split

Splits aPolygon with aPolyLine. Resulting polygons are returned in aListOfPolygons that always has four elements:

 1. Internal polygon bounded by forward orientation of aPolyLine
 2. Internal polygon bounded by reverse orientation of aPolyLine
 3. Outside polygon bounded by forward orientation of aPolyLine
 4. Outside polygon bounded by reverse orientation of aPolyLine

Note: aPolyline cannot be a self intersecting polyline.

Syntax

aPolygon.Split (aPolyLine)

Returns

List


PolygonM

 A PolygonM is a representation of a set of parts (rings). Each part (ring) is a set of points connected by segments that close back to the first point.

The Make request converts a list containing lists of points into a PolygonM. Each point within the lists connects to its neighbors but the lists do not connect to each other. The first and last point in each list connect to each other.

Inherits From

Polygon

Inherited By

PolygonZ

Class Requests

Making PolygonMs

Make ( aListofListsofPoints ) :  PolygonM

MakeNull  :  PolygonM

Instance Requests

Transforming a Polygon

ReturnProjected ( aPrj ) :  Shape

ReturnUnprojected ( aPrj ) :  Shape

I/O

ReturnMBB  :  RectM

Converting a PolygonM

AsPolygon  :  Polygon

AsPolyLineM  :  PolyLineM

AsString  :  String

@ ( zValue ) :  PolygonZ

Getting and Setting Attributes

IsMeasured  :  Boolean

Manipulating a Polygon

Clean  :  PolygonM

__________

See also

PointM
LineM
RectM
MultiPointM
PolyLineM


Make (PolygonM)
Make

 Makes a PolygonM from aListofListofPoints. A polygon may have multiple rings. aListofListsofPoints is a list that contains lists of points. Each list of points defines a ring. A connection is made between the first and last points in each list. If the last point is the same as the first point, the last point is dropped!!! The polygon is not cleaned!!!

This example creates a polygon comprised of two triangular rings.

 p = PolygonM.make( {{0@0&1, 1@1&2, 0@1&3}, {2@2&7, 1@2&10, 1@0&15}} )

Syntax

PolygonM.Make (aListofListsofPoints)

Returns

PolygonM


MakeNull (PolygonM)
MakeNull

Makes the NULL PolygonM.

Syntax

PolygonM.MakeNull

Returns

PolygonM


ReturnProjected (PolygonM)
ReturnProjected

Returns aPolygonM projected by aPrj. The result will be the same kind of shape and have the same number of points.

Syntax

aPolygon.ReturnProjected (aPrj)

Returns

Shape


ReturnUnprojected (PolygonM)
ReturnUnprojected

Returns aPolygonM unprojected by aPrj. The result will be the same kind of shape and have the same number of points.

Syntax

aPolygon.ReturnUnprojected (aPrj)

Returns

Shape


ReturnMBB (PolygonM)
ReturnMBB

Returns the MBB of aPolygonM. The MBB is the minimum bounding box of aPolygonM.

Syntax

aPolygon.ReturnMBB

Returns

RectM


AsPolygon (PolygonM)
AsPolygon

Converts aPolygonM to a Polygon.

Syntax

aPolygonM.AsPolygon

Returns

Polygon


AsPolyLineM (PolygonM)
AsPolyLineM

Returns aPolygonM boundary as PolyLineM.

Syntax

aPolygonM.AsPolyLineM

Returns

PolyLineM


AsString (PolygonM)
AsString

Returns a string describing aPolygonM. The string contains the keyword PolygonM, the number of parts and for each part, the number of points in it and the X,Y,M of each point.

Syntax

aPolygonM.AsString

Returns

String


@ (PolygonM)
@

Returns a PolygonZ with the x, y points and the m buffer preserved and a coordinate zValue set for all the points.

Syntax

aPolygonM.@ (zValue)

Returns

PolygonZ


IsMeasured (PolygonM)
IsMeasured

Returns TRUE if the measures are set.

Syntax

aPolyLineM.IsMeasured

Returns

Boolean


Clean (PolygonM)
Clean

Returns itself, does not clean aPolygonM. If you want to clean aPolygonM you must convert it into a aPolygon and then call aPolygon.Clean. With this process, you will lose the M values.

Syntax

aPolygonM.Clean

Returns

PolygonM


PolygonZ

 An PolygonZ is a representation of a set of parts (rings). Each part (ring) is a set of points connected by segments that close back to the first point.

The Make request converts a list containing lists of points into a PolygonZ. Each point within the lists connects to its neighbors but the lists do not connect to each other. The first and last point in each list connect to each other.

Inherits From

PolygonM

Inherited By

MultiPatch

Class Requests

Making PolygonZs

Make ( aListofListsofPointZs ) :  PolygonZ

MakeNull  :  PolygonZ

Instance Requests

Converting a PolygonZ

AsList  :  List

AsPolyLineZ  :  PolyLineZ

AsString  :  String

Getting and Setting Attributes

HasZ  :  Boolean

IsMeasured  :  Boolean

ReturnMBB  :  RectZ

Manipulating a Polygon

Clean  :  PolygonZ

ReturnUnion ( aShape ) :  PolygonZ

Transforming a PolygonZ

ReturnProjected ( aPrj ) :  Shape

ReturnUnprojected ( aPrj ) :  Shape

Transforming a PolygonZ

BufferSegmentsZ ( aPolyLineZ, aScale ) :  PolygonZ

QueryZOffset ( anotherPolygonZ, aOffset ) :  PolygonZ

QueryZScale ( anotherPolygonZ, aScale ) :  PolygonZ

ZMove ( moveX, moveY, moveZ ) :  PolygonZ

ZOffset ( aOffset ) :  PolygonZ

ZScale ( aScale ) :  PolygonZ

__________

See also

Circle
Line
MultiPoint
Oval
Point
Rect
Shape


Make (PolygonZ)
Make

 Makes a PolygonZ from aListofListsofPointZs. A polygon may have multiple rings. aListofListsofPointZs is a list that contains lists of pointZs. Each list of points defines a ring. A connection is made between the first and last points in each list. If the last point is the same as the first point, the last point is dropped. The resulting PolygonZ is not cleaned.

This example creates a polygon comprised of two triangular rings.

 p = PolygonZ.Make( {{0@0@0, 0@1@1, 1@1@3}, {5@5@2, 6@7@4, 9@3@4}} )

Syntax

PolygonZ.Make (aListofListsofPointZs)

Returns

PolygonZ


MakeNull (PolygonZ)
MakeNull

Makes the NULL PolygonZ.

Syntax

PolygonZ.MakeNull

Returns

PolygonZ


AsList (PolygonZ)
AsList

Returns aPolygonZ as a list containing parts as lists of pointZs.

Syntax

aPolygonZ.AsList

Returns

List


AsPolyLineZ (PolygonZ)
AsPolyLineZ

Returns aPolygonZ boundary as a PolyLineZ.

Syntax

aPolygonZ.AsPolyLineZ

Returns

PolyLineZ


AsString (PolygonZ)
AsString

Returns a string describing aPolygonZ. The string contains the keyword PolygonZ, the number of parts and for each part, the number of points in it and the X,Y,Z of each point. For example, this script creates the following PolygonZ.

 myPolygon = PolygonZ.Make( {{0@0@0, 1@1@1, 2@2@2, 3@3@3},
                             {1@2@4, 1@3@3, 1@4@2},
                             {0@3@5, 2@1@5, 1@2@5, 3@0@5}} )
 msgbox( myPolygon.AsString, "")

 PolygonZ
 3
 4
 0,0,0
 1,1,1
 2,2,2
 3,3,3
 3
 1,2,4
 1,3,3
 1,4,2
 4
 0,3,5
 2,1,5
 1,2,5
 3,0,5

Syntax

aPolygonZ.AsString

Returns

String


HasZ (PolygonZ)
HasZ

Returns TRUE because aPolygonZ has Z coordinates.

Syntax

aPolygonZ.HasZ

Returns

Boolean


IsMeasured (PolygonZ)
IsMeasured

Returns TRUE if aPolygonZ has measures, otherwise returns FALSE.

Syntax

aPolygonZ.IsMeasured

Returns

Boolean


ReturnMBB (PolygonZ)
ReturnMBB

Returns the MBB of aPolygonZ. The MBB is the minimum bounding box surrounding aPolygonZ.

Syntax

aPolygonZ.ReturnMBB

Returns

RectZ


Clean (PolygonZ)
Clean

Returns itself, does not clean aPolygonZ. If you want to clean aPolygonZ you must first remove z values and any measures by calling AsPolygon followed by Clean.

Syntax

aPolygonZ.Clean

Returns

PolygonZ


ReturnUnion (PolygonZ)
ReturnUnion

Returns the union of aPolygonZ and aShape into a new shape of class PolygonZ with all heights set to 0.0. aShape must have a dimension of 2. aShape can be a PolygonZ, Polygon, Circle, Oval, or Rect.

Syntax

aPolygonZ.ReturnUnion (aShape)

Returns

PolygonZ


ReturnProjected (PolygonZ)
ReturnProjected

Returns aPolygonZ projected by aPrj. The result will be the same kind of shape and have the same number of points as aPolygonZ.

Syntax

aPolygonZ.ReturnProjected (aPrj)

Returns

Shape


ReturnUnprojected (PolygonZ)
ReturnUnprojected

Returns aPolygonZ unprojected from aPrj. The result will be the same kind of shape and have the same number of points as aPolygonZ.

Syntax

aPolygonZ.ReturnUnprojected (aPrj)

Returns

Shape


BufferSegmentsZ (PolygonZ)
BufferSegmentsZ

This makes a variable width buffer by returning a PolygonZ that is the union between aPolygonZ and aPolyLineZ buffered by scaled z values. Heights of the returned PolygonZ will all be set to 0.0. If you want to buffer just aPolyLineZ then aPolygonZ should be NULL. If you want to buffer aPolygonZ then pass its boundary as aPolyLineZ.

Syntax

aPolygonZ.BufferSegmentsZ (aPolyLineZ, aScale)

Returns

PolygonZ


QueryZOffset (PolygonZ)
QueryZOffset

Queries aPolygonZ into anotherPolygonZ altering it's z values by adding aOffset.

Syntax

aPolygonZ.QueryZOffset (anotherPolygonZ, aOffset)

Returns

PolygonZ


QueryZScale (PolygonZ)
QueryZScale

Queries aPolygonZ into anotherPolygonZ altering it's z values by multiplying with aScale.

Syntax

aPolygonZ.QueryZScale (anotherPolygonZ, aScale)

Returns

PolygonZ


ZMove (PolygonZ)
ZMove

Moves aPolygonZ by moveX, moveY and moveZ and returns it. The x, y and z moves are applied to each point in the PolygonZ.

Syntax

aPolygonZ.ZMove (moveX, moveY, moveZ)

Returns

PolygonZ


ZOffset (PolygonZ)
ZOffset

Offsets aPolygonZ z values by aOffset.

Syntax

aPolygonZ.ZOffset (aOffset)

Returns

PolygonZ


ZScale (PolygonZ)
ZScale

Multiplies aPolygonZ z values by aScale.

Syntax

aPolygonZ.ZScale (aScale)

Returns

PolygonZ


Popup

 A Popup is a menu that is not attached to the menu bar. A Popup appears when your mouse is in the display area of the active document and you click the right mouse button. Popups allow you to easily trigger click events while working in a document.

Inherits From

Menu

Class Requests

Creating Popup Menus

Make  :  Popup

__________

See also

PopupSet
Menu
MenuBar
Choice
Space


Make (Popup)
Make

Creates a popup menu.

Syntax

Popup.Make

Returns

Popup


PopupSet

 The PopupSet organizes the Popup menus associated with a DocGUI. One Popup in the set is the active Popup. By default, the first Popup in the set is the active Popup, but you can activate other Popups through Avenue. Other than that, the ordering of the Popups in the set is irrelevant.

You can control which Popup menu is active in a very dynamic manner. When you press the right mouse button the update script associated with the active DocGUI's PopupSet executes if present. This script can set the active Popup based upon factors such as the presence and kind of the current selection set, the kind of theme that is active, etc. After this script is executed, but before the Popup menu appears, the update scripts for each of the choices in the Popup menu are executed. Finally, the menu appears and stays visible while the mouse button is pressed down.

Good user interface design dictates that Popup menus appear as if they were attached to objects, rather than operations. For example, consider a view with two point themes: Active Well Sites and Lease Holder geocoded addresses. Selecting a point from the Active Well Sites theme, then pressing the right mouse button, could bring up a Popup menu that had operations tailored to well sites. Later, when the Leasor theme is made active and a point selected from it, a different Popup appropriate for those points could appear.

Inherits From

ControlSet

Instance Requests

Using PopupSets

FindByLabel ( aLabel ) :  Popup

GetActive  :  Popup

SetActive ( aPopup )

__________

See also

Popup
Menu
Choice
DocGUI
ButtonBar
ToolBar


FindByLabel (PopupSet)
FindByLabel

Returns the first Popup in aPopupSet whose label is the same as aLabel. The character '&' is disregarded when doing the search. So if aLabel is "Window", it will find the menu whose label is "&Window".

Syntax

aPopupSet.FindByLabel (aLabel)

Returns

Popup


GetActive (PopupSet)
GetActive

Returns the active Popup menu in aPopupSet.

Syntax

aPopupSet.GetActive

Returns

Popup


SetActive (PopupSet)
SetActive

Makes aPopup the active Popup for aPopupSet. If aPopup isn't currently in aPopupSet, it is added. Use nil as the parameter to indicate that no Popup should be active.

Syntax

aPopupSet.SetActive (aPopup)


ProjectionDialog

 This class provides a dialog for choosing a projection. The user may choose a predefined projection or he may define a custom projection. Predefined projections are stored in the etc/default.prj file.

Inherits From

ModalDialog

Class Requests

PProp

Show ( aView, viewUnits ) :  Prj

__________

See also

Prj
View


Show (ProjectionDialog)
Show

 Show the projection dialog box. If aView has a projection, then that projection is shown as the default in the dialog. Also, the extent of aView is used to define default parameters for the custom projections. viewUnits are the current units of aView. If the user chooses OK, then the projection that was chosen is returned, otherwise nil is returned.

Syntax

ProjectionDialog.Show (aView, viewUnits)

Returns

Prj


Printer

 The sole instance of the Printer class is a platform-independent representation of a printer. Requests on this object let you set up the printer and get information from it. You perform the actual print operation by sending a Print request to one of ArcView's documents. For more information on how ArcView does printing, refer to 'Print', 'Printing' and 'Print Setup'.

Attributes

FileName.FileName is the name of a file to print to. If FileName is the empty string, printing will go to the printer.

JobName.JobName is the name of the job being printed. In the setup dialog, the user is presented with a list of jobs, such as "Display" and "Table of Contents" for printing a View, and allowed to choose one.

Margins.Margins is a rectangle whose sides are the four sides of the current margins on a page of aPrinter.

PageSize.PageSize is a rectangle representing the current size of the page on aPrinter.

Inherits From

Obj

Enumerations

PrinterFormatEnum

Class Requests

Making Printers

The  :  Printer

Instance Requests

Displaying Dialog Boxes

Edit ( aList ) :  Number

Setup

Getting and Setting Attributes

GetFileName  :  String

GetJobName  :  String

IsReady  :  Boolean

ReturnMargins  :  Rect

ReturnPageSize  :  Point

SetFileName ( aFileName )

SetJobName ( aName )

Manipulating a Printer

GetFormat  :  PrinterFormatEnum

SetFormat ( format )

__________

See also

Doc


The (Printer)
The

Gets the current Printer.

Syntax

Printer.The

Returns

Printer


Edit (Printer)
Edit

Shows the print options dialog. The strings in aList are shown in a combo box. They allow the user to specify what to print. Returns the index of the item selected or a negative number to indicate the user cancelled.

Syntax

aPrinter.Edit (aList)

Returns

Number


Setup (Printer)
Setup

Shows the setup dialog box for aPrinter.

Syntax

aPrinter.Setup


GetFileName (Printer)
GetFileName

Gets the name of the file to print to with aPrinter.

Syntax

aPrinter.GetFileName

Returns

String


GetJobName (Printer)
GetJobName

Gets the name of the job on aPrinter.

Syntax

aPrinter.GetJobName

Returns

String


IsReady (Printer)
IsReady

BoolEnum - Determine if aPrinter is ready to print.

Syntax

aPrinter.IsReady

Returns

Boolean


ReturnMargins (Printer)
ReturnMargins

Returns the margins of aPrinter.

Syntax

aPrinter.ReturnMargins

Returns

Rect


ReturnPageSize (Printer)
ReturnPageSize

Returns the page size of aPrinter.

Syntax

aPrinter.ReturnPageSize

Returns

Point


SetFileName (Printer)
SetFileName

Sets the name of the file to aFileName.

Syntax

aPrinter.SetFileName (aFileName)


SetJobName (Printer)
SetJobName

Sets the job name of aPrinter to aName.

Syntax

aPrinter.SetJobName (aName)


GetFormat (Printer)
GetFormat

Gets the print format.

Syntax

aPrinter.GetFormat

Returns

PrinterFormatEnum


SetFormat (Printer)
SetFormat

Sets the print format.

Syntax

aPrinter.SetFormat (format)


PrinterFormatEnum

 Defines the available printer output formats.

#PRINTER_FORMAT_POSTSCRIPT

Sends a PostScript file to printer, uses new and improved ArcView PostScript interface.

#PRINTER_FORMAT_POSTSCRIPT_OLD

Sends a PostScript file to printer, uses old and simple ArcView PostScript interface.

#PRINTER_FORMAT_POSTSCRIPT_NATIVE

Sends a PostScript file to printer, uses Native OS PostScript driver. Not available on all OSs, no operation will occur if attempted.

#PRINTER_FORMAT_CGM

Sends a CGM file to printer. Only available on Unix. No operation will occur if not available.


Prj
Discussion	Example

 This abstract super class represents a generic projection. Each subclass implements a specific projection.

Inherits From

Obj

Inherited By

Albers
Cassini
EqualAreaAzimuthal
EqualAreaCylindrical
EquidistantAzimuthal
EquidistantConic
EquidistantCylindrical
Hammer
Lambert
Mercator
Miller
Mollweide
NewZealand
ObliqueMercator
Perspective
Robinson
RSO
Sinusoid
TransverseMercator

Enumerations

PrjEnum

PrjRectQualityEnum

PrjDisplayQualityEnum

Class Requests

Projections

CanDoCustom  :  Boolean

CanDoSpheroid  :  Boolean

Make ( aRect ) :  Prj

MakeNull  :  Prj

ReturnPrjName  :  String

Instance Requests

Projecting and Unprojecting with Prj

GetDisplayQuality  :  PrjDisplayQualityEnum

IsUnProjectable ( aPoint ) :  Boolean

ProjectPt ( aPoint ) :  Boolean

ProjectRect ( aRect, aQuality )

SetDisplayQuality ( aDisplayQuality )

UnProjectPt ( aPoint ) :  Boolean

UnProjectRect ( aRect, aQuality )

Altering and Comparing Projections

= anotherProjection :  Boolean

CalcHorizon

FixExtent ( anExtent )

GetHorizon  :  Polygon

GetSpheroid  :  Spheroid

IsNull  :  Boolean

Recalculate

ReturnDescription  :  String

ReturnShift  :  Number

SetDescription ( aString )

SetShift ( anOffset )

SetSpheroid ( aSpheroid )

__________

See also

CoordSys
Spheroid


CanDoCustom (Prj)
CanDoCustom

Returns TRUE if a class of projections supports customization and FALSE if it only supports fixed parameters.

Syntax

Prj.CanDoCustom

Returns

Boolean


CanDoSpheroid (Prj)
CanDoSpheroid

Returns TRUE if a class of projections supports arbitrary ellipsoids (spheroids) and FALSE if it only supports the sphere.

Syntax

Prj.CanDoSpheroid

Returns

Boolean


Make (Prj)
Make

Creates a projection. aRect is the bounding rectangle of the area being projected. Use decimal degrees for the coordinates of aRect. ABSTRACT

Syntax

Prj.Make (aRect)

Returns

Prj


MakeNull (Prj)
MakeNull

Creates a null projection.

Syntax

Prj.MakeNull

Returns

Prj


ReturnPrjName (Prj)
ReturnPrjName

Returns the descriptive name corresponding to this subclass of Prj.

Syntax

Prj.ReturnPrjName

Returns

String


GetDisplayQuality (Prj)
GetDisplayQuality

Gets the display quality. See discussion under PrjDisplayQualityEnum.

Syntax

aPrj.GetDisplayQuality

Returns

PrjDisplayQualityEnum


IsUnProjectable (Prj)
IsUnProjectable

Returns TRUE if a point can be unprojected.

Syntax

aPrj.IsUnProjectable (aPoint)

Returns

Boolean


ProjectPt (Prj)
ProjectPt

Projects the point aPoint. Returns TRUE if aPoint is visible, FALSE otherwise; however, this always returns a point. ABSTRACT

Syntax

aPrj.ProjectPt (aPoint)

Returns

Boolean


ProjectRect (Prj)
ProjectRect

Projects a rectangle. aQuality specifies how accurate the projection of the rectangle should be. See discussion under PrjRectQualityEnum.

Syntax

aPrj.ProjectRect (aRect, aQuality)


SetDisplayQuality (Prj)
SetDisplayQuality

Sets the display quality. See discussion under PrjDisplayQualityEnum.

Syntax

aPrj.SetDisplayQuality (aDisplayQuality)


UnProjectPt (Prj)
UnProjectPt

Unprojects the point aPoint. Returns TRUE if a point can be unprojected, FALSE otherwise; however, this always returns a point. ABSTRACT

Syntax

aPrj.UnProjectPt (aPoint)

Returns

Boolean


UnProjectRect (Prj)
UnProjectRect

Unprojects a rectangle. aQuality specifies how accurate the projection of the rectangle should be. See discussion under PrjRectQualityEnum.

Syntax

aPrj.UnProjectRect (aRect, aQuality)


= (Prj)
=

Checks whether two projections are of the same class, have the same spheroid, and have the same parameters.

Syntax

aPrj = anotherProjection

Returns

Boolean


CalcHorizon (Prj)
CalcHorizon

Calculates the polygon representing the boundary of the visible area of the earth in projected space.

Syntax

aPrj.CalcHorizon


FixExtent (Prj)
FixExtent

Make sure anExtent falls within acceptable bounds for aProjection.

Syntax

aPrj.FixExtent (anExtent)


GetHorizon (Prj)
GetHorizon

Gets the polygon representing the boundary of the visible area of the earth in projected space.

Syntax

aPrj.GetHorizon

Returns

Polygon


GetSpheroid (Prj)
GetSpheroid

Gets the spheroid associated with this projection.

Syntax

aPrj.GetSpheroid

Returns

Spheroid


IsNull (Prj)
IsNull

Returns TRUE if this is this a null projection, FALSE if it is not.

Syntax

aPrj.IsNull

Returns

Boolean


Recalculate (Prj)
Recalculate

Recalculates the various constants needed to project and unproject points. You must Recalculate after changing things like the standard parallels, reference longitude, spheroid and such.

Syntax

aPrj.Recalculate


ReturnDescription (Prj)
ReturnDescription

Returns descriptive information about this projection.

Syntax

aPrj.ReturnDescription

Returns

String


ReturnShift (Prj)
ReturnShift

Returns the offset used for shifting the prime meridian.

Syntax

aPrj.ReturnShift

Returns

Number


SetDescription (Prj)
SetDescription

Sets descriptive information about this projection.

Syntax

aPrj.SetDescription (aString)


SetShift (Prj)
SetShift

Shifts the prime meridian by anOffset. Therefore, positive numbers move the coordinates to the left (west), and negative numbers move the coordinates to the right (east). For example, if you set the shift to +20 degrees, then a coordinate value of -170 would be changed to +170, causing it to be moved across the dateline. Similarly, if you set the shift to -20 degrees, then a coordinate of +170 would be changed to -170, also moving it across the dateline.

The effect of this is that you can take data that crosses the dateline (for example, the Aleutian Islands), and shift it all to one side of the dateline. For example,

   av.GetProject.FindDoc("View1").GetProjection.SetShift(-20)

The shifted coordinates appear in the view coordinate display on the toolbar.

Note: This request was designed to fill the need of locations such as New Zealand to concisely view their local Date Line data. It is not intended for global viewing. Features split by the new false Date Line will be elongated behind the new meridian because they are not split on the fly. If you notice polygons along the new horizon which are not shading, or which appear to be inverted, this is the cause. For best results copy your data, then remove those shapes that fall along the horizon.

Syntax

aPrj.SetShift (anOffset)


SetSpheroid (Prj)
SetSpheroid

Changes the spheroid to the aSpheroid. aSpheroid is a SpheroidEnum.

To use a custom spheroid, you can do this:

 ' Create a Coordinate System

 myCoordSys = CoordSys.Make
 myCoordSys.SetName("My Custom Projections")
 thePrjs = myCoordSys.GetProjections

 ' Create a Projection

 myPrj = TrnMerc.Make(Rect.MakeXY(-180,-90,180,90))
 myPrj.SetDescription("Trinidad")
 myPrj.SetCentralMeridian(-63)
 myPrj.SetReferenceLatitude(0)
 myPrj.SetScale(0.99960)
 myPrj.SetFalseEasting(500000)
 myPrj.SetFalseNorthing(0)
 myPrj.SetSpheroid(#SPHEROID_CLARKE1866)

 ' Get the Projection's Spheroid and modify it

 mySphere = myPrj.GetSpheroid
 mySphere.SetName("Clarke 1858")
 mySphere.SetMajorAndMinorAxes(6378294,6356621)
 mySphere.SetUnits(#UNITS_LINEAR_METERS)

 ' Add the new projection to the CoordSys projections

 thePrjs.Add(myPrj)

 ' Create a default.prj file and add the CoordSys object

 defprj = ODB.Make("$HOME/default.prj".AsFilename)
 defprj.Add(myCoordSys)
 defprj.Commit

Syntax

aPrj.SetSpheroid (aSpheroid)


PrjEnum

 These are the different types of projections supported by ArcView. The formulas for most of these projections are taken directly from "Map Projections- A Working Manual," John P. Snyder, US Geological Survey Professional Paper 1395, United States Govt. Printing Office, 1987.

#PRJ_NONE

No projection.

#PRJ_SINUSOIDAL

Sinusoidal projection. (See p. 243)

#PRJ_EQUICYLINDRICAL

Equidistant cylindrical projection. (See p. 90)

#PRJ_ALBERS

Albers equal-area conic projection. (See p. 98)

#PRJ_LAMBERT

Lambert conformal conic projection. (See p. 104)

#PRJ_TRNMERC

Transverse Mercator projection. (See p. 48)

#PRJ_PERSPECTIVE

Vertical perspective projection. (See p. 169)

#PRJ_ROBINSON

Robinson projection.

#PRJ_EQUIDISTANTCONIC

Equidistant Conic projection. (See p. 111)

#PRJ_MERCATOR

Mercator projection. (See p. 38)

#PRJ_CYLINDRICALEQUALAREA

Cylindrical equal-area projection. (See p. 76)

#PRJ_MILLER

Miller cylindrical projection. (See p. 86)

#PRJ_EQUIDISTANTAZIMUTHAL

Equidistant azimuthal projection. (See p. 191)

#PRJ_AZIMUTHALEQUALAREA

Lambert azimuthal equal-area projection. (See p. 182)

#PRJ_OBLIQUEMERCATOR

Oblique Mercator projection. (See p. 66)

#PRJ_CASSINI

Cassini projection. (See p. 92)

#PRJ_NEWZEAL

Cauchy-Rieman based conformal projection for New Zealand National Grid only.

#PRJ_RSO

Rectified Skew Orthomorphic for Malaysia, Singapore, and Brunei only.

#PRJ_MOLLWEIDE

Mollweide projection. (See p. 249)

#PRJ_HAMMERAITOFF

Hammer-Aitoff projection. (See p. 182)


PrjRectQualityEnum

 These are the two types of projection quality supported by the ProjectRect request. In general, when projecting rectangles covering large areas of the earth, QUALITY_FINE should be used. Similarly, when projecting rectangles covering small areas of the earth, QUALITY_ROUGH is sufficient (and much faster).

#PRJ_RECTQUALITY_ROUGH

Projects just the four corners of the rectangle.

#PRJ_RECTQUALITY_FINE

Projects a rectangle by sampling 81 points both on its perimeter and inside it. This is necessary for large areas because parts of the projected rectangle may not be visible, causing it to "disappear" if only the four corners are considered.


PrjDisplayQualityEnum

 Displaying projected shapes involves a tradeoff between correctness and speed. The more correct appearing the display, the slower it is to generate. This mostly affects special cases, such as zooming in on polygons which are clipped by the horizon. The Prj.SetDisplayQuality request allows the user to set the display quality. The types of display quality are given by this enumeration.

#PRJ_DISPLAYQUALITY_FAST

Choose speed over correctness. Only minimal checking is performed to ensure correctness of projected polygons. This is the default.

#PRJ_DISPLAYQUALITY_CLEAN

Cleans projected polygons to ensure that they will be displayed correctly. For some cases this can be much slower than PRJ_DISPLAYQUALITY_FAST.

#PRJ_DISPLAYQUALITY_CLIPPED

Clips and/or splits projected polygons against the horizon polygon. This is the ultimate correct solution, and will fix all those problems with polygons that wrap around the world, however it will also be very slow. NOT IMPLEMENTED YET.


Project
Related Topics

 In ArcView, you work within a project. A project is a collection of documents (tables, charts, layouts, etc), document user interfaces, (called DocGUIs) and scripts. Only one project is open at a time.

The project window in ArcView is like the table of contents to your project. The project window displays two lists: a list of available kinds of documents, and a list of existing document. When you click on a "kind", you see of list of all the documents of that kind. The "kinds" of documents are really DocGUIs that you choose to make visible in the project window. You can customize which kinds appear in the project window as well as their order, their icons, their names, etc.. Through the project window, you can create "virtual" documents and organize your project in ways that make sense for your application.

Projects are persistent. When you save a project to disk, you are saving a snapshot of the current state of all the objects that project references. The size of the application window is saved with the project. The document that was active when you saved the project is maintained in the project file so that when you open the project, the appropriate document resumes its active status. The project file has the extension .apr.

Elements of a Project

A project contains three sets of things: documents, document user interfaces (DocGUIs) and scripts. You can access the project's collections using the requests GetDocs, GetGUIs and GetScripts. You can Add, Remove and Find individual documents, GUIs or scripts within a project. You can Get lists of all documents, GUIs, or scripts defined in the project. Although you have access to the lists of documents and DocGUIs, do not alter their contents using List requests. Instead use the Project requests to add and remove items (AddDoc, RemoveDoc, AddGUI, RemoveGUI).

Documents provide different means of visualizing and interacting with your data: views, tables, layouts, script editors, and charts. Document User Interfaces (DocGUIs) define the controls used to interact with the documents. DocGUIs may be system defined or local to the project. Scripts are written in Avenue and perform various tasks in ArcView.

Scripts are different from Script Editors. A Script Editor is the document that allows the user to input, compile, and test a script. A Script is the actual Avenue code. Projects include scripts that are not being edited in a script editor. These are called "embedded scripts" because they are stored in the Project's script list. Embedded scripts save the project from carrying extra documents for each script. Once a script has been compiled, debugged and tested, it does not need to be in a Script Editor. Embedded scripts can be loaded into a Script Editor for modification through the Script Editor's Load System Script button.

When you create a new document it is added to the project automatically; however, if you load a document from an ODB file, or clone an existing document, you must explicitly add the document to the project.

  myODB = ODB.Open( "c:/jeff/template/view.odb".asFileName )
  myView = myODB.Get( 0 )
  av.GetProject.AddDoc( myView )

When you create a new DocGUI, you must add it to the Project. DocGUIs must have unique names; rename a DocGUI that you create by cloning an existing DocGUI. You can use the Customize Types dialog to create and modify DocGUIs.

  newViewGUI = av.FindGUI( "View" ).clone  ' create a new GUI
  newViewGUI.SetName( "newView")           ' change its name
  av.GetProject.AddGUI( newViewGUI )

The visible DocGUIs appear in the project window in the order of the Project's DocGUI list. You can reorder this list using regular list requests and then invalidate the project window with the Update request.

When you complete development of a script and it no longer needs editing, move the script from the script editor to the list of scripts within the project. Then you can remove the script editor from the project. This process is called "embedding" the script.

  ' Add the script to the project
  myScript = av.FindScript( "Script1" )
  av.GetProject.AddScript( myScript )

  ' Remove the Script Editor
  theSEd = av.GetProject.FindDoc( "Script1" )
  av.GetProject.RemoveDoc( theSEd )

Customization

A project may be customized by altering existing user interfaces, creating new user interfaces and writing Avenue scripts. These customizations are saved with the project. The customizations may also be saved to the user or systems default projects.

Dependencies

A project may have dependencies on one or more extensions. Any extensions that are loaded when the project is saved become dependencies. The next time you open this project, those extensions will be loaded first.

Attributes

WorkDir. The working directory defaults to $HOME and is the location where project files are written.

FileName. The name of the project's source file. The project file has the extension apr.

Startup. You can specify a script that gets executed when the project opens. This script would likely contain initializations. The startup script executes after all the documents have opened, but before the user gets control.

Shutdown. You can specify a script that gets executed when the project is closed.

SelectedDocs. The selected documents in the currently visible list of documents.

SelectedGUI. The selected "kind" of document.

Buttons. The project window has three labelbuttons. You can access and alter these LabelButtons - their labels and their click and update events.

Selection Color. Selected features highlight in the selection color. You can modify that color through the project properties sheet and with Avenue requests.

Inherits From

Doc

Class Requests

Creating and Opening Projects

Make  :  Project

Open ( aProjectFileName ) :  Project

Instance Requests

Managing the Project

Close

CloseAll

GetODBGUINames  :  List

GetODBVersion  :  Number

Import ( aFileName ) :  Doc

Save  :  Boolean

Update

Managing the Project's Elements

AddDoc ( aDoc )

AddGUI ( aGUI )

AddScript ( aScript )

FindDoc ( aDocName ) :  Doc

FindGUI ( aGUIName ) :  DocGUI

FindGUIsFor ( aClass ) :  List

FindScript ( aScriptName ) :  Script

GetDependencies  :  List

GetDocs  :  List

GetDocsWithGroupGUI ( aDocGUI ) :  List

GetDocsWithGUI ( aDocGUI ) :  List

GetGUIs  :  List

GetScripts  :  NameDictionary

HasDoc ( aDoc ) :  Boolean

RemoveDoc ( aDoc )

RemoveGUI ( aGUIName ) :  Boolean

RemoveScript ( aScriptName )

Getting and Setting Project Attributes

GetButtons  :  List

GetFileName  :  FileName

GetLegendLineFlatness  :  Number

GetSelColor  :  Color

GetSelectedDocs  :  List

GetSelectedGUI  :  DocGUI

GetSerialNumber  :  String

GetShutDown  :  String

GetStartUp  :  String

GetTocWidthScale  :  Number

GetVisibleGUIsWidth  :  Number

GetWorkDir  :  FileName

IsClosing  :  Boolean

IsModified  :  Boolean

SetFileName ( aFileName )

SetLegendLineFlatness ( aPerCent )

SetModified ( aBooleanFlag )

SetSelColor ( aColor )

SetSelectedDoc ( aDoc, addToSelection )

SetSelectedGUI ( aGUI )

SetShutDown ( aScriptName )

SetStartUp ( aScriptName )

SetTocWidthScale ( aScalingWidth )

SetVisibleGUIsWidth ( aWidth )

SetWorkDir ( aDirName )

Customizing the Project

Customize

Edit

EncryptScripts

MakeSysDefault ( aFile, encrypted )

MakeUserDefault

ResetGUIs

ShowCodepage

Generating Names

MakeDocName ( aGUI ) :  String

MakeFileName ( aPrefix, anExt ) :  FileName

MakeGUIName ( baseName ) :  String

__________

See also

DocGUI
Script
Application
ODB


Make (Project)
Make

Creates a new project. Do not issue this request while another project is active; first close the active project. You can have only ONE open project at a time.

Syntax

Project.Make

Returns

Project


Open (Project)
Open

Opens the project defined by aProjectFileName. Do not issue this request while another project is active; first close the active project. You can have only ONE open project at a time.

Syntax

Project.Open (aProjectFileName)

Returns

Project


Close (Project)
Close

Closes the project.

Syntax

aProject.Close


CloseAll (Project)
CloseAll

Closes the windows of all documents in the project.

Syntax

aProject.CloseAll


GetODBGUINames (Project)
GetODBGUINames

Gets a list of modified GUI names loaded from aProject's ODB.

Syntax

aProject.GetODBGUINames

Returns

List


GetODBVersion (Project)
GetODBVersion

Gets the ODB version for aProject.

Syntax

aProject.GetODBVersion

Returns

Number


Import (Project)
Import

Imports the project referenced by aFileName. You must specify the entire file name; ArcView does not assume a .apr extension. When you import another project, any DocGUIs in the imported project will override DocGUIs with the same name in the current project. Conversely, any scripts embedded in the imported project will be overridden by embedded scripts with the same name in the target project. Import causes any extensions on which the imported project has dependencies to be loaded.

Syntax

aProject.Import (aFileName)

Returns

Doc


Save (Project)
Save

Saves the Project and all associated objects to a project file. A filename must be associated with the project before the Save request can be issued. Use the SetFileName request if the project is untitled. Use GetFileName to check for a project filename. Returns TRUE on success.

If dependencies have been defined for aProject, they are transferred to the ODB that has been created to hold aProject. aProject's dependency list is not persistent. See the discussion for classes ODB and Extension for more information on dependencies.

Syntax

aProject.Save

Returns

Boolean


Update (Project)
Update

Tells aProject that its list of DocGUIs has been re-ordered.

Syntax

aProject.Update


AddDoc (Project)
AddDoc

Adds aDoc to the project. If you create aDoc using a constructor (a Make request) , it is automatically added to the project; however, if you load aDoc from an ODB file, or clone an existing document, you must add the new document to the project with AddDoc.

Syntax

aProject.AddDoc (aDoc)


AddGUI (Project)
AddGUI

Adds aGUI to the project.

Syntax

aProject.AddGUI (aGUI)


AddScript (Project)
AddScript

Adds aScript to the project.

Syntax

aProject.AddScript (aScript)


FindDoc (Project)
FindDoc

Finds the document named aDocName and returns that document, or it returns Nil.

Syntax

aProject.FindDoc (aDocName)

Returns

Doc


FindGUI (Project)
FindGUI

Finds the GUI named aGUIName and returns that GUI, or it returns Nil.

Syntax

aProject.FindGUI (aGUIName)

Returns

DocGUI


FindGUIsFor (Project)
FindGUIsFor

Finds all DocGUIs in aProject that can be associated with instances of the specified class. The ArcView 2.1 versions of the Chart, Script Editor, and Project DocGUIs, or any DocGUIs obtained by cloning those, cannot be distinguished. You can modify project files containing such guis in order to make them distinguishable by doing the following:

  1. Look for the definition of the DocGUi in the project file. It will
     start with something like this:
     (DocGUI.xxx
         Name:   "DocGUIName"

  2. After the "Name" line, insert another line that looks like this:
         Type:   TypeName

  3. If you're modifying a DocGUI that will work with charts, then
     TypeName should "Chart".
     If you're modifying a DocGUI that will work with projects, then
     TypeName should "Project".
     If you're modifying a DocGUI that will work with script editors, then
     TypeName should be "SEd".

Syntax

aProject.FindGUIsFor (aClass)

Returns

List


FindScript (Project)
FindScript

 Finds the script named aScriptName and returns that script, or it returns Nil. If more than one script has the same name, FindScript returns the first one it finds. FindScript searches the embedded list first and then the Script Editors for aScriptName.

Syntax

aProject.FindScript (aScriptName)

Returns

Script


GetDependencies (Project)
GetDependencies

Gets the list of Extensions upon which aProject is dependent. Alterations to this list have no effect on the project's actual dependencies. This list of dependencies is recreated the next time you save the project.

Syntax

aProject.GetDependencies

Returns

List


GetDocs (Project)
GetDocs

Gets the list of documents in the project. This list is read-only. Do not add, delete, or re-order its elements.

Syntax

aProject.GetDocs

Returns

List


GetDocsWithGroupGUI (Project)
GetDocsWithGroupGUI

Returns a list of all documents in aProject that have aDocGUI as their group DocGUI. You can manipulate this list in any way.

Syntax

aProject.GetDocsWithGroupGUI (aDocGUI)

Returns

List


GetDocsWithGUI (Project)
GetDocsWithGUI

Returns a list of all documents in aProject that are associated with aDocGUI. You can manipulate this list in any way.

Syntax

aProject.GetDocsWithGUI (aDocGUI)

Returns

List


GetGUIs (Project)
GetGUIs

Gets the list of GUIs in the project. This elements of this list can be re-ordered, but do not add or delete elements. Use AddGUI and RemoveGUI to do that.

Syntax

aProject.GetGUIs

Returns

List


GetScripts (Project)
GetScripts

Gets the scripts on the project script list - the embedded "scripts". GetScripts returns a NameDictionary containing these scripts. To get a list of scripts, issue the ReturnKeys request to the NameDictionary. This dictionary is read-only. Do not add or delete its elements.

Syntax

aProject.GetScripts

Returns

NameDictionary


HasDoc (Project)
HasDoc

Returns TRUE if aProject includes aDoc.

Syntax

aProject.HasDoc (aDoc)

Returns

Boolean


RemoveDoc (Project)
RemoveDoc

Removes aDoc from the project.

Syntax

aProject.RemoveDoc (aDoc)


RemoveGUI (Project)
RemoveGUI

Removes the DocGUI named aGUIName from the project, provided that the gui is not associated with any documents. The request returns TRUE if the gui was removed and FALSE if not.

Syntax

aProject.RemoveGUI (aGUIName)

Returns

Boolean


RemoveScript (Project)
RemoveScript

Removes the script named aScriptName from the project's script list. RemoveScript only removes embedded scripts. Use RemoveDoc to eliminate Script Editors.

Syntax

aProject.RemoveScript (aScriptName)


GetButtons (Project)
GetButtons

Gets the buttons located on aProject's window.

Syntax

aProject.GetButtons

Returns

List


GetFileName (Project)
GetFileName

Gets the filename of the project's source.

Syntax

aProject.GetFileName

Returns

FileName


GetLegendLineFlatness (Project)
GetLegendLineFlatness

Returns the flatness factor of line symbology in TOC, Legends, and the Symbol Window. Return values range form 0 to 100, with 100 indicating a completely flat line and 0 indicating to disply the line symbol with default ArcView settings. This value is applied to newly created projects.

Syntax

aProject.GetLegendLineFlatness

Returns

Number


GetSelColor (Project)
GetSelColor

Gets the color used to indicate selection.

Syntax

aProject.GetSelColor

Returns

Color


GetSelectedDocs (Project)
GetSelectedDocs

Gets the documents selected in the project window.

Syntax

aProject.GetSelectedDocs

Returns

List


GetSelectedGUI (Project)
GetSelectedGUI

Gets the DocGUI currently selected in the scrolling list of "document kinds".

Syntax

aProject.GetSelectedGUI

Returns

DocGUI


GetSerialNumber (Project)
GetSerialNumber

Serial Number of the ArcView that created this Project.

Syntax

aProject.GetSerialNumber

Returns

String


GetShutDown (Project)
GetShutDown

Gets the Avenue script name for the ShutDown event.

Syntax

aProject.GetShutDown

Returns

String


GetStartUp (Project)
GetStartUp

Gets the Avenue script name for the StartUp event.

Syntax

aProject.GetStartUp

Returns

String


GetTocWidthScale (Project)
GetTocWidthScale

Return the scaling width factor applied to a TOC. This value is applied to newly created projects.

Syntax

aProject.GetTocWidthScale

Returns

Number


GetVisibleGUIsWidth (Project)
GetVisibleGUIsWidth

Returns the current width of the left scrolling list in the project window.

Syntax

aProject.GetVisibleGUIsWidth

Returns

Number


GetWorkDir (Project)
GetWorkDir

Gets the work directory of aProject.

Syntax

aProject.GetWorkDir

Returns

FileName


IsClosing (Project)
IsClosing

Returns TRUE when aProject is executing the Close request. Use this request from an extension's Uninstall script to determine if the script needs to remove user interface components. If this request returns TRUE, then the Uninstall script will not need to explicitly remove those components.

Syntax

aProject.IsClosing

Returns

Boolean


IsModified (Project)
IsModified

Returns TRUE if the project has been modified.

Syntax

aProject.IsModified

Returns

Boolean


SetFileName (Project)
SetFileName

 Sets the filename of the project source file to aFileName.

Syntax

aProject.SetFileName (aFileName)


SetLegendLineFlatness (Project)
SetLegendLineFlatness

Sets the flatness factor of line symbology in TOC, Legends, and the Symbol Window. This value is applied to newly created projects.

Syntax

aProject.SetLegendLineFlatness (aPerCent)


SetModified (Project)
SetModified

Sets the modified flag for the Project.

Syntax

aProject.SetModified (aBooleanFlag)


SetSelColor (Project)
SetSelColor

Sets the color used to indicate selection.

Syntax

aProject.SetSelColor (aColor)


SetSelectedDoc (Project)
SetSelectedDoc

 Selects the entry for aDoc in aProject's list of documents. If addToSelection is TRUE, then this new selection will be merged with any existing selection, otherwise this new selection will replace any existing selection.

Syntax

aProject.SetSelectedDoc (aDoc, addToSelection)


SetSelectedGUI (Project)
SetSelectedGUI

Sets the DocGUI currently selected in the scrolling list of "document kinds".

Syntax

aProject.SetSelectedGUI (aGUI)


SetShutDown (Project)
SetShutDown

Sets aScriptName to be executed at the ShutDown event.

Syntax

aProject.SetShutDown (aScriptName)


SetStartUp (Project)
SetStartUp

Sets aScriptName to be executed at the StartUp event.

Syntax

aProject.SetStartUp (aScriptName)


SetTocWidthScale (Project)
SetTocWidthScale

Set the scaling width factor applied to a TOC. This value applies to newly created projects.

Syntax

aProject.SetTocWidthScale (aScalingWidth)


SetVisibleGUIsWidth (Project)
SetVisibleGUIsWidth

Sets the width of the left scrolling list in the project window (containing the visible DocGUIs) to be aWidth pixels. If you want this change to be persistent, send the SetModified request to aProject afterwards.

Syntax

aProject.SetVisibleGUIsWidth (aWidth)


SetWorkDir (Project)
SetWorkDir

Sets the work directory of aProject. Before using this request, you should make sure that aDirName exists and is writable.

   aDirName = "c:\myprojects".asFileName
   if (File.Exists(aDirName))
      if (File.IsWritable(aDirName)) then
        aProject.SetWorkDir(aDirName)
      end
   end

Syntax

aProject.SetWorkDir (aDirName)


Customize (Project)
Customize

Creates a window which lets the user customize the document user interfaces (DocGUIs) in the project.

Syntax

aProject.Customize


Edit (Project)
Edit

Creates a modal property sheet for editing the properties of a project.

Syntax

aProject.Edit


EncryptScripts (Project)
EncryptScripts

Encrypts and embeds the scripts of aProject. This is an irreversible action which lets you build a project with customizations that are hidden from other users.

Any scripts named .{name} are removed from the project and are not encrypted. For example, the script named .myScript will not be in the project file after the EncryptScripts request.

*CAUTION* - THIS REQUEST CHANGES THE CURRENT PROJECT. All scripts in the project except those prefixed with "." are encrypted. Scripts prefixed with "." are removed from the project. Prior to issuing this request, you may want to save your project to capture the source code of the scripts. Once encrypted, scripts cannot be restored to text for further development or debugging! SAVE BEFORE YOU ENCRYPT!

  ' do a Project Save to save the current project
  av.run( "project.Save", "")

  ' do a Project SaveAs to change the name
  av.run( "project.SaveAs", "")

  ' now EncryptScripts
  av.GetProject.EncryptScripts

Syntax

aProject.EncryptScripts


MakeSysDefault (Project)
MakeSysDefault

 Makes a system default file from the scripts and GUIs contained in aProject, and all loaded extensions. The default file is written to aFile. To avoid including the script containing the MakeSysDefault request in the new default file, prefix that script name with a ".". Any scripts whose named begin with a dot are not written to the default file. For example, the script named ".myScript" will not be written. If encrypted is TRUE, the scripts will be encrypted.

Syntax

aProject.MakeSysDefault (aFile, encrypted)


MakeUserDefault (Project)
MakeUserDefault

Makes a user default file from the scripts and GUIs contained in aProject, and all loaded extensions. Writes the file to $HOME/default.apr. Any current default.apr in that location is overwritten.

Syntax

aProject.MakeUserDefault


ResetGUIs (Project)
ResetGUIs

Removes the GUIs currently contained in the project and restores the default GUIs defined in the system and user default files.

Syntax

aProject.ResetGUIs


ShowCodepage (Project)
ShowCodepage

Shows the codepage of aProject.

Syntax

aProject.ShowCodepage


MakeDocName (Project)
MakeDocName

Creates a unique name for a document of the given gui.

Syntax

aProject.MakeDocName (aGUI)

Returns

String


MakeFileName (Project)
MakeFileName

 Creates a FileName object using the prefix specifed in aPrefix and file extension specifed by anExt based upon other files in the Project's work directory. The FileName has the name <aPrefix><n>.<anExt>; for example, test2.txt. aPrefix is truncated to its first six characters. anExt is the extension.

ArcView checks the Project's work directory for files that match the truncated prefix and the extension and then creates a new FileName object with the lowest number unused in the sequence. For example, if there are no files named test<n>.txt in the directory, this script creates a FileName called test1.txt. If there are files test2.txt, text3.txt, test4.txt, it creates the name test1.txt. If there are files test1.txt, test2.txt, test3.txt, it creates the name test4.txt.

  newFN = aDirName.MakeTmp( "test", "txt" )

If you want the file created from this filename to be automatically deleted when you close it, use the File request SetScratch.

Syntax

aProject.MakeFileName (aPrefix, anExt)

Returns

FileName


MakeGUIName (Project)
MakeGUIName

Creates a unique name for a DocGUI. If baseName is already unique, then a copy of it is returned. If it isn't unique, then a number is a concatenated to the end of it.

Syntax

aProject.MakeGUIName (baseName)

Returns

String


Perspective

 This abstract class implements the General Vertical Perspective projection.

Inherits From

Prj

Inherited By

Gnomonic
Nearside
Orthographic
Stereographic

Class Requests

Creating General Vertical Perspective Projections

CanDoCustom  :  Boolean

Make ( aRect ) :  Perspective

Instance Requests

General Vertical Perspective Parameters

CalcHorizon

Recalculate

ReturnCentralMeridian  :  Number

ReturnReferenceLatitude  :  Number

SetCentralMeridian ( aLongitude )

SetReferenceLatitude ( aLatitude )

Projecting and unprojecting points

ProjectPt ( aPoint ) :  Boolean

UnProjectPt ( aPoint ) :  Boolean

__________

See also

CoordSys
Spheroid


CanDoCustom (Perspective)
CanDoCustom

Returns TRUE if a class of projections supports customization and FALSE if it only supports fixed parameters. The Perspective class always returns FALSE.

Syntax

Perspective.CanDoCustom

Returns

Boolean


Make (Perspective)
Make

Creates a General Vertical Perspective projection. aRect is the bounding rectangle of the area being projected. ABSTRACT

Syntax

Perspective.Make (aRect)

Returns

Perspective


CalcHorizon (Perspective)
CalcHorizon

Calculates the polygon representing the boundary of the visible area of the earth in projected space.

Syntax

aPerspective.CalcHorizon


Recalculate (Perspective)
Recalculate

Updates the internal parameters of the projection. This must be called after changing any parameters of the Perspective projection.

Syntax

aPerspective.Recalculate


ReturnCentralMeridian (Perspective)
ReturnCentralMeridian

Returns the central meridian in degrees.

Syntax

aPerspective.ReturnCentralMeridian

Returns

Number


ReturnReferenceLatitude (Perspective)
ReturnReferenceLatitude

Returns the reference latitude in degrees.

Syntax

aPerspective.ReturnReferenceLatitude

Returns

Number


SetCentralMeridian (Perspective)
SetCentralMeridian

Sets the longitude at which to center the projection. aLongitude is a longitude in degrees.

Syntax

aPerspective.SetCentralMeridian (aLongitude)


SetReferenceLatitude (Perspective)
SetReferenceLatitude

Sets the latitude at which to center the projection. aLatitude is a latitude in degrees.

Syntax

aPerspective.SetReferenceLatitude (aLatitude)


ProjectPt (Perspective)
ProjectPt

Projects the point aPoint. Returns TRUE if aPoint is visible, FALSE otherwise; however, this always returns a point. ABSTRACT

Syntax

aPerspective.ProjectPt (aPoint)

Returns

Boolean


UnProjectPt (Perspective)
UnProjectPt

Unprojects the point aPoint. Returns TRUE if aPoint can be unprojected, FALSE otherwise; however, this always returns a point. ABSTRACT

Syntax

aPerspective.UnProjectPt (aPoint)

Returns

Boolean


QueryWin

 A QueryWin is a window which displays the fields and values of VTab in order to assist the user in building a query. The ReturnQuery and ReturnCalculation requests on a QueryWin use a modal dialog to let the user enter a query and a calculate expression, respectively.

Inherits From

Window

Class Requests

Making a QueryWin

Make ( aVTab ) :  QueryWin

Showing a modal QueryWin

ReturnCalculation ( aVTab, aField ) :  String

ReturnQuery ( aVTab, aDefaultExpression ) :  String

Instance Requests

Manipulating a QueryWin

Close

Open

__________

See also

VTab
Table


Make (QueryWin)
Make

Makes a modeless query dialog associated with aVTab. It makes logical selections on aVTab when the user clicks on the appropriate button.

Syntax

QueryWin.Make (aVTab)

Returns

QueryWin


ReturnCalculation (QueryWin)
ReturnCalculation

Creates a modal window that lets the user build a calculation expression for aField in aVTab. Returns NIL if Cancel is selected.

Syntax

QueryWin.ReturnCalculation (aVTab, aField)

Returns

String


ReturnQuery (QueryWin)
ReturnQuery

Creates a modal window that lets the user build a query for aVTab until selecting OK or Cancel. If Cancel is selected, returns NIL. If OK is selected, returns a query expression. aDefaultExpression is a string used as the initial expression in the query window.

Syntax

QueryWin.ReturnQuery (aVTab, aDefaultExpression)

Returns

String


Close (QueryWin)
Close

Closes aQueryWin.

Syntax

aQueryWin.Close


Open (QueryWin)
Open

Opens aQueryWin.

Syntax

aQueryWin.Open


Rect
Related Topics

 A Rect is a geometric rectangle.

Attributes

Origin.Origin is the starting point of the rectangle. If the width and height are both positive, it is the bottom, lefthand corner.

Size.The Size is a point representing the width and the height.

Height.The Height is the distance across the rectangle parallel to the y-axis.

Width.The Width is the distance across the rectangle parallel to the x-axis.

Inherits From

Shape

Inherited By

RectM

Class Requests

Making Rects

Make ( anOrigin, aSize ) :  Rect

MakeEmpty  :  Rect

MakeNull  :  Rect

MakeXY ( x1, y1, x2, y2 ) :  Rect

Instance Requests

Converting a Rect

AsMultiPoint  :  MultiPoint

AsPolygon  :  Polygon

Generic Object Requests

= anObj :  Boolean

AsString  :  String

Getting and Setting Attributes

GetBottom  :  Number

GetDimension  :  Number

GetHeight  :  Number

GetLeft  :  Number

GetRight  :  Number

GetTop  :  Number

GetWidth  :  Number

IsEmpty  :  Boolean

IsNull  :  Boolean

ReturnCenter  :  Point

ReturnOrigin  :  Point

ReturnSize  :  Point

SetOrigin ( aPoint ) :  Rect

SetSize ( aPoint ) :  Rect

Manipulating a Rect

ExpandBy ( aDistance ) :  Rect

InsetBy ( aDistance ) :  Rect

IntersectWith ( anotherRect ) :  Rect

Move ( moveX, moveY ) :  Rect

Scale ( aRatio ) :  Rect

Snap ( aShape, snapDistance ) :  Boolean

UnionWith ( anotherRect ) :  Rect

Relating two shapes

Intersects ( aShape ) :  Boolean

Transforming a Rect

ReturnClipped ( clipRect ) :  Shape

ReturnDifference ( aShape ) :  Polygon

ReturnIntersection ( aShape ) :  Polygon

ReturnMerged ( aShape ) :  Polygon

ReturnProjected ( aPrj ) :  Shape

ReturnUnion ( aShape ) :  Polygon

ReturnUnprojected ( aPrj ) :  Shape

__________

See also

Oval
Circle
Point
Polygon
MultiPoint
Line
PolyLine


Make (Rect)
Make

Makes a Rect starting at anOrigin with size aSize. anOrigin is a the origin point of the rectangle. aSize is a point where the X and Y values represent the width and height of the rectangle.

This rectangle begins at point 3,3 with width 5 and height 10. It has an area of 50.

 aRect = Rect.Make( 3@3, 5@10)
 msgbox.info( aRect.ReturnArea.AsString, "")

Syntax

Rect.Make (anOrigin, aSize)

Returns

Rect


MakeEmpty (Rect)
MakeEmpty

Makes an empty Rect.

Syntax

Rect.MakeEmpty

Returns

Rect


MakeNull (Rect)
MakeNull

Makes the NULL Rect.

Syntax

Rect.MakeNull

Returns

Rect


MakeXY (Rect)
MakeXY

Makes a Rect from (x1, y1) to (x2, y2).

This rectangle begins at point 10,10 and extends to point 11,11. It has an area of 1.

 aRect = Rect.MakeXY( 10,10, 11,11)
 msgbox.info( aRect.ReturnArea.AsString, "")

Syntax

Rect.MakeXY (x1, y1, x2, y2)

Returns

Rect


AsMultiPoint (Rect)
AsMultiPoint

Returns a MultiPoint representation of aRect.

Syntax

aRect.AsMultiPoint

Returns

MultiPoint


AsPolygon (Rect)
AsPolygon

Returns a Polygon representation of aRect.

Syntax

aRect.AsPolygon

Returns

Polygon


= (Rect)
=

Returns TRUE if aRect and anObj are equal, otherwise returns FALSE.

Syntax

aRect = anObj

Returns

Boolean


AsString (Rect)
AsString

Returns a string of the form Rect: originX,originY extentX,extentY", or "Rect: Null" when aRect is the null rectangle.

Syntax

aRect.AsString

Returns

String


GetBottom (Rect)
GetBottom

Returns the bottom coordinate of aRect.

Syntax

aRect.GetBottom

Returns

Number


GetDimension (Rect)
GetDimension

Returns 2. In ArcView, points have dimension 0, lines have dimension 1 and polygons have dimension 2. Only shapes with dimension 1 or greater have a length. Only shapes with dimension 2 have an area.

Syntax

aRect.GetDimension

Returns

Number


GetHeight (Rect)
GetHeight

Gets the height of aRect.

Syntax

aRect.GetHeight

Returns

Number


GetLeft (Rect)
GetLeft

Returns the left coordinate of aRect.

Syntax

aRect.GetLeft

Returns

Number


GetRight (Rect)
GetRight

Returns the right coordinate of aRect.

Syntax

aRect.GetRight

Returns

Number


GetTop (Rect)
GetTop

Returns the top coordinate of aRect.

Syntax

aRect.GetTop

Returns

Number


GetWidth (Rect)
GetWidth

Gets the width of aRect.

Syntax

aRect.GetWidth

Returns

Number


IsEmpty (Rect)
IsEmpty

Returns TRUE if aRect is empty, otherwise returns FALSE.

Syntax

aRect.IsEmpty

Returns

Boolean


IsNull (Rect)
IsNull

Returns TRUE if aRect is NULL, otherwise returns FALSE.

Syntax

aRect.IsNull

Returns

Boolean


ReturnCenter (Rect)
ReturnCenter

Returns the center (centroid) of aRect.

Syntax

aRect.ReturnCenter

Returns

Point


ReturnOrigin (Rect)
ReturnOrigin

Returns the origin point of aRect.

Syntax

aRect.ReturnOrigin

Returns

Point


ReturnSize (Rect)
ReturnSize

Returns the size of aRect in the form of a point: X is the width and Y is the height.

Syntax

aRect.ReturnSize

Returns

Point


SetOrigin (Rect)
SetOrigin

Sets the origin of aRect to aPoint.

Syntax

aRect.SetOrigin (aPoint)

Returns

Rect


SetSize (Rect)
SetSize

Sets the size of aRect to aPoint. The width of the rectangle is the X component of aPoint and the height is the Y component.

Syntax

aRect.SetSize (aPoint)

Returns

Rect


ExpandBy (Rect)
ExpandBy

Expands aRect by aDistance. Each side of aRect is moved outward by aDistance.

 RESULTS:
 Rect: 6.00000,6.000000 13.000000,14.00000

 aRect = Rect.Make( 10@10, 5@6)
 aRect.ExpandBy( 4 )
 msgbox.info( aRect. AsString, "")

Syntax

aRect.ExpandBy (aDistance)

Returns

Rect


InsetBy (Rect)
InsetBy

Insets aRect by aDistance. Each side of aRect is moved inward by aDistance.

 RESULTS:
 Rect: 11.000000,11.000000 3.000000,4.000000

 aRect = Rect.Make( 10@10, 5@6)
 aRect.InsetBy( 1 )
 msgbox.info( aRect. AsString, "")

Syntax

aRect.InsetBy (aDistance)

Returns

Rect


IntersectWith (Rect)
IntersectWith

Returns a rectangle which is the intersection of aRect and anotherRect. If aRect and anotherRect have no intersection, returns NULL.

Syntax

aRect.IntersectWith (anotherRect)

Returns

Rect


Move (Rect)
Move

Moves aRect by moveX and moveY and returns it.

 RESULTS:
 Rect: 11.000000,15.000000 5.000000,6.000000

 aRect = Rect.Make( 10@10, 5@6)
 aRect.Move( 1,5)
 msgbox.info( aRect. AsString, "")

Syntax

aRect.Move (moveX, moveY)

Returns

Rect


Scale (Rect)
Scale

Scales aRect from its center by aRatio.

 RESULT:
 Rect: 11.000000,11.500000 2.000000,3.000000

 aRect = Rect.Make( 10@10, 4@6)
 aRect.Scale(0.5)
 msgbox.info( aRect. AsString, "")

 RESULT:
 Rect: 8.000000,7.000000 8.000000,12.000000

 aRect = Rect.Make( 10@10, 4@6)
 aRect.Scale(2)
 msgbox.info( aRect. AsString, "")

Syntax

aRect.Scale (aRatio)

Returns

Rect


Snap (Rect)
Snap

Snaps the center of aRect to vertices of aShape within snapDistance. Returns TRUE if snapping occurred, otherwise returns FALSE.

Syntax

aRect.Snap (aShape, snapDistance)

Returns

Boolean


UnionWith (Rect)
UnionWith

Returns a new rectangle which is the minimum bounds of aRect and anotherRect.

Syntax

aRect.UnionWith (anotherRect)

Returns

Rect


Intersects (Rect)
Intersects

Returns TRUE if aRect intersects aShape, otherwise returns FALSE.

Syntax

aRect.Intersects (aShape)

Returns

Boolean


ReturnClipped (Rect)
ReturnClipped

Returns aRect clipped to clipRect. The result will be NULL if aRect and clipRect do not intersect.

Syntax

aRect.ReturnClipped (clipRect)

Returns

Shape


ReturnDifference (Rect)
ReturnDifference

Returns the difference between aRect and aShape into a new shape. aShape gets subtracted from aRect. The portion of aRect that is overlapped by aShape is removed. aRect's dimensionality must be less or equal to aShape's dimensionality. The result will always be have the dimensionality of aRect.

Syntax

aRect.ReturnDifference (aShape)

Returns

Polygon


ReturnIntersection (Rect)
ReturnIntersection

Returns the intersection of aRect and aShape into a new shape. aRect and a Shape need not be of the same dimensionality. The result will always have the smaller dimensionality of the two input shapes. For example, if aShape is a PolyLine the result will be a PolyLine.

Syntax

aRect.ReturnIntersection (aShape)

Returns

Polygon


ReturnMerged (Rect)
ReturnMerged

Merges aRect and aShape into a new shape. aShape must have a dimension of 2. aShape can be a Rect, Circle, Oval, or Polygon.

ReturnMerged is similar to ReturnUnion except in cases where the two input shapes overlap. With ReturnMerged the resulting shape will have a hole where the shapes overlapped but with ReturnUnion there will be no hole.

Syntax

aRect.ReturnMerged (aShape)

Returns

Polygon


ReturnProjected (Rect)
ReturnProjected

Returns aRect projected by aPrj. The result may be a different kind of shape or have more points than the original in order to be visually pleasing.

Syntax

aRect.ReturnProjected (aPrj)

Returns

Shape


ReturnUnion (Rect)
ReturnUnion

Returns the union of aRect and aShape into a new shape. aShape must have a dimension of 2. aShape can be a Rect, Circle, Oval, or Polygon.

ReturnUnion is similar to ReturnMerged except in cases where the two input shapes overlap. With ReturnMerged the resulting shape will have a hole where the shapes overlapped but with ReturnUnion there will be no hole.

Syntax

aRect.ReturnUnion (aShape)

Returns

Polygon


ReturnUnprojected (Rect)
ReturnUnprojected

Returns aRect unprojected by aPrj. The result may be a different kind of shape or have more points than the original in order to be visually pleasing.

Syntax

aRect.ReturnUnprojected (aPrj)

Returns

Shape


RectM

 Instances of class RectM are boxes.

Attributes

Origin.Origin is the starting point of the rectangle. If the width, and height are positive, it is the bottom, lefthand corner.

Size.The Size is a (x,y) point representing the width and the height.

MminMmin is the minimum m-value of the rectangle.

MmaxMmax is the maximum m-value of the rectangle.

Inherits From

Rect

Inherited By

RectZ

Class Requests

Making RectMs

Make ( anOrigin, aSize ) :  RectM

MakeEmpty  :  RectM

MakeNull  :  RectM

Instance Requests

Converting a RectM

AsPolygonM  :  PolygonM

AsRect  :  Rect

Generic Object Requests

= anObj :  Boolean

AsString  :  String

IsMeasured  :  Boolean

Getting and Setting Attributes

GetMExtent  :  Number

GetMmax  :  Number

GetMmin  :  Number

ReturnMBB  :  RectM

ReturnOrigin  :  PointM

ReturnSize  :  PointM

SetOrigin ( aPoint ) :  RectM

SetSize ( aPoint ) :  RectM

Transforming a RectM

ReturnProjected ( aPrj ) :  Shape

ReturnUnprojected ( aPrj ) :  Shape

Scale ( aRatio ) :  RectM

__________

See also

PointM
PolygonM
MultiPointM
LineM
RectM


Make (RectM)
Make

Makes a RectM starting at anOrigin with size aSize. anOrigin is a the origin (x,y,Mmin) point of the rectangle. aSize is a (dx,dy,dm) point where dx and dy represent the width and the height, and dm represents the extent of the m-values in the rectangle.

This rectangle begins at point 3,3,3 with width 5 and height 10, the Mmin value is 3 and the Mmax value is 7 (because the dm is 4). It has an area of 50.

 aRectM = RectM.Make( 3@3&3, 5@10&4)
 msgbox.info( aRectM.ReturnArea.AsString, "")

Syntax

RectM.Make (anOrigin, aSize)

Returns

RectM


MakeEmpty (RectM)
MakeEmpty

Makes an empty RectM.

Syntax

RectM.MakeEmpty

Returns

RectM


MakeNull (RectM)
MakeNull

Makes the NULL RectM.

Syntax

RectM.MakeNull

Returns

RectM


AsPolygonM (RectM)
AsPolygonM

Returns a PolygonM representation of aRectM.

Syntax

aRectM.AsPolygonM

Returns

PolygonM


AsRect (RectM)
AsRect

Returns a Rect representation of aRectM.

Syntax

aRectM.AsRect

Returns

Rect


= (RectM)
=

Returns TRUE if aRectM and anObj are equal, otherwise returns FALSE.

Syntax

aRectM = anObj

Returns

Boolean


AsString (RectM)
AsString

Returns a string of the form "RectM: originX,originY,originM extentX,extentY,extentM", or "RectM: Null" when aRectM is the null rectangle.

Syntax

aRectM.AsString

Returns

String


IsMeasured (RectM)
IsMeasured

Returns TRUE if the measures are set.

Syntax

aRectM.IsMeasured

Returns

Boolean


GetMExtent (RectM)
GetMExtent

Gets the M extent

Syntax

aRectM.GetMExtent

Returns

Number


GetMmax (RectM)
GetMmax

Gets the maximum measure for aRectM.

Syntax

aRectM.GetMmax

Returns

Number


GetMmin (RectM)
GetMmin

Gets the minimum measure for aRectM.

Syntax

aRectM.GetMmin

Returns

Number


ReturnMBB (RectM)
ReturnMBB

Returns the minimum bounding box (MBB) of aRectM. The MBB is equal to aRectM.

Syntax

aRectM.ReturnMBB

Returns

RectM


ReturnOrigin (RectM)
ReturnOrigin

Returns the origin point of aRectM.

Syntax

aRectM.ReturnOrigin

Returns

PointM


ReturnSize (RectM)
ReturnSize

Returns the size of aRectM in the form of a point: X is the width and Y is the height.

Syntax

aRectM.ReturnSize

Returns

PointM


SetOrigin (RectM)
SetOrigin

Sets the origin of aRectM to aPoint.

Syntax

aRectM.SetOrigin (aPoint)

Returns

RectM


SetSize (RectM)
SetSize

Sets the size of aRectM to aPoint. The width of the rectangle is the X component of aPoint and the height is the Y component.

Syntax

aRectM.SetSize (aPoint)

Returns

RectM


ReturnProjected (RectM)
ReturnProjected

Returns aRectM projected by aPrj. The result will be the same kind of shape and have the same number of points.

Syntax

aRectM.ReturnProjected (aPrj)

Returns

Shape


ReturnUnprojected (RectM)
ReturnUnprojected

Returns aRectM unprojected by aPrj. The result will be the same kind of shape and have the same number of points.

Syntax

aRectM.ReturnUnprojected (aPrj)

Returns

Shape


Scale (RectM)
Scale

Scales aRectM from its center by aRatio. Also scales the M values.

Syntax

aRectM.Scale (aRatio)

Returns

RectM


RectZ

 Instances of class RectZ are boxes.

Attributes

Origin.Origin is the starting point of the rectangle. If the width, height and depth are all positive, it is the bottom, lefthand corner.

Size.The Size is a (x,y,z) point representing the width, the height and the depth.

Height.The Height is the distance across the rectangle parallel to the y-axis.

Width.The Width is the distance across the rectangle parallel to the x-axis.

Depth.The Depth is the distance across the rectangle parallel to the z-axis.

Inherits From

RectM

Class Requests

Making RectZs

Make ( anOrigin, aSize ) :  RectZ

MakeEmpty  :  RectZ

MakeNull  :  RectZ

Instance Requests

Transforming a RectZ

ExpandBy ( aDistance ) :  RectZ

InsetBy ( aDistance ) :  RectZ

QueryZOffset ( anotherRectZ, aOffset ) :  RectZ

QueryZScale ( anotherRectZ, aScale ) :  RectZ

ReturnProjected ( aPrj ) :  Shape

ReturnUnprojected ( aPrj ) :  Shape

Scale ( aRatio ) :  RectZ

ZMove ( moveX, moveY, moveZ ) :  RectZ

ZOffset ( aOffset ) :  RectZ

ZScale ( aScale ) :  RectZ

Generic Object Requests

= anObj :  Boolean

AsString  :  String

Getting and Setting Attributes

GetDepth  :  Number

GetZmax  :  Number

GetZmin  :  Number

HasZ  :  Boolean

IsMeasured  :  Boolean

ReturnCenter  :  PointZ

ReturnMBB  :  RectZ

ReturnOrigin  :  PointZ

ReturnSize  :  PointZ

SetOrigin ( aPoint ) :  RectZ

SetSize ( aPoint ) :  RectZ

Manipulating a RectZ

IntersectWith ( anotherRectZ ) :  RectZ

UnionWith ( anotherRect ) :  RectZ

__________

See also

Oval
Circle
Point
Polygon
MultiPoint
Line
PolyLine


Make (RectZ)
Make

Makes a RectZ starting at anOrigin with size aSize. anOrigin is a the origin (x,y,z) point of the rectangle. aSize is a (x,y,z) point where the X, Y and Z values represent the width, height and depth of the rectangle.

This rectangle begins at point 3,3,3 with width 5, height 10 and depth 4.

 aRectZ = RectZ.Make( 3@3@3, 5@10@4)

Syntax

RectZ.Make (anOrigin, aSize)

Returns

RectZ


MakeEmpty (RectZ)
MakeEmpty

Makes an empty RectZ.

Syntax

RectZ.MakeEmpty

Returns

RectZ


MakeNull (RectZ)
MakeNull

Makes the NULL RectZ.

Syntax

RectZ.MakeNull

Returns

RectZ


ExpandBy (RectZ)
ExpandBy

Expands aRectZ by aDistance. Each side of aRectZ is moved outward by aDistance.

 RESULTS:
 RectZ: 6.00000,6.000000,7.000000 13.000000,14.00000,15.00000

 aRectZ = RectZ.Make( 10@10@11, 5@6@7)
 aRectZ.ExpandBy( 4 )
 msgbox.info( aRectZ. AsString, "")

Syntax

aRectZ.ExpandBy (aDistance)

Returns

RectZ


InsetBy (RectZ)
InsetBy

Insets aRectZ by aDistance. Each side of aRectZ is moved inward by aDistance.

 RESULTS:
 RectZ: 11.00000,11.00000,12.00000 3.000000,4.000000,5.000000

 aRectZ = RectZ.Make( 10@10@11, 5@6@7)
 aRectZ.InsetBy( 1 )
 msgbox.info( aRectZ. AsString, "")

Syntax

aRectZ.InsetBy (aDistance)

Returns

RectZ


QueryZOffset (RectZ)
QueryZOffset

Queries aRectZ into anotherRectZ altering it's z values by adding aOffset.

Syntax

aRectZ.QueryZOffset (anotherRectZ, aOffset)

Returns

RectZ


QueryZScale (RectZ)
QueryZScale

Queries aRectZ into anotherRectZ altering it's z values by multiplying with aScale.

Syntax

aRectZ.QueryZScale (anotherRectZ, aScale)

Returns

RectZ


ReturnProjected (RectZ)
ReturnProjected

Returns aRectZ projected by aPrj. The result will have the same number of points.

Syntax

aRectZ.ReturnProjected (aPrj)

Returns

Shape


ReturnUnprojected (RectZ)
ReturnUnprojected

Returns aRectZ unprojected by aPrj. The result will have the same number of points.

Syntax

aRectZ.ReturnUnprojected (aPrj)

Returns

Shape


Scale (RectZ)
Scale

Scales aRectZ from its center by aRatio.

 RESULT:
 RectZ: 11.000000,11.500000,12.750000 2.000000,3.000000,3.500000

 aRectZ = RectZ.Make( 10@10@11, 4@6@7)
 aRectZ.Scale(0.5)
 msgbox.info( aRectZ. AsString, "")

 RESULT:
 RectZ: 8.000000,7.000000,7.500000 8.000000,12.00000,14.00000

 aRectZ = RectZ.Make( 10@10@11, 4@6@7)
 aRectZ.Scale(2)
 msgbox.info( aRectZ. AsString, "")

Syntax

aRectZ.Scale (aRatio)

Returns

RectZ


ZMove (RectZ)
ZMove

Moves aRectZ by moveX, moveY and moveZ and returns it.

 RESULTS:
 RectZ: 11.00000,15.00000,14.00000 5.000000,6.000000,7.000000

 aRectZ = RectZ.Make( 10@10@11, 5@6@7)
 aRectZ.ZMove( 1,5,3)
 msgbox.info( aRectZ. AsString, "")

Syntax

aRectZ.ZMove (moveX, moveY, moveZ)

Returns

RectZ


ZOffset (RectZ)
ZOffset

Offsets aRectZ z values by aOffset.

Syntax

aRectZ.ZOffset (aOffset)

Returns

RectZ


ZScale (RectZ)
ZScale

Scales aRectZ z values by aScale.

Syntax

aRectZ.ZScale (aScale)

Returns

RectZ


= (RectZ)
=

Returns TRUE if aRectZ and anObj are equal, otherwise returns FALSE.

Syntax

aRectZ = anObj

Returns

Boolean


AsString (RectZ)
AsString

Returns a string of the form "RectZ: originX,originY,originZ extentX,extentY,extentZ", or "RectZ: Null" when aRectZ is the null rectangle.

Syntax

aRectZ.AsString

Returns

String


GetDepth (RectZ)
GetDepth

Gets the depth of aRectZ.

Syntax

aRectZ.GetDepth

Returns

Number


GetZmax (RectZ)
GetZmax

Returns the top coordinate of aRectZ.

Syntax

aRectZ.GetZmax

Returns

Number


GetZmin (RectZ)
GetZmin

Returns the bottom coordinate of aRectZ.

Syntax

aRectZ.GetZmin

Returns

Number


HasZ (RectZ)
HasZ

Returns TRUE if aRectZ has Z coordinates, otherwise returns FALSE.

Syntax

aRectZ.HasZ

Returns

Boolean


IsMeasured (RectZ)
IsMeasured

Returns TRUE if measures are set, otherwise returns FALSE.

Syntax

aRectZ.IsMeasured

Returns

Boolean


ReturnCenter (RectZ)
ReturnCenter

Returns the center (centroid) of aRectZ.

Syntax

aRectZ.ReturnCenter

Returns

PointZ


ReturnMBB (RectZ)
ReturnMBB

Returns the minimum bounding box (MBB) of aRectZ. The MBB is equal to aRectZ.

Syntax

aRectZ.ReturnMBB

Returns

RectZ


ReturnOrigin (RectZ)
ReturnOrigin

Returns the origin point of aRectZ.

Syntax

aRectZ.ReturnOrigin

Returns

PointZ


ReturnSize (RectZ)
ReturnSize

Returns the size of aRectZ in the form of a (x,y,z) point: X is the width, Y is the height and Z is the depth.

Syntax

aRectZ.ReturnSize

Returns

PointZ


SetOrigin (RectZ)
SetOrigin

Sets the origin of aRectZ to aPoint.

Syntax

aRectZ.SetOrigin (aPoint)

Returns

RectZ


SetSize (RectZ)
SetSize

Sets the size of aRectZ to aPoint. The width of the rectangle is the X component of aPoint, the height is the Y component and the depth is the Z.

Syntax

aRectZ.SetSize (aPoint)

Returns

RectZ


IntersectWith (RectZ)
IntersectWith

Returns a rectangle which is the intersection of aRectZ and anotherRectZ. If aRectZ and anotherRectZ have no intersection, returns NULL.

Syntax

aRectZ.IntersectWith (anotherRectZ)

Returns

RectZ


UnionWith (RectZ)
UnionWith

Returns a new rectangle which is the minimum bounds of aRectZ and anotherRect.

Syntax

aRectZ.UnionWith (anotherRect)

Returns

RectZ


ReMatchDialog

 ReMatchDialog is the modal dialog box used to edit or rematch a geocoded themes.

Inherits From

ModalDialog

Class Requests

Showing a ReMatchDialog

Show ( GeocodedTheme ) :  Boolean


Show (ReMatchDialog)
Show

 Shows the rematch dialog box, allowing the user to edit or rematch a geocoded theme.

Syntax

ReMatchDialog.Show (GeocodedTheme)

Returns

Boolean


Robinson
Discussion	Example

 This class implements the Robinson projection.

Inherits From

Prj

Class Requests

Creating Robinson Projections

Make ( aRect ) :  Robinson

Instance Requests

Projecting and unprojecting points

ProjectPt ( aPoint ) :  Boolean

UnProjectPt ( aPoint ) :  Boolean

Robinson Parameters

Recalculate

ReturnCentralMeridian  :  Number

SetCentralMeridian ( aLongitude )

__________

See also

Spheroid
CoordSys


Make (Robinson)
Make
Example

Creates a Robinson projection. aRect is the bounding rectangle of the area being projected. Use decimal degrees for the coordinates of aRect.

Syntax

Robinson.Make (aRect)

Returns

Robinson


ProjectPt (Robinson)
ProjectPt
Example

Projects the point aPoint. Returns TRUE if aPoint is visible, FALSE otherwise; however, this always returns a point.

Syntax

aRobinson.ProjectPt (aPoint)

Returns

Boolean


UnProjectPt (Robinson)
UnProjectPt
Example

Unprojects the point aPoint. Returns TRUE if aPoint can be unprojected, FALSE otherwise; however, this always returns a point.

Syntax

aRobinson.UnProjectPt (aPoint)

Returns

Boolean


Recalculate (Robinson)
Recalculate

Updates the internal parameters of the projection. This must be called after changing any parameters of the Robinson projection.

Syntax

aRobinson.Recalculate


ReturnCentralMeridian (Robinson)
ReturnCentralMeridian

Returns the central meridian in degrees.

Syntax

aRobinson.ReturnCentralMeridian

Returns

Number


SetCentralMeridian (Robinson)
SetCentralMeridian
Example

Sets the central meridian to aLongitude. aLongitude is a longitude in degrees.

Syntax

aRobinson.SetCentralMeridian (aLongitude)


RPCClient

 Remote Procedure Calls (RPC) allow clients to trigger procedures running in another program address space through a server. An RPC server resides on a particular host machine and provides a set of services to clients. RPCClients connect to an RPC server and initiate services from that server.

Create an RPCClient with the Make request. Make establishes the RPCClient's connection to its RPC server. Specify theServer number in either decimal or hexadecimal. Make always returns an RPCClient, but the server must currently exist for the RPCClient to be valid.

You can query the availability of the host machine with the class request, IsMachine and query the availability of the particular RPC server with the class request HasServer.

To determine the success of the previous , use the error handling requests: HasError, GetErrorMsg and GetErrorId. HasError returns true if the previous request resulted in an error. HasError also clears any error condition to the RPCClient. GetErrorMsg returns the string description of the last error and GetErrorId returns the number identification the last error.

Each RPC server provides specific functions to its clients. Each server function is uniquely identified by a number, theProcedureID. RPCClients must know the valid function identification numbers for the particular RPC xerver with which they are connected. See RPCServer for the list of functions and corresponding identifiers provided by an ArcView RPC server.

An ArcView RPCClient is a blocking client. The Avenue script waits until the RPC server completes the request or the timeout expires. The default timeout period is 20 seconds. SetTimeout alters the timeout; GetTimeout returns the current timeout period.

The transport protocol used by this class is TCP. This cannot be changed.

Security

ArcView UNIX RPC clients, at both rev 2.0 and greater, provide their login account credentials (user id, groud id, and machine name) to any RPC server. ArcView PC RPC clients provide their login machine name. The server can use this information, along with its own access control list, to verify that the client is allowed to use the server.

Refer to the class documentation for RPCServer for a discussion of how ArcView's UNIX RPC server controls access to itself.

Usage/Examples

Here is a simple Avenue script to create an ArcView RPCServer. The server is started on hostname "tuxcat".

 ' create a server
 RPCSERVER.Start( 0x40000001, 1 )

Here is an Avenue script to create an ArcView RPCClient and issue a request to the server.

 ' create an RPCClient
 aClient = RPCClient.Make( "tuxcat", 0x40000001, 1 )

 ' check the connection
 if ( aClient.HasError ) then
    msgbox.error( aClient.GetErrorMsg, "Server Error" )  'report error
    exit
 end

 ' check the timeout and reset if too short
 if ( aClient.GetTimeout < 15 ) then
    aClient.SetTimeout( 15 )
 end

 ' request service from server
 result = aClient.Execute( 1, "av.GetActiveDoc", String )
 if ( aClient.HasError ) then       'check status of service request
    msgbox.Error( aClient.GetErrorMsg, "" )
 end
 MsgBox.Info( "The active document is"++result, "Got it!" )

 ' Close the client connection
 aClient.Close

ArcView Client to an ARC/INFO Server

Here is an example of ArcView connecting to an ARC/INFO RPCServer using ARC/INFO's connect file. ArcView supports RPC on both workstations and windows, so you can connect ArcView on a PC to an ARC/INFO server on a workstation.

First, start the RPC server on ARC/INFO.

 system.execute("arc ""&ty [iacopen cf]"" &")

Next, connect to the server using the connect file.

 'Get the ARC/INFO connect file
 connectFile = FileDialog.Show( "*", "Select AI connection file:", "Connect")
 if (connectFile = nil) then
   exit
 end

 'Read the file
 theFile = LineFile.Make( connectFile, #FILE_PERM_READ )
 infoList = theFile.ReadElt.AsList
 theFile.Close

 'Check for file validity
 if (infoList.count <> 3) then
   MsgBox.Error("Invalid ARC/INFO connection file.", "")
   exit
 end

 'Get the server information from the file
 hostname = infoList.Get(0)     ' the hostname of the machine
 id       = infoList.Get(1)     ' the server id number
 version  = infoList.Get(2)     ' the version number

 'Use the information to connect
 _aClient = RPCClient.Make( hostname, ("0x"+ID).AsNumber, version.AsNumber)

 'Check and report if any problems
 if ( _aClient.HasError ) then
   MsgBox.Info( _aClient.GetErrorMsg, "Error" )
   exit
 end

 av.ShowMsg( "Connected to server at"++hostname++id++version)

Here is a simple request to ARC/INFO.

 x = _aClient.execute(1,"&iacreturn [calc 5 * 123]", string)
 msgbox.info(x,"")

For a more complicated example, look at aiserver.ave in the script library.

Inherits From

Obj

Class Requests

Creating RPCClients

GetMachineName  :  String

HasServer ( theMachine, theServer, aVersion ) :  Boolean

IsMachine ( theMachine ) :  Boolean

Make ( theMachine, theServer, theVersion ) :  RPCClient

Instance Requests

Executing Remote Procedure Calls

Execute ( aProcedureID, aCommand, retnClass ) :  Obj

Deleting RPCClients

Close

Error Handling

GetErrorID  :  Number

GetErrorMsg  :  String

HasError  :  Boolean

Timeouts

GetTimeout  :  Number

SetTimeout ( secondsToWait )

Setting Codepage

SetCodepage ( flag, aCodepage )

__________

See also

RPCServer


GetMachineName (RPCClient)
GetMachineName

Returns the name of the local machine as a string.

Syntax

RPCClient.GetMachineName

Returns

String


HasServer (RPCClient)
HasServer

Returns TRUE if theMachine has aVersion of theServer currently running.

Syntax

RPCClient.HasServer (theMachine, theServer, aVersion)

Returns

Boolean


IsMachine (RPCClient)
IsMachine

Returns true if a connection can be made to theMachineName from the current process.

Syntax

RPCClient.IsMachine (theMachine)

Returns

Boolean


Make (RPCClient)
Make

Creates an RPCClient and establishes a connection to the specified RPC server.

Syntax

RPCClient.Make (theMachine, theServer, theVersion)

Returns

RPCClient


Execute (RPCClient)
Execute

Executes aProcedureID with aCommand and returns a value of type retnClass. aProcedureID is a number significant to the server that identifies the service to perform. aCommand is the command the server is requested to execute. aProcedureID is assumed to return a data value which can be converted into an object of class retnClass.

retnClass can be one of Nil, String, Boolean, Number. For the Number class, aProcedure must return a double precision value. An ArcView RPCServer always returns a string.

 result = anRPCClient.Execute( 1, "av.run( ""script1"", """")", string )

Syntax

anRPCClient.Execute (aProcedureID, aCommand, retnClass)

Returns

Obj


Close (RPCClient)
Close

Closes the connection to the RPC server specified in the Make request when anRPCClient was created. anRPCClient must not be used again.

Syntax

anRPCClient.Close


GetErrorID (RPCClient)
GetErrorID

Returns a number describing the last error which occurred to anRPCClient.

Syntax

anRPCClient.GetErrorID

Returns

Number


GetErrorMsg (RPCClient)
GetErrorMsg

Returns a string describing the last error which occurred to anRPCClient.

Syntax

anRPCClient.GetErrorMsg

Returns

String


HasError (RPCClient)
HasError

Returns true if an error occurred in the previous request sent by anRPCClient. This request clears any error condition known by anRPCClient.

Syntax

anRPCClient.HasError

Returns

Boolean


GetTimeout (RPCClient)
GetTimeout

Returns the maximum number of seconds allowed to pass between the initiation of an Execute request and its successful completion.

Syntax

anRPCClient.GetTimeout

Returns

Number


SetTimeout (RPCClient)
SetTimeout

Sets the timeout value for anRPCClient to secondsToWait.

Syntax

anRPCClient.SetTimeout (secondsToWait)


SetCodepage (RPCClient)
SetCodepage

Set a proper Codepage to translate the input/output into or from the foreign Codepage.

Syntax

anRPCClient.SetCodepage (flag, aCodepage)


RPCServer

 Remote Procedure Calls (RPC) allow clients to trigger procedures running in another program address space through a server. An RPCServer resides on a particular host machine and provides a set of services to clients. RPC Clients connect to an RPCServer and initiate services from that server.

Three components uniquely identify an RPC server: theMachine name, theServer identification number, theVersion number. On workstations, use /usr/etc/rpcinfo -p hostname to list RPC servers running on that host. On Windows, ArcView includes rpcinfo.exe in your system directory. The column labelled program is theServer number and the column labelled vers is theVersion number.

   theMachine - Hostname of the machine on which the server executes.
   theServer - Server identification number.
   theVersion - Version number of the server.

Sun recommends that server identification numbers fall within the range of 0x40000000 to 0x5FFFFFFF. Specify the server identification number in either decimal or hexadecimal format.

Because only one RPCServer may exist within an ArcView application, no "instances" of this class are created; send start and stop requests directly to the class. In the start request, specify theServer and theVersion.

An RPC server provides specific functions to its clients. Each server function is uniquely identified by a number, theProcedureID. RPC Clients specify the server function with theProcedureID when requesting service from the RPCServer.

   theProcedureID - Number which identifies the RPC server function.

The ArcView RPCServer supports only one function:

    1 - script execution - executes the given script and returns a string
                           representation of the last object referenced
                           or produced during the execution of the script.

Script execution (theProcedureId = 1) requires an argument that is a string containing an Avenue script. This script may be the complete text or it may be a single statement that runs a script known to the server application (for example, av.run("scriptname", "") ).

RPCServer implements a blocking server. It does not return to the client until the service has completed.

The transport protocol used by this class is TCP. This cannot be changed.

Security

The UNIX implementation of ArcView's RPC server can optionally control access to itself. UNIX account names and machine names are used to accomplish this. When the server is running in controlled access mode, it searches a list of users and machines before it executes a script on behalf of a user. For example, if user "jimt" on machine "brahms" wants to have the ArcView RPC server on machine "mahler" execute some some Avenue script, then "jimt" and "brahms" must be on that server's access control list.

By default, the RPC server does not restrict access. Use the request SetAccessControlled to change this. Use the requests AddUser and RemoveUser to manipulate the server's access control list. This list is used only when the server is running in controlled access mode. This mode may be changed without re-starting the server. Also, the access control list may be changed while the server is running.

When a user connects from Windows, only the machine name of the PC is used for verification. Thus, if some user on a PC named "midget" wishes to access a UNIX RPC server running in controlled access mode, then there must be a user on the access control list whose name is the wildcard, "*", and whose machine name is "midget". See the request AddUser for more details.

The Windows implementation of the RPC server does not enforce access control.

Usage/examples

Here is an Avenue script to create an ArcView RPCServer. The server is started on hostname "tuxcat".

 ' start the RPCServer
 RPCServer.Start( 0x40000001, 1 )

Here is an Avenue script to stop the ArcView RPCServer.

 ' stop the RPCServer
 RPCServer.Stop

Create a client

Here is an Avenue script to create an ArcView RPCClient and issue a service request to the server.

 ' create an RPCClient
 aClient = RPCClient.Make( "tuxcat", 0x40000001, 1 )
 ' check the connection
 if ( aClient.HasError ) then
    msgbox.Error( aClient.GetErrorMsg, "" )  'report error
    exit
 end

 ' check the timeout and reset if too short
 if ( aClient.GetTimeout < 15 ) then
    aClient.SetTimeout( 15 )
 end

 ' request service from server
 result = aClient.Execute( 1, "av.GetActiveDoc", String )
 if ( aClient.HasError ) then       'check status of service request
    msgbox.Error( aClient.GetErrorMsg, "" )
 end
 MsgBox.Info( "The active document is"++result, "Got it!" )

 ' Close the client connection
 aClient.Close

Inherits From

Obj

Class Requests

Starting and Stopping RPCServers

AddUser ( aUserName, aMachineName )

IsAccessControlled  :  Boolean

RemoveUser ( aUserName, aMachineName )

ReturnUsers  :  List

SetAccessControlled ( enforce )

Start ( theServer, theVersion )

Stop

__________

See also

RPCClient


AddUser (RPCServer)
AddUser

Allows the user with account aUserName, on aMachineName, to use this RPC server. If aUserName is "*", then any account on aMachineName is allowed. If aMachineName is "*" then aUserName can access this RPC server from any machine. If both are "*", then access control to this RPC server is effectively disabled.

When you wish to provide access to a Windows user, aUserName must be an "*". For example:

    RPCServer.AddUser("*", "somePCMachineName")

Access rights for a client are verified every time the client asks the server to execute an Avenue script. This verification requires a linear search of the access control list. A list with greater than 20 or so entries will affect performance. You can use the wildcard character to identify groups of users and/or machines with common elements in their names. For example, support that 20 accounts related to a massive data automation effort are named dat0100, dat0101, ..., dat0119. You could enable RPC access for all these accounts by adding the following single user to the server's access control list:

    RPCServer.AddUser("dat01*", "*")

Syntax

RPCServer.AddUser (aUserName, aMachineName)


IsAccessControlled (RPCServer)
IsAccessControlled

Returns whether or not the RPC server is currently controlling access to itself.

Syntax

RPCServer.IsAccessControlled

Returns

Boolean


RemoveUser (RPCServer)
RemoveUser

Removes access rights for the account aUserName running on aMachineName. If aUserName is "*", then access rights for any and all users from aMachineName are removed. If aMachineName is "*", then any and all access rights for aUserName are removed. If both are "*", then access rights for everyone are removed.

RemoveUser updates the access control list maintained by the RPCServer. If your access control list allows access to all users on the machine Brahms, ("* brahms" on the access control list), you cannot remove access for only the user "rebecca" with the request RemoveUser. Inspect the results of your AddUser and RemoveUser requests with ReturnUser.

 RPCServer.AddUser("*", "brahms")
 RPCServer.RemoveUser( "rebecca", "brahms")
 MsgBox.ListAsString( RPCServer.ReturnUsers, "", "ALLOWED USERS")

Inspect the access control list with the request ReturnUsers to verify your list is appropriately updated.

Syntax

RPCServer.RemoveUser (aUserName, aMachineName)


ReturnUsers (RPCServer)
ReturnUsers

Returns a list of users and machines that are allowed to access this RPC server. This is a copy of the server's internal list. Here is an example list:

    {"jimt brahms", "* mahler", "herman *"}

Syntax

RPCServer.ReturnUsers

Returns

List


SetAccessControlled (RPCServer)
SetAccessControlled

Enables or disables controlled access to the RPC server. When enforce is TRUE, all clients of this server must be on this server's access list before they are allowed to connect. When enforce is FALSE, any client may access this server.

Access to the server can be changed while the server is running.

Syntax

RPCServer.SetAccessControlled (enforce)


Start (RPCServer)
Start

Starts the RPC server which will be identified by theServer identification number and theVersion number.

Syntax

RPCServer.Start (theServer, theVersion)


Stop (RPCServer)
Stop

Stops the server.

Syntax

RPCServer.Stop


RSO
Discussion

 This class implements the Rectified Skew Orthomorphic projection for the Malayan Grid, which is used by Malaysia, Singapore and Brunei. ALL CONSTANTS ARE HARDCODED FOR THE MALAYAN GRID. DO NOT USE IT FOR ANY OTHER PROJECTION.

Inherits From

Prj

Class Requests

Creating Rectified Skew Orthomorphic Projections

CanDoCustom  :  Boolean

CanDoSpheroid  :  Boolean

MakeBrunei  :  RSO

MakeMalaysian  :  RSO

Instance Requests

Rectified Skew Orthomorphic Parameters

CalcHorizon

Recalculate

Projecting and unprojecting in RSO

ProjectPt ( aPoint ) :  Boolean

UnProjectPt ( aPoint ) :  Boolean

__________

See also

CoordSys
Spheroid


CanDoCustom (RSO)
CanDoCustom

Return TRUE if a class of projections supports customization and FALSE if it only supports fixed parameters. The RSO class always returns FALSE.

Syntax

RSO.CanDoCustom

Returns

Boolean


CanDoSpheroid (RSO)
CanDoSpheroid

Returns TRUE if a class of projection supports arbitrary ellipsoids and FALSE if it only supports the sphere. The RSO class always returns TRUE.

Syntax

RSO.CanDoSpheroid

Returns

Boolean


MakeBrunei (RSO)
MakeBrunei

Makes an RSO projection for the Borneo portion of the Malayan Grid.

Syntax

RSO.MakeBrunei

Returns

RSO


MakeMalaysian (RSO)
MakeMalaysian

Makes an RSO projection for the Malay Peninsula portion of the Malayan Grid.

Syntax

RSO.MakeMalaysian

Returns

RSO


CalcHorizon (RSO)
CalcHorizon

Calculates the polygon representing the boundary of the visible area of the earth in projected space.

Syntax

anRSO.CalcHorizon


Recalculate (RSO)
Recalculate

Updates the internal parameters of the projection. This must be called after changing any parameters of the Rectified Skew Orthomorphic projection.

Syntax

anRSO.Recalculate


ProjectPt (RSO)
ProjectPt
Example

Projects the point aPoint. Returns TRUE if aPoint is visible, FALSE otherwise; however, this always returns a point.

Syntax

anRSO.ProjectPt (aPoint)

Returns

Boolean


UnProjectPt (RSO)
UnProjectPt
Example

Unprojects the point aPoint. Returns TRUE if aPoint can be unprojected, FALSE otherwise; however, this always returns a point.

Syntax

anRSO.UnProjectPt (aPoint)

Returns

Boolean


SingleBandLegend

 A SingleBandLegend is an image legend used for displaying one band of an image. A SingleBandLegend consists of a selection of an image band, an image lookup table and a color map. The associated image lookup table transforms pixel values in the input band into indices in the color map. The color map specifies the color for each index. The ImageLookup class is subclassed to support a number of mappings including piecewise linear stretch and equal interval classification.

Attributes

Band.Band is the number of the band of the image that is to be displayed. Bands are numbered 0, 1, 2, etc.

ImageLookup.ImageLookup is the image lookup table used to transform pixel values of the specified band of the image into indices into the ColorMap.

ColorMap.ColorMap is the color map used to transform output values from the ImageLookup into colors.

Inherits From

ImageLegend

Class Requests

Making a SingleBandLegend

Make ( aBandNumber, anImageLookup, aColorMap ) :  SingleBandLegend

Instance Requests

Manipulating the Attributes of a SingleBandLegend

Clone  :  SingleBandLegend

GetBand  :  Number

GetColorMap  :  ColorMap

GetImageLookup  :  ImageLookup

SetBand ( aBandNumber )

SetColorMap ( aColorMap )

SetImageLookup ( anImageLookup )

__________

See also

ImageLookup
ColorMap
Color


Make (SingleBandLegend)
Make

Makes a SingleBandLegend to display aBandNumber with anImageLookup and aColorMap.

Syntax

SingleBandLegend.Make (aBandNumber, anImageLookup, aColorMap)

Returns

SingleBandLegend


Clone (SingleBandLegend)
Clone

Clones aSingleBandLegend.

Syntax

aSingleBandLegend.Clone

Returns

SingleBandLegend


GetBand (SingleBandLegend)
GetBand

Gets the band number displayed with aSingleBandLegend.

Syntax

aSingleBandLegend.GetBand

Returns

Number


GetColorMap (SingleBandLegend)
GetColorMap

Gets the color map used to display the band.

Syntax

aSingleBandLegend.GetColorMap

Returns

ColorMap


GetImageLookup (SingleBandLegend)
GetImageLookup

Gets the ImageLookup used to display the band.

Syntax

aSingleBandLegend.GetImageLookup

Returns

ImageLookup


SetBand (SingleBandLegend)
SetBand

Sets the band number to display to aBandNumber.

Syntax

aSingleBandLegend.SetBand (aBandNumber)


SetColorMap (SingleBandLegend)
SetColorMap

Sets the color map of aSingleBandLegend to aColorMap.

Syntax

aSingleBandLegend.SetColorMap (aColorMap)


SetImageLookup (SingleBandLegend)
SetImageLookup

Sets the ImageLookup of aSingleBandLegend to anImageLookup.

Syntax

aSingleBandLegend.SetImageLookup (anImageLookup)


ScriptMgr

 ScriptMgr lets the user choose a script from the list of scripts in the project. ScriptMgr creates the list of scripts from

    1) scripts on the project script list (embedded scripts)
    2) scripts associated with script editors
    3) scripts in the user default file
    4) scripts in the system default file

Inherits From

ModalDialog

Class Requests

ScriptMgr

GetFromSubset ( aPattern ) :  Script

Show  :  Script

__________

See also

Script
SEd


GetFromSubset (ScriptMgr)
GetFromSubset

 Displays a dialog box listing only those scripts whose names match aPattern. aPattern identifies some subset of scripts - for example, given the pattern "Script.*", ScriptMgr lists only scripts beginning with the string "Script.". If the user types a name outside the subsetted list, but in the complete list, that script is located and is a valid selection. ScriptMgr.GetFromSubset returns the selected script or nil if you hit Cancel.

Syntax

ScriptMgr.GetFromSubset (aPattern)

Returns

Script


Show (ScriptMgr)
Show

Displays a dialog box listing all scripts in the application. These scripts are found in the project, the user default file, and system default file. Encrypted scripts are included on the list. ScriptMgr.Show returns the selected script or nil if you hit Cancel.

Syntax

ScriptMgr.Show

Returns

Script


SEd

 A SEd, Script Editor, provides the end user with a way to create and execute Avenue scripts. The SEd allows you to create and modify, compile, execute, and debug scripts. For a discussion of the capabilities of the SEd document, see the topic Scripts in the ArcView help.

Attributes

RemainActive flag. The RemainActive flag set to TRUE means that the result of av.GetActiveDoc during script execution is this SEd document. If the RemainActive flag is FALSE, the last document active BEFORE the SEd became active will be the active document. The RemainActive flag enables the Avenue developer to test and debug scripts that will be associated with Click events on other document types without first attaching the script to a Click event in that document's DocGUI.

Script. The script object is created when the Avenue source string is compiled. It is deleted when the source is edited. When a script is complete (debugged and tested), the script object may be embedded in the project (added to the project's script list) and the Script Editor deleted from the project. The class help for Project discusses this in detail.

Source. Source is the string of Avenue commands which will be compiled. It appears in the Script Editor display. Script Editor provides a variety of requests that manipulate the source string.

FontSize. An element from the SedFontSizeEnum. It describes the size of the font used in this sed.

Inherits From

Doc

Enumerations

SEdFontSizeEnum

Class Requests

SEd

GetDefaultFontSize  :  SEdFontSizeEnum

Make  :  SEd

MakeFromSource ( aSourceString, aSEdName ) :  SEd

MakeWithGUI ( aGUIName ) :  SEd

SetDefaultFontSize ( aFontSizeEnum )

Instance Requests

Manipulating a SEd

Edit

Print

ShowCodepage

ShowVariables

Accessing SEd Attributes

GetCodepage  :  Number

GetFontSize  :  SEdFontSizeEnum

GetRemainActiveState  :  Boolean

GetScript  :  Script

GetSource  :  String

SetCodepage ( aCodepage )

SetFontSize ( aFontSizeEnum )

SetName ( aName )

SetRemainActiveState ( isSEdActive )

SetSource ( aString )

Compiling and Running a Script

Compile

HasError  :  Boolean

IsCompiled  :  Boolean

Run ( anObj )

Using the Script Editor Debugger

AddBreak ( aPosition ) :  Boolean

BreakExists ( aPosition ) :  Boolean

ClearAllBreaks

ClearBreak ( aPosition ) :  Boolean

Step

Text Manipulation in a Script Editor

GetSearchString  :  String

Insert ( aString )

KillLine

ReturnInsertPos  :  Number

Search ( aString ) :  Boolean

SetInsertPos ( aPosition )

ShiftLeft

ShiftRight

Undo

Handling Selected Text

ClearSelected

CopySelected

CutSelected

GetSelected  :  String

Paste

SelectAll

__________

See also

Script
Project
Clipboard


GetDefaultFontSize (SEd)
GetDefaultFontSize

Gets the enumeration element describing the current font size. If SED_FONTSIZE_DEFAULT is returned, then the fontsize is 14 pt.

Syntax

SEd.GetDefaultFontSize

Returns

SEdFontSizeEnum


Make (SEd)
Make

Creates a new SEd.

Syntax

SEd.Make

Returns

SEd


MakeFromSource (SEd)
MakeFromSource

Creates a new SEd named aSEdName from the Avenue source contained in the string called aSourceString.

Syntax

SEd.MakeFromSource (aSourceString, aSEdName)

Returns

SEd


MakeWithGUI (SEd)
MakeWithGUI

Makes a SEd and sets its initial GUI to be the one named aGUIName.

Syntax

SEd.MakeWithGUI (aGUIName)

Returns

SEd


SetDefaultFontSize (SEd)
SetDefaultFontSize

Sets the font size to be used when a SEd document is created. This request does not affect the font size used by existing SEd documents. Using the enumeration element SED_FONTSIZE_DEFAULT sets the default size to 14 pt.

Syntax

SEd.SetDefaultFontSize (aFontSizeEnum)


Edit (SEd)
Edit

Opens a modal property sheet for editing SEd properties.

Syntax

aSEd.Edit


Print (SEd)
Print

Prints aSEd's source string.

Syntax

aSEd.Print


ShowCodepage (SEd)
ShowCodepage

Show the codepage of aSEd.

Syntax

aSEd.ShowCodepage


ShowVariables (SEd)
ShowVariables

Displays a modal window containing local and global variables.

Syntax

aSEd.ShowVariables


GetCodepage (SEd)
GetCodepage

Returns codepage of aSEd.

Syntax

aSEd.GetCodepage

Returns

Number


GetFontSize (SEd)
GetFontSize

Returns the enumeration element describing the size of aSEd's font.

Syntax

aSEd.GetFontSize

Returns

SEdFontSizeEnum


GetRemainActiveState (SEd)
GetRemainActiveState

Returns TRUE if aSEd will remain the active document while executing the script.

Syntax

aSEd.GetRemainActiveState

Returns

Boolean


GetScript (SEd)
GetScript

Gets the associated script object. That object only exists while the 'run' button on the SEd button bar is active. In other words, compiling the text in aSEd creates a script object. If you use this request at other times (for example, while editing the source), it returns nil.

Syntax

aSEd.GetScript

Returns

Script


GetSource (SEd)
GetSource

Gets the Avenue source string.

Syntax

aSEd.GetSource

Returns

String


SetCodepage (SEd)
SetCodepage

Sets a codepage for aSEd.

Syntax

aSEd.SetCodepage (aCodepage)


SetFontSize (SEd)
SetFontSize

Sets the size of the font of aSEd. Use the enumeration element SED_FONTSIZE_DEFAULT to set aSEds fontsize to tbe whatever the current default is.

Syntax

aSEd.SetFontSize (aFontSizeEnum)


SetName (SEd)
SetName

Sets the name of aSEd and its associated Avenue script to aName.

Syntax

aSEd.SetName (aName)


SetRemainActiveState (SEd)
SetRemainActiveState

 Sets the RemainActive flag. If isSEdActive is TRUE, aSEd remains the active document when the script executes. If isSEdActive is FALSE, the last active document (PRIOR to the Script Editor) becomes the active document when the script executes. This property simplifies debugging scripts that are associated with controls. Run this script and toggle the value of the RemainActive flag.

      MsgBox.Info( av.GetActiveDoc.GetName, "Active Document")

Syntax

aSEd.SetRemainActiveState (isSEdActive)


SetSource (SEd)
SetSource

Sets the source string of aSEd to aString. SetSource removes the previous source.

Syntax

aSEd.SetSource (aString)


Compile (SEd)
Compile

Produces a script object from aSEd's source. If compilation detects any errors, they are reported, and the script object is discarded.

Syntax

aSEd.Compile


HasError (SEd)
HasError

Returns TRUE if a runtime error occurred during the script's last execution.

Syntax

aSEd.HasError

Returns

Boolean


IsCompiled (SEd)
IsCompiled

Returns TRUE if aSEd's script is OK to Run or Debug. Returns FALSE if the script has never compiled or has been altered since the last compilation

Syntax

aSEd.IsCompiled

Returns

Boolean


Run (SEd)
Run

Executes aSEd's script from the start if it is not being debugged. If the script is being debugged, it executes the remainder of the script. anObj will become the self object for this execution of the script. anObj may be used for parameter passing.

This request should not be called from your own Avenue scripts. It is supposed to be called only from the Run button. You should use av.Run to execute your scripts.

Syntax

aSEd.Run (anObj)


AddBreak (SEd)
AddBreak

Inserts a break point at the request or object closest to the offset aPosition. aPosition is an index number of characters in the source string.

Syntax

aSEd.AddBreak (aPosition)

Returns

Boolean


BreakExists (SEd)
BreakExists

Returns TRUE if a break point exists at aPosition. aPosition is an index number of characters in the source string.

Syntax

aSEd.BreakExists (aPosition)

Returns

Boolean


ClearAllBreaks (SEd)
ClearAllBreaks

Removes all break points in aSEd.

Syntax

aSEd.ClearAllBreaks


ClearBreak (SEd)
ClearBreak

Removes the break point closest to the request or object at offset aPosition. aPosition is an index number of characters in the source string.

Syntax

aSEd.ClearBreak (aPosition)

Returns

Boolean


Step (SEd)
Step

Advances the execution of the script by one request or object reference.

Syntax

aSEd.Step


GetSearchString (SEd)
GetSearchString

Gets the last search string.

Syntax

aSEd.GetSearchString

Returns

String


Insert (SEd)
Insert

Inserts the text in aString into the aSEd's source at the current cursor position. The cursor position defaults to the end of the last insertion.

Syntax

aSEd.Insert (aString)


KillLine (SEd)
KillLine

Deletes all characters between the left margin and the cursor, and moves the cursor to the left margin.

Syntax

aSEd.KillLine


ReturnInsertPos (SEd)
ReturnInsertPos

Returns the position within aSEd's source at which the next typed character would appear. The position is an index number of characters in the source string.

Syntax

aSEd.ReturnInsertPos

Returns

Number


Search (SEd)
Search

Searches aSEd's source for aString. The search begins at the current cursor position and continues to the end of the source text. If aString is found, Search returns TRUE and selects the string. Search positions the cursor at the found string. Search followed by an Insert replaces the selected text with the insert string.

Syntax

aSEd.Search (aString)

Returns

Boolean


SetInsertPos (SEd)
SetInsertPos

Sets aSEd's insert position to aPosition. The position of the blinking caret will be updated. aPosition is an index number of characters in the source string.

Syntax

aSEd.SetInsertPos (aPosition)


ShiftLeft (SEd)
ShiftLeft

Shifts selected lines two spaces to the left.

Syntax

aSEd.ShiftLeft


ShiftRight (SEd)
ShiftRight

Shifts selected lines two spaces to the right.

Syntax

aSEd.ShiftRight


Undo (SEd)
Undo

Reverts the edit state (text and selection) to the previous state.

Syntax

aSEd.Undo


ClearSelected (SEd)
ClearSelected

Clears the selected text.

Syntax

aSEd.ClearSelected


CopySelected (SEd)
CopySelected

Copies the selected text to the clipboard

Syntax

aSEd.CopySelected


CutSelected (SEd)
CutSelected

Cuts the selected text to the clipboard.

Syntax

aSEd.CutSelected


GetSelected (SEd)
GetSelected

Gets the selected text in aSEd.

Syntax

aSEd.GetSelected

Returns

String


Paste (SEd)
Paste

Pastes the contents of the clipboard into aSEd.

Syntax

aSEd.Paste


SelectAll (SEd)
SelectAll

Selects all text.

Syntax

aSEd.SelectAll


SEdFontSizeEnum

 Elements of this enumeration control the size of the font used by a SEd document.

#SED_FONTSIZE_SMALL

a small courier font size (approximately 10 pt)

#SED_FONTSIZE_MEDIUM

a medium courier font size (approximately 12 pt)

#SED_FONTSIZE_LARGE

a large courier font size (approximately 16 pt)

#SED_FONTSIZE_DEFAULT

interpreted by the request aSEd.SetFontSize as as the current default font size. Interpreted by the request SEd.SetDefaultFontSize to be SED_FONTSIZE_MEDIUM.


Shape

 Shape is an abstract class that defines the behavior of a geometric shape. Subclasses of shape define specific geometry. All shape geometry is planar, not spherical.

Note that many requests on aShape return the target object.

Attributes

Area.The Area is the mathematical area of the shape. Area is defined only for two-dimensional shapes.

Center.The Center is a point representing the mathematical center of the shape. The center need not intersect the shape.

Dimension.A shape may be zero-dimensional (point), one-dimensional (line), or two-dimensional (polygon). The request GetDimension returns the dimension of the shape.

Extent.The Extent is the smallest rectangle that entirely encloses the shape.

Length.Length is a number representing the mathematical length, perimeter, or circumference of the shape. The length is only defined for one- and two-dimensional shapes.

Null.Shapes, like numbers, strings, dates, and booleans can appear in tables and thus may be NULL.

Inherits From

Obj

Inherited By

Circle
Ellipse
GeoCurve
Line
MultiPoint
Oval
Point
Rect

Enumerations

CleanPreferenceEnum

Class Requests

Making Shapes

SetBufferResolution ( numPoints ) :  Number

SetCleanPreference ( aPreference ) :  CleanPreferenceEnum

Instance Requests

Converting a Shape

AsMultiPoint  :  MultiPoint

AsPolygon  :  Polygon

AsPolyLine  :  PolyLine

ReturnBuffered ( aDistance ) :  Polygon

Getting and Setting Attributes

GetDimension  :  Number

HasZ  :  Boolean

IsEmpty  :  Boolean

IsMeasured  :  Boolean

IsNull  :  Boolean

ReturnArea  :  Number

ReturnCenter  :  Point

ReturnExtent  :  Rect

ReturnLength  :  Number

Manipulating a Shape

Clean  :  Shape

Move ( moveX, moveY ) :  Shape

Snap ( anotherShape, snapDistance ) :  Boolean

Relating two Shapes

Contains ( anotherShape ) :  Boolean

ContainsCenter ( anotherShape ) :  Boolean

Distance ( anotherShape ) :  Number

Intersects ( anotherShape ) :  Boolean

IsCenterContainedIn ( anotherShape ) :  Boolean

IsContainedIn ( anotherShape ) :  Boolean

IsWithin ( anotherShape, aDistance ) :  Boolean

Transforming a Shape

LineIntersection ( anotherShape ) :  PolyLine

PointIntersection ( anotherShape ) :  MultiPoint

ReturnClipped ( aRect ) :  Shape

ReturnDifference ( anotherShape ) :  Shape

ReturnIntersection ( anotherShape ) :  Shape

ReturnMerged ( anotherShape ) :  Shape

ReturnProjected ( aPrj ) :  Shape

ReturnUnion ( anotherShape ) :  Shape

ReturnUnprojected ( aPrj ) :  Shape

__________

See also

GraphicShape
TextPositioner


SetBufferResolution (Shape)
SetBufferResolution

Sets the buffer resolution preference to numPoints for lines and polygons. The buffer resolution for points is set higher by ArcView (numPoints * 2.25).

Resolution defines the number of points per circle on the 'round' end of the resulting buffer. numPoints must be a number between 16 and 36. The default resolution is 36 for points and 16 for lines and polygons. A higher buffer resolution will result in a smoother buffer.

If you pass SetBufferResolution a number outside of the 16-to-36 range it returns the value of the buffer resolution.

Syntax

Shape.SetBufferResolution (numPoints)

Returns

Number


SetCleanPreference (Shape)
SetCleanPreference

Sets the Clean preference to aPreference. Returns the previous value of the Clean preference. See discussion under CleanPreferenceEnum.

Syntax

Shape.SetCleanPreference (aPreference)

Returns

CleanPreferenceEnum


AsMultiPoint (Shape)
AsMultiPoint

Returns a MultiPoint representing aShape. ABSTRACT

Syntax

aShape.AsMultiPoint

Returns

MultiPoint


AsPolygon (Shape)
AsPolygon

Returns a Polygon representing aShape or returns the NULL Shape.

Syntax

aShape.AsPolygon

Returns

Polygon


AsPolyLine (Shape)
AsPolyLine

Returns a PolyLine representing aShape or returns the NULL Shape.

Syntax

aShape.AsPolyLine

Returns

PolyLine


ReturnBuffered (Shape)
ReturnBuffered

Returns a buffer Polygon representing aShape buffered by aDistance. aDistance is in map units. You can use the Shape.SetBufferResolution request to set the buffer resolution preference which defines the smoothness of buffers.

Syntax

aShape.ReturnBuffered (aDistance)

Returns

Polygon


GetDimension (Shape)
GetDimension

Returns the dimension of aShape. In ArcView, points have dimension 0, lines have dimension 1 and polygons have dimension 2. Only shapes with dimension 1 or greater have a length. Only shapes with dimension 2 have an area. ABSTRACT

Syntax

aShape.GetDimension

Returns

Number


HasZ (Shape)
HasZ

Returns TRUE if aShape has Z coordinates, otherwise returns FALSE.

Syntax

aShape.HasZ

Returns

Boolean


IsEmpty (Shape)
IsEmpty

Returns TRUE if aShape is empty, otherwise returns FALSE. ABSTRACT

Syntax

aShape.IsEmpty

Returns

Boolean


IsMeasured (Shape)
IsMeasured

Returns TRUE if aShape has Measure coordinates, otherwise returns FALSE.

Syntax

aShape.IsMeasured

Returns

Boolean


IsNull (Shape)
IsNull

Returns TRUE if aShape is NULL or empty, otherwise returns FALSE. ABSTRACT

Syntax

aShape.IsNull

Returns

Boolean


ReturnArea (Shape)
ReturnArea

Returns the area of aShape.

If aShape is on a view, the units returned are in map units; if aShape is on a layout, the units returned are in page units.

If aShape is in a projected view, a more precise area measurement will be returned if you densify aShape first. For example,

  ' Densifies the polygons in the first active theme in the active view.
  ' Assumes an "Area" Field exists, and that you have write access to
  ' the shapefile. If you get an Out of Memory error, it's because
  ' you need to set the ReturnDensified value to something that makes
  ' sense for your data (densifying every inch for small scale data
  ' will cause this error, for example - densify every mile instead).

  theView  = av.GetActiveDoc
  theTheme = theView.GetActiveThemes.Get(0)
  theFTab  = theTheme.GetFTab
  shpFld   = theFTab.FindField("Shape")
  areaFld  = theFTab.FindField("Area")
  theFTab.StartEditingWithRecovery

  for each rec in theFTab
    thePoly = theFTab.ReturnValue(shpFld,rec)
    thePolyDense = thePoly.ReturnDensified(10)
    thePoly = Polygon.Make(thePolyDense.AsList)
    theFTab.SetValue(shpFld,rec,thePoly)
    theFTab.SetValue(areaFld,rec,thePoly.ReturnArea)
  end

  theFTab.StopEditingWithRecovery(true)

If your shapes are already densified, you can use the sample script calcapl.ave to return the area in projected units.

Syntax

aShape.ReturnArea

Returns

Number


ReturnCenter (Shape)
ReturnCenter

Returns the center (centroid) of aShape. ABSTRACT

If the shape is a graphic on a view, the units for the point are in map units. If the shape is a graphic on a layout, the units are in page units.

Syntax

aShape.ReturnCenter

Returns

Point


ReturnExtent (Shape)
ReturnExtent

Returns the extent of aShape. The extent is the minimum rectangle surrounding aShape.

If the shape is on a view, the units returned are in map units; if the shape is on a layout, the units returned are in page units.

Syntax

aShape.ReturnExtent

Returns

Rect


ReturnLength (Shape)
ReturnLength

Returns the length, perimeter, or circumference of aShape.

If the shape is on a view, the units returned are in map units; if the shape is on a layout, the units returned are in page units.

To return the length in projected units, refer to the sample script calcapl.ave.

Syntax

aShape.ReturnLength

Returns

Number


Clean (Shape)
Clean

Verifies and enforces the correctness of aShape.

Syntax

aShape.Clean

Returns

Shape


Move (Shape)
Move

Moves aShape by moveX and moveY and returns it. ABSTRACT

Syntax

aShape.Move (moveX, moveY)

Returns

Shape


Snap (Shape)
Snap

Snaps the vertices of aShape to vertices of anotherShape within snapDistance. Returns TRUE if snapping occurred, otherwise returns FALSE. ABSTRACT

Syntax

aShape.Snap (anotherShape, snapDistance)

Returns

Boolean


Contains (Shape)
Contains

Returns TRUE if aShape contains anotherShape, otherwise returns FALSE.

Syntax

aShape.Contains (anotherShape)

Returns

Boolean


ContainsCenter (Shape)
ContainsCenter

Returns TRUE if aShape contains the center of anotherShape, otherwise returns FALSE.

Syntax

aShape.ContainsCenter (anotherShape)

Returns

Boolean


Distance (Shape)
Distance

Returns the minimum distance between aShape and anotherShape.

If the shape is on a view, the units returned are in map units; if the shape is on a layout, the units returned are in page units.

Syntax

aShape.Distance (anotherShape)

Returns

Number


Intersects (Shape)
Intersects

Returns TRUE if aShape intersects anotherShape, otherwise returns FALSE.

Syntax

aShape.Intersects (anotherShape)

Returns

Boolean


IsCenterContainedIn (Shape)
IsCenterContainedIn

Returns TRUE if the center of aShape is contained in anotherShape, otherwise returns FALSE.

Syntax

aShape.IsCenterContainedIn (anotherShape)

Returns

Boolean


IsContainedIn (Shape)
IsContainedIn

Returns TRUE if aShape is contained in anotherShape, otherwise returns FALSE.

Syntax

aShape.IsContainedIn (anotherShape)

Returns

Boolean


IsWithin (Shape)
IsWithin

Returns TRUE if anotherShape is within aDistance of aShape.

Syntax

aShape.IsWithin (anotherShape, aDistance)

Returns

Boolean


LineIntersection (Shape)
LineIntersection

Intersects aShape and anotherShape into a new PolyLine shape that captures the intersection lines. This request provides control over the output type of the result where, for example, ReturnIntersection on polygons would return a Polygon shape, LineIntersection returns their common boundary line.

Syntax

aShape.LineIntersection (anotherShape)

Returns

PolyLine


PointIntersection (Shape)
PointIntersection

Intersects aShape and anotherShape into a new MultiPoint shape that captures the intersection points. This request provides control over the output type of the result where, for example, ReturnIntersection of two polygons would return a Polygon shape, PointIntersection returns intersection points of their boundary lines.

Syntax

aShape.PointIntersection (anotherShape)

Returns

MultiPoint


ReturnClipped (Shape)
ReturnClipped

Returns aShape clipped to aRect. The result will be NULL if aShape and aRect do not intersect. ABSTRACT

Syntax

aShape.ReturnClipped (aRect)

Returns

Shape


ReturnDifference (Shape)
ReturnDifference

Subtracts anotherShape from aShape into a new shape. It corresponds to set operation Difference where shapes are treated as point-sets. If Shapes are viewed as bitmaps, this would be an 'aShape AND (NOT anotherShape)' operation. aShape's dimensionality must be less or equal to anotherShape's dimensionality. The result will always have the dimensionality of aShape.

Syntax

aShape.ReturnDifference (anotherShape)

Returns

Shape


ReturnIntersection (Shape)
ReturnIntersection

Intersects aShape and anotherShape into a new shape. This operation implements the Intersection set operation on Shapes treated as point-sets. If we view Shapes as bitmaps, this would be an AND operation. aShape and anotherShape need not be of the same dimensionality. The result will always have the smaller dimensionality of the two input shapes.

Syntax

aShape.ReturnIntersection (anotherShape)

Returns

Shape


ReturnMerged (Shape)
ReturnMerged

Merges aShape and anotherShape into a new shape. The rule for merging reflects the Symmetric Difference set operation where Shapes are treated as point-sets. If we view Shapes as bitmaps, this would be a XOR operation. aShape and anotherShape must be of the same dimensionality.

For shapes with a dimension of 2 (Polygons, Circles, Rects, and Ovals), ReturnMerged is similar to ReturnUnion except in cases where the two input shapes overlap. With ReturnMerged the resulting shape will have a hole where the shapes overlapped but with ReturnUnion there will be no hole.

Syntax

aShape.ReturnMerged (anotherShape)

Returns

Shape


ReturnProjected (Shape)
ReturnProjected

Returns aShape projected by aPrj. ABSTRACT

The result may be a different kind of shape or have more points than the original. ReturnProjected densifies the shape at one-degree intervals before projecting the shape.

This request is used when projecting graphics in the view. Therefore straight line graphics in an unprojected view will turn into curved graphics in a projected view.

Syntax

aShape.ReturnProjected (aPrj)

Returns

Shape


ReturnUnion (Shape)
ReturnUnion

Unites aShape and anotherShape into a new shape. This operation reflects the Union set operation on Shapes treated as point-sets. If we view Shapes as bitmaps, this would be an OR operation. aShape and anotherShape must be of the same dimensionality.

For shapes with a dimension of 2 (Polygons, Circles, Rects, and Ovals), ReturnUnion is similar to ReturnMerged except in cases where the two input shapes overlap. With ReturnMerged the resulting shape will have a hole where the shapes overlapped but with ReturnUnion there will be no hole.

Syntax

aShape.ReturnUnion (anotherShape)

Returns

Shape


ReturnUnprojected (Shape)
ReturnUnprojected

Returns aShape unprojected by aPrj. The result may be a different kind of shape or have more points than the original. ABSTRACT

Syntax

aShape.ReturnUnprojected (aPrj)

Returns

Shape


CleanPreferenceEnum

 Cleaning Polygon shapes involves a tradeoff between worst-case correctness and speed. If correctness in the worst case must be guarantied, the slower it is to calculate. This mostly affects special cases, such as self overlapping ring boundaries. The Shape.SetCleanPreference request allows the user to set the Clean quality. The types of preferences for Clean quality are given by this enumeration.

#SHAPE_CLEAN_FAST

Choose speed over worst-case correctness. This is the default.

#SHAPE_CLEAN_HIGHEST_QUALITY

Cleans polygons to ensure that all rings are preserved, and that the ring topology is correct. For some cases this can be much slower than SHAPE_CLEAN_FAST. Also cleans polygons clipped by the view extent.


Fill

 Instances of class Fill are used to symbolize polygons. Subclasses of Fill represent specific styles such as raster, vector, and composite fills.

Attributes

OlWidth.OlWidth is the outline width of the Fill in points. (1/72 of an inch)

Outline.Outline is TRUE if the Fill has an outline, otherwise FALSE.

Inherits From

Symbol

Inherited By

CompositeFill
RasterFill
VectorFill

Instance Requests

Getting and Setting Attributes

GetOlColor  :  Color

GetOlWidth  :  Number

GetType  :  SymbolEnum

IsOutlined  :  Boolean

SetOlColor ( aColor )

SetOlWidth ( aWidth )

SetOutlined ( isOutlined )

UnHook


GetOlColor (Fill)
GetOlColor

Gets the outline color of aFill.

Syntax

aFill.GetOlColor

Returns

Color


GetOlWidth (Fill)
GetOlWidth

Gets the outline width of aFill in points.

Syntax

aFill.GetOlWidth

Returns

Number


GetType (Fill)
GetType

Returns #SYMBOL_FILL.

Syntax

aFill.GetType

Returns

SymbolEnum


IsOutlined (Fill)
IsOutlined

Returns TRUE if aFill has an outline, otherwise returns FALSE.

Syntax

aFill.IsOutlined

Returns

Boolean


SetOlColor (Fill)
SetOlColor

Sets the outline color of aFill to aColor.

Syntax

aFill.SetOlColor (aColor)


SetOlWidth (Fill)
SetOlWidth

Sets the outline width of aFill to aWidth in points.

Syntax

aFill.SetOlWidth (aWidth)


SetOutlined (Fill)
SetOutlined

Sets whether aFill has an outline. If isOutlined is TRUE, Fill will be outlined. If isOutlined is FALSE, Fill will not be outlined.

Syntax

aFill.SetOutlined (isOutlined)


UnHook (Fill)
UnHook

Unhook the symbol from scale

Syntax

aFill.UnHook


Sinusoid
Discussion	Example

 This class implements the Sinusoidal projection.

Inherits From

Prj

Class Requests

Creating Sinusoidal Projections

Make ( aRect ) :  Sinusoid

Instance Requests

Projecting and unprojecting points

ProjectPt ( aPoint ) :  Boolean

UnProjectPt ( aPoint ) :  Boolean

Sinusoidal Parameters

Recalculate

ReturnCentralMeridian  :  Number

SetCentralMeridian ( aLongitude )

__________

See also

Spheroid
CoordSys


Make (Sinusoid)
Make
Example

Creates a Sinusoidal projection. aRect is the bounding rectangle of the area being projected. Use decimal degrees for the coordinates of aRect.

Syntax

Sinusoid.Make (aRect)

Returns

Sinusoid


ProjectPt (Sinusoid)
ProjectPt
Example

Projects the point aPoint. Returns TRUE if aPoint is visible, FALSE otherwise; however, this always returns a point.

Syntax

aSinusoid.ProjectPt (aPoint)

Returns

Boolean


UnProjectPt (Sinusoid)
UnProjectPt
Example

Unprojects the point aPoint. Returns TRUE if aPoint can be unprojected, FALSE otherwise; however, this always returns a point.

Syntax

aSinusoid.UnProjectPt (aPoint)

Returns

Boolean


Recalculate (Sinusoid)
Recalculate

Updates the internal parameters of the projection. This must be called after changing any parameters of the Sinusoidal projection.

Syntax

aSinusoid.Recalculate


ReturnCentralMeridian (Sinusoid)
ReturnCentralMeridian

Returns the central meridian in degrees.

Syntax

aSinusoid.ReturnCentralMeridian

Returns

Number


SetCentralMeridian (Sinusoid)
SetCentralMeridian
Example

Sets the central meridian to aLongitude. aLongitude is a longitude in degrees.

Syntax

aSinusoid.SetCentralMeridian (aLongitude)


Space

 A Space appears in a ButtonBar or ToolBar as an empty space or in a Menu as a line separator. Space allows you to group controls within the ControlSet. Because Space is a Control, it does have an update event and an object tag. Disabling a Space or making it invisible has no effect.

To add a Space to a ControlSet, use the Space.Make request to create the Space and then add it to the ControlSet.

Inherits From

Control

Class Requests

Space

Make  :  Space

__________

See also

ControlSet
ButtonBar
Menu
ToolBar


Make (Space)
Make

Creates a Space.

Syntax

Space.Make

Returns

Space


SplineText

 A SplineText object is a kind of Graphic that knows how to draw symbolized strings objects along the splined baseline that is automatically derived from a polyline shape. When aSplineText object is made, a Bezier spline is created from aPolyLine such that each Node and Vertex in the polyline becomes a control point in the resultant spline line. Spline lines and their control points are not editable in Avenue.

CharSpacing. This is the number of space characters that are inserted between the characters of the string aSplineText object is made with.

Quality. This represents the drawing mode. SplineText objects can be drawn in draft mode, which shows the charactersa gray boxes, or in Presentation mode, which shows the characters as text. If you have a lot of splineText on a display, then using draft mode will increase drawing speed.

Inherits From

GraphicText

Enumerations

SplineTextQualityEnum

Class Requests

Making SplineTexts

Make ( aString, aPolyline ) :  SplineText

Instance Requests

Getting and Setting Attributes

GetAngle  :  Number

GetCharSpacing  :  Number

GetSpacing  :  Number

SetAlignment ( aTxJust )

SetAngle ( anAngle )

SetCharSpacing ( aRatio )

SetSpacing ( aDistance )

SetSymbols ( aSymbolList )

SetText ( aString )

Transforming SplineTexts

ClearTransforms

Offset ( aPoint )

Project ( aPrj )

UnProject ( aPrj )

__________

See also

GraphicList
GraphicText
TextPositioner
Font
Display
Layout


Make (SplineText)
Make

Makes a SplineText at aPoint containing aString.

Syntax

SplineText.Make (aString, aPolyline)

Returns

SplineText


GetAngle (SplineText)
GetAngle

Gets the rotation angle of aSplineText. Always returns zero for SplineText.

Syntax

aSplineText.GetAngle

Returns

Number


GetCharSpacing (SplineText)
GetCharSpacing

Gets the inter-character spacing of aSplineText. This corresponds to how many spaces are inserted between each character of the string you make the aSplineText object with.

Syntax

aSplineText.GetCharSpacing

Returns

Number


GetSpacing (SplineText)
GetSpacing

Always returns zero for SplineText. SplineText does not use line spacing because only single lines of text can be splined. Note, you can use text that contains new line characters "nl" with multi-part polylines, which will cause each new line of text to be splined along the next corresponding part in the polyline.

Syntax

aSplineText.GetSpacing

Returns

Number


SetAlignment (SplineText)
SetAlignment

Sets the alignment of aSplineText to aTxJust. Only #TEXTCOMPOSER_JUST_LEFT and #TEXTCOMPOSER_JUST_RIGHT will change the appearance of aSplineText object.

Syntax

aSplineText.SetAlignment (aTxJust)


SetAngle (SplineText)
SetAngle

Does nothing for SplineText.

Syntax

aSplineText.SetAngle (anAngle)


SetCharSpacing (SplineText)
SetCharSpacing

Sets the inter-character spacing of aSplineText to aRatio of a space character width. This corresponds to the number of space chracters that are inserted between each character of the string you make aSplineText object with.

Syntax

aSplineText.SetCharSpacing (aRatio)


SetSpacing (SplineText)
SetSpacing

This does nothing for SplineText objects because only single lines of text can be splined. Note, you can use text that contains new line characters "nl" with multi-part polylines, which will cause each new line of text to be splined along the next corresponding part in the polyline.

Syntax

aSplineText.SetSpacing (aDistance)


SetSymbols (SplineText)
SetSymbols

Sets the symbols of aSplineText to aSymbolList.

Syntax

aSplineText.SetSymbols (aSymbolList)


SetText (SplineText)
SetText

Sets the text of aSplineText to aString. Note, you can use text that contains new line characters "nl" with multi-part polylines, which will cause each new line of text to be splined along the next corresponding part in the polyline.

Syntax

aSplineText.SetText (aString)


ClearTransforms (SplineText)
ClearTransforms

Clears the transformations on aSplineText.

Syntax

aSplineText.ClearTransforms


Offset (SplineText)
Offset

Offsets aSplineText by aPoint.

Syntax

aSplineText.Offset (aPoint)


Project (SplineText)
Project

Projects aSplineText to aPrj.

Syntax

aSplineText.Project (aPrj)


UnProject (SplineText)
UnProject

Unprojects aSplineText from aPrj.

Syntax

aSplineText.UnProject (aPrj)


SplineTextQualityEnum

 Controls the Draw quality of a curved text objects.

#SPLINETEXT_QUALITY_DRAFT

draw SplineText as grey boxes

#SPLINETEXT_QUALITY_PRESENTATION

draw SplineText in presentation mode.


SQLCon

 A SQLCon establishes a connection to an SQL database. ArcView users can choose the SQL Connect choice on the Project menu to open the SQL Connection Manager window and connect to and query SQL databases.

The results of a query against an SQL database are stored as an ArcView virtual table that can be joined, linked, and summarized like any other ArcView virtual table. However, the table is read-only.

An Avenue programmer can use the GetConnections request to get a list of the available SQL connections and the Login and Logout requests to connect and disconnect from the database. Use VTab.MakeSQL to create an SQL virtual table. Or use the ExecuteSQL request to execute an arbitrary SQL string on the server.

On workstations (UNIX), ArcView uses the ARC/INFO Database Integrator. Database Integrator drivers do not speak a standard version of SQL so you must use the native SQL for that database server. Also, the SQLCur class provides the ability to get the results of a SQL statement without putting it in a table.

On Microsoft Windows, Windows 95 and Windows NT, ArcView uses ODBC (Open Database Connectivity). All ODBC drivers must speak a standard SQL although they need not support all features of the language. Therefore, use ODBC SQL when communicating with an SQL database on Windows, Windows 95 and Windows NT.

Note: Scripts that use the SQLCon class or the VTab.MakeSQL request on Microsoft Windows will not work if they are run or debugged in the script editor. They must be attached to a button or menu choice, and then run by clicking the button or choosing the menu choice. This does not need to be done on a workstation or Microsoft Windows NT.

Example

The following example script shows how to connect to Oracle from ArcView using Avenue on a UNIX platform. This script assumes that the environment varaibles needed to connect to Oracle have been set.

 theSQL=SQLCon.Find("Oracle")
 theSQL.Login("user/password")
 astring="Select * from house1"
 theVTab=VTab.MakeSQL(theSQL, astring)
 myTable=Table.Make(theVtab)
 av.GetProject.AddDoc(mytable)
 mytable.GetWin.Open

The next example script also shows how to connect to Oracle, but this time using ODBC on a PC platform. The login string specified with the request theCon.Login, provides all the information needed to make the connection. As a result, you are not prompted for login information. If only partial information is provided, the ODBC driver will prompt you for the missing login data. Check the ODBC driver documentation to locate the proper format for this string.

 theCon = SQLCon.Find("i - orasan")
 theCon.Login("SRVR=orasan;UID=snoopy;PWD=snoopy")
 astring="Select * from house1"
 theVTab=VTab.MakeSQL(theSQL, astring)
 myTable=Table.Make(theVtab)
 av.GetProject.AddDoc(mytable)
 mytable.GetWin.Open

Inherits From

Obj

Class Requests

Getting information about SQL

Find ( aName ) :  SQLCon

GetConnections  :  List

HasSQL  :  Boolean

Instance Requests

Manipulating a SQLCon

ExecuteSQL ( aString ) :  Boolean

HasError  :  Boolean

IsLogin  :  Boolean

Login ( aLoginString )

Logout

__________

See also

DBICursor
SQLWin
VTab


Find (SQLCon)
Find

Finds the connection named aName. If you are on Windows, to find out what are valid values for aName, call the ODBC vendor or refer to the ODBC documentation. If you are on a workstation, see the topic "Setting up a database connection with the DATABASE INTEGRATOR" in tables help.

Syntax

SQLCon.Find (aName)

Returns

SQLCon


GetConnections (SQLCon)
GetConnections

Gets a list of all connections.

Syntax

SQLCon.GetConnections

Returns

List


HasSQL (SQLCon)
HasSQL

Returns true if SQL is available, otherwise returns false.

Syntax

SQLCon.HasSQL

Returns

Boolean


ExecuteSQL (SQLCon)
ExecuteSQL

Executes aString on the server connected to with aSQLCon. ArcView does not process the string at all.

When using the PC version of ArcView, if the statement does not execute correctly on the database, an ArcView error message is displayed. Also, any error messages from the database are appended a file called $AVHOME/ODBC.errlog.

 ' creates a table called atable on an ORACLE server
 anSQLCon.ExecuteSQL("create table atable (afield number(8)")

 ' inserts a record into atable
 anSQLCon.ExecuteSQL("insert into atable values (7)")

Syntax

aSQLCon.ExecuteSQL (aString)

Returns

Boolean


HasError (SQLCon)
HasError

Returns TRUE if there is a problem with a logged in connection, otherwise returns FALSE. This request will return TRUE if the connection has not been logged into the database.

Syntax

aSQLCon.HasError

Returns

Boolean


IsLogin (SQLCon)
IsLogin

Returns TRUE if aSQLCon has been logged in, returns FALSE otherwise.

Syntax

aSQLCon.IsLogin

Returns

Boolean


Login (SQLCon)
Login

Logs into the server with aLoginString. If you are on Windows, to find out about the appropriate value for aLoginString, call the ODBC vendor or refer to the ODBC documentation. If only a partial login string is provided, the ODBC driver will prompt you for the rest of the connection information. If you are on a workstation, see the topic "Logging into a database with the DATABASE INTEGRATOR" in tables help.

Syntax

aSQLCon.Login (aLoginString)


Logout (SQLCon)
Logout

Logs out of the server.

Syntax

aSQLCon.Logout


DBICursor

 The DBICursor class represents a cursor on an SQL query through the ARC/INFO Database Integrator. ArcView uses this class to build SQL tables in workstation versions of ArcView.

This class can also be used directly to manipulate the results of an SQL query without building a table out of it. However, this class is not supported on non-workstations versions of ArcView.

Make a DBICursor with a SQL query and use GetNextRecord to step through the records one at a time. Values can be accessed similarly to a VTab except that only the current record can be accessed.

Inherits From

Obj

Class Requests

Making a DBICursor

Make ( aSQLCon, aString ) :  DBICursor

Instance Requests

Closing a DBICursor

Close

Getting the Structure of a DBICursor

GetFields  :  List

GetNextRecord  :  Boolean

HasError  :  Boolean

Getting Values in a DBICursor

GetValueNumber ( aField ) :  Obj

GetValueString ( aField ) :  Obj

ReturnValue ( aField ) :  Obj

__________

See also

SQLCon
SQLWin


Make (DBICursor)
Make

Makes a DBICursor by sending aString to aSQLCon.

Syntax

DBICursor.Make (aSQLCon, aString)

Returns

DBICursor


Close (DBICursor)
Close

Closes the SQLCur.

Syntax

aDBICursor.Close


GetFields (DBICursor)
GetFields

Gets a list of fields in aDBICursor.

Syntax

aDBICursor.GetFields

Returns

List


GetNextRecord (DBICursor)
GetNextRecord

Gets next record of results from the server. Returns TRUE if successful, returns FALSE otherwise.

Syntax

aDBICursor.GetNextRecord

Returns

Boolean


HasError (DBICursor)
HasError

Returns TRUE if the cursor has an error, returns FALSE otherwise.

Syntax

aDBICursor.HasError

Returns

Boolean


GetValueNumber (DBICursor)
GetValueNumber

Gets the value of aField of the current record as a number. If the value is NULL, returns the NULL number.

Syntax

aDBICursor.GetValueNumber (aField)

Returns

Obj


GetValueString (DBICursor)
GetValueString

Returns the value of aField of the current record as a string. If the value is NULL, returns the NULL string.

Syntax

aDBICursor.GetValueString (aField)

Returns

Obj


ReturnValue (DBICursor)
ReturnValue

Returns a copy of the value of aField of the current record. If the value is NULL, returns the NULL object of the appropriate class.

Syntax

aDBICursor.ReturnValue (aField)

Returns

Obj


SQLWin

 The SQLWin is a modeless window which lets the end-user manage the SQL connections that are defined for the session. New Tables may be created by building a SQL query in the window. To manage SQL connections from Avenue, use the SQLCon.GetConnections request to get a list of connections, use SQLCon.Login to login to a data source, and use VTab.MakeSQL to create a SQL-based VTab.

Inherits From

Window

Class Requests

Making a SQLWin

Make  :  SQLWin

The  :  SQLWin

Instance Requests

Manipulating a SQLWin

Open

__________

See also

SQLCon
VTab


Make (SQLWin)
Make

Makes a SQL Connection window and opens it.

Syntax

aSQLWin.Make

Returns

SQLWin


The (SQLWin)
The

Returns the SQL Connection window.

Syntax

aSQLWin.The

Returns

SQLWin


Open (SQLWin)
Open

Opens aSQLWin.

Syntax

aSQLWin.Open


SrcExtension

 The SrcExtension class provides ArcView Extensions to the Src class. It stores Extension-specific environments that can be accessed using the SrcExtension instance requests.

SrcExtensions can be added to a Src using the aSrc.SetExtension request by passing an instance of a SrcExtension. A SrcExtension can be reterieved from a Src using the aSrc.GetExtension request by passing the SrcExtension class. To remove a SrcExtension from a Src, use the aSrc.RemoveExtension request and pass a SrcExtension class.

Inherits From

ExtensionObject

__________

See also

ExtensionObject


SourceManager

 SourceManager displays a list of files and directories allowing you to manage data sets, including copying, renaming, deleting, and selecting those data sets and specifying data set names for output.

Examples of disk-based data source objects are feature tables (FTabs) and Grids. The data set for a feature table object is a Shapefile and the data set for a Grid object is a Grid.

aSrcClass can be one of the following classes:

  FTab for Shapefiles
  Grid for Grid data sets when Spatial Analyst or 3D Analyst is loaded
  TIN for TIN data sets when 3D Analyst is loaded
  TTab for TrackFile data sets when Tracking Analyst is loaded
  IASrc for ImageAnalysisDataSet when Image Analysis is loaded

Other ArcView extensions may provide additional SrcClasses.

Inherits From

ModalDialog

Class Requests

SourceManager

GetDataSet ( aSrcClass, aTitle ) :  FileName

ManageDataSets ( aSrcClass, aTitle )

PutDataSet ( aSrcClass, aTitle, defaultFileName, doCheck ) :  FileName

ReturnDataSets ( aSrcClass, aTitle ) :  List

__________

See also

FTab
Grid


GetDataSet (SourceManager)
GetDataSet

 Creates a SourceManager window with an user-specified data source class, which allows you to select a data set associated with the specified data source class.

If you select a data set file then click OK, GetDataSet returns a FileName of the chosen data set. If you select Cancel or make no selection, GetDataSet returns a Nil.

aSrcClass is a user-specified data source class, such as FTab or Grid. A Nil can be used for aSrcClass, and indicates all manageable data sources are browsed.

aTitle is the title string of the Source Manager window, and can be an empty string if you want to use the default title.

      SourceManager.GetDataSet(FTab, "Choose a shapefile")

Syntax

SourceManager.GetDataSet (aSrcClass, aTitle)

Returns

FileName


ManageDataSets (SourceManager)
ManageDataSets

 Creates a SourceManager window with an user-specified data source class, which allows you to manage data sets associated with the specified data source class, such as copying, renaming, and deleting data sets.

aSrcClass is an user-specified data source class, such as FTab or Grid. A Nil can be used for aSrcClass, and indicates all manageable data sources are browsed.

aTitle is the title string of the Source Manager window, and can be an empty string if you want to use the default title.

      SourceManager.ManageDataSets(FTab, "")

Syntax

SourceManager.ManageDataSets (aSrcClass, aTitle)


PutDataSet (SourceManager)
PutDataSet

 Creates a SourceManager window with a user-specified data source class, which allows you to specify a data set name for saving an object of the specified data source class.

If you name or select a data set file then click OK, PutDataSet returns a FileName for that data set. If you name an existing file, PutDataSet queries to replace the existing file. If you click Cancel or do not enter a name, PutDataSet returns Nil.

The path of the defaultFileName serves as the beginning directory for PutDataSet to browse.

aSrcClass is an user-specified data source class, such as FTab or Grid.

aTitle is the title string of the Source Manager window, and can be an empty string if you want to use the default title.

PutDataSet does not perform normal file-in-use checking and override verification of the output data set when doCheck is FALSE AND the full path name of user-selected output FileName is the same as that of defaultFileName.

      SourceManager.PutDataSet(Grid, "", "mygrid".asFileName, TRUE)

Syntax

SourceManager.PutDataSet (aSrcClass, aTitle, defaultFileName, doCheck)

Returns

FileName


ReturnDataSets (SourceManager)
ReturnDataSets

 Creates a SourceManager window with an user-specified data source class, which allows you to select one or more data sets associated with the specified data source class.

If you select one or more data set files then click OK, ReturnDataSets returns a list of FileNames of the chosen data sets. If you select Cancel or make no selection, ReturnDataSets return an empty list.

aSrcClass is a user-specified data source class, such as FTab or Grid.

aTitle is the title string of the Source Manager window, and can be an empty string if you want to use the default title.

      SourceManager.ReturnDataSets(FTab, "Select some shapefiles")

Syntax

SourceManager.ReturnDataSets (aSrcClass, aTitle)

Returns

List


SrcName

 A SrcName identifies the data used to create an ArcView theme. SrcName defines the source for spatial data stored on disk and supports the source types: coverage, library layer, shapefile and image file. Subclasses of SrcName identify other kinds of spatial data including X-Y events, dynamic segmentation events, and geocoding themes. You use a SrcName object with the Theme Make request.

A SrcName is created with a string containing elements that identify the data. Different source types require different source strings. Here are some examples. Please note that in some cases (CAD, StreetMap, e.g.) you must have the appropriate extension loaded before you will have success.

  n = SrcName.Make("$AVDATA/myimage.bil")                 'Image file
  n = SrcName.Make("$AVDATA/world/country polygon")       'Polygon coverage
  n = SrcName.Make("$AVDATA/world/country region.cntry")  'Region coverage
  n = SrcName.Make("$AVDATA/districts.shp")               'Shapefile
  n = SrcName.Make("mylibrary.mylayer polygon")           'ARC/INFO Library
  n = SrcName.Make("mylibrarian.mylibrary.mylayer polygon") 'ArcStorm
  n = SrcName.Make("$AVDATA\drawings\parcels.dwg line") 'CAD drawing file
  n = SrcName.Make("D:\usa.bms")                         'StreetMap theme source file

The request ReturnSrcNames on classes Coverage and Layer returns a list of SrcName objects for the named data source. The list contains one SrcName object for each feature class in the data source.

Attributes

FileName.FileName references the disk location of the DataSource. For a library layer, the FileName is nil.

DataSource.DataSource is the name of the coverage, file or library layer that contains the data. In the case of coverages and files, DataSource is the full path name to the coverage or file. For a library layer, DataSource is "LibraryName.LayerName".

SubName.SubName is the feature class: region.subclass, route.subclass, annotation.subclass, annotation, polygon, arc, or point.

Name. Name is the name of the data source. If the SrcName is used to create a theme, Name becomes the theme name. Name may be altered with the SetName request. By default, Name is

      Coverage:       coverage name
      Library layer:  layer name
      Shapefile:      file name
      Image file:     file name

Examples

Here is an example that creates a theme using a SrcName object and adds the theme to a view. Note that SrcName.Make returns a nil object if the input specification does not correspond to an existing data source.

  ' Make a SrcName for this coverage/feature class
  mySrcName = SrcName.Make( "$AVDATA/world/country polygon" )

  if (mySrcName <> nil) then
     ' Make a Theme from this data source
     newTheme  = Theme.Make( mySrcName )
     aView.AddTheme( newTheme )
  end

Here is a script that gets the list of available SrcNames from a coverage; the list has one SrcName object for each feature class in the coverage.

  ' Get the list of SrcNames available in this coverage
  SrcNames = Coverage.ReturnSrcNames( "$AVDATA/world/country" )

  ' Make a list of feature classes
  flist = {}
  for each s in SrcNames
    flist.Add( s.GetSubName )
  end

  ' Display the feature classes
  FeatureClass = msgbox.ChoiceAsString( flist, "", "Feature Classes" )

Inherits From

Obj

Inherited By

DynName
GeoName
XYName

Class Requests

Making a SrcName

Make ( aSourceString ) :  SrcName

Instance Requests

Getting and Setting SrcName Attributes

GetDataSource  :  String

GetFileName  :  FileName

GetName  :  String

GetSubName  :  String

SetDataSource ( aString )

SetFileName ( aFileName )

SetName ( aString )

SetSubName ( aString )

__________

See also

FileName
FTab
ImgSrc
Theme
Layer
Coverage


Make (SrcName)
Make

Makes a SrcName corresponding to an existing data source described in aSourceString. Different source types require different components in the source string. All strings must include the data source. Some source types also require the string to identify the feature class. The NIL object is returned if the specified data source cannot be found.

The string request AsSrcName uses the same source string format.

 Shapefile: <shapefile>
 Image file: <image file>
 Coverage: <coverage>  <feature class>
 Layer: <LibName.LayerName>  <feature class>
 ArcStorm: <Librarian.LibName.LayerName> <feature class>

Syntax

SrcName.Make (aSourceString)

Returns

SrcName


GetDataSource (SrcName)
GetDataSource

Gets the DataSource of aSrcName.

Syntax

aSrcName.GetDataSource

Returns

String


GetFileName (SrcName)
GetFileName

Gets the filename of aSrcName.

Syntax

aSrcName.GetFileName

Returns

FileName


GetName (SrcName)
GetName

Gets the name of aSrcName.

Syntax

aSrcName.GetName

Returns

String


GetSubName (SrcName)
GetSubName

Gets the feature class of aSrcName.

Syntax

aSrcName.GetSubName

Returns

String


SetDataSource (SrcName)
SetDataSource

Sets the DataSource of aSrcName to aString.

Syntax

aSrcName.SetDataSource (aString)


SetFileName (SrcName)
SetFileName

Sets the filename of aSrcName to aFileName.

Syntax

aSrcName.SetFileName (aFileName)


SetName (SrcName)
SetName

Sets the name of aSrcName to aString.

Syntax

aSrcName.SetName (aString)


SetSubName (SrcName)
SetSubName

Sets the feature class of aSrcName to aString. aString must contain a valid feature class name.

Syntax

aSrcName.SetSubName (aString)


SourceDialog

 SourceDialog is modal window which browses geographic data sources on file systems, in ARC/INFO map libraries and in ArcStorm databases. Requests on SourceDialog return the selected data sources as a list of SrcNames.

The user can specify whether to display Feature or Image data sources. Also, the user may specify whether to search directories or libraries. When the data source is a coverage or layer, the user may select a particular feature class in that data source.

Inherits From

ModalDialog

Class Requests

SourceDialog

Show ( titleString ) :  List

ShowClass ( titleString, firstBrowseClass ) :  List

ShowLibraries ( titleString ) :  List

__________

See also

SrcName


Show (SourceDialog)
Show

 Returns a list of SrcNames selected by the user. If titleString is empty, the title defaults to 'Add Themes'.

Syntax

SourceDialog.Show (titleString)

Returns

List


ShowClass (SourceDialog)
ShowClass

 Returns a list of SrcNames selected by the user. If titleString is empty, the title defaults to 'Add Themes'. firstBrowseClass specifies which class of data source will initially appear in the Data Source Types choice box. Using class ImgSrc for firstBrowseClass causes the Data Source Types choice box to default to Image sources; using class FSrc causes it to default to Feature sources. If the Spatial Analyst extension is loaded, then using the class Grid as firstBrowseClass will cause it to default to Grid sources. Otherwise, it defaults to the type of the first element in the choice box.

Syntax

SourceDialog.ShowClass (titleString, firstBrowseClass)

Returns

List


ShowLibraries (SourceDialog)
ShowLibraries

Same as Show, but the LIBRARIAN browser is brought up initially, rather than the coverage browser. Returns a list of SrcNames selected by the user. If titleString is empty, the title defaults to 'Add Themes'.

Syntax

SourceDialog.ShowLibraries (titleString)

Returns

List


Stack

 A stack is a collection which provides the Last-In-First-Out (LIFO) access method to its elements. Objects are "pushed on" and "popped off" the top of the stack. By default there is no upper bound on the size of a stack, however a stack of limited size may be created using the Stack.MakeShort class request.

Refer to any introductory book on data structures for details on the operation and uses of stacks.

Inherits From

Collection

Class Requests

Creating Stacks

Make  :  Stack

MakeShort ( aSize ) :  Stack

Instance Requests

Manipulating Stacks

Empty

Peek ( index ) :  Obj

Pop  :  Obj

Push ( anObject )

Top  :  Obj

Getting stack properties

Depth  :  Number

IsEmpty  :  Boolean

Size  :  Number

__________

See also

Dictionary
List


Make (Stack)
Make

Creates a new stack.

Syntax

Stack.Make

Returns

Stack


MakeShort (Stack)
MakeShort

Creates a new stack of maximum aSize elements. If the stack has aSize elements, and a new element is pushed on it, the bottommost element will disappear from the stack so that it does not exceed aSize.

Syntax

Stack.MakeShort (aSize)

Returns

Stack


Empty (Stack)
Empty

Sets the depth of the stack to zero.

Syntax

aStack.Empty


Peek (Stack)
Peek

Treats aStack as a list; the zeroth index is the top of the stack. Access each element by its position in the stack.

Syntax

aStack.Peek (index)

Returns

Obj


Pop (Stack)
Pop

Removes the object at the top of aStack and returns it.

Syntax

aStack.Pop

Returns

Obj


Push (Stack)
Push

Pushes anObject onto the top of aStack.

Syntax

aStack.Push (anObject)


Top (Stack)
Top

Returns the object at the top of the stack but does not remove it from aStack.

Syntax

aStack.Top

Returns

Obj


Depth (Stack)
Depth

Returns the number of objects currently on aStack.

Syntax

aStack.Depth

Returns

Number


IsEmpty (Stack)
IsEmpty

Returns TRUE if aStack contains no objects.

Syntax

aStack.IsEmpty

Returns

Boolean


Size (Stack)
Size

Returns the maximum number of objects that may be on aStack. Returns zero if there is no maximum.

Syntax

aStack.Size

Returns

Number


StanEditDialog

 The StanEditDialog is a modal dialog box used to view and edit a geocoding event's standardization. Standardization is the process of converting a free form string into a fixed format record. Depending on the type of standardization, conversion of some values may also take place. For example, in the case of a street address event, a street type of "Boulevard" may be converted into the standard form "BLVD". Within ArcView, standardization is performed by the MatchKey geocoding class. The StanEditDialog allows the user to edit both the pre-standardized event and the standardized event. Editing the standardized event can aid in geocoding matching rate by allowing the user to force an event to standardize in a particular way.

Inherits From

ModalDialog

Class Requests

Showing a StanEditDialog

Show ( aMatchKey ) :  Boolean

__________

See also

MatchKey
GeocodeDialog


Show (StanEditDialog)
Show

 Shows the geocoding event standardization editor dialog box, allowing the to view and edit the standardization of a geocoding event. True is returned if the event or its standardization was edited.

Syntax

StanEditDialog.Show (aMatchKey)

Returns

Boolean


Stereographic
Discussion	Example

 This class implements the Stereographic projection.

Inherits From

Perspective

Class Requests

Creating Stereographic Projections

CanDoCustom  :  Boolean

Make ( aRect ) :  Stereographic

__________

See also

CoordSys
Spheroid


CanDoCustom (Stereographic)
CanDoCustom

Returns TRUE if a class of projections supports customization and FALSE if it only supports fixed parameters. The Stereo class always returns TRUE.

Syntax

Stereo.CanDoCustom

Returns

Boolean


Make (Stereographic)
Make
Example

Creates a Stereographic projection. aRect is the bounding rectangle of the area being projected. Use decimal degrees for the coordinates of aRect.

Syntax

Stereo.Make (aRect)

Returns

Stereographic


Stipple

 A Stipple is a monochrome image which may be created from an Icon. BasicMarker or RasterFill symbols can define their pattern from Stipples.

Inherits From

Obj

Class Requests

Creating a Stipple

Make ( anIcon ) :  Stipple

Instance Requests

Getting Stipple properties

= anObj :  Boolean

GetWidth  :  Number

GetHeight  :  Number

__________

See also

RasterFill
BasicMarker
Icon


Make (Stipple)
Make

Creates a new stipple from anIcon.

Syntax

Stipple.Make (anIcon)

Returns

Stipple


= (Stipple)
=

Compares aStipple to an anObj.

Syntax

aStipple = anObj

Returns

Boolean


GetWidth (Stipple)
GetWidth

Gets the number of columns in aStipple.

Syntax

aStipple.GetWidth

Returns

Number


GetHeight (Stipple)
GetHeight

Gets the height of aStipple in pixels.

Syntax

aStipple.GetHeight

Returns

Number


SummaryDialog

 SummaryDialog is a modal dialog box which lets the user specify fields and rules for aggregating those fields and produces a dBase table containing the aggregated data. This dialog box is used by the Summarize... choice on the Field menu for the Table document. To do the corresponding function from Avenue, use the Summarize request on VTab.

Inherits From

ModalDialog

Class Requests

Displaying Dialog Boxes

Show ( aVTab, aField ) :  VTab

__________

See also

VTab


Show (SummaryDialog)
Show

Shows a dialog box allowing the user to choose fields and aggregate functions, then creates a new VTab by grouping aVTab by aField and computing the aggregates of the fields.

Syntax

SummaryDialog.Show (aVTab, aField)

Returns

VTab


Symbol
Example

 A Symbol is graphic symbology used to draw a shape on the screen. Subclasses of Symbol - Fill, Pen, Marker, TextSymbol - are implemented to represent specific kinds of symbols, such as dashed lines, solid filled polygons, or Helvetica text. Each of these classes may in turn have subclasses or support the specification of styles which distinguish symbols further.

You create new symbols using Symbol.Make, or use the Make request for any Symbol subclass. When using Symbol.Make you can create solid raster fills, basic pen symbols, patterned markers, and default text symbols only. To create other kinds of symbols use the Make request for the desired Symbol subclass.

All symbol dimensions are in points (1/72 inch).

Attributes

BgColor.BgColor is the background color of the symbol. Line symbols do not have background colors.

Color.Color is the foreground or text color of the symbol.

OlColor.OlColor is the outline color of the symbol.

Size.Size is the current size of the symbol in points.

Type.There are four types of symbols: marker, line, fill, and text.

Inherits From

Obj

Inherited By

ChartSymbol
Fill
Marker
Pen
TextSymbol

Enumerations

SymbolEnum

Class Requests

Making Symbols

Make ( aSymbolType ) :  Symbol

Instance Requests

Manipulating a Symbol

IsHooked  :  Boolean

UnHook

Generic Object Requests

= anotherObject :  Boolean

Getting and Setting Attributes

CanSetSize  :  Boolean

Copy ( anotherSymbol )

GetBgColor  :  Color

GetColor  :  Color

GetColorLock  :  Boolean

GetOlColor  :  Color

GetSize  :  Number

GetSizeInches  :  Number

GetType  :  SymbolEnum

SetBgColor ( aColor )

SetColor ( aColor )

SetColorLock ( aBool )

SetOlColor ( aColor )

SetSize ( aSize )

SetSizeInches ( aSize )

__________

See also

SymbolWin
Legend
Graphic


Make (Symbol)
Make

Makes a default Symbol of aSymbolType.

Syntax

Symbol.Make (aSymbolType)

Returns

Symbol


IsHooked (Symbol)
IsHooked

Returns true if aSymbol is hooked to a scale so that it will be resized when the scale changes.

Syntax

aSymbol.IsHooked

Returns

Boolean


UnHook (Symbol)
UnHook

Unhooks aSymbol from its scale so that it will not be resized when the scale changes.

Syntax

aSymbol.UnHook


= (Symbol)
=

Compares aSymbol and anotherObject.

Syntax

aSymbol = anotherObject

Returns

Boolean


CanSetSize (Symbol)
CanSetSize

Returns TRUE if it is possible to set the size of aSymbol.

Syntax

aSymbol.CanSetSize

Returns

Boolean


Copy (Symbol)
Copy

Copies the attributes of anotherSymbol into aSymbol. ABSTRACT

Syntax

aSymbol.Copy (anotherSymbol)


GetBgColor (Symbol)
GetBgColor

Gets the background color of aSymbol. ABSTRACT

Syntax

aSymbol.GetBgColor

Returns

Color


GetColor (Symbol)
GetColor

Gets the foreground color of aSymbol.

Syntax

aSymbol.GetColor

Returns

Color


GetColorLock (Symbol)
GetColorLock

Gets the value of the color lock flag for aSymbol.

Syntax

aSymbol.GetColorLock

Returns

Boolean


GetOlColor (Symbol)
GetOlColor

Gets the outline color of aSymbol. ABSTRACT

Syntax

aSymbol.GetOlColor

Returns

Color


GetSize (Symbol)
GetSize

Gets the size of aSymbol. ABSTRACT

Syntax

aSymbol.GetSize

Returns

Number


GetSizeInches (Symbol)
GetSizeInches

Gets the size of aSymbol in inches.

Syntax

aSymbol.GetSizeInches

Returns

Number


GetType (Symbol)
GetType

Gets the Symbol type of aSymbol. ABSTRACT

Syntax

aSymbol.GetType

Returns

SymbolEnum


SetBgColor (Symbol)
SetBgColor

Sets the background color of aSymbol to aColor. ABSTRACT

Syntax

aSymbol.SetBgColor (aColor)


SetColor (Symbol)
SetColor

Sets the foreground color of aSymbol to aColor.

Syntax

aSymbol.SetColor (aColor)


SetColorLock (Symbol)
SetColorLock

Sets the value of the color lock flag for aSymbol.

Syntax

aSymbol.SetColorLock (aBool)


SetOlColor (Symbol)
SetOlColor

Sets the outline color of aSymbol to aColor. ABSTRACT

Syntax

aSymbol.SetOlColor (aColor)


SetSize (Symbol)
SetSize

Sets the size of aSymbol to aSize. ABSTRACT

Syntax

aSymbol.SetSize (aSize)


SetSizeInches (Symbol)
SetSizeInches

Sets the size of aSymbol in inches.

Syntax

aSymbol.SetSizeInches (aSize)


SymbolEnum

 SymbolEnum defines the basic symbol types.

#SYMBOL_PEN

Pen symbol

#SYMBOL_MARKER

Marker symbol

#SYMBOL_FILL

Fill symbol

#SYMBOL_TEXT

Text symbol

#SYMBOL_CHART

Chart symbol


SymbolList

 A SymbolList is a collection of symbols. SymbolList provides requests such as RampColors that operate on these symbols.

A Palette has 4 SymbolLists - one for Fill, Pen, Marker and Color. Use the Palette requests GetList and SetList to access and alter these SymbolLists.

SymbolLists are also used to define Composite Symbol types.

Inherits From

List

Enumerations

SymListTypeEnum

Class Requests

Creating a SymbolList

FromList ( aList ) :  SymbolList

GetPredefined ( aType ) :  List

Make  :  SymbolList

Instance Requests

Coloring Symbols in a SymbolList

RampColors ( aStartColor, anEndColor )

RampSizes ( aStartSize, anEndSize )

RampSubset ( aStartIndex, anEndIndex )

RandomColors

RandomSymbols

UniformColor ( aColor )

Using Saved Symbol Lists

RampSavedColors ( aSymbolList )

RampSplitSavedColors ( aSymbolList, splitIndex )

RandomSavedSymbols ( aSymbolList )

__________

See also

Symbol
SymbolWin
Palette
CompositePen
CompositeMarker
CompositeFill


FromList (SymbolList)
FromList

Creates a SymbolList from aList. aList is a list that contains only Symbols.

Syntax

SymbolList.FromList (aList)

Returns

SymbolList


GetPredefined (SymbolList)
GetPredefined
Example

Gets a List of predefined SymbolLists of the specified type. These SymbolLists correspond to the color ramps and color schemes in the Legend Editor. You can use the GetName request to check and then use one of these SymbolLists.

Syntax

SymbolList.GetPredefined (aType)

Returns

List


Make (SymbolList)
Make

Creates a SymbolList. Add Symbol objects to the SymbolList with the List request Add.

Syntax

SymbolList.Make

Returns

SymbolList


RampColors (SymbolList)
RampColors

Sets the symbols in aSymbolList to the color ramp defined by aStartColor and anEndColor.

Syntax

aSymbolList.RampColors (aStartColor, anEndColor)


RampSizes (SymbolList)
RampSizes

Ramps the sizes of the symbols in aSymbolList from aStartSize to anEndSize.

Syntax

aSymbolList.RampSizes (aStartSize, anEndSize)


RampSubset (SymbolList)
RampSubset

Sets the symbols in aSymbolList between aStartIndex and anEndIndex to a color ramp defined by the colors of the symbols at those indices.

Syntax

aSymbolList.RampSubset (aStartIndex, anEndIndex)


RandomColors (SymbolList)
RandomColors

Sets the symbols in aSymbolList to random colors.

Syntax

aSymbolList.RandomColors


RandomSymbols (SymbolList)
RandomSymbols

Sets the symbols in aSymbolList to random symbols by setting each marker, pen, or fill symbol to a randomly selected symbol. The symbols are selected from the current palette list for the appropriate symbol type.

Syntax

aSymbolList.RandomSymbols


UniformColor (SymbolList)
UniformColor

Sets all of the symbols in aSymbolList to a uniform color specified by aColor.

Syntax

aSymbolList.UniformColor (aColor)


RampSavedColors (SymbolList)
RampSavedColors
Example

Takes a symbol list containing a saved color ramp with n colors, scales it to fit the target symbol list, and then copies the scaled colors to the target symbol list. This is used to assign a predefined color ramp to a legend.

Syntax

aSymbolList.RampSavedColors (aSymbolList)


RampSplitSavedColors (SymbolList)
RampSplitSavedColors

Ramps the portions of aSymbolList before and after the splitIndex independently, using colors in the first and second halves of a saved color list respectively. Used to assign predefined dichromatic color ramps to a standard deviation classification centered on the mean, which is not always the middle class.

Syntax

aSymbolList.RampSplitSavedColors (aSymbolList, splitIndex)


RandomSavedSymbols (SymbolList)
RandomSavedSymbols
Example

Takes a symbol list containing n saved "random" symbols, scales it to fit the target symbol list, and then copies the scaled symbols to the target symbol list. This is used to assign predefined random colors and predefined random symbols to a legend, and is specifically used in the Legend Editor for Unique Value legends.

Syntax

aSymbolList.RandomSavedSymbols (aSymbolList)


SymListTypeEnum

 The type of predefined Symbol List.

#SYMLIST_TYPE_COLORRAMP

Color ramps

#SYMLIST_TYPE_COLORSCHEME

Color schemes

#SYMLIST_TYPE_RANDOMMARKERS

Random marker symbols

#SYMLIST_TYPE_RANDOMPENS

Random line symbols

#SYMLIST_TYPE_RANDOMFILLS

Random fill symbols


SymbolWin

 A SymbolWin allows selection of a symbol from a palette. The window contains a tool bar and a list box. The tool bar icons display the current symbol of the appropriate type.

ArcView has one such window. You can access it through the application object: av.GetSymbolWin.

Attributes

CurrentSymbol. For each symbol type, the current symbol appears in the box underneath the symbol icons. The current symbol is used by default for new graphics.

Open- Open is whether the SymbolWin is displayed on the screen or not.

Panel- The Panel is the part of the SymbolWin currently showing - either Marker, Pen, Fill, Text, Color, or Manager.

Palette- The Palette is the container for the symbols the SymbolWin displays (except Text - see the FontManager). To access the SymbolWin's palette, use the GetPalette request:

aPalette = av.GetSymbolWin.GetPalette

Whenever a change is made to the SymbolWin's palette, make sure to use the RefreshPalette request to register the change with the SymbolWin. Only issue the RefreshPalette request if the SymbolWin is open and only for the palettes you have changed.

 if (av.GetSymbolWin.IsOpen) then
   av.GetSymbolWin.RefreshPalette( aPaletteType )
 end

SelectedSymbol.The selected symbol is highlighted in the list box of the palette.

Inherits From

Obj

Enumerations

SymbolWinPanelEnum

Instance Requests

Manipulating a SymbolWin

Close

IsOpen  :  Boolean

Open

SelectSymbol ( aSymbol )

Getting and Setting Attributes

GetPalette  :  Palette

GetPanel  :  SymbolWinPanelEnum

RefreshPalette ( aPaletteList )

ReturnCurrentSymbol ( aSymType ) :  Symbol

ReturnFrameSymbol  :  Symbol

SetPanel ( aSymWinPanel )

__________

See also

Palette
FontManager
Application
Symbol


Close (SymbolWin)
Close

Closes aSymbolWin.

Syntax

aSymbolWin.Close


IsOpen (SymbolWin)
IsOpen

Returns TRUE if aSymbolWin is open, otherwise returns FALSE.

Syntax

aSymbolWin.IsOpen

Returns

Boolean


Open (SymbolWin)
Open
Example

Opens aSymbolWin.

Syntax

aSymbolWin.Open


SelectSymbol (SymbolWin)
SelectSymbol

Selects aSymbol in aSymbolWin, if it exists, and makes it the current symbol. The selected symbol is highlighted in the list box. The SymbolWin must be open for SelectSymbol to affect the selection.

 theSymWin = av.GetSymbolWin
 aPaletteList = theSymWin.GetPalette.GetList( #PALETTE_LIST_MARKER )

 theSymWin.SelectSymbol( aPaletteList.Get( 4 ))

Syntax

aSymbolWin.SelectSymbol (aSymbol)


GetPalette (SymbolWin)
GetPalette
Example

Gets the palette of aSymbolWin. Use the RefreshPalette request to notify aSymbolWin of any changes made to the palette.

Syntax

aSymbolWin.GetPalette

Returns

Palette


GetPanel (SymbolWin)
GetPanel

Gets the current panel type of aSymbolWin.

Syntax

aSymbolWin.GetPanel

Returns

SymbolWinPanelEnum


RefreshPalette (SymbolWin)
RefreshPalette
Example

Refreshes the palette specified by aPaletteList and displayed in aSymbolWin. aSymbolWin must be open when you issue this request.

Syntax

aSymbolWin.RefreshPalette (aPaletteList)


ReturnCurrentSymbol (SymbolWin)
ReturnCurrentSymbol

Returns the current symbol of aSymType in aSymbolWin. The current symbol displays under the icons in the symbol palette.

Syntax

aSymbolWin.ReturnCurrentSymbol (aSymType)

Returns

Symbol


ReturnFrameSymbol (SymbolWin)
ReturnFrameSymbol

Returns the default draft-mode frame symbol.

Syntax

aSymbolWin.ReturnFrameSymbol

Returns

Symbol


SetPanel (SymbolWin)
SetPanel
Example

Sets the current panel of aSymbolWin to aSymWinPanel. aSymbolWin must be open when you issue this request.

Syntax

aSymbolWin.SetPanel (aSymWinPanel)


SymbolWinPanelEnum

 SymbolWin Panels.

#SYMBOLWIN_PANEL_COLOR

Color Panel

#SYMBOLWIN_PANEL_FILL

Fill Panel

#SYMBOLWIN_PANEL_FONT

Font Panel

#SYMBOLWIN_PANEL_MANAGER

Manager Panel

#SYMBOLWIN_PANEL_MARKER

Marker Panel

#SYMBOLWIN_PANEL_PEN

Pen Panel


System

 The System class provides an interface to functionality which is not consistently represented across platforms. There are no objects of class System. All requests are sent to the System class itself.

System Functionality

From the System class you can...

 Sound the "beep".
 Echo a string to standard output.
 Play a sound file. (Windows only)
 Check for special keystrokes.
 Set an environment variable or get its value.
 Change the "look" of the application.
 Get the system architecture or operating system.
 Get the screen size.
 Get information about memory availability.
 Execute another program or a command line.

Inherits From

Obj

Enumerations

SystemLookEnum

SystemOSEnum

SystemOSVariantEnum

SystemArchEnum

Class Requests

Checking KeyStrokes

IsAltKeyDown  :  Boolean

IsControlKeyDown  :  Boolean

IsDoubleClick  :  Boolean

IsMetaKeyDown  :  Boolean

IsShiftKeyDown  :  Boolean

Getting and Setting Values

GetArch  :  SystemArchEnum

GetAVProcessID  :  Number

GetEnvVar ( aVar ) :  String

GetLook  :  SystemLookEnum

GetOS  :  SystemOSEnum

GetOSVariant  :  SystemOSVariantEnum

GetUNCFilename ( aFN ) :  String

QueryLocalMachineName ( aStr, size ) :  String

ReturnScreenSizeInches  :  Point

ReturnScreenSizePixels  :  Point

SetEnvVar ( aVar, aString )

SetLook ( aLook )

SetScreenSizeInches ( aPoint )

System Actions

BasicEcho ( aString, toStdOut )

Beep

Echo ( aString )

Execute ( CommandLine )

ExecuteSynchronous ( command )

GetAvailableMemory  :  Number

IsMemoryAvailable  :  Boolean

PlaySound ( aSoundFile, ASync )

PrintMemory ( aMessage )

RefreshWindows

Managing Shared Libraries

CanUnloadLibrary ( aLibraryReferenceNumber ) :  Boolean

IsLibrary ( aFileName ) :  Boolean

LoadLibrary ( aLibraryFileName ) :  Number

UnloadLibrary ( aLibraryReferenceNumber )

__________

See also

Application


IsAltKeyDown (System)
IsAltKeyDown

 Returns TRUE if the ALT key is down.

Syntax

System.IsAltKeyDown

Returns

Boolean


IsControlKeyDown (System)
IsControlKeyDown

 Returns TRUE if the control (CTRL) key is down.

Syntax

System.IsControlKeyDown

Returns

Boolean


IsDoubleClick (System)
IsDoubleClick

 Returns TRUE if the last mouse click was a double-click.

Syntax

System.IsDoubleClick

Returns

Boolean


IsMetaKeyDown (System)
IsMetaKeyDown

 Returns TRUE if the meta key is down.

Syntax

System.IsMetaKeyDown

Returns

Boolean


IsShiftKeyDown (System)
IsShiftKeyDown

 Returns TRUE if the SHIFT key is down.

Syntax

System.IsShiftKeyDown

Returns

Boolean


GetArch (System)
GetArch

Gets the current system architecture.

Syntax

System.GetArch

Returns

SystemArchEnum


GetAVProcessID (System)
GetAVProcessID

Gets the native process id of the current ArcView session.

Syntax

System.GetAVProcessID

Returns

Number


GetEnvVar (System)
GetEnvVar

 Gets the value of the environment variable aVar. If aVar is not an environment variable, the request returns NIL.

Syntax

System.GetEnvVar (aVar)

Returns

String


GetLook (System)
GetLook

Gets the current look of the ArcView application.

Syntax

System.GetLook

Returns

SystemLookEnum


GetOS (System)
GetOS

Gets the current operating system. Use this information to protect platform dependent Avenue code.

Syntax

System.GetOS

Returns

SystemOSEnum


GetOSVariant (System)
GetOSVariant

Gets the variant of the current operating system. Use this information to detect various types of Microsoft Windows.

Syntax

System.GetOSVariant

Returns

SystemOSVariantEnum


GetUNCFilename (System)
GetUNCFilename

Gets the Universal Naming Convention(UNC) filename of the FN object. Example, if the FN object points to "f:\data\madras\pop.dbf" where f: is a drive exported as "cdrive" on the machine "flipflop", the returned string would contain \\cdrive\data\madras.

Syntax

System.GetUNCFilename (aFN)

Returns

String


QueryLocalMachineName (System)
QueryLocalMachineName

Queries the name of the local machine on which the current session of ArcView is running. The max size of aStr also needs to be passed.

Syntax

System.QueryLocalMachineName (aStr, size)

Returns

String


ReturnScreenSizeInches (System)
ReturnScreenSizeInches

 Returns the width and height of the screen in inches. By default these values are obtained by querying the display adapter; however, they may be set using SetScreenSizeInches in order to calibrate a particular display. The return value is a point; its x value is width and its y value height.

Syntax

System.ReturnScreenSizeInches

Returns

Point


ReturnScreenSizePixels (System)
ReturnScreenSizePixels

 Returns the width and height of the screen in pixels. The return value is a point; its x value is width and its y value height.

Syntax

System.ReturnScreenSizePixels

Returns

Point


SetEnvVar (System)
SetEnvVar

 Sets the value of the environment variable aVar to aString.

Syntax

System.SetEnvVar (aVar, aString)


SetLook (System)
SetLook

Sets the look of the ArcView application.

Syntax

System.SetLook (aLook)


SetScreenSizeInches (System)
SetScreenSizeInches

 Sets the width and height of the screen in inches. The effect of this request is to calibrate a particular display. The width is the x value of aPoint and the height is the y value of aPoint.

Syntax

System.SetScreenSizeInches (aPoint)


BasicEcho (System)
BasicEcho

Sends aString to standard output. If toStdOut is TRUE, then the message uses the standard output stream. If toStdOut is FALSE, then the message is sent to the standard error stream.

Syntax

System.BasicEcho (aString, toStdOut)


Beep (System)
Beep

Produces a "beep" sound.

Syntax

System.Beep


Echo (System)
Echo

Sends aString to standard output.

Syntax

System.Echo (aString)


Execute (System)
Execute

Sends CommandLine to the system command interpreter. On workstations, you can send any valid command line string.

Windows

On Windows, use this request to launch batch or executable files.

 system.execute("notepad.exe")

You cannot issue DOS commands like copy or dir; these are part of command.com. Avenue statements like System.Execute("copy f1 f2") or System.Execute("mkdir c:\test") fail with the error message:

    mkdir c:\test:  The program could not be found.

If you need to perform these tasks, you can create a batch file and then execute it. The batch file could even be created on the fly from within an Avenue script. Or you can give the following command to the command.com file. On Windows NT, command.com is in the WINNT\SYSTEM32 directory. On Windows 95, command.com is in the WIN95 directory.

 system.execute("c:\command.com /c mkdir c:\test")

Syntax

System.Execute (CommandLine)


ExecuteSynchronous (System)
ExecuteSynchronous

Executes the given command line in a synchronous manner. This is supported on Windows NT and Windows 95 only. On UNIX, synchronous execution is the default behavior.

Syntax

System.ExecuteSynchronous (command)


GetAvailableMemory (System)
GetAvailableMemory

 Returns the amount of memory available in bytes.

This request has some limitations and may return incorrect results in some circumstances. This request is being maintained so that existing scripts that used this request will still continue to work in newer versions of ArcView.

Syntax

System.GetAvailableMemory

Returns

Number


IsMemoryAvailable (System)
IsMemoryAvailable

 Returns FALSE if memory has been depleted.

Syntax

System.IsMemoryAvailable

Returns

Boolean


PlaySound (System)
PlaySound

 Plays the sound stored in aSoundFile. The sound plays asynchronously if ASync is TRUE; otherwise, it plays synchronously.

PlaySound in not implemented in UNIX ArcView.

Syntax

System.PlaySound (aSoundFile, ASync)


PrintMemory (System)
PrintMemory

Prints memory information with aMessage.

Syntax

System.PrintMemory (aMessage)


RefreshWindows (System)
RefreshWindows

 Processes pending drawing events for all ArcView windows.

Syntax

System.RefreshWindows


CanUnloadLibrary (System)
CanUnloadLibrary

Returns TRUE if ArcView does not depend upon having the library referenced by aLibraryReferenceNumber loaded.

Syntax

System.CanUnloadLibrary (aLibraryReferenceNumber)

Returns

Boolean


IsLibrary (System)
IsLibrary

Returns TRUE if aFileName references a shared library.

Syntax

System.IsLibrary (aFileName)

Returns

Boolean


LoadLibrary (System)
LoadLibrary

Attempts to load the shared library referenced by aLibraryFileName. Returns a number if successful, nil if not. Use the number as a parameter to System.UnloadLibrary.

Syntax

System.LoadLibrary (aLibraryFileName)

Returns

Number


UnloadLibrary (System)
UnloadLibrary

Unloads the shared library identified in ArcView via aLibraryReferenceNumber.

Syntax

System.UnloadLibrary (aLibraryReferenceNumber)


SystemLookEnum

 ArcView's user interface can dynamically assume one of the following looks:

#SYSTEM_LOOK_MOTIF

Motif

#SYSTEM_LOOK_OPENLOOK

OpenLook

#SYSTEM_LOOK_MSW

Microsoft Windows 3.1

#SYSTEM_LOOK_MSW95

Microsoft Windows 95

#SYSTEM_LOOK_PM

Presentation Manager

#SYSTEM_LOOK_PM20

Presentation Manager 20

#SYSTEM_LOOK_MAC

Macintosh - only supported on the Macintosh.


SystemOSEnum

 ArcView runs on these operating systems - with the exception of CMS. When SYSTEM_OS_MSW is returned, you can then send the request GetOSVariant to System to find out which specific Microsoft operating system is currently executing.

#SYSTEM_OS_UNIX

UNIX operating system

#SYSTEM_OS_VMS

VMS

#SYSTEM_OS_OS2

OS2

#SYSTEM_OS_MAC

Macintosh

#SYSTEM_OS_CMS

CMS

#SYSTEM_OS_MSW

Microsoft Windows 3.1, Windows For Workgroups, Windows NT and Windows 95


SystemOSVariantEnum

 ArcView can determine if these OS variants are encountered

#SYSTEM_OSVARIANT_MSW16

16-bit Microsoft Windows (Windows 3.1 and Windows For Workgroups)

#SYSTEM_OSVARIANT_MSWNT

Microsoft Windows NT

#SYSTEM_OSVARIANT_MSW95

Microsoft Windows 95

#SYSTEM_OSVARIANT_UNKNOWN

OS variant unknown

#SYSTEM_OSVARIANT_MACPPC

The PowerPC based version of the MacOS

#SYSTEM_OSVARIANT_MAC68K

The Motorola 68K based version of the MacOS


SystemArchEnum

 The request GetArch returns the machine architecture:

#SYSTEM_ARCH_MC68K

Motorola 68000 family: 68000, 68010, 68020

#SYSTEM_ARCH_I386

Intel 80386 family

#SYSTEM_ARCH_SPARC

SUN SPARC architecture

#SYSTEM_ARCH_VAX

DEC VAX architecture

#SYSTEM_ARCH_MIPS

MIPS RISC architecture

#SYSTEM_ARCH_HPPA

HP Precision Architecture

#SYSTEM_ARCH_IBMRT

IBM RT architecture

#SYSTEM_ARCH_RS6000

IBM RS/6000 architecture

#SYSTEM_ARCH_MC88K

Motorola 88000 family: 88100, etc

#SYSTEM_ARCH_ALPHA

Digital Alpha architecture

#SYSTEM_ARCH_IBM370

IBM 370 architecture

#SYSTEM_ARCH_PPC

Motorola PowerPC family


Table

 A Table is a viewer for tabular data contained in a VTab. It uses a spreadsheet-like grid with related values aligned horizontally and similar data aligned vertically. The fields, items, or attributes, are the columns of the Table and the records are the rows.

A Table is one of the types of Documents within ArcView. The values shown in a table are contained in a VTab. The VTab can also be displayed on a chart, and, if it contains a shape field (an FTab), can be displayed as a theme on a view.

The Table provides a user interface to many VTab functions such as selecting and deselecting records, exporting and summarizing records, and joining and linking VTabs on common fields.

The user can also find a string in the table. Only character fields will be considered. If a match is found, the row will be selected. The table remembers the last find string used, and if successive finds are made using the same string, the find starts from the last position found. The find string can be obtained through GetFindString.

A Table also stores the visible ordering of the records in the VTab as rows in the Table. Use the ConvertRecordToRow and ConvertRowToRecord requests to convert back and forth. Requests like Sort and Promote change the row ordering but don't affect the VTab. VTab operations such as join, link, and export don't know about the Table's row ordering of the records and therefore operate on record order.

Like other documents, there are requests on a Table to allow the Avenue programmer to create their own menus, buttons, and tools. The GetUserField and GetUserRow requests determine what was clicked on. If you create your own tools, you must make the StopEditing request in the click event of your tool. The ShowRow request forces the table to scroll to a particular row for operations like find and identify.

Attributes

ActiveField.A Table has an active field for operations like sorting. The active field is inverted at the top of the table.

FindString.FindString is the last string used in the Find request.

VTab.A Table provides user interaction with a VTab object.

Inherits From

Doc

Class Requests

Making Tables

Make ( aVTab ) :  Table

MakeWithGUI ( aVTab, aGUIName ) :  Table

Instance Requests

Getting and Setting Attributes

GetActiveField  :  Field

GetEditor  :  Obj

GetFindString  :  String

GetVTab  :  VTab

SetActiveField ( aField )

User Interaction (Apply Events Only)

EditValues

GetUserField  :  Field

GetUserRow  :  Number

Select

Manipulating a Table

BlinkRow ( aRowNumber )

BuildQuery

ConvertRecordToRow ( aRecordNumber ) :  Number

ConvertRowToRecord ( aRowNumber ) :  Number

EditProperties

Find ( aString ) :  Number

MakeField  :  Field

Print

PromoteSelection

ShowCodepage

ShowRow ( aRowNumber )

Sort ( aField, isDescending )

StopEditing

Interacting with the Clipboard

Copy

Cut

GetEditString  :  String

Paste

__________

See also

QueryWin
VTab


Make (Table)
Make

Makes a Table from aVTab. If aVTab.HasError returns true, Make returns nil.

Syntax

Table.Make (aVTab)

Returns

Table


MakeWithGUI (Table)
MakeWithGUI

Makes a Table from aVTab with an initial GUI named aGUIName.

Syntax

Table.MakeWithGUI (aVTab, aGUIName)

Returns

Table


GetActiveField (Table)
GetActiveField

Gets the active field of aTable, or nil if no field is active.

Syntax

aTable.GetActiveField

Returns

Field


GetEditor (Table)
GetEditor

Gets the object responsible for the current edit session on the VTab associated with aTable. The Editor object will be a feature theme if the vtab is being edited as a result of an editing session on the feature theme.

Syntax

aTable.GetEditor

Returns

Obj


GetFindString (Table)
GetFindString

Gets last string used by Find.

Syntax

aTable.GetFindString

Returns

String


GetVTab (Table)
GetVTab

Gets the VTab of aTable.

Syntax

aTable.GetVTab

Returns

VTab


SetActiveField (Table)
SetActiveField

Sets the active field to aField.

Syntax

aTable.SetActiveField (aField)


EditValues (Table)
EditValues

Edits the values clicked on by the user. This request implements the table editing tool. Issue this request only in scripts that execute from Apply events; this request expects interaction with the Table document.

Tools that do NOT use this request in their Apply event script should disable editing by issuing the Table request StopEditing in their click event script.

Syntax

aTable.EditValues


GetUserField (Table)
GetUserField

Gets the field the user clicked on. Issue this request only in scripts that execute from Apply events; this request expects interaction with the Table document.

Any Tool using this request in its Apply event script should disable editing in its click event script with the Table request StopEditing.

Syntax

aTable.GetUserField

Returns

Field


GetUserRow (Table)
GetUserRow

Gets the row number the user clicked on. Issue this request only in scripts that execute from Apply events; this request expects interaction with the Table document.

Any Tool using this request in its Apply event script should disable editing in its click event script with the Table request StopEditing.

Syntax

aTable.GetUserRow

Returns

Number


Select (Table)
Select

Selects the records clicked on by the user. Issue this request only in scripts that execute from Apply events; this request expects interaction with the Table document.

Any Tool using this request in its Apply event script should disable editing in its click event script with the Table request StopEditing.

Syntax

aTable.Select


BlinkRow (Table)
BlinkRow

Blinks the row at aRowNumber in aTable.

Syntax

aTable.BlinkRow (aRowNumber)


BuildQuery (Table)
BuildQuery

Builds a query with the query builder and executes it on aTable's VTab.

Syntax

aTable.BuildQuery


ConvertRecordToRow (Table)
ConvertRecordToRow

Converts aRecordNumber in the VTab of aTable to the corresponding row number.

Syntax

aTable.ConvertRecordToRow (aRecordNumber)

Returns

Number


ConvertRowToRecord (Table)
ConvertRowToRecord

Converts aRowNumber in aTable to a record number in the VTab of aTable.

Syntax

aTable.ConvertRowToRecord (aRowNumber)

Returns

Number


EditProperties (Table)
EditProperties

Opens the Table Properties dialog box for aTable.

Syntax

aTable.EditProperties


Find (Table)
Find

Finds aString in aTable. Returns the record number where aString is found.

Syntax

aTable.Find (aString)

Returns

Number


MakeField (Table)
MakeField

Shows the Field definition dialog and returns a new field.

Syntax

aTable.MakeField

Returns

Field


Print (Table)
Print

Prints aTable to the current printer.

Syntax

aTable.Print


PromoteSelection (Table)
PromoteSelection

Promotes the selected records to the top of the Table.

Syntax

aTable.PromoteSelection


ShowCodepage (Table)
ShowCodepage

Show the codepage of aTable.

Syntax

aTable.ShowCodepage


ShowRow (Table)
ShowRow

Scrolls aTable to show the row at aRowNumber.

Syntax

aTable.ShowRow (aRowNumber)


Sort (Table)
Sort

Sorts the rows of aTable using the values for aField. If isDescending is true, it sorts the rows in descending order. Otherwise, it sorts in ascending order.

Sort impacts only the visible state of the table - not the underlying VTab. Sort requires the Table document to be open.

 myTable = av.GetProject.FindDoc( "MyTable" )
 aField = myTable.GetVTab.FindField( "Name" )

 if (myTable.GetWin.IsOpen ) then   ' Is myTable open?
   myTable.Sort( aField, FALSE )
 end

Syntax

aTable.Sort (aField, isDescending)


StopEditing (Table)
StopEditing

Stops editing on a table that the EditValues request has initiated. You should StopEditing in the Click event script of any Tool that uses the requests GetUserRow, GetUserField or Select.

 theTable = av.GetActiveDoc
 theTable.StopEditing

Syntax

aTable.StopEditing


Copy (Table)
Copy

Copies the contents of the cell which is being edited to the Clipboard.

Syntax

aTable.Copy


Cut (Table)
Cut

Cuts the contents of the cell which is being edited to the Clipboard.

Syntax

aTable.Cut


GetEditString (Table)
GetEditString

Gets the value of the cell being edited as a string.

Syntax

aTable.GetEditString

Returns

String


Paste (Table)
Paste

Pastes the contents of the Clipboard into the cell which is being edited.

Syntax

aTable.Paste


Color

 Colors can be picked from the symbol window or created directly from red, green, and blue values. Default colors are also available for black, blue, red, cyan, magenta, gray, green, yellow and white.

Attributes

RGBList.The RGBList is a list of three numbers representing the red, green, and blue components of the Color. The numbers range from 0 (none of that component) to 255 (all of that component).

Transparent.Transparent returns whether the Color is the special transparent Color. Symbols drawn in the transparent Color do not appear on the screen or printer.

Inherits From

Obj

Class Requests

Making Colors

GetBlack  :  Color

GetBlue  :  Color

GetCyan  :  Color

GetGray  :  Color

GetGreen  :  Color

GetMagenta  :  Color

GetRed  :  Color

GetWhite  :  Color

GetYellow  :  Color

Make  :  Color

Instance Requests

Generic Object Requests

= anObj :  Boolean

Getting and Setting Attributes

Copy ( anotherColor )

GetRgbList  :  List

IsTransparent  :  Boolean

SetRgbList ( aRGBList )

SetTransparent ( isTransparent )

__________

See also

SymbolWin
Symbol
ColorMap


GetBlack (Color)
GetBlack

Gets the default black Color. If you need to modify the object's RGB values, clone the Color and modify; otherwise you alter the default black Color.

Syntax

Color.GetBlack

Returns

Color


GetBlue (Color)
GetBlue

Gets the default blue Color. If you need to modify the Color object's RGB values, clone the Color and modify; otherwise you alter the default blue Color.

Syntax

Color.GetBlue

Returns

Color


GetCyan (Color)
GetCyan

Gets the default cyan Color. If you need to modify the Color object's RGB values, clone the Color and modify; otherwise you alter the default cyan Color.

Syntax

Color.GetCyan

Returns

Color


GetGray (Color)
GetGray

Gets the default gray Color. If you need to modify the Color object's RGB values, clone the Color and modify; otherwise you alter the default gray Color.

Syntax

Color.GetGray

Returns

Color


GetGreen (Color)
GetGreen

Gets the default green Color. If you need to modify the Color object's RGB values, clone the Color and modify; otherwise you alter the default green Color.

Syntax

Color.GetGreen

Returns

Color


GetMagenta (Color)
GetMagenta

Gets the default magenta Color. If you need to modify the Color object's RGB values, clone the Color and modify; otherwise you alter the default magenta Color.

Syntax

Color.GetMagenta

Returns

Color


GetRed (Color)
GetRed

Gets the default red Color. If you need to modify the Color object's RGB values, clone the Color and modify; otherwise you alter the default red Color.

Syntax

Color.GetRed

Returns

Color


GetWhite (Color)
GetWhite

Gets the default white Color. If you need to modify the Color object's RGB values, clone the Color and modify; otherwise you alter the default white Color.

Syntax

Color.GetWhite

Returns

Color


GetYellow (Color)
GetYellow

Gets the default yellow Color. If you need to modify the Color object's RGB values, clone the Color and modify; otherwise you alter the default yellow Color.

Syntax

Color.GetYellow

Returns

Color


Make (Color)
Make

Makes a Color. Use the request SetRGBList to alter the RGB values; the default RGB values make it black.

Syntax

Color.Make

Returns

Color


= (Color)
=

Returns TRUE if aColor and anObj are equal, otherwise returns FALSE.

Syntax

aColor = anObj

Returns

Boolean


Copy (Color)
Copy

Copies the attributes of anotherColor into aColor.

Syntax

aColor.Copy (anotherColor)


GetRgbList (Color)
GetRgbList

Gets the RGB of aColor as a list of three numbers.

Syntax

aColor.GetRgbList

Returns

List


IsTransparent (Color)
IsTransparent

Returns TRUE if aColor is the transparent color, otherwise returns FALSE.

Syntax

aColor.IsTransparent

Returns

Boolean


SetRgbList (Color)
SetRgbList

Sets aColor to the color identified by anRGBList. anRGBList is a list with three numeric values, one for the red, green, and blue components. The RGB values range from 0 to 255.

Syntax

aColor.SetRgbList (aRGBList)


SetTransparent (Color)
SetTransparent

Sets the transparency of aColor to isTransparent.

Syntax

aColor.SetTransparent (isTransparent)


ColorMap

 A ColorMap is a list of colors and is used to map values in a single band image to colors on the screen. Note that the ImageLookup is applied first to transform the values, then the ColorMap is applied.

The colors in a ColorMap can be adjusted in various color dimensions. Or, the colors can be replaced with a ramp, or random colors, or a gray scale, or a set of repeated colors. All of these operations correspond directly to those available in the color map editor of an image theme's legend. The ColorMap contains a color to represent a null value.

Inherits From

Obj

Class Requests

Making a ColorMap

MakeColorGray ( numColors, numShades ) :  ColorMap

MakeColorWheel ( aSize ) :  ColorMap

MakeGrayScale ( aSize ) :  ColorMap

MakeNominal ( aSize ) :  ColorMap

MakeRamp ( aSize, fromColor, toColor ) :  ColorMap

MakeRandom ( aSize ) :  ColorMap

Instance Requests

Resetting a ColorMap

SetColorGray ( numColors, numShades )

SetColorWheel

SetGrayScale

SetNominal

SetRamp ( fromColor, toColor )

SetRandom

Getting and setting attributes

Count  :  Number

Get ( anIndex ) :  Color

GetNull  :  Color

Match ( aColor ) :  Number

Set ( anIndex, aColor )

SetNull ( aColor )

Adjusting a ColorMap

AdjustBlue ( aPercent )

AdjustGreen ( aPercent )

AdjustRed ( aPercent )

AdjustSaturation ( aPercent )

AdjustValue ( aPercent )

__________

See also

Color
ISrc
ITheme
SingleBandLegend


MakeColorGray (ColorMap)
MakeColorGray

Makes a ColorMap with numColors colors distributed over a color wheel and numShades gray shades from black to white.

Syntax

ColorMap.MakeColorGray (numColors, numShades)

Returns

ColorMap


MakeColorWheel (ColorMap)
MakeColorWheel

Makes a ColorMap based on a color wheel with aSize colors.

Syntax

ColorMap.MakeColorWheel (aSize)

Returns

ColorMap


MakeGrayScale (ColorMap)
MakeGrayScale

Makes a ColorMap with aSize gray shades from black to white.

Syntax

ColorMap.MakeGrayScale (aSize)

Returns

ColorMap


MakeNominal (ColorMap)
MakeNominal

Makes a ColorMap with aSize colors for discrete data. 16 colors are repeated to fill up the map.

Syntax

ColorMap.MakeNominal (aSize)

Returns

ColorMap


MakeRamp (ColorMap)
MakeRamp

Makes a ColorMap with aSize colors forming a ramp from fromColor to toColor.

Syntax

ColorMap.MakeRamp (aSize, fromColor, toColor)

Returns

ColorMap


MakeRandom (ColorMap)
MakeRandom

Makes a ColorMap with aSize colors randomly selected.

Syntax

ColorMap.MakeRandom (aSize)

Returns

ColorMap


SetColorGray (ColorMap)
SetColorGray

Sets the colors in aColorMap to numColors colors distributed over a color wheel and numShades gray shades from black to white.

Syntax

aColorMap.SetColorGray (numColors, numShades)


SetColorWheel (ColorMap)
SetColorWheel

Sets the colors in aColorMap to colors from a color wheel.

Syntax

aColorMap.SetColorWheel


SetGrayScale (ColorMap)
SetGrayScale

Sets the colors in aColorMap to a gray scale.

Syntax

aColorMap.SetGrayScale


SetNominal (ColorMap)
SetNominal

Sets the colors in aColorMap for discrete data. 16 colors are repeated to fill up the map.

Syntax

aColorMap.SetNominal


SetRamp (ColorMap)
SetRamp

Sets the colors in aColorMap to a ramp from fromColor to toColor.

Syntax

aColorMap.SetRamp (fromColor, toColor)


SetRandom (ColorMap)
SetRandom

Sets the colors in aColorMap to random colors.

Syntax

aColorMap.SetRandom


Count (ColorMap)
Count

Gets the number of colors in aColorMap.

Syntax

aColorMap.Count

Returns

Number


Get (ColorMap)
Get

Gets color number anIndex of aColorMap.

Syntax

aColorMap.Get (anIndex)

Returns

Color


GetNull (ColorMap)
GetNull

Gets the color of aColorMap to be used for Null data.

Syntax

aColorMap.GetNull

Returns

Color


Match (ColorMap)
Match

Matches aColor to the colors in aColorMap and returns the index of the best match.

Syntax

aColorMap.Match (aColor)

Returns

Number


Set (ColorMap)
Set

Sets color number anIndex of aColorMap to aColor.

Syntax

aColorMap.Set (anIndex, aColor)


SetNull (ColorMap)
SetNull

Sets the color of aColorMap used for Null data to aColor.

Syntax

aColorMap.SetNull (aColor)


AdjustBlue (ColorMap)
AdjustBlue

Adjusts the blue component of each color in aColorMap by aPercent.

Syntax

aColorMap.AdjustBlue (aPercent)


AdjustGreen (ColorMap)
AdjustGreen

Adjusts the green component of each color in aColorMap by aPercent.

Syntax

aColorMap.AdjustGreen (aPercent)


AdjustRed (ColorMap)
AdjustRed

Adjusts the red component of each color in aColorMap by aPercent.

Syntax

aColorMap.AdjustRed (aPercent)


AdjustSaturation (ColorMap)
AdjustSaturation

Adjusts the saturation of each color in aColorMap by aPercent.

Syntax

aColorMap.AdjustSaturation (aPercent)


AdjustValue (ColorMap)
AdjustValue

Adjusts the value of each color in aColorMap by aPercent.

Syntax

aColorMap.AdjustValue (aPercent)


Template

 A Template provides a definition for the placement of Graphics on a Layout document page. A template is simply a list of template graphics.

Attributes

Name.The name of the template.

Icon.The Icon is used to symbolize the template in the template editor.

Portrait.Portrait is whether the page orientation is portrait or landscape.

Inherits From

List

Class Requests

Template

Make  :  Template

Instance Requests

Managing Templates

Edit  :  Boolean

GetIcon  :  Icon

IsPortrait  :  Boolean

SetIcon ( anIcon )

SetPortrait ( aBool )

__________

See also

TGraphic
Graphic


Make (Template)
Make

Makes a Template.

Syntax

Template.Make

Returns

Template


Edit (Template)
Edit

 Edits the properties of aTemplate.

Syntax

aTemplate.Edit

Returns

Boolean


GetIcon (Template)
GetIcon

 Gets the icon for aTemplate.

Syntax

aTemplate.GetIcon

Returns

Icon


IsPortrait (Template)
IsPortrait

 Returns TRUE if aTemplate is for a portrait page, otherwise returns FALSE.

Syntax

aTemplate.IsPortrait

Returns

Boolean


SetIcon (Template)
SetIcon

 Sets the icon for aTemplate to anIcon.

Syntax

aTemplate.SetIcon (anIcon)


SetPortrait (Template)
SetPortrait

 Sets the orientation of aTemplate. TRUE means portrait. FALSE means landscape.

Syntax

aTemplate.SetPortrait (aBool)


TemplateMgr

 The Template Manager manages a list of templates stored on disk. The templates are stored in the template.def file in the etc distribution directory. The template.def files are ODB files. Custom templates are stored in the template.def file in the project workspace directory. Templates can be selected either visually or programmatically. For a complete discussion of how ArcView uses templates, search the help index for 'layouts' and then choose 'using a layout as a cartographic template' from the indented list of topics.

Inherits From

ModalDialog

Class Requests

Manipulating the TemplateMgr

Add ( aTemplate )

GetTemplates  :  List

PutTemplates ( Templates )

Show  :  Template

__________

See also

Template
Layout
ODB
Project


Add (TemplateMgr)
Add

 Adds aTemplate to the list of available templates.

Syntax

TemplateMgr.Add (aTemplate)


GetTemplates (TemplateMgr)
GetTemplates

 Gets a list of available templates.

Syntax

TemplateMgr.GetTemplates

Returns

List


PutTemplates (TemplateMgr)
PutTemplates

 Makes Templates the list of available templates. The previous templates are removed.

Syntax

TemplateMgr.PutTemplates (Templates)


Show (TemplateMgr)
Show

 Shows a dialog box listing available templates and returns the template chosen, or NIL if the user cancels.

Syntax

TemplateMgr.Show

Returns

Template


TextWin

 A TextWin is a modeless window which displays the contents of a text file. TextWin allows you to specify a fixed or variable width font.

Inherits From

Window

Class Requests

TextWin

Make ( aFileName, aTitle ) :  TextWin

Instance Requests

TextWin

GetFileName  :  FileName

IsFixedFont  :  Boolean

Open

SetFileName ( aFileName )

SetFixedFont ( fixedFont )

__________

See also

MsgBox
FileName


Make (TextWin)
Make

 Displays the contents of the text file named aFilename in a modeless window. aTitle is the text window's title.

Syntax

TextWin.Make (aFileName, aTitle)

Returns

TextWin


GetFileName (TextWin)
GetFileName

Gets the name of the FileName shown in aTextWin.

Syntax

aTextWin.GetFileName

Returns

FileName


IsFixedFont (TextWin)
IsFixedFont

Returns true if the font being used by aTextWin is fixed-width.

Syntax

aTextWin.IsFixedFont

Returns

Boolean


Open (TextWin)
Open

Opens aTextWin.

Syntax

aTextWin.Open


SetFileName (TextWin)
SetFileName

Sets the file shown in aTextWin to aFileName.

Syntax

aTextWin.SetFileName (aFileName)


SetFixedFont (TextWin)
SetFixedFont

if fixedFont is true, aTextWin uses a fixed-width font to display text. Otherwise, aTextWin uses a variable-width font to display text.

Syntax

aTextWin.SetFixedFont (fixedFont)


TGraphic

 A TGraphic (Template Graphic) is a component of a template. Each TGraphic manages a single Graphic. The graphic's position is kept in a normalized form and can later be positioned on any Display relative to the margins of that Display.

For more information on Templates, refer to 'Using a layout as a cartographic template.'

Attributes

Graphic.The graphic object being represented.

Left.Position of left edge of graphic relative to page and in "percent of page" units.

Bottom.Position of bottom edge of graphic relative to page and in "percent of page" units.

Width.Width of graphic in "percent of page" units.

Height.Height of graphic in "percent of page" units.

Inherits From

Obj

Class Requests

TGraphic

Make ( aGraphic ) :  TGraphic

Instance Requests

Managing TGraphics

GetPositionedGraphic ( aDisplay ) :  Graphic

__________

See also

Template
Display
Layout


Make (TGraphic)
Make

Makes a TGraphic from aGraphic. The size and position information gets calculated.

Syntax

TemplateGraphic.Make (aGraphic)

Returns

TGraphic


GetPositionedGraphic (TGraphic)
GetPositionedGraphic

 Position aTGraphic's graphic on aDisplay's page and returns it.

Syntax

aTemplateGraphic.GetPositionedGraphic (aDisplay)

Returns

Graphic


Theme
Example	Related Topics

 Theme is the abstract base class for Feature Themes and Image Themes. A Theme is a collection of features drawn on a view. A Theme has an associated legend that defines the symbolization of the features. A theme may have associated graphics; these graphics are visible only when the theme is visible.

Attributes

ObjectTag.The object tag is any programmer specified object. The object tag allows the Avenue developer to associate another object with the theme.

Active.Active determines whether the Theme is used for various operations on the View. If a theme is active, it appears in a "raised box" in the TOC.

Comments.Comments are arbitrary text associated with the Theme.

Extent.The Extent is a rectangle in map units surrounding all features in the Theme.

Graphics.A Theme has a list of associated graphics. These graphic objects MUST be in the View's GraphicList, but can also be tied to one or more Themes in the View by their inclusion on a Theme's graphic list. The Theme's graphics adopt the Theme's visibility.

Legend.A Legend is associated with each Theme in a View. The Legend can be made "hidden" on the Table of Contents of the view.

Locked.Locked determines whether the user can change the theme using the Theme Properties dialog box or not.

Password.The Password is the password the user must type to "unlock" the theme.

SuffixUsed.SuffixUsed determines whether the phrase "by" and the classified field is added to the end of the theme name in the table of contents. For example, a theme called Tract which has been classified on the field Income will be renamed "Tract by Income".

Threshold.The Threshold defines the minimum and maximum scales at which the Theme is drawn.

Visible.Visible determines whether the theme is drawn if within its scale threshold. A theme may be visible but out of its scale threshold and therefore still not drawn.

Extensions.The list of extension objects for the theme. An extension object stores a set of properties for the theme that apply only in the context of a specific extension.

Inherits From

Obj

Inherited By

FTheme
ITheme

Class Requests

Making Themes

Make ( aSrcName ) :  Theme

Instance Requests

Manipulating the FTab

CanExportToFTab  :  Boolean

ClearSelection

ExportToFTab ( aFileName ) :  FTab

SelectByTheme ( anotherTheme, aRelType, aDistance, aSelType )

Checking Capabilities of a Theme

CanDeleteFromView  :  Boolean

CanEdit  :  Boolean

CanHotLink  :  Boolean

CanProject  :  Boolean

CanSelect  :  Boolean

HasAttributes  :  Boolean

HasTable  :  Boolean

SupportsAOI  :  Boolean

Displaying Dialog Boxes

EditLegend

EditProps

Labeling a Theme

CanLabel  :  Boolean

DrawLegend ( aDisplay, aSymbol, aRect, inTOC )

GetFixedSizeText  :  Boolean

GetLabelField  :  Field

GetLabelTextSym  :  Symbol

ReturnLabel ( aDisplay, aPoint ) :  GraphicText

SetFixedSizeText ( isScaled )

SetLabelField ( aField )

SetLabelTextSym ( aSym )

Generic Object Management

Clone  :  Theme

GetName  :  String

GetObjectTag  :  Obj

SetName ( aName )

SetObjectTag ( anObj )

Getting and Setting Attributes

GetComments  :  String

GetExtension ( anExtensionClass ) :  ThemeExtension

GetGraphics  :  GraphicSet

GetLegend  :  Obj

GetLegendEditorScript  :  String

GetPassword  :  String

GetSrcName  :  SrcName

GetThreshold  :  Threshold

GetView  :  View

IsActive  :  Boolean

IsActiveLocked  :  Boolean

IsLegendVisible  :  Boolean

IsLocked  :  Boolean

IsSuffixUsed  :  Boolean

IsVisible  :  Boolean

IsVisibleLocked  :  Boolean

RemoveExtension ( anExtensionClass )

ReturnAOI  :  Rect

ReturnExtent  :  Rect

ReturnLegendExt ( aDisplay, aSymbol, inTOC ) :  Point

SetActive ( isActive )

SetActiveLocked ( isLocked )

SetAOI ( anAreaOfInterest )

SetComments ( someComments )

SetExtension ( anExtension )

SetLegend ( aLegend )

SetLegendEditorScript ( aScriptName )

SetLegendVisible ( isVisible )

SetLocked ( isLocked )

SetPassword ( aPassword )

SetSuffixUsed ( useSuffix )

SetThreshold ( aThreshold )

SetVisible ( isVisible )

SetVisibleLocked ( isLocked )

Refreshing and Updating a Theme

Invalidate ( Erase )

InvalidateLegend

UpdateLegend

Supporting the Legend Editor

CanReturnClassCounts  :  Boolean

ReturnClassCounts  :  List

ReturnDefaultLegend  :  Legend

SetDefaultLegend

Supporting Identify

CanFindByPoint  :  Boolean

FindByPoint ( aPoint ) :  List

Identify ( aKeyValue, aString )

ReturnValueString ( aField, aRecordNumber ) :  String

__________

See also

View
Legend
ImageLegend
Threshold
SrcName
ISrc
GraphicSet


Make (Theme)
Make

Makes a Theme from aSrcName.

Syntax

Theme.Make (aSrcName)

Returns

Theme


CanExportToFTab (Theme)
CanExportToFTab

Returns TRUE or FALSE based on whether aTheme can be exported to a shapefile.

Syntax

aTheme.CanExportToFTab

Returns

Boolean


ClearSelection (Theme)
ClearSelection

Clears the selections of aTheme.

Syntax

aTheme.ClearSelection


ExportToFTab (Theme)
ExportToFTab

Exports aTheme to a new FTab in aFileName of type SHAPE. If there is a selection, then only the selected records will be exported.

Syntax

aTheme.ExportToFTab (aFileName)

Returns

FTab


SelectByTheme (Theme)
SelectByTheme

 Selects the features of anTheme if they have relationship aRelType with aDistance to the selected features of anotherTheme. The current selection then changes according to aSelType. aDistance is in map units. This request can be called only if the request CanSelect on both themes return TRUE. ABSTRACT

Syntax

aTheme.SelectByTheme (anotherTheme, aRelType, aDistance, aSelType)


CanDeleteFromView (Theme)
CanDeleteFromView

Can this theme be deleted from the view?

CanDeleteFromView is set to FALSE when another theme is dependent on aTheme.

For example, if you add streets.shp to your View and you use the Network Analyst to find a route, you get a new theme added to your view called route1.shp. route1.shp, as a result theme, is dependent on streets.shp, so streets.shp can't be deleted from the View.

Syntax

aTheme.CanDeleteFromView

Returns

Boolean


CanEdit (Theme)
CanEdit

Returns TRUE if aTheme can be edited, otherwise returns FALSE.

Syntax

aTheme.CanEdit

Returns

Boolean


CanHotLink (Theme)
CanHotLink

Returns TRUE if of aTheme can do a Hot Link. otherwise returns FALSE.

Syntax

aTheme.CanHotLink

Returns

Boolean


CanProject (Theme)
CanProject

Returns TRUE if aTheme can be projected and FALSE otherwise. All FThemes can be projected; no IThemes can. This request does not verify that aTheme's base units are decimal degrees, nor does it guarantee that if it is placed into a projected view it will display.

Syntax

aTheme.CanProject

Returns

Boolean


CanSelect (Theme)
CanSelect

Returns TRUE if parts of aTheme can be selected, otherwise returns FALSE.

Syntax

aTheme.CanSelect

Returns

Boolean


HasAttributes (Theme)
HasAttributes

Returns TRUE if aTheme has attributes. The default implementation is to return TRUE if aTheme.HasTable is TRUE.

Syntax

aTheme.HasAttributes

Returns

Boolean


HasTable (Theme)
HasTable

Returns TRUE if aTheme has an associated Table document. The default implementation is to return FALSE.

Syntax

aTheme.HasTable

Returns

Boolean


SupportsAOI (Theme)
SupportsAOI

Returns TRUE if aTheme supports the concept of an Area of Interest that acts as a spatial definition.

Syntax

aTheme.SupportsAOI

Returns

Boolean


EditLegend (Theme)
EditLegend

Opens the Legend Editor for aTheme.

Syntax

aTheme.EditLegend


EditProps (Theme)
EditProps

Opens the Theme Property dialog box for aTheme.

Syntax

aTheme.EditProps


CanLabel (Theme)
CanLabel

Indicates if aTheme can label its objects. The objects may be features, cells, etc., depending on the type of theme.

Syntax

aTheme.CanLabel

Returns

Boolean


DrawLegend (Theme)
DrawLegend

Draws the legend of aTheme in aRect of aDisplay with aSymbol used for the text. If inTOC is TRUE and there is only one classification, the text will be drawn above the symbol, otherwise it will be drawn next to the symbol. aDisplay must be a PageDisplay (layout).

Syntax

aTheme.DrawLegend (aDisplay, aSymbol, aRect, inTOC)


GetFixedSizeText (Theme)
GetFixedSizeText

Returns the current value of aTheme's FixedSizeText attribute. See the discussion for SetFixedSizeText. Only applies to themes which support attribute tables, such as FThemes and DBThemes.

Syntax

aTheme.GetFixedSizeText

Returns

Boolean


GetLabelField (Theme)
GetLabelField

Gets the label field of aTheme. Only applies to themes which support attribute tables, such as FThemes and DBThemes.

Syntax

aTheme.GetLabelField

Returns

Field


GetLabelTextSym (Theme)
GetLabelTextSym

Gets the label text symbol of aTheme. Only applies to themes which support attribute tables, such as FThemes and DBThemes.

Syntax

aTheme.GetLabelTextSym

Returns

Symbol


ReturnLabel (Theme)
ReturnLabel

Returns a GraphicText label on aDisplay for a feature of aTheme found at aPoint.

Syntax

aTheme.ReturnLabel (aDisplay, aPoint)

Returns

GraphicText


SetFixedSizeText (Theme)
SetFixedSizeText

Sets default behavior for graphic objects created subsequent to this request. When isScaled is TRUE, such graphic text objects will not change size as the display scale of aTheme changes. When isScaled is FALSE, such graphic text objects will change size proportionately to aTheme's change in scale.

Syntax

aTheme.SetFixedSizeText (isScaled)


SetLabelField (Theme)
SetLabelField

Sets the label field of aTheme to aField. Only applies to themes which support attribute tables, such as FThemes and DBThemes.

Syntax

aTheme.SetLabelField (aField)


SetLabelTextSym (Theme)
SetLabelTextSym

Sets the label text symbol of aTheme to aSym. Only applies to themes which support attribute tables, such as FThemes and DBThemes.

Syntax

aTheme.SetLabelTextSym (aSym)


Clone (Theme)
Clone

Clones aTheme.

 myProj = av.GetProject
 theView = myProj.FindDoc( "View1" )
 theTheme = theView.GetActiveThemes.Get(0)
 newTheme = theTheme.Clone
 newTheme.SetName ( "Clone of"++theTheme.AsString )
 theView.AddTheme ( newTheme )
 NewTheme.SetVisible( TRUE )

Syntax

aTheme.Clone

Returns

Theme


GetName (Theme)
GetName

Gets the name of aTheme.

Syntax

aTheme.GetName

Returns

String


GetObjectTag (Theme)
GetObjectTag

 Gets aTheme's ObjectTag.

Syntax

aTheme.GetObjectTag

Returns

Obj


SetName (Theme)
SetName

Sets the name of aTheme to aName.

Syntax

aTheme.SetName (aName)


SetObjectTag (Theme)
SetObjectTag

 Sets aTheme's ObjectTag to anObj.

Syntax

aTheme.SetObjectTag (anObj)


GetComments (Theme)
GetComments

Gets the comments for aTheme.

Syntax

aTheme.GetComments

Returns

String


GetExtension (Theme)
GetExtension

 Gets the extension object specified by anExtensionClass.

Syntax

aTheme.GetExtension (anExtensionClass)

Returns

ThemeExtension


GetGraphics (Theme)
GetGraphics

Gets the list of graphics associated with aTheme.

Syntax

aTheme.GetGraphics

Returns

GraphicSet


GetLegend (Theme)
GetLegend
Example

Gets the legend of aTheme. The result of this request is a legend object - either Legend or ImageLegend (or one of its subclasses). Because Legend and ImageLegend have no common ancestor but OBJ, OBJ is listed as the return type.

Syntax

aTheme.GetLegend

Returns

Obj


GetLegendEditorScript (Theme)
GetLegendEditorScript

Gets the name of the script to be executed when the user double-clicks on aTheme in the table of contents.

Syntax

aTheme.GetLegendEditorScript

Returns

String


GetPassword (Theme)
GetPassword

Gets the password of aTheme.

Syntax

aTheme.GetPassword

Returns

String


GetSrcName (Theme)
GetSrcName

Gets the SrcName of aTheme.

Syntax

aTheme.GetSrcName

Returns

SrcName


GetThreshold (Theme)
GetThreshold

Gets the threshold of aTheme.

Syntax

aTheme.GetThreshold

Returns

Threshold


GetView (Theme)
GetView

Gets the view containing aTheme.

Syntax

aTheme.GetView

Returns

View


IsActive (Theme)
IsActive

Returns TRUE if aTheme is active, otherwise returns FALSE.

Syntax

aTheme.IsActive

Returns

Boolean


IsActiveLocked (Theme)
IsActiveLocked

Gets whether or not the user can change the active states of aTheme in the Table of Contents.

Syntax

aTheme.IsActiveLocked

Returns

Boolean


IsLegendVisible (Theme)
IsLegendVisible

Returns TRUE if the legend of aTheme is visible in the Table of Contents, otherwise returns FALSE.

Syntax

aTheme.IsLegendVisible

Returns

Boolean


IsLocked (Theme)
IsLocked

Returns TRUE if aTheme is locked, otherwise returns FALSE.

Syntax

aTheme.IsLocked

Returns

Boolean


IsSuffixUsed (Theme)
IsSuffixUsed

Returns TRUE if aTheme uses a suffix. A suffix is the "by <classify field>" clause in aTheme's name. If this request returns FALSE, the clause is NOT part of aTheme's name.

Syntax

aTheme.IsSuffixUsed

Returns

Boolean


IsVisible (Theme)
IsVisible

Returns TRUE if aTheme is visible.

Syntax

aTheme.IsVisible

Returns

Boolean


IsVisibleLocked (Theme)
IsVisibleLocked

Gets whether or not the user can change the visibility of aTheme in the Table of Contents.

Syntax

aTheme.IsVisibleLocked

Returns

Boolean


RemoveExtension (Theme)
RemoveExtension

 Removes the extension object specified by anExtensionClass.

Syntax

aTheme.RemoveExtension (anExtensionClass)


ReturnAOI (Theme)
ReturnAOI

Returns the Area Of Interest (AOI) for aTheme.

Syntax

aTheme.ReturnAOI

Returns

Rect


ReturnExtent (Theme)
ReturnExtent

Returns the extent of aTheme in map units. The extent of aTheme is the smallest rectangle which can contain all the features of aTheme.

Syntax

aTheme.ReturnExtent

Returns

Rect


ReturnLegendExt (Theme)
ReturnLegendExt

Returns aSize in page units of the legend of aTheme on aDisplay with text drawn at aSymbol. If inTOC is TRUE and there is only one classification, the text will be drawn above the symbol, otherwise it will be drawn next to the symbol.

Syntax

aTheme.ReturnLegendExt (aDisplay, aSymbol, inTOC)

Returns

Point


SetActive (Theme)
SetActive

Sets whether aTheme is active to isActive.

Syntax

aTheme.SetActive (isActive)


SetActiveLocked (Theme)
SetActiveLocked

Sets whether or not the user can change the active state of aTheme in the Table of Contents.

Syntax

aTheme.SetActiveLocked (isLocked)


SetAOI (Theme)
SetAOI

Sets the Area Of Interest for aTheme to anAreaOfInterest. ABSTRACT

Syntax

aTheme.SetAOI (anAreaOfInterest)


SetComments (Theme)
SetComments

Sets the comments of aTheme to someComments.

Syntax

aTheme.SetComments (someComments)


SetExtension (Theme)
SetExtension

 Sets the specified extension for the class of anExtension. anExtension can be returned using aTheme.GetExtension and passing the class of anExtension.

Syntax

aTheme.SetExtension (anExtension)


SetLegend (Theme)
SetLegend

Sets the legend of aTheme to aLegend. aLegend may be an object of class Legend or an object of class ImageLegend (or one of its subclasses). Because Legend and ImageLegend have no common ancestor but OBJ, the argument type is OBJ.

In this example, aTheme gets the legend newLegend.

 newLegend = Legend.Make( #SYMBOL_MARKER )
 newLegend.GetSymbols.Get( 0 ).SetColor( Color.GetGreen )
 aTheme.SetLegend( newLegend )
 aTheme.UpdateLegend  ' Redraw

Syntax

aTheme.SetLegend (aLegend)


SetLegendEditorScript (Theme)
SetLegendEditorScript

Sets the name of the script to be executed when the user double-clicks on aTheme in the table of contents.

Syntax

aTheme.SetLegendEditorScript (aScriptName)


SetLegendVisible (Theme)
SetLegendVisible

Sets the visibility of the legend of aTheme in the Table of Contents to isVisible.

Syntax

aTheme.SetLegendVisible (isVisible)


SetLocked (Theme)
SetLocked

Sets whether aTheme is locked to isLocked.

Syntax

aTheme.SetLocked (isLocked)


SetPassword (Theme)
SetPassword

Sets the password of aTheme to aPassword.

Syntax

aTheme.SetPassword (aPassword)


SetSuffixUsed (Theme)
SetSuffixUsed

Sets whether aTheme uses a suffix to useSuffix. A suffix is the "by <classify field>" clause in aTheme's name when classified. If useSuffix is FALSE, the clause is NOT part of aTheme's name.

Syntax

aTheme.SetSuffixUsed (useSuffix)


SetThreshold (Theme)
SetThreshold

Sets the threshold of aTheme to aThreshold.

Syntax

aTheme.SetThreshold (aThreshold)


SetVisible (Theme)
SetVisible

Sets whether aTheme is visible to isVisible.

Syntax

aTheme.SetVisible (isVisible)


SetVisibleLocked (Theme)
SetVisibleLocked

Sets whether or not the user can change the visibility of aTheme in the Table of Contents.

Syntax

aTheme.SetVisibleLocked (isLocked)


Invalidate (Theme)
Invalidate

Invalidates aTheme. If Erase is TRUE, the entire view will be invalidated (and thus redrawn at the next opportunity). If erase is FALSE, only aTheme and those themes above it in the table of contents will be invalidated. The associated legend is NOT redrawn.

Note that the theme will not be redrawn at the time this request is sent.

Syntax

aTheme.Invalidate (Erase)


InvalidateLegend (Theme)
InvalidateLegend

Invalidates the legend for aTheme in the table of contents of the view containing aTheme. InvalidateLegend causes aTheme's legend to redraw in the TOC. The theme itself is not redrawn to reflect any change in the legend.

See the View request InvalidateTOC. This request invalidates the entire Table of Contents. Use InvalidateTOC when altering the order of themes in the view.

Syntax

aTheme.InvalidateLegend


UpdateLegend (Theme)
UpdateLegend
Example

Updates aTheme to reflect changes to its legend. This redraws both the legend and the theme.

Syntax

aTheme.UpdateLegend


CanReturnClassCounts (Theme)
CanReturnClassCounts

Returns a Boolean indicating whether the number of features in each class in the legend can be computed for this theme.

Syntax

aTheme.CanReturnClassCounts

Returns

Boolean


ReturnClassCounts (Theme)
ReturnClassCounts

Returns a list containing the number of features in each class in the legend. ABSTRACT

Syntax

aTheme.ReturnClassCounts

Returns

List


ReturnDefaultLegend (Theme)
ReturnDefaultLegend

Returns a default legend appropriate to the type of aTheme.

Syntax

aTheme.ReturnDefaultLegend

Returns

Legend


SetDefaultLegend (Theme)
SetDefaultLegend

Sets the legend of aTheme to a default legend appropriate to the type of theme. ABSTRACT

Syntax

aTheme.SetDefaultLegend


CanFindByPoint (Theme)
CanFindByPoint

Returns TRUE if the entities in aTheme (features, cells, pixels, etc.) can be found based on a point location.

Syntax

aTheme.CanFindByPoint

Returns

Boolean


FindByPoint (Theme)
FindByPoint

Finds the set of objects identified by aPoint in aTheme. A set of key values that can be used to identify the found objects is returned. FindByPoint uses a fixed distance tolerance equivalent to 3 screen pixels. These key values can be used with the Identify request on aTheme. Returns an empty list if no objects are found.

Syntax

aTheme.FindByPoint (aPoint)

Returns

List


Identify (Theme)
Identify

Puts information from aTheme for the object identified by aKeyValue into the Identify window labeled by aString. Identify uses a fixed distance tolerance equivalent to 3 screen pixels for finding the object. Also, Identify blinks the data corresponding to aKeyValue wherever it is currently showing on the screen.

Syntax

aTheme.Identify (aKeyValue, aString)


ReturnValueString (Theme)
ReturnValueString

Returns the value of aField for the entity in aTheme referenced by aRecordNumber as a string. ABSTRACT

Syntax

aTheme.ReturnValueString (aField, aRecordNumber)

Returns

String


ThemeExtension

 The ThemeExtension class provides ArcView Extensions to the Theme class. It stores Extension-specific environments that can be accessed using the ThemeExtension instance requests.

ThemeExtensions can be added to a Theme using the aTheme.SetExtension request by passing an instance of a ThemeExtension. A ThemeExtension can be reterieved from a Theme using the aTheme.GetExtension request by passing the ThemeExtension class. To remove a ThemeExtension from a Theme, use the aTheme.RemoveExtension request and pass a ThemeExtension class.

Inherits From

ExtensionObject

__________

See also

Doc


Threshold

 Themes may be configured to display only at certain scales; a Threshold manages theme thresholding. It contains several values: minimum and maximum scales and attributes indicating if thresholding is on or off.

The IsWithin request compares a scale to the current threshold and returns TRUE if the scale falls within the threshold and FALSE otherwise. The scale falls within the threshold if it is greater than the threshold's minimum value and less that the threshold's maximum value.

Attributes

Maximum.Maximum is the high value within the Threshold. If the current scale exceeds the maximum, the theme is NOT displayed.

MaximumOn.MaximumOn indicates whether the Maximum value is used or if the theme is displayed at all scales above the Minimum value.

Minimum.Minimum is the low value within the Threshold. If the current scale is less than the minimum, the theme is NOT displayed.

MinimumOn.MinimumOn indicates whether that Minimum value is used or if the theme is displayed at all scales lower than the Maximum value.

Off.Off indicates if the there is NO thresholding. If Off, the theme is displayed at all scales. There is no minimum or maximum scale.

Inherits From

Obj

Class Requests

Making a Threshold

Make  :  Threshold

Instance Requests

Manipulating a Threshold

= anObj :  Boolean

GetMaximum  :  Number

GetMinimum  :  Number

IsMaximumOn  :  Boolean

IsMinimumOn  :  Boolean

IsOff  :  Boolean

IsWithin ( aScale ) :  Boolean

SetMaximum ( aValue )

SetMaximumOn ( isOn )

SetMinimum ( aValue )

SetMinimumOn ( isOn )

__________

See also

Theme


Make (Threshold)
Make

Makes a Threshold with all thresholding off.

Syntax

Threshold.Make

Returns

Threshold


= (Threshold)
=

Returns TRUE if aThreshold is equal to anObj, otherwise returns FALSE.

Syntax

aThreshold = anObj

Returns

Boolean


GetMaximum (Threshold)
GetMaximum

Gets the maximum value of aThreshold.

Syntax

aThreshold.GetMaximum

Returns

Number


GetMinimum (Threshold)
GetMinimum

Gets the minimum value of aThreshold.

Syntax

aThreshold.GetMinimum

Returns

Number


IsMaximumOn (Threshold)
IsMaximumOn

Returns TRUE if the maximum of aThreshold is ON, otherwise returns FALSE.

Syntax

aThreshold.IsMaximumOn

Returns

Boolean


IsMinimumOn (Threshold)
IsMinimumOn

Returns TRUE if the minimum of aThreshold is on, otherwise returns FALSE.

Syntax

aThreshold.IsMinimumOn

Returns

Boolean


IsOff (Threshold)
IsOff

Returns TRUE if no thresholds are set, otherwise returns FALSE. IsOff is TRUE if both IsMinimumOn and IsMaximumOn return FALSE.

Syntax

aThreshold.IsOff

Returns

Boolean


IsWithin (Threshold)
IsWithin

Returns TRUE if aScale is within the range of aThreshold, otherwise returns FALSE.

Syntax

aThreshold.IsWithin (aScale)

Returns

Boolean


SetMaximum (Threshold)
SetMaximum

Sets the maximum of aThreshold to aValue.

Syntax

aThreshold.SetMaximum (aValue)


SetMaximumOn (Threshold)
SetMaximumOn

Sets whether the maximum of aThreshold is on to isOn.

Syntax

aThreshold.SetMaximumOn (isOn)


SetMinimum (Threshold)
SetMinimum

Sets the minimum of aThreshold to aValue.

Syntax

aThreshold.SetMinimum (aValue)


SetMinimumOn (Threshold)
SetMinimumOn

Sets whether the minimum of aThreshold is on to isOn.

Syntax

aThreshold.SetMinimumOn (isOn)


Title

 A Title is a single moveable piece of text on the chart. The text displayed is the name of the Title.

Use the GetTitle request on a Chart to get the chart title or use the GetUserPart request on a Chart to let the user click on a chart part.

Attributes

Location.The Location is an ChartDisplayLocEnum that determines whether the Title is drawn to the top, left, right, left, or at a relative location on the chart.

RelativeLocation.The Relative Location is a point that determines where the Title is drawn on the chart. The coordinates are between 0 and 100 in each direction.

Inherits From

ChartPart

Instance Requests

Displaying Dialog Boxes

Edit

Generic Object Requests

SetName ( aName )

Getting and Setting Attributes

GetLocation  :  ChartDisplayLocEnum

ReturnRelativeLocation  :  Point

SetLocation ( aLocation )

SetRelativeLocation ( aPoint )

SetVisible ( isVisible )

__________

See also

ChartDisplay


Edit (Title)
Edit

Shows the Title editor dialog box. If the user clicks OK, updates aTitle to reflect any changes.

Syntax

aTitle.Edit


SetName (Title)
SetName

Sets the name of aTitle to aName.

Syntax

aTitle.SetName (aName)


GetLocation (Title)
GetLocation

Gets the location of aTitle.

Syntax

aTitle.GetLocation

Returns

ChartDisplayLocEnum


ReturnRelativeLocation (Title)
ReturnRelativeLocation

Returns the relative location of aTitle.

Syntax

aTitle.ReturnRelativeLocation

Returns

Point


SetLocation (Title)
SetLocation

Sets the location of aTitle to aLocation.

Syntax

aTitle.SetLocation (aLocation)


SetRelativeLocation (Title)
SetRelativeLocation

Sets the relative location of aTitle to aPoint.

Syntax

aTitle.SetRelativeLocation (aPoint)


SetVisible (Title)
SetVisible

Sets the visibility of aTitle to isVisible.

Syntax

aTitle.SetVisible (isVisible)


TOC

 A TOC (Table of Contents) manages the themes which are displayed in a view. For a complete discussion, refer to the 'Table of Contents' topic in ArcView on-line help.

Use the View request InvalidateTOC to update the TOC after changes. Or use the Theme request UpdateLegend to redraw both the TOC and the theme.

You can alter the order of legends within the TOC by reordering the list of themes within the view. You can make themes visible with the Theme request SetVisible; SetVisible causes the check box to toggle. You can make themes active with theme request SetActive request; SetActive controls the raised box around the legend.

EXAMPLE: Alter the order of legends in the TOC

 ' Alter the order of the legends in the TOC
 '
 theView = av.GetActiveDoc
 theThemes = theView.GetThemes

 ' the first becomes the last
 theThemes.Shuffle( theThemes.Get(0), (theThemes.Count))

 ' Make the last theme active
 theThemes.Get( theThemes.Count - 1).SetActive( TRUE )

 theView.InvalidateTOC( nil )

Attributes

Symbol.The Text symbol used to display the theme names.

Inherits From

Obj

Class Requests

Default TOC Symbols

GetDefaultSymbol  :  Symbol

SetDefaultSymbol ( aTextSym )

Instance Requests

Selection and Symbolization

GetSymbol  :  TextSymbol

IsOrderLocked  :  Boolean

SelectAll

SelectFirst

SetOrderLocked ( isLocked )

SetSymbol ( aTextSym )

UnselectAll

__________

See also

View
Theme
Symbol
Legend
ImageLegend


GetDefaultSymbol (TOC)
GetDefaultSymbol

 Gets the default symbol used to render text in the Table of Contents.

Syntax

TOC.GetDefaultSymbol

Returns

Symbol


SetDefaultSymbol (TOC)
SetDefaultSymbol

 Sets the default symbol used to render text in the Table of Contents.

Syntax

TOC.SetDefaultSymbol (aTextSym)


GetSymbol (TOC)
GetSymbol

Gets the symbol used to render aTOC's text. The View window containing the TOC must be open.

Syntax

aTOC.GetSymbol

Returns

TextSymbol


IsOrderLocked (TOC)
IsOrderLocked

Returns TRUE if you cannot change the order of themes in the TOC.

Syntax

aTOC.IsOrderLocked

Returns

Boolean


SelectAll (TOC)
SelectAll

Selects (makes active) all themes in the TOC. The View window containing the TOC must be open. You can also use the Theme request SetActive for each theme in the TOC.

Syntax

aTOC.SelectAll


SelectFirst (TOC)
SelectFirst

Selects (makes active) the first theme in the TOC. You can also use the Theme request SetActive.

Syntax

aTOC.SelectFirst


SetOrderLocked (TOC)
SetOrderLocked

Sets whether or not you can change the order of themes in the TOC. The View window containing the TOC must be open. If isLocked is set to TRUE, it remains TRUE until the window is closed. This is because a new TOC is created each time a View window is opened. As such, the SetOrderLocked property is only maintained for the life of the TOC; that is, only while the View is open. When the View is closed and then reopened, the SetOrderLocked property is re-initialized to FALSE.

As a workaround, modify the Doc.Open script to reset the SetOrderLocked property. The modified Doc.Open script would look like:

  for each d in av.GetProject.GetSelectedDocs
    d.GetWin.Open
    if (d.Is(View)) then
      d.GetTOC.SetOrderLocked(TRUE)
    end
  end

Syntax

aTOC.SetOrderLocked (isLocked)


SetSymbol (TOC)
SetSymbol

Sets the symbol used to render aTOC's text. The View window containing the TOC must be open.

Syntax

aTOC.SetSymbol (aTextSym)


UnselectAll (TOC)
UnselectAll

Unselects (deactivates) all legends/themes in the TOC. The View window containing the TOC must be open. You can also use the Theme request SetActive.

Syntax

aTOC.UnselectAll


Tool
Related Topics

 A Tool provides a means of interacting with the document display. A Tool supports a special event: the Apply event. The Apply event triggers whenever the user clicks on the active document display.

Click on a tool to select it (aTool.Select); this tool remains selected until you click on another tool. Clicking on the tool not only makes the tool active, it also triggers a click event. Use the click event to initialize or to inform the end-user about the tool.

While this tool is active, each click over the document display triggers its Apply event. The Apply script includes requests that recognize mouse clicks and then uses the location information to find features or position new elements on the document. The Avenue requests that interpret the mouse click on the document are called "user interaction" requests. These special requests are valid ONLY in scripts executing from Apply events. The request category "User Interaction (Apply Event Only)" lists these requests. These requests are named with the keyword User (i.e. ReturnUserPoint, ReturnUserRect, etc.).

If the Apply event runs for a long time, indicate a busy state with the request av.UseWaitCursor; this request changes the cursor to the "wait" cursor seen with click events.

Attributes

Apply. Apply names the script to execute on an apply event.

Click. Click names the script to execute on a click event.

Icon. Icon identifies the icon on the tool's face.

Cursor. Cursor identifies the cursor displayed when the mouse drags over the active document.

Selected. The selected tool is active - its apply event is called whenever a mouse click occurs over the active document. The selected tool is "pressed in" on the interface. Once selected, a tool remains selected until a different tool is selected.

Inherits From

Control

Inherited By

ToolMenu

Class Requests

Tool

Make  :  Tool

Instance Requests

Using Tools

Apply

Click

Select

Getting and Setting Tool Attributes

GetApply  :  String

GetClick  :  String

GetIcon  :  Icon

HasScript ( aScriptName ) :  Boolean

IsSelected  :  Boolean

SetApply ( aScriptName )

SetClick ( aScriptName )

SetIcon ( anIcon )

__________

See also

Button
Choice
ToolBar


Make (Tool)
Make

Creates a Tool.

Syntax

Tool.Make

Returns

Tool


Apply (Tool)
Apply

Triggers the Apply event.

Syntax

aTool.Apply


Click (Tool)
Click

Triggers the Click event.

Syntax

aTool.Click


Select (Tool)
Select

Selects aTool. The selected tool is the active tool and appears "pressed in" on the toolbar.

Syntax

aTool.Select


GetApply (Tool)
GetApply

Gets the name of the script to execute on the Apply event.

Syntax

aTool.GetApply

Returns

String


GetClick (Tool)
GetClick

Gets the name of the script to execute on the Click event.

Syntax

aTool.GetClick

Returns

String


GetIcon (Tool)
GetIcon

Gets the icon associated with aTool.

Syntax

aTool.GetIcon

Returns

Icon


HasScript (Tool)
HasScript

Returns TRUE when aTool has a script named aScriptName.

Syntax

aTool.HasScript (aScriptName)

Returns

Boolean


IsSelected (Tool)
IsSelected

Returns TRUE if aTool is selected.

Syntax

aTool.IsSelected

Returns

Boolean


SetApply (Tool)
SetApply

Makes scriptName the Apply script.

Syntax

aTool.SetApply (aScriptName)


SetClick (Tool)
SetClick

Makes scriptName the Click script.

Syntax

aTool.SetClick (aScriptName)


SetIcon (Tool)
SetIcon

Attaches anIcon to aTool.

Syntax

aTool.SetIcon (anIcon)


ToolBar

 The ToolBar is the bottom row of the DocGUI. A ToolBar manages a list of Tools, ToolMenus and Spaces.

Modify the ToolBar through requests defined in ControlSet: Add, New, Remove, Shift. There is always one selected tool in the ToolBar; GetActive returns the selected tool. Select a tool through Tool's Select request or SelectDefault.

Inherits From

ControlSet

Instance Requests

Using ToolBars

Empty

GetActive  :  Tool

Remove ( aTool )

SelectDefault

__________

See also

DocGUI
Tool
ToolMenu
Space
ButtonBar
MenuBar


Empty (ToolBar)
Empty

removes all tools from aToolBar

Syntax

aToolBar.Empty


GetActive (ToolBar)
GetActive

Gets the active tool in aToolBar.

Syntax

aToolBar.GetActive

Returns

Tool


Remove (ToolBar)
Remove

removes aTool from aToolBar.

Syntax

aToolBar.Remove (aTool)


SelectDefault (ToolBar)
SelectDefault

Selects the first tool in aToolBar that is not disabled and makes it the active tool.

Syntax

aToolBar.SelectDefault


ToolMenu

 A ToolMenu contains a list of Tools and is included in a ToolBar as a single Tool. Click on the ToolMenu to display a pulldown palette of tools and drag to a particular tool. Each toolmenu has one active tool. This is the tool that is currently visible in the ToolBar. ToolMenu is a subclass of Tool and instances may be used wherever a tool may be used.

There are several ways to add tools to a ToolMenu. You can use the customization dialog to create toolmenus interactively; you can create toolmenus in scripts and then add them to the toolbar; or you modify toolmenus that are already part of the toolbar. Here is an Avenue script that creates a toolmenu from scratch.

  aToolMenu = ToolMenu.Make
  controls = aToolMenu.GetControls

  ' Add some tools

  controls.Add( Tool.Make )
  controls.Add( Tool.Make )
  controls.Add( Tool.Make )

  ' Add the new ToolMenu to the ToolBar of the active GUI
  av.GetActiveGUI.GetToolBar.Add( aToolMenu, -1 )

This script finds an existing toolmenu and adds a new tool to the end of the menu.

  ' Assume that the first tool in the toolbar is a toolmenu
  '
  aToolMenu = av.GetActiveGUI.GetToolBar.GetControls.Get(0)
  aToolMenu.Add( Tool.Make, 999 )

Notice that in the first script above, you send the Add request to to the list of tools owned by the tool menu. In the second script, you send the Add request directly to the tool menu. The only time you can modify the tool menu's list of controls directly (as in the first script) is before you add the tool menu to the tool bar. Once the tool menu is a part of the tool bar, you must send the Add (and Remove) requests directly to the tool.

You can use a for each statement in Avenue to iterate through all tools in the ToolMenu. For example, this script steps through all tools in the ToolBar toggling each tool's enabled state. For ToolMenu elements in the ToolBar, the script steps through each tool in the ToolMenu.

 for each t in av.GetActiveGUI.GetToolBar
   if (t.Is( ToolMenu )) then
     aToolMenu = t
     for each i in aToolMenu
       i.SetEnabled( i.IsEnabled.Not )
     end
   else
     t.SetEnabled( t.IsEnabled.Not )
   end
 end

Attributes

Controls. Controls is the list of Tools in the ToolMenu.

Choice. Choice is the tool in the ToolMenu that is currently active. This tool displays in the ToolBar.

Inherits From

Tool

Class Requests

Tool Menus

Make  :  ToolMenu

Instance Requests

Getting and Setting ToolMenu Attributes

FindByScript ( aScriptName ) :  Tool

HasScript ( aScriptName ) :  Boolean

SetApply ( aScriptName )

SetClick ( aScriptName )

SetEnabled ( MakeItEnabled )

SetHelp ( aString )

SetHelpTopic ( aTopicString )

SetIcon ( anIcon )

SetObjectTag ( anObject )

SetTag ( aString )

SetUpdate ( aScriptName )

Manipulating ToolMenus

Add ( aTool, afterIndex )

GetChoice  :  Tool

GetControls  :  List

Remove ( aTool )

SetChoice ( aTool )

Shift ( aTool, delta )

Update

__________

See also

ToolBar


Make (ToolMenu)
Make

Creates a new ToolMenu.

Syntax

ToolMenu.Make

Returns

ToolMenu


FindByScript (ToolMenu)
FindByScript

Returns the first tool in aToolMenu that has a script named aScriptName.

Syntax

aToolMenu.FindByScript (aScriptName)

Returns

Tool


HasScript (ToolMenu)
HasScript

Returns TRUE when aToolMenu contains a tool that has a script named aScriptName.

Syntax

aToolMenu.HasScript (aScriptName)

Returns

Boolean


SetApply (ToolMenu)
SetApply

Sets the name of the script to be executed on the apply event for the active tool of aToolMenu aScriptName.

Syntax

aToolMenu.SetApply (aScriptName)


SetClick (ToolMenu)
SetClick

Sets the name of the script to be executed on the click event for the active tool of aToolMenu to be aScriptName.

Syntax

aToolMenu.SetClick (aScriptName)


SetEnabled (ToolMenu)
SetEnabled

Enables or disables aToolMenu.

Syntax

aToolMenu.SetEnabled (MakeItEnabled)


SetHelp (ToolMenu)
SetHelp

Sets the help for the active tool in aToolMenu to be aString.

Syntax

aToolMenu.SetHelp (aString)


SetHelpTopic (ToolMenu)
SetHelpTopic

Sets the help topic of the active tool in aToolMenu to be aTopicString.

Syntax

aToolMenu.SetHelpTopic (aTopicString)


SetIcon (ToolMenu)
SetIcon

Sets the icon of the active tool in aToolMenu to be anIcon.

Syntax

aToolMenu.SetIcon (anIcon)


SetObjectTag (ToolMenu)
SetObjectTag

Sets the object tag for the active tool in aToolMenu to be anObject.

Syntax

aToolMenu.SetObjectTag (anObject)


SetTag (ToolMenu)
SetTag

Set the text tag of the active tool in aToolMenu to be aString.

Syntax

aToolMenu.SetTag (aString)


SetUpdate (ToolMenu)
SetUpdate

Sets the name of the script to be executed on the update event for the active tool of aToolMenu to be aScriptName.

Syntax

aToolMenu.SetUpdate (aScriptName)


Add (ToolMenu)
Add

Adds a tool to aToolMenu. The tool currently visible in the tool menu is not affected. aTool is positioned after the tool whose index is afterIndex. afterIndex is zero-based. To add a tool to the beginning of the toolmenu, specify -1 for afterIndex. To add a tool to the end of the toolmenu, specify some number larger than the number of tools in the menu.

Syntax

aToolMenu.Add (aTool, afterIndex)


GetChoice (ToolMenu)
GetChoice

Gets the current choice in aToolMenu. The current choice is the tool in aToolMenu that appears in the toolbar. It may or may not be the "Selected" or active tool in the toolbar.

Syntax

aToolMenu.GetChoice

Returns

Tool


GetControls (ToolMenu)
GetControls

Gets the list of tools in aToolMenu.

Syntax

aToolMenu.GetControls

Returns

List


Remove (ToolMenu)
Remove

Removes the tool at anIndex from aToolMenu. This request can be sent either before or after aToolMenu has been inserted into the ToolBar.

Syntax

aToolMenu.Remove (aTool)


SetChoice (ToolMenu)
SetChoice

Sets aTool to be the current choice in aToolMenu. If aTool is not already in aToolMenu, it is added. The current choice is the tool in aToolMenu that appears in the toolbar.

Syntax

aToolMenu.SetChoice (aTool)


Shift (ToolMenu)
Shift

moves aTool delta positions within aToolMenu. When delta < 0, aTool moves up; when delta > 0, aTool moves down.

Syntax

aToolMenu.Shift (aTool, delta)


Update (ToolMenu)
Update

Runs the Update for aToolMenu and each of its children.

Syntax

aToolMenu.Update


MultiPatch

 A MultiPatch is a set of one or more triangle strips called parts. Each triangle strip contains 3 or more (x,y,z) points.

Attributes

Parts.A MultiPatch contains one or more parts or triangle strips. Each part is defined by a list of 3 or more (x,y,z) points describing the triangle strip. See MultiPatch.Make for an example.

Inherits From

PolygonZ

Enumerations

PartTypeEnum

Class Requests

Making MultiPatches

Make ( aListofComponents ) :  MultiPatch

MakeNull  :  MultiPatch

Instance Requests

Converting a MultiPatch

AsList  :  List

Generic Object Requests

= anObj :  Boolean

AsString  :  String

Getting and Setting Attributes

GetDimension  :  Number

ReturnCenter  :  Point

ReturnMBB  :  RectZ

Transforming a MultiPatch

AddPart ( aListOfPoints, aPartType ) :  MultiPatch

AddPolygonZ ( aPolygonZ ) :  MultiPatch

ReturnProjected ( aPrj ) :  Shape

ReturnUnprojected ( aPrj ) :  Shape

__________

See also

PointZ
RectZ
LineZ
Shape


Make (MultiPatch)
Make

Makes a MultiPatch from aListofComponents that holds a list of parts and a list of part types. A list of parts contains lists of vertices defining parts. Types of resulting parts are defined by a list of part types. This example creates a MultiPatch with five parts.

 myPatch = MultiPatch.Make( {{{5@4@10, 0@0@5, 10@0@5, 10@8@5, 0@8@5, 0@0@5},
                              {10@0@5, 10@0@0, 10@8@5, 10@8@0,
                               0@8@5, 0@8@0, 0@0@5, 0@0@0},
                              {0@0@0, 0@0@5, 10@0@5, 10@0@0,
                               6@0@0, 6@0@3, 4@0@3, 4@0@0},
                              {1@0@2, 3@0@2, 3@0@4, 1@0@4},
                              {7@0@2, 9@0@2, 9@0@4, 7@0@4}},
                             {#PART_TYPE_TRIANGLEFAN,
                              #PART_TYPE_TRIANGLESTRIP,
                              #PART_TYPE_OUTERRING,
                              #PART_TYPE_INNERRING,
                              #PART_TYPE_INNERRING}} )

Syntax

MultiPatch.Make (aListofComponents)

Returns

MultiPatch


MakeNull (MultiPatch)
MakeNull

Makes the NULL MultiPatch.

Syntax

MultiPatch.MakeNull

Returns

MultiPatch


AsList (MultiPatch)
AsList

Returns aMultiPatch as a list containing list of parts and list of part types.

Syntax

aMultiPatch.AsList

Returns

List


= (MultiPatch)
=

Returns TRUE if aMultiPatch and anObj are equal, otherwise returns FALSE.

Syntax

aMultiPatch = anObj

Returns

Boolean


AsString (MultiPatch)
AsString

Returns a string describing aMultiPatch. The string contains the keyword MultiPatch, the number of parts and for each part, the number of points in it and the X,Y,Z of each point. For example, this script creates the following MultiPatch.

 myPatch = MultiPatch.Make( {{0@0@0, 1@1@1, 2@2@2, 3@3@3},
                           {1@2@4, 1@3@3, 1@4@2},
                           {0@3@5, 2@1@5, 1@2@5, 3@0@5}} )
 msgbox( myPatch.AsString, "")

 MultiPatch
 3
 4
 0,0,0
 1,1,1
 2,2,2
 3,3,3
 3
 1,2,4
 1,3,3
 1,4,2
 4
 0,3,5
 2,1,5
 1,2,5
 3,0,5

Syntax

aMultiPatch.AsString

Returns

String


GetDimension (MultiPatch)
GetDimension

Returns 2. In ArcView, points have dimension 0, lines have dimension 1 and polygons have dimension 2. Only shapes with dimension 1 or greater have a length. Only shapes with dimension 2 have an area.

Syntax

aMultiPatch.GetDimension

Returns

Number


ReturnCenter (MultiPatch)
ReturnCenter

Returns the center point of aMultiPatch. The returned point is a point in one of the parts.

Syntax

aMultiPatch.ReturnCenter

Returns

Point


ReturnMBB (MultiPatch)
ReturnMBB

Returns the MBB of aMultiPatch. The MBB is the minimum bounding box surrounding aMultiPatch.

Syntax

aMultiPatch.ReturnMBB

Returns

RectZ


AddPart (MultiPatch)
AddPart

Adds a new part of aPartType to aMultiPatch.

Syntax

aMultiPatch.AddPart (aListOfPoints, aPartType)

Returns

MultiPatch


AddPolygonZ (MultiPatch)
AddPolygonZ

Adds aPolygonZ's parts to aMultiPatch.

Syntax

aMultiPatch.AddPolygonZ (aPolygonZ)

Returns

MultiPatch


ReturnProjected (MultiPatch)
ReturnProjected

Returns aMultiPatch projected by aPrj. The result will be the same kind of shape and have the same number of points as aMultiPatch.

Syntax

aMultiPatch.ReturnProjected (aPrj)

Returns

Shape


ReturnUnprojected (MultiPatch)
ReturnUnprojected

Returns aMultiPatch unprojected from aPrj. The result will be the same kind of shape and have the same number of points as aMultiPatch.

Syntax

aMultiPatch.ReturnUnprojected (aPrj)

Returns

Shape


PartTypeEnum

 Types of MultiPatch Parts. Type of part controls how the order of vertices of an MultiPatch part is interpreted.

#PART_TYPE_TRIANGLESTRIP

Part is a linked strip of triangles, where every vertex (after the first two) completes a new triangle. New triangle is always formed by connecting the new vertex with its two immediate predecessors.

#PART_TYPE_TRIANGLEFAN

Part is a linked fan of triangles, where every vertex (after the first two) completes a new triangle. New triangle is always formed by connecting the new vertex with its immediate predecessor and the first vertex of a part.

#PART_TYPE_OUTERRING

Part is an outer ring of a polygon

#PART_TYPE_INNERRING

Part is a hole of a polygon

#PART_TYPE_FIRSTUNKNOWNRING

Part is the first ring of a polygon of an unspecified type.

#PART_TYPE_UNKNOWNRING

Part is a ring of a polygon of an unspecified type.


TransverseMercator
Discussion	Example

 This class implements the Transverse Mercator projection.

Inherits From

Prj

Class Requests

Creating Transverse Mercator Projections

CanDoSpheroid  :  Boolean

Make ( aRect ) :  TransverseMercator

Instance Requests

Projecting and unprojecting points

ProjectPt ( aPoint ) :  Boolean

UnProjectPt ( aPoint ) :  Boolean

Transverse Mercator Parameters

Recalculate

ReturnCentralMeridian  :  Number

ReturnFalseEasting  :  Number

ReturnFalseNorthing  :  Number

ReturnReferenceLatitude  :  Number

ReturnScale  :  Number

SetCentralMeridian ( aLongitude )

SetFalseEasting ( aFalseEasting )

SetFalseNorthing ( aFalseNorthing )

SetReferenceLatitude ( aLatitude )

SetScale ( aScale )

__________

See also

Spheroid
CoordSys


CanDoSpheroid (TransverseMercator)
CanDoSpheroid

Returns TRUE if a class of projection supports arbitrary spheroids and FALSE if it only supports the sphere. The Transverse Mercator class always returns TRUE.

Syntax

Trnmerc.CanDoSpheroid

Returns

Boolean


Make (TransverseMercator)
Make
Example

Creates a Transverse Mercator projection. aRect is the bounding rectangle of the area being projected. Use decimal degrees for the coordinates of aRect.

Syntax

Trnmerc.Make (aRect)

Returns

TransverseMercator


ProjectPt (TransverseMercator)
ProjectPt
Example

Projects the point aPoint. Returns TRUE if aPoint is visible, FALSE otherwise; however, this always returns a point.

Syntax

aTrnmerc.ProjectPt (aPoint)

Returns

Boolean


UnProjectPt (TransverseMercator)
UnProjectPt
Example

Unprojects the point aPoint. Returns TRUE if aPoint can be unprojected, FALSE otherwise; however, this always returns a point.

Syntax

aTrnmerc.UnProjectPt (aPoint)

Returns

Boolean


Recalculate (TransverseMercator)
Recalculate

Updates the internal parameters of the projection. This must be called after changing any parameters of the Transverse Mercator projection.

Syntax

aTrnmerc.Recalculate


ReturnCentralMeridian (TransverseMercator)
ReturnCentralMeridian

Returns the central meridian in degrees.

Syntax

aTrnmerc.ReturnCentralMeridian

Returns

Number


ReturnFalseEasting (TransverseMercator)
ReturnFalseEasting

Returns the value of x at the central meridian.

Syntax

aTrnmerc.ReturnFalseEasting

Returns

Number


ReturnFalseNorthing (TransverseMercator)
ReturnFalseNorthing

Returns the value of y at the central meridian.

Syntax

aTrnmerc.ReturnFalseNorthing

Returns

Number


ReturnReferenceLatitude (TransverseMercator)
ReturnReferenceLatitude

Returns the y origin in degrees.

Syntax

aTrnmerc.ReturnReferenceLatitude

Returns

Number


ReturnScale (TransverseMercator)
ReturnScale

Returns the scale along the central meridian. "1" represents true scale.

Syntax

aTrnmerc.ReturnScale

Returns

Number


SetCentralMeridian (TransverseMercator)
SetCentralMeridian
Example

Sets the central meridian to aLongitude. aLongitude is a longitude in degrees.

Syntax

aTrnmerc.SetCentralMeridian (aLongitude)


SetFalseEasting (TransverseMercator)
SetFalseEasting
Example

Sets the value of x at the central meridian.

Syntax

aTrnmerc.SetFalseEasting (aFalseEasting)


SetFalseNorthing (TransverseMercator)
SetFalseNorthing
Example

Sets the value of y at the central meridian.

Syntax

aTrnmerc.SetFalseNorthing (aFalseNorthing)


SetReferenceLatitude (TransverseMercator)
SetReferenceLatitude
Example

Sets the latitude at which y is 0. aLatitude is a latitude in degrees.

Syntax

aTrnmerc.SetReferenceLatitude (aLatitude)


SetScale (TransverseMercator)
SetScale
Example

Sets the scale along the central meridian. aScale is a number, where "1" represents true scale.

Syntax

aTrnmerc.SetScale (aScale)


ThemeOnThemeDialog

 ThemeOnThemeDialog is the modal dialog box used for theme-on-theme selection.

Inherits From

ModalDialog

Class Requests

Showing a ThemeOnThemeDialog

Show ( toThemes, fromThemes, aMeasure )

__________

See also

FTheme


Show (ThemeOnThemeDialog)
Show

Shows the ThemeOnThemeDialog. The user will choose a theme in the toThemes list and a theme in the fromThemes list and enter a tolerance distance in units of aMeasure. Then all of the features in the toTheme will be selected that fall within the distance of any selected feature in the fromTheme will be selected.

Syntax

ThemeOnThemeDialog.Show (toThemes, fromThemes, aMeasure)


TextComposer

 The sole instance of TextComposer handles the way text is drawn on a page. Set the parameters for the TextComposer and then use aDisplay.DrawText to draw text on the screen. For a discussion of ArcView's text formatting capabilities, refer to 'Text Tool'.

Attributes

Angle.The Angle is the angle in degrees from the horizontal that the text is drawn at.

Justification.The Justfication is whether the text is drawn right, left, center, or full justified.

LineSpacing.The LineSpacing is the height of the lines as a fraction of the height of the text. Single-spaced is 1.0, double-spaced is 2.0, and so on.

Inherits From

Obj

Enumerations

TextComposerJustEnum

Class Requests

The TextComposer

CountLines ( aString ) :  Number

The  :  TextComposer

Instance Requests

Getting and Setting Attributes

GetAngle  :  Number

GetJustification  :  TextComposerJustEnum

GetLineSpacing  :  Number

GetRightToLeft  :  Boolean

SetAngle ( anAngle )

SetJustification ( aTxJust )

SetLineSpacing ( aSpacing )

SetRightToLeft ( aBool ) :  Boolean

__________

See also

Display
GraphicText
String


CountLines (TextComposer)
CountLines

Counts the number of lines in aString. A 'line' is introduced by 'nl'. For example, the string "Hello"+nl+"World"+nl has three lines.

Syntax

TextComposer.CountLines (aString)

Returns

Number


The (TextComposer)
The

Gets the TextComposer.

Syntax

TextComposer.The

Returns

TextComposer


GetAngle (TextComposer)
GetAngle

Gets the angle of aTextComposer.

Syntax

aTextComposer.GetAngle

Returns

Number


GetJustification (TextComposer)
GetJustification

Gets the justification of aTextComposer.

Syntax

aTextComposer.GetJustification

Returns

TextComposerJustEnum


GetLineSpacing (TextComposer)
GetLineSpacing

Gets the line spacing of aTextComposer.

Syntax

aTextComposer.GetLineSpacing

Returns

Number


GetRightToLeft (TextComposer)
GetRightToLeft

Gets whether text is rendered right to left. This will only affect characters that have ASCII equivalents of 128 and higher. Thus, it would be possible to mix english and Hebrew text in the same document (Hebrew text is displayed right to left).

Syntax

aTextComposer.GetRightToLeft

Returns

Boolean


SetAngle (TextComposer)
SetAngle

Sets the angle of aTextComposer to anAngle.

Syntax

aTextComposer.SetAngle (anAngle)


SetJustification (TextComposer)
SetJustification

Sets the justification of aTextComposer to aTxJust.

Syntax

aTextComposer.SetJustification (aTxJust)


SetLineSpacing (TextComposer)
SetLineSpacing

Sets the line spacing of aTextComposer to aSpacing.

Syntax

aTextComposer.SetLineSpacing (aSpacing)


SetRightToLeft (TextComposer)
SetRightToLeft

Sets whether text is rendered right to left to aBool.

Syntax

aTextComposer.SetRightToLeft (aBool)

Returns

Boolean


TextComposerJustEnum

 Styles of text justification

#TEXTCOMPOSER_JUST_CENTER

Center justified.

#TEXTCOMPOSER_JUST_LEFT

Left justified.

#TEXTCOMPOSER_JUST_RIGHT

Right justified.


TextPositioner

 TextPositioner is the abstract superclass for objects which know how to position a text string relative to a shape. The various subclasses know how to position text next to specific kinds of shapes. TextPositioner objects are used by themes when being labelled. You can use them directly to position text next to points and instances of any of the subclasses of MultiPoint.

To use a TextPositioner, create one by sending the Make request directly to a TextPositioner subclass, or by passing a shape subclass as parameter to the Make for this class. You may then set the desired vertical and horizontal relationships between text and shape by using elements of the enumerations TextPositionerHAlignEnum and TextPositionerVAlignEnum. You then calculate the origin and angle for the extent of a specified string relative to a specified shape. The results of the calculation can be obtained through the requests GetOrigin and GetAngle. These results are then used to set the Origin and Angle for some GraphicText object.

Here is an example which add some text to the center of a polygon. Assume a layout named "Layout1" exists and has one polygon graphic in it.

 l  = av.GetProject.FindDoc("Layout1")
 g  = l.GetGraphics.Get(0)
 tp = TextPositioner.Make(g.GetClass)

 'Create some graphic text whose position is to be determined by the
 'TextPositioner tp
 gt = GraphicText.Make("Hello World", 0@0)

 tp.SetHAlign(#TEXTPOSITIONER_HALIGN_CENTER)
 tp.SetVAlign(#TEXTPOSITIONER_VALIGN_ON)
 tp.Calculate(g.GetShape, gt.GetExtent, 1, nil)

 gt.SetOrigin(tp.GetOrigin)
 gt.SetAngle(tp.GetAngle)
 l.GetGraphics.Add(gt)

Attributes

HAlign.The HAlign is how the text is aligned to the shape horizontally.

VAlign.The VAlign is how the text is aligned to the shape vertically.

Inherits From

Obj

Inherited By

PointTextPositioner
PolygonTextPositioner
PolyLineTextPositioner

Enumerations

TextPositionerHAlignEnum

TextPositionerVAlignEnum

Class Requests

Making TextPositioners

Make ( aShapeClass ) :  TextPositioner

Instance Requests

Manipulating a TextPositioner

Calculate ( aShape, aSize, aPtSize, aPoint )

Getting and Setting Attributes

GetAngle  :  Number

GetHAlign  :  TextPositionerHAlignEnum

GetOrigin  :  Point

GetSpacing  :  Number

GetVAlign  :  TextPositionerVAlignEnum

SetHAlign ( aTxPosHAlign )

SetVAlign ( aTxPosVAlign )

__________

See also

FTheme
Point
MultiPoint
GraphicText


Make (TextPositioner)
Make

Creates an instance of one of TextPositioner's subclasses. aShapeClass determines which subclass gets instantiated.

Syntax

TextPositioner.Make (aShapeClass)

Returns

TextPositioner


Calculate (TextPositioner)
Calculate

Calculates the position of a block of text of aSize on aShape. The results can be obtained with the GetOrigin and GetAngle requests.

aShape - The point, line, or polygon that the text should be positioned to.

aSize - The extent of the text to be positioned. aGraphicText.GetExtent will give an appropriate value.

aPtSize - This is only used by the point positioner. It allows the width of the point symbol to be specified so that the text can be positioned to the edge of the symbol. This should be the width or height in the same units as aSize. anFTheme.ReturnSymSize will give the correct symbol size for a given feature. Can be zero.

aPoint - Not used by point positioner. For other positioners, text is aligned to this point rather than the default point specified by positioner attributes. Can be NIL.

Syntax

aTextPositioner.Calculate (aShape, aSize, aPtSize, aPoint)


GetAngle (TextPositioner)
GetAngle

Gets the angle from aTextPositioner.

Syntax

aTextPositioner.GetAngle

Returns

Number


GetHAlign (TextPositioner)
GetHAlign

Gets the horizontal alignment from aTextPositioner.

Syntax

aTextPositioner.GetHAlign

Returns

TextPositionerHAlignEnum


GetOrigin (TextPositioner)
GetOrigin

Gets the origin from aTextPositioner.

Syntax

aTextPositioner.GetOrigin

Returns

Point


GetSpacing (TextPositioner)
GetSpacing

Gets the spacing from aTextPositioner.

Syntax

aTextPositioner.GetSpacing

Returns

Number


GetVAlign (TextPositioner)
GetVAlign

Gets the vertical alignment from aTextPositioner.

Syntax

aTextPositioner.GetVAlign

Returns

TextPositionerVAlignEnum


SetHAlign (TextPositioner)
SetHAlign

Sets the horizontal alignment for aTextPositioner to aTxPosHAlign.

Syntax

aTextPositioner.SetHAlign (aTxPosHAlign)


SetVAlign (TextPositioner)
SetVAlign

Sets the vertical alignment for aTextPositioner to aTxPosVAlign.

Syntax

aTextPositioner.SetVAlign (aTxPosVAlign)


TextPositionerHAlignEnum

 Horizontal alignment types for text.

#TEXTPOSITIONER_HALIGN_AFTER

Position text after shape so they do not overlap. Use only with PolyLineTextPositioners.

#TEXTPOSITIONER_HALIGN_BEFORE

Position text before shape so they do not overlap. Use only with PolyLineTextPositioners.

#TEXTPOSITIONER_HALIGN_CENTER

Position text horizontally centered on shape.

#TEXTPOSITIONER_HALIGN_LEFT

Position text even with left of shape so they do overlap.

#TEXTPOSITIONER_HALIGN_RIGHT

Position text even with right of shape so they do overlap.


TextPositionerVAlignEnum

 Vertical alignment types for text.

#TEXTPOSITIONER_VALIGN_ABOVE

Position text above shape so they do not overlap.

#TEXTPOSITIONER_VALIGN_BELOW

Position text below shape so they do not overlap.

#TEXTPOSITIONER_VALIGN_BOTTOM

Position text even with bottom of shape so they do overlap.

#TEXTPOSITIONER_VALIGN_ON

Position text vertically centered on shape.

#TEXTPOSITIONER_VALIGN_TOP

Position text even with top of shape so they do overlap.


PolyLineTextPositioner

 A PolyLineTextPositioner is used to position text strings relative to a PolyLine. The default alignments are TEXTPOSITIONER_HALIGN_CENTER and TEXTPOSITIONER_VALIGN_ABOVE.

Inherits From

TextPositioner

Class Requests

Making PolyLineTextPositioners

Make  :  PolyLineTextPositioner

Instance Requests

Manipulating a PolyLineTextPositioner

Calculate ( aPolyLine, aSize, aScale, aPoint )

__________

See also

PolyLine
GraphicText
PointTextPositioner
PolygonTextPositioner


Make (PolyLineTextPositioner)
Make

Makes a PolyLineTextPositioner.

Syntax

PolyLineTextPositioner.Make

Returns

PolyLineTextPositioner


Calculate (PolyLineTextPositioner)
Calculate

 Refer to the description for the TextPositioner class. aPoint is either the Nil object or a valid point. When it is Nil, Calculate determines horizontal alignment from the bounding box of aPolyLine. When aPoint is a valid point, horizontal alignment is relative to the x coordinate of aPoint.

Syntax

aPolyLineTextPositioner.Calculate (aPolyLine, aSize, aScale, aPoint)


PolygonTextPositioner

 A PolygonTextPositioner is used to position text strings relative to a polygon. The default alignments are TEXTPOSITIONER_HALIGN_CENTER and TEXTPOSITIONER_VALIGN_ON.

Inherits From

TextPositioner

Class Requests

Making PolygonTextPositioners

Make  :  PolygonTextPositioner

Instance Requests

Manipulating a PolygonTextPositioner

Calculate ( aPolygon, aSize, aScale, aPoint )

__________

See also

Polygon
GraphicText
PointTextPositioner
PolyLineTextPositioner


Make (PolygonTextPositioner)
Make

Makes a PolygonTextPositioner.

Syntax

PolygonTextPositioner.Make

Returns

PolygonTextPositioner


Calculate (PolygonTextPositioner)
Calculate

 Refer to the description for the class TextPositioner. aPoint is either the Nil object or a valid point. When it is nil, calculate determines an angle and origin relative to the center of the polygon. When it is a point, the origin is relative to that point.

Syntax

aPolygonTextPositioner.Calculate (aPolygon, aSize, aScale, aPoint)


PointTextPositioner

 A PointTextPositioner is used to position text strings relative to a point. By default, the text aligns to the right (TEXTPOSITIONER_HALIGN_RIGHT) and parallel with the point (TEXTPOSITIONER_VALIGN_ON).

Inherits From

TextPositioner

Class Requests

Making PointTextPositioners

Make  :  PointTextPositioner

Instance Requests

Manipulating a PointTextPositioner

Calculate ( aPoint, aSize, aPtSize, alternatePoint )

__________

See also

Point
GraphicText
PolyLineTextPositioner
PolygonTextPositioner


Make (PointTextPositioner)
Make

Makes a PointTextPositioner.

Syntax

PointTextPositioner.Make

Returns

PointTextPositioner


Calculate (PointTextPositioner)
Calculate

 Calculates the position of a block of text of aSize on aPoint. The results can be obtained with the GetOrigin and GetAngle requests. Refer to the description for the superclass TextPositioner.

aPoint - The point that the text should be positioned to.

aSize - The extent of the text to be positioned. aGraphicText.GetExtent will give an appropriate value.

aPtSize - aPtSize allows the width of the point symbol to be specified so that the text can be positioned to the edge of the symbol. This should be the width or height in the same units as aSize. anFTheme.ReturnSymSize will give the correct symbol size for a given feature. Can be zero.

alternatePoint - Not used by aPointTextPositioner. Should be NIL.

Syntax

aPointTextPositioner.Calculate (aPoint, aSize, aPtSize, alternatePoint)


TextSymbol

 A TextSymbol is graphic symbology used to draw text on a display. A TextSymbol includes a font and size.

Attributes

Font.The font used to draw the text.

Size.The size in points used to draw the text.

Inherits From

Symbol

Class Requests

Making TextSymbols

Make  :  TextSymbol

Instance Requests

Getting and Setting Attributes

CanSetSize  :  Boolean

GetFont  :  Font

GetSize  :  Number

GetType  :  SymbolEnum

SetFont ( aFont )

SetSize ( aSize )

UnHook

Generic Object Requests

= anotherObj :  Boolean

__________

See also

Font


Make (TextSymbol)
Make

Makes the default TextSymbol. It has color black, transparent background and outline colors, and is in 12-point normal Helvetica.

Syntax

TextSymbol.Make

Returns

TextSymbol


CanSetSize (TextSymbol)
CanSetSize

Returns TRUE if it is possible to set the size of aTextSymbol.

Syntax

aTextSymbol.CanSetSize

Returns

Boolean


GetFont (TextSymbol)
GetFont

Gets the font of aTextSymbol.

Syntax

aTextSymbol.GetFont

Returns

Font


GetSize (TextSymbol)
GetSize

Gets the size of aTextSymbol in points.

Syntax

aTextSymbol.GetSize

Returns

Number


GetType (TextSymbol)
GetType

Gets #SYM_TXSYM.

Syntax

aTextSymbol.GetType

Returns

SymbolEnum


SetFont (TextSymbol)
SetFont

Sets the font of aTextSymbol to aFont.

Syntax

aTextSymbol.SetFont (aFont)


SetSize (TextSymbol)
SetSize

Set the size of aTextSymbol to aSize in points.

Syntax

aTextSymbol.SetSize (aSize)


UnHook (TextSymbol)
UnHook

Unhook a symbols scale factor

Syntax

aTextSymbol.UnHook


= (TextSymbol)
=

Compares aTextSymbol and anotherObj.

Syntax

aTextSymbol = anotherObj

Returns

Boolean


Value

 Value is the abstract superclass for "immutable" values. An immutable value is one which has properties which are an intrinsic part of the value's identity. For example, the magnitude of a number cannot be changed without changing the number itself. Contrast this with other classes of objects, such as Views. A given view retains its unique identity even though its collection of themes may change over time.

Another way to think of values is that they are "read-only." For example, sending the Sin request to a number does not modify the number. Rather, it produces a new number which is the result of the function Sin applied to the receiver number.

In the ArcView object model, strings are treated as immutable objects, rather than as collections of characters.

Inherits From

Obj

Inherited By

Boolean
EnumerationElt
Nil
Number
String

Instance Requests

Value subclasses

> ( anotherValue ) :  Boolean

>= ( anotherValue ) :  Boolean

< ( anotherValue ) :  Boolean

<= ( anotherValue ) :  Boolean

__________

See also

Collection


> (Value)
>

Return TRUE when aValue is the greater of the two. They must be of the same class.

Syntax

aValue.> (anotherValue)

Returns

Boolean


>= (Value)
>=

Return TRUE when aValue is the greater or equal of the two. They must be of the same class.

Syntax

aValue.>= (anotherValue)

Returns

Boolean


< (Value)
<

Return TRUE when aValue is the lesser of the two. They must be of the same class.

Syntax

aValue.< (anotherValue)

Returns

Boolean


<= (Value)
<=

Return TRUE when aValue is the lesser or equal of the two. They must be of the same class.

Syntax

aValue.<= (anotherValue)

Returns

Boolean


Vector

 A Vector is a combination of three numbers used to represent either a planar (X-Y-Z) or spherical (longitude-latitude-elevation) point.

Attributes

X.X is a number representing the x-coordinate of the point. This is also sometimes used as a longitude.

Y.Y is a number representing the y-coordinate of the point. This is also sometimes used as a latitude.

Z.Z is a number representing the z-coordinate of the point. This is also sometimes used as a elevation.

Inherits From

Obj

Class Requests

Making Vectors

Difference ( aPointZ, anotherPointZ ) :  Vector

MakeNull  :  Vector

Make ( aDX, aDY, aDZ ) :  Vector

QueryDifference ( aPointZ, anotherPointZ, aVector ) :  Vector

Instance Requests

Converting a Vector

AsPoint  :  Point

AsPointZ  :  PointZ

Generic Object Requests

= anObj :  Boolean

AsString  :  String

Getting and Setting Attributes

GetAltitude  :  Number

GetAzimuth  :  Number

GetIntensity  :  Number

IsNull  :  Boolean

Manipulating a Vector

Rotate ( anAngle, anotherVector ) :  Vector

Relating two Vectors

* anotherVector :  Vector

+ anotherVector :  Vector

- anotherVector :  Vector

DotProduct ( anotherVector ) :  Number

QueryCrossProduct ( aVectorToCross, aReturnVector ) :  Vector

QueryMinus ( aVectorToSubtract, aReturnVector ) :  Vector

QueryPlus ( aVectorToAdd, aReturnVector ) :  Vector

Transforming a Vector

Normalize  :  Vector

Set ( dX, dY, dZ ) :  Vector

SetAltitude ( anAltitude ) :  Vector

SetAzimuth ( anAzimuth ) :  Vector

SetIntensity ( intensityValue ) :  Vector

__________

See also

PolyLine
Circle
Line
Oval
Polygon
Rect
MultiPoint
PointTextPositioner


Difference (Vector)
Difference

Returns a difference between aPointZ and anotherPointZ.

Syntax

Vector.Difference (aPointZ, anotherPointZ)

Returns

Vector


MakeNull (Vector)
MakeNull

Makes the NULL Vector.

Syntax

Vector.MakeNull

Returns

Vector


Make (Vector)
Make

Makes a Vector from aDX, aDY, and aDZ.

Syntax

Vector.Make (aDX, aDY, aDZ)

Returns

Vector


QueryDifference (Vector)
QueryDifference

Returns a difference between aPointZ and anotherPointZ in aVector.

Syntax

Vector.QueryDifference (aPointZ, anotherPointZ, aVector)

Returns

Vector


AsPoint (Vector)
AsPoint

Returns a Point representation of aVector.

Syntax

aVector.AsPoint

Returns

Point


AsPointZ (Vector)
AsPointZ

Returns a PointZ representation of aVector.

Syntax

aVector.AsPointZ

Returns

PointZ


= (Vector)
=

Returns TRUE when aVector is equal to anObj, otherwise returns FALSE.

Syntax

aVector = anObj

Returns

Boolean


AsString (Vector)
AsString

Returns the string "Vector: x y z".

Syntax

aVector.AsString

Returns

String


GetAltitude (Vector)
GetAltitude

Returns the altitude value of aVector in degrees. Values will range between -90.0 and 90.0. A negative value indicates a downward direction, a positive value upward.

Syntax

aVector.GetAltitude

Returns

Number


GetAzimuth (Vector)
GetAzimuth

Returns the azimuth value of aVector in degrees. Values will range between 0.0 and 360.0. A value of 0.0 indicates north, 90.0 east, 180.0 south, etc.

Syntax

aVector.GetAzimuth

Returns

Number


GetIntensity (Vector)
GetIntensity

Returns the absolute value of aVector.

Syntax

aVector.GetIntensity

Returns

Number


IsNull (Vector)
IsNull

Returns TRUE if aVector is NULL, otherwise returns FALSE.

Syntax

aVector.IsNull

Returns

Boolean


Rotate (Vector)
Rotate

Rotates aVector around anotherVector by anAngle.

Syntax

aVector.Rotate (anAngle, anotherVector)

Returns

Vector


* (Vector)
*

Returns a cross-product of aVector and anotherVector.

Syntax

aVector * anotherVector

Returns

Vector


+ (Vector)
+

Returns a sum of aVector and anotherVector.

Syntax

aVector + anotherVector

Returns

Vector


- (Vector)
-

Returns a difference between aVector and anotherVector.

Syntax

aVector - anotherVector

Returns

Vector


DotProduct (Vector)
DotProduct

Returns a dot-product of aVector and anotherVector.

Syntax

aVector.DotProduct (anotherVector)

Returns

Number


QueryCrossProduct (Vector)
QueryCrossProduct

Returns the cross product between aVector and aVectorToCross.

Syntax

aVector.QueryCrossProduct (aVectorToCross, aReturnVector)

Returns

Vector


QueryMinus (Vector)
QueryMinus

Returns a difference between aVector and aVectorToSubtract.

Syntax

aVector.QueryMinus (aVectorToSubtract, aReturnVector)

Returns

Vector


QueryPlus (Vector)
QueryPlus

Returns the addition between aVector and aVectorToAdd.

Syntax

aVector.QueryPlus (aVectorToAdd, aReturnVector)

Returns

Vector


Normalize (Vector)
Normalize

Sets the intensity of aVector to one.

Syntax

aVector.Normalize

Returns

Vector


Set (Vector)
Set

Sets the coordinates of aVector.

Syntax

aVector.Set (dX, dY, dZ)

Returns

Vector


SetAltitude (Vector)
SetAltitude

Sets the altitude of aVector to anAltitude. The value of anAltitude should be in degrees and fall between -90.0 and 90.0. Values outside this range will be reset to an appropriate angle within this range.

Syntax

aVector.SetAltitude (anAltitude)

Returns

Vector


SetAzimuth (Vector)
SetAzimuth

Sets the azimuth of aVector to anAzimuth. The value of anAzimuth should be in degrees and fall between 0.0 and 360.0 where 0.0 is north, 90.0 east, 180.0 south, etc. Values outside this range will be reset to an appropriate angle within this range.

Syntax

aVector.SetAzimuth (anAzimuth)

Returns

Vector


SetIntensity (Vector)
SetIntensity

Sets the intensity of aVector to intensityValue.

Syntax

aVector.SetIntensity (intensityValue)

Returns

Vector


View
Related Topics

 The View document provides a means to display and query a collection of user-defined Themes. For a complete discussion of the capabilities of the View document, refer to 'Views' in the on-line help.

Attributes

Display.Display is a MapDisplay on which the themes and graphics are drawn.

FindString.FindString is the string last used with the find request.

Graphics.Graphics is a GraphicList which contains the graphics drawn on top of the themes as well as those associated with a theme.

Projection.Projection is the projection used to convert all themes from decimal degrees to a planar screen.

Area Of Interest. Area Of Interest is the area of interest applied to all themes that support the concept. Setting the AOI for a theme defines the spatial extent of the theme.

Themes.Themes is a list of the themes contained in the views. Themes can be active or inactive, and visible or invisible. One theme can be the editable theme.

TOC.TOC is the Table Of Contents of the View. The width of the TOC can be set, as well as whether you can resize it or not.

Example

Besides the requests listed below, you can further manipulate a view by using requests which operate on a MapDisplay. For example, to set the scale of a view, use the Display request ZoomToScale.

 myView = av.GetActiveDoc
 myScale = 10000
 myView.GetDisplay.ZoomToScale(myScale)

Inherits From

Doc

Class Requests

Importing Views

Import ( aFileName ) :  View

Making Views

Make  :  View

MakeWithGUI ( aGUIName ) :  View

Controlling View Drawing

StopAllDraw

SuspendDraw ( flag )

Instance Requests

Changing the Structure of a View

AddTheme ( aTheme )

DeleteTheme ( aTheme )

FindTheme ( aName ) :  Theme

FindThemeByClass ( aName, aClass ) :  Theme

Controlling View Drawing

StopDraw

Drawing Shapes

Draw ( aDisplay )

Generic Document Requests

IsSymWinClient  :  Boolean

Object Management

Clone  :  View

Getting and Setting Attributes

GetActiveThemes  :  List

GetBackgroundSymbol  :  Symbol

GetCoordinatePrecision  :  Number

GetDisplay  :  Display

GetEditableTheme  :  Theme

GetFindString  :  String

GetGraphics  :  GraphicList

GetProjection  :  Prj

GetThemes  :  List

GetTOC  :  TOC

GetTOCWidth  :  Number

GetUnits  :  UnitsLinearEnum

GetVisibleThemes  :  List

IsTOCUnResizable  :  Boolean

RefreshScale

ReturnAOI  :  Rect

ReturnExtent  :  Rect

ReturnScale  :  Number

SetAOI ( anAOI )

SetBackgroundSymbol ( aFill )

SetCoordinatePrecision ( decimalPlaces )

SetCoordsDMS ( showDMS )

SetCoordsVisible ( isVisible )

SetEditableTheme ( aTheme ) :  Boolean

SetInteractiveSnapping ( anFTheme, aSnapRule )

SetInteractiveSnappingPersistent ( isPersistent )

SetProjection ( aPrj )

SetScaleVisible ( isVisible )

SetTOCUnResizable ( isUnResizable )

SetTOCWidth ( aWidth )

SetUnits ( aUnit )

Interacting with the Clipboard

CopyThemes

CutThemes

Paste

Interacting with the User (Apply Events Only)

MoveUserRect ( aRect ) :  Boolean

ReturnUserCircle  :  Circle

ReturnUserLine  :  Line

ReturnUserPolygon  :  Polygon

ReturnUserPolyLine  :  PolyLine

ReturnUserRect  :  Rect

Select

SelectToEdit

Setting State of Editing

GetSelectMode  :  GraphicsSelectModeEnum

SetSelectMode ( aGraphicsSelectMode )

Manipulating a View

Edit

Export  :  FileName

ExportToFile ( aFileName, aFormatString, aListOfParameters ) :  FileName

Find ( aString ) :  Boolean

GetAutoLabels ( aLabeler, unplaced )

GetOverlapLabelColor  :  Color

Invalidate

InvalidateTOC ( aTheme )

Label ( aPoint )

LabelThemes ( selectLabels )

Print

PrintDisplay

PrintTOC

SetOverlapLabelColor ( aColor )

__________

See also

MapDisplay
Theme
TOC
GraphicList


Import (View)
Import

Imports an ArcView 1.0 view file (.av).

Syntax

View.Import (aFileName)

Returns

View


Make (View)
Make

Makes a view.

Syntax

View.Make

Returns

View


MakeWithGUI (View)
MakeWithGUI

Makes a view and set its initial GUI to be the one named aGUIName.

Syntax

View.MakeWithGUI (aGUIName)

Returns

View


StopAllDraw (View)
StopAllDraw

Halts the redraw of all Views without clearing the display.

Syntax

View.StopAllDraw


SuspendDraw (View)
SuspendDraw

If flag is TRUE, suspends the drawing of all Views. Some operations, such as resizing the View, will cause the display to becomes invalid but the View will not be redrawn. Passing FALSE reinitiates normal View drawing behavior.

Syntax

View.SuspendDraw (flag)


AddTheme (View)
AddTheme

Adds aTheme to aView.

Syntax

aView.AddTheme (aTheme)


DeleteTheme (View)
DeleteTheme

Deletes aTheme from aView.

Syntax

aView.DeleteTheme (aTheme)


FindTheme (View)
FindTheme

Finds a theme called aName in aView.

Syntax

aView.FindTheme (aName)

Returns

Theme


FindThemeByClass (View)
FindThemeByClass

Finds a theme called aName belonging to class aClass in aView.

Syntax

aView.FindThemeByClass (aName, aClass)

Returns

Theme


StopDraw (View)
StopDraw

Halts the redraw of aView without clearing the display.

Syntax

aView.StopDraw


Draw (View)
Draw

Draws aView onto aDisplay.

Syntax

aView.Draw (aDisplay)


IsSymWinClient (View)
IsSymWinClient

If aView is a client of the SymWin, returns TRUE.

Syntax

aView.IsSymWinClient

Returns

Boolean


Clone (View)
Clone

Clones aView. The cloned View automatically gets added to the project.

   myProj = av.GetProject
   theView = myProj.FindDoc( "View1" )
   newView = theView.Clone
   newView.SetName ( "Clone of View1" )
   newView.GetWin.Open

Syntax

aView.Clone

Returns

View


GetActiveThemes (View)
GetActiveThemes

Gets the list of active themes in aView. Do not modify this list.

Syntax

aView.GetActiveThemes

Returns

List


GetBackgroundSymbol (View)
GetBackgroundSymbol

Gets the symbol which draws in the background of aView behind all the themes. aFill can be Nil, which draws nothing (white). This is the default.

Syntax

aView.GetBackgroundSymbol

Returns

Symbol


GetCoordinatePrecision (View)
GetCoordinatePrecision

Gets the number of decimal places used in the coordinate display in aView's tool bar. The coordinate display shows the position of the cursor in aView.

Syntax

aView.GetCoordinatePrecision

Returns

Number


GetDisplay (View)
GetDisplay

Gets the Display of aView.

Syntax

aView.GetDisplay

Returns

Display


GetEditableTheme (View)
GetEditableTheme

Gets the Editable theme of aView. If there is no currently editable theme, gets NIL.

Syntax

aView.GetEditableTheme

Returns

Theme


GetFindString (View)
GetFindString

Gets the last string used to find in aView.

Syntax

aView.GetFindString

Returns

String


GetGraphics (View)
GetGraphics

Gets the GraphicList associated with aView.

Syntax

aView.GetGraphics

Returns

GraphicList


GetProjection (View)
GetProjection

Gets the projection of aView.

Syntax

aView.GetProjection

Returns

Prj


GetThemes (View)
GetThemes

Gets the list of themes in aView. Do not modify this list.

Syntax

aView.GetThemes

Returns

List


GetTOC (View)
GetTOC

Gets the Table Of Contents (TOC) for aView. Note that aView's docWin must be open in order to successfully get aView's TOC.

Syntax

aView.GetTOC

Returns

TOC


GetTOCWidth (View)
GetTOCWidth

Gets the width of the Table of Contents of aView.

Syntax

aView.GetTOCWidth

Returns

Number


GetUnits (View)
GetUnits

Gets the Map Units of aView.

Syntax

aView.GetUnits

Returns

UnitsLinearEnum


GetVisibleThemes (View)
GetVisibleThemes

Gets the list of visible themes of aView. Do not modify this list.

Syntax

aView.GetVisibleThemes

Returns

List


IsTOCUnResizable (View)
IsTOCUnResizable

Returns TRUE if the Table of Contents cannot be resized, otherwise returns FALSE.

Syntax

aView.IsTOCUnResizable

Returns

Boolean


RefreshScale (View)
RefreshScale

Private Method to refresh scale widget.

Syntax

aView.RefreshScale


ReturnAOI (View)
ReturnAOI

Returns the Area Of Interest for aView.

Syntax

aView.ReturnAOI

Returns

Rect


ReturnExtent (View)
ReturnExtent

Returns the extent of aView in map units. The extent of aView is a rectangle of the correct aspect ratio which encloses the extents of all the themes and graphics in aView, plus 5%. The first coordinate pair is the origin of the extent, the second coordinate pair is the width and the height of the extent rectangle.

For an new empty view this returns a Null rect.

Syntax

aView.ReturnExtent

Returns

Rect


ReturnScale (View)
ReturnScale

Returns the scale of aView.

Syntax

aView.ReturnScale

Returns

Number


SetAOI (View)
SetAOI

Sets the Area Of Interest for aView to anAOI.

Syntax

aView.SetAOI (anAOI)


SetBackgroundSymbol (View)
SetBackgroundSymbol

Sets the symbol which draws in the background of aView behind all the themes. aFill can be Nil, which draws nothing (white). This is the default.

Remember to Invalidate aView, or you won't see the change.

 myView = av.GetActiveDoc
 myView.SetBackgroundSymbol(RasterFill.Make) 'Set background to black
 myView.Invalidate

Syntax

aView.SetBackgroundSymbol (aFill)


SetCoordinatePrecision (View)
SetCoordinatePrecision

Sets the number of decimal places used in the coordinate display in aView's tool bar. The coordinate display shows the position of the cursor in aView.

At a minimum, ArcView will always display at least one decimal place (in other words, setting coordinate precision to 0 will still leave one significant digit). There is no maximum number you can use; however, you will only be able to see so many digits due to the amount of space allotted the coordinate display on aView's tool bar. The amount of space cannot be altered.

Syntax

aView.SetCoordinatePrecision (decimalPlaces)


SetCoordsDMS (View)
SetCoordsDMS

If showDMS is TRUE, sets the view's coordinate display to show degrees, minutes, and seconds. If showDMS is FALSE, the view's coordinate display will show decimal output.

When showDMS is TRUE:   aView.SetCoordinatePrecision has no affect.
   DMS coordinates are shown even if aView is projected.
   Arrows to the right of the coordinate display adjust based on the cursor position.

Syntax

aView.SetCoordsDMS (showDMS)


SetCoordsVisible (View)
SetCoordsVisible

Shows or hides the coordinate display on aView's toolbar. If isVisible is TRUE the coordinate display is visible.

Syntax

aView.SetCoordsVisible (isVisible)


SetEditableTheme (View)
SetEditableTheme

Sets the editable theme of aView to aTheme. Returns TRUE if successful, otherwise returns FALSE. The FTab of aTheme is automatically being edited with recovery so any edits done to aTheme can be undone, reapplied, or cancelled. To make aTheme uneditable, use anFTheme.StopEditing(doSave) to save or discard the edits and then aView.SetEditableTheme(NIL).

Syntax

aView.SetEditableTheme (aTheme)

Returns

Boolean


SetInteractiveSnapping (View)
SetInteractiveSnapping

Sets interactive snapping for the view's display to snap to features in anFTheme using aSnapRule.

Syntax

aView.SetInteractiveSnapping (anFTheme, aSnapRule)


SetInteractiveSnappingPersistent (View)
SetInteractiveSnappingPersistent

If a snapping rule is to be applied to the next point only, then IsPersistent is FALSE. If snapping is to remain in effect, IsPersistent is TRUE. The default is FALSE.

Syntax

aView.SetInteractiveSnappingPersistent (isPersistent)


SetProjection (View)
SetProjection

Sets the projection of aView to aPrj.

Syntax

aView.SetProjection (aPrj)


SetScaleVisible (View)
SetScaleVisible

Shows or hides the scale display on aView's toolbar. If isVisible is TRUE the scale display is visible.

Syntax

aView.SetScaleVisible (isVisible)


SetTOCUnResizable (View)
SetTOCUnResizable

Sets whether the Table of Contents of aView is unresizable to isUnResizable.

Syntax

aView.SetTOCUnResizable (isUnResizable)


SetTOCWidth (View)
SetTOCWidth

Sets the width of the Table of Contents of aView to aWidth.

Syntax

aView.SetTOCWidth (aWidth)


SetUnits (View)
SetUnits

Sets the Map Units of aView to aUnit.

Syntax

aView.SetUnits (aUnit)


CopyThemes (View)
CopyThemes

Copies the active themes of aView to the clipboard.

Syntax

aView.CopyThemes


CutThemes (View)
CutThemes

Cuts the active themes of aView to the clipboard.

Syntax

aView.CutThemes


Paste (View)
Paste

Pastes the contents of the clipboard into aView.

Syntax

aView.Paste


MoveUserRect (View)
MoveUserRect

Allows the user to move aRect on aView. Returns TRUE if aRect is moved, otherwise returns FALSE.

Syntax

aView.MoveUserRect (aRect)

Returns

Boolean


ReturnUserCircle (View)
ReturnUserCircle

Gets a Circle from the user on aView and sends information about the shape to the ArcView status area.

Syntax

aView.ReturnUserCircle

Returns

Circle


ReturnUserLine (View)
ReturnUserLine

Gets a Line from the user on aView and sends information about the shape to the ArcView status area.

Syntax

aView.ReturnUserLine

Returns

Line


ReturnUserPolygon (View)
ReturnUserPolygon

Gets a Polygon from the user on aView and sends information about the shape to the ArcView status area.

Syntax

aView.ReturnUserPolygon

Returns

Polygon


ReturnUserPolyLine (View)
ReturnUserPolyLine

Gets a PolyLine from the user on aView and sends information about the shape to the ArcView status area.

Syntax

aView.ReturnUserPolyLine

Returns

PolyLine


ReturnUserRect (View)
ReturnUserRect

Gets a Rectangle from the user on aView and sends information about the shape to the ArcView status area.

Syntax

aView.ReturnUserRect

Returns

Rect


Select (View)
Select

Allows the user to select or deselect graphics on aView.

Syntax

aView.Select


SelectToEdit (View)
SelectToEdit

Allows the user to select graphics on aView with vertex handles drawn for adding, deleting or moving vertices.

Syntax

aView.SelectToEdit


GetSelectMode (View)
GetSelectMode

Returns the GraphicsSelectMode for selecting graphics in aView.

Syntax

aView.GetSelectMode

Returns

GraphicsSelectModeEnum


SetSelectMode (View)
SetSelectMode

Sets the select mode for selecting graphics in aView to aGraphicsSelectMode.

Syntax

aView.SetSelectMode (aGraphicsSelectMode)


Edit (View)
Edit

Shows the View Properties dialog box and allows you to edit the properties of aView.

Syntax

aView.Edit


Export (View)
Export

Exports the display of aView to a file. aView's window must be open before you can use this request. Returns the export file name.

Syntax

aView.Export

Returns

FileName


ExportToFile (View)
ExportToFile

Exports the display of aView to a file specified by aFileName in the format specified by aFormatString, which must be a valid format returned by aDisplay.ReturnExportFormats. A ListOfParameters is a list containing options offered by each of the export formats. For example, all export formats containing options offer a resolution, so aList containing a number will export the file at the resolution specified. To see the different choices click the "options" button in the export dialogue for each of the export types. aView's window must be open before you can use this request.

Syntax

aView.ExportToFile (aFileName, aFormatString, aListOfParameters)

Returns

FileName


Find (View)
Find

Finds a feature with attribute data containing aString. Returns TRUE if a feature is found, otherwise returns FALSE.

Find continues through the list of attribute records with each iteration until FALSE is returned, then it starts over from the beginning of the list.

Also see anFTheme.FindStr.

Syntax

aView.Find (aString)

Returns

Boolean


GetAutoLabels (View)
GetAutoLabels

Gets the label positions from aLabeler and set them into view's GList. The unplaced flag indicates whether you want to return the overlapping and ill-fitting labels (TRUE) which will be shown in the overlapping labels text color (green by default), or to ignore the overlapping and ill-fitting labels (FALSE).

Syntax

aView.GetAutoLabels (aLabeler, unplaced)


GetOverlapLabelColor (View)
GetOverlapLabelColor

Gets the overlapping labels color.

Syntax

aView.GetOverlapLabelColor

Returns

Color


Invalidate (View)
Invalidate

Invalidates the Display of aView. Invalidate causes the display to be redrawn.

Syntax

aView.Invalidate


InvalidateTOC (View)
InvalidateTOC

Invalidates the Table of Contents of aView for aTheme and any themes above it. Pass NIL to invalidate all themes.

Syntax

aView.InvalidateTOC (aTheme)


Label (View)
Label

Places a label at aPoint.

Syntax

aView.Label (aPoint)


LabelThemes (View)
LabelThemes

Places labels on the visible active themes. If any themes have selected features, only those features are labeled. When selectLabels is TRUE, the added labels become the selected set of graphics.

Syntax

aView.LabelThemes (selectLabels)


Print (View)
Print

Prints aView to the printer.

Syntax

aView.Print


PrintDisplay (View)
PrintDisplay

Prints the display of aView to the printer.

Syntax

aView.PrintDisplay


PrintTOC (View)
PrintTOC

Prints the Table Of Contents (TOC) of aView to the printer.

Syntax

aView.PrintTOC


SetOverlapLabelColor (View)
SetOverlapLabelColor

Sets the overlapping labels color.

Syntax

aView.SetOverlapLabelColor (aColor)


VectorPenArrow

 A VectorPenArw draws a line of arrows. For this symbol, size is the length of the perpendicular from the line.

Inherits From

VectorPen

Class Requests

VectorPenArw

Make  :  VectorPenArrow

Instance Requests

VlnArw

SetArrowLen ( aArrowLen )

__________

See also

VectorPenDiamond
VectorPenHollow
VectorPenHash
VectorPenScallop
VectorPenScrub
VectorPenSlant
VectorPenZigZag
VectorPenDot


Make (VectorPenArrow)
Make

Makes a VectorPenArw symbol.

Syntax

VectorPenArw.Make

Returns

VectorPenArrow


SetArrowLen (VectorPenArrow)
SetArrowLen

Set the length of the arrow

Syntax

aVlnArw.SetArrowLen (aArrowLen)


VectorPenDiamond

 A VectorPenDiamond symbol draws end-to-end diamond symbols. Interval is half the length of the diamond and size is the width of the symbol. For example, a diamond with interval 9 and size 9 is 1/4 inch long and 1/8 inch wide. (9 points is half the length of the diamond; the whole diamond is 18 points, 18 points / 72 points per inch = 1/4 inch.)

Inherits From

VectorPen

Class Requests

VectorPenDiamond

Make  :  VectorPenDiamond

__________

See also

VectorPenDot
VectorPenHollow
VectorPenHash
VectorPenScallop
VectorPenScrub
VectorPenSlant
VectorPenZigZag


Make (VectorPenDiamond)
Make

Creates a VectorPenDiamond symbol.

Syntax

VectorPenDiamond.Make

Returns

VectorPenDiamond


VectorPenDot

 A VectorPenDot draws a line of dots. For this symbol, AltSize is the size of the hollow in the dot. The PenWidth is the difference between the Size and the AltSize or 1 if the AltSize equals or exceeds the Size.

Inherits From

VectorPen

Class Requests

VectorPenDot

Make  :  VectorPenDot

__________

See also

VectorPenDiamond
VectorPenHollow
VectorPenHash
VectorPenScallop
VectorPenScrub
VectorPenSlant
VectorPenZigZag


Make (VectorPenDot)
Make

Makes a VectorPenDot symbol.

Syntax

VectorPenDot.Make

Returns

VectorPenDot


VectorPenHollow

 A VectorPenHollow symbol draws two parallel lines with a hollow. AltSize is the size of the hollow in points. Interval has no meaning for this class.

Inherits From

VectorPen

Class Requests

VectorPenHollow

Make  :  VectorPenHollow

__________

See also

VectorPenDiamond
VectorPenDot
VectorPenHash
VectorPenScallop
VectorPenScrub
VectorPenSlant
VectorPenZigZag


Make (VectorPenHollow)
Make

Creates a VectorPenHollow symbol.

Syntax

VectorPenHollow.Make

Returns

VectorPenHollow


VectorPenHash

 A VectorPenHash symbol draws a line of hash lines. Use the Altsize property to set the width of each hash.

  ||||||||||||||||||||||||||||||||||||||||||||||

Inherits From

VectorPen

Class Requests

VectorPenHash

Make  :  VectorPenHash

__________

See also

VectorPenDiamond
VectorPenDot
VectorPenHollow
VectorPenScallop
VectorPenScrub
VectorPenSlant
VectorPenZigZag


Make (VectorPenHash)
Make

Creates a VectorPenHash symbol.

Syntax

VectorPenHash.Make

Returns

VectorPenHash


VectorPenMarker
Example

 A VectorPenMarker symbol draws aMarker symbol along a line's path at a specified Interval.

Attributes

Marker Sets the Marker symbol that will be used by aVectorPenMarker. Any BasicMarker symbol may be used. To simulate the effects of using a composite marker, you can stack more than one VectorPenMarkers into a CompositeArcInfoPen Symbol. Note, if you have imported LineType Markers from an ARC/INFO lineset where the markers reference IGL or PostScript fonts, you can use the SetMarker request to replace the default symbol that ArcView assigned with a more appropriate marker symbol from a TrueType font.

Size. Sets the overall width of the VectorPenMarker Symbol. This is setting the size of the marker symbol, so it is not necessary to set the size of aMarker prior to using it in a VectorPenMarker.

Template. Sets aString that contains a stream of integer draw or skip intervals. For Example, "12" means draw one and then skip two, whereas "021" a leading zero means the reverse or skip two and draw one.

Interval. Sets an additional distance to the interval of aMarker. Initially, the Interval is set to zero, which means nothing is added to the width of the marker symbol so that if it was repeated with no template, there would be no space between the marker symbols (This assumes that the right side bearing of font character you are using as a marker symbol abuts the rightmost part of the marker symbols geometry. Otherwise, ArcView assumes that the character box width defined by the right side bearing is the initial width of the marker, irrespective of the width of of the drawn symbol). The values you can supply here range from -0.99 to infinity. A value of one means to skip one full length of the marker symbol, and a value of -0.5 means to draw one marker, then go back half its distance and draw another.

MarkLayerX. Sets an offset along the line for the Marker symbol. The values here represent a percentage of the Marker symbol's width, so a value 1.00 is 100 percent of the width to offset in the positive X direction or to the right. Whereas a value of -1.00 represents an offset of 100 percent in the negative X direction, or to the left.

MarkLayerY. Sets an offset perpendicular to the line for the marker symbol. The values here represent a percentage of the Marker symbol's height, so a value 1.00 is 100 percent of the height of the marker in the positive Y direction, or up. Whereas a value of -1.00 represents 100 percent of the marker's height in the negative Y direction, or down.

AltSize. Sets an offset perpendicular to the line for the marker symbol. This is the same as setting just the MarkLayerY, but if the two are used together on the same symbol, the effect will be cumulative.

Inherits From

VectorPen

Class Requests

VectorPenMarker

Make ( aMarker ) :  VectorPenMarker

Instance Requests

VLnMark

Equals ( anotherVectorPenMarker ) :  Boolean

GetMarkLayerX  :  Number

GetMarkLayerY  :  Number

GetTemplate  :  String

ReturnMarker  :  BasicMarker

SetMarker ( aMarkerSymbol ) :  Void

SetMarkLayer ( Xoffset, Yoffset )

SetSize ( aSizeInPoints )

SetTemplate ( Str )

__________

See also

VectorPenDiamond
VectorPenDot
VectorPenHollow
VectorPenHash
VectorPenMarker
VectorPenScrub
VectorPenSlant
VectorPenZigZag


Make (VectorPenMarker)
Make

Creates a VectorPenMarker symbol using aMarker symbol object. aMarker must be a BasicMarker.

Syntax

VectorPenMarker.Make (aMarker)

Returns

VectorPenMarker


Equals (VectorPenMarker)
Equals

Return True if two VectorPenMarkers are equal.

Syntax

aVectorPenMarker.Equals (anotherVectorPenMarker)

Returns

Boolean


GetMarkLayerX (VectorPenMarker)
GetMarkLayerX

Gets the MarkLayer X value of aVectorPenMarker.

Syntax

aVectorPenMarker.GetMarkLayerX

Returns

Number


GetMarkLayerY (VectorPenMarker)
GetMarkLayerY

Gets the MarkLayer Y value of aVectorPenMarker.

Syntax

aVectorPenMarker.GetMarkLayerY

Returns

Number


GetTemplate (VectorPenMarker)
GetTemplate

Gets the Template String. A template string defines a pattern for aVectorPenMarker. The Template string can be up to 16 characters that define marks and gaps. Marks are the number of Marker symbols to be drawn in succession. Gaps are the number of spaces that are the same width as the marker symbol to be skipped. The length of the mark or gap is dictated by the width of the marker symbol multiplied by the value of the Interval property.

For example, a template of "1221" produces a line that looks like this:

Values for the template must be between 0 and 9. If a template has a value of "0" then a simple straight line will be drawn. If a template begines with a "0" and is followed by other numbers, the initial mark will have a length of 0 and the result will be a symbol that starts with a gap.

Syntax

aVectorPenMarker.GetTemplate

Returns

String


ReturnMarker (VectorPenMarker)
ReturnMarker

Returns a clone of the Marker symbol used by aVectorPenMarker.

Syntax

aVectorPenMarker.ReturnMarker

Returns

BasicMarker


SetMarker (VectorPenMarker)
SetMarker

Set the Marker symbol used by aVectorPenMarker.

Syntax

aVectorPenMarker.SetMarker (aMarkerSymbol)

Returns

Void


SetMarkLayer (VectorPenMarker)
SetMarkLayer

Sets the MarkLayer values for aVectorPenMarker. These values offset the drawing of the Marker symbol in aVectorPenMarker. A value of 1 means to offset in either the X or Y direction the full width or height of the marker, and a value of 2 means to offset by twice the height of that marker symbol. Positive Xoffset values mean move to the right, while negative Xoffset values mean move to the left. Postive Yoffset values mean to move upward, while negative Yoffset values mean to move downward.

Syntax

aVectorPenMarker.SetMarkLayer (Xoffset, Yoffset)


SetSize (VectorPenMarker)
SetSize

Sets the Size of the Marker symbols used in aVectorPenMarker to aSizeInPoints.

Syntax

aVectorPenMarker.SetSize (aSizeInPoints)


SetTemplate (VectorPenMarker)
SetTemplate

Sets the Template String. A template string defines a pattern for aVectorPenMarker. The Template string can by up to 16 characters that define marks and gaps. Marks are the number of Marker symbols to be drawn in succession. Gaps are the number of spaces that are the same width as the marker symbol to be skipped. The length of the mark or gap is dictated by the width of the marker symbol multiplied by the value of the Interval property.

For example, a template of "1221" produces a line that looks like this:

_ _ _ _ _ _ _

Values for the template must be between 0 and 9. If a template has a value of "0" then a simple straight line will be drawn. If a template begines with a "0" and is followed by other numbers, the initial mark will have a length of 0 and the result will be a symbol that starts with a gap.

Syntax

aVectorPenMarker.SetTemplate (Str)


VectorPenScallop

 A VectorPenScallop symbol draws a scalloped line. Interval is half the length of the scallop. Size is the width of the symbol.

Inherits From

VectorPen

Class Requests

VectorPenScallop

Make  :  VectorPenScallop

__________

See also

VectorPenDiamond
VectorPenDot
VectorPenHollow
VectorPenHash
VectorPenScrub
VectorPenSlant
VectorPenZigZag


Make (VectorPenScallop)
Make

Creates a VectorPenScallop symbol.

Syntax

VectorPenScallop.Make

Returns

VectorPenScallop


VectorPenScrub

 A VectorPenScrub symbol draws a line of scrub symbols. The Interval is half the distance between two scrubs. For example, an Interval of 9 positions the scrubs 1/4 inch apart. (9 points is half the distance between the scrubs; the total distance is 18 points, 18 points / 72 points per inch = 1/4 inch.)

Inherits From

VectorPen

Class Requests

VectorPenScrub

Make  :  VectorPenScrub

__________

See also

VectorPenDiamond
VectorPenDot
VectorPenHollow
VectorPenHash
VectorPenScallop
VectorPenSlant
VectorPenZigZag


Make (VectorPenScrub)
Make

Creates a VectorPenScrub symbol.

Syntax

VectorPenScrub.Make

Returns

VectorPenScrub


VectorPenSlant

 A VectorPenSlant symbol draws slanted lines. The slant angle depends upon the Interval and the Size. The Interval is the distance between two slant lines. The Size is the total width of the symbol.

Inherits From

VectorPen

Class Requests

VectorPenSlant

Make  :  VectorPenSlant

__________

See also

VectorPenDiamond
VectorPenDot
VectorPenHollow
VectorPenHash
VectorPenScallop
VectorPenScrub
VectorPenZigZag


Make (VectorPenSlant)
Make

Creates a VectorPenSlant symbol.

Syntax

VectorPenSlant.Make

Returns

VectorPenSlant


VectorPen

 VectorPen is an abstract class that defines vector line symbols. Subclasses of VectorPen provide support for various pen styles.

Attributes

VectorPen's subclasses interpret some of these attributes in different ways. See the subclass documentation for alternative uses.

Size. Size is the width of the line symbol in points. A point is 1/72 of an inch.

AltSize. AltSize specifies the pen size or hollow size in points.

Interval. An interval is the spacing (in points) between line elements such as dashes or dots. Or it is half the length of continuous line symbols such as diamonds and scallops.

Flip. Flip is a boolean value that inverts (top to bottom) the line symbol. Flip applies only to VectorPenZigZag, VectorPenScrub, VectorPenSlant and VectorPenScallop.

Inherits From

Pen

Inherited By

VectorPenArrow
VectorPenDiamond
VectorPenDot
VectorPenHash
VectorPenHollow
VectorPenMarker
VectorPenScallop
VectorPenScrub
VectorPenSlant
VectorPenVertexMarker
VectorPenZigZag

Instance Requests

Generic Object Requests

= anObject :  Boolean

Getting and Setting VectorPen Attributes

CanSetSize  :  Boolean

GetAltSize  :  Number

GetFlip  :  Boolean

GetInterval  :  Number

GetSize  :  Number

SetAltSize ( aSizeInPoints )

SetFlip ( isFlipped )

SetInterval ( aSizeInPoints )

SetSize ( aSizeInPoints )

__________

See also

BasicPen
CompositePen


= (VectorPen)
=

Compares aVectorPen and anObject.

Syntax

aVectorPen = anObject

Returns

Boolean


CanSetSize (VectorPen)
CanSetSize

Returns TRUE if it is possible to set the size of aVectorPen.

Syntax

aVectorPen.CanSetSize

Returns

Boolean


GetAltSize (VectorPen)
GetAltSize

Gets the AltSize of aVectorPen.

Syntax

aVectorPen.GetAltSize

Returns

Number


GetFlip (VectorPen)
GetFlip

Gets the Flip state of aVectorPen.

Syntax

aVectorPen.GetFlip

Returns

Boolean


GetInterval (VectorPen)
GetInterval

Gets the Interval of aVectorPen.

Syntax

aVectorPen.GetInterval

Returns

Number


GetSize (VectorPen)
GetSize

Gets the Size of aVectorPen.

Syntax

aVectorPen.GetSize

Returns

Number


SetAltSize (VectorPen)
SetAltSize

Sets aVectorPen's AltSize to aSizeInPoints.

Syntax

aVectorPen.SetAltSize (aSizeInPoints)


SetFlip (VectorPen)
SetFlip

Sets aVectorPen's Flip state to isFlipped.

Syntax

aVectorPen.SetFlip (isFlipped)


SetInterval (VectorPen)
SetInterval

Sets aVectorPen's Interval to aSizeInPoints.

Syntax

aVectorPen.SetInterval (aSizeInPoints)


SetSize (VectorPen)
SetSize

Sets the Size of aVectorPen to aSizeInPoints.

Syntax

aVectorPen.SetSize (aSizeInPoints)


VectorPenVertexMarker
Example

 A VectorPenVertexMarker symbol draws a marker at the end points of a line path. AltSize is the marker size.

Inherits From

VectorPen

Class Requests

VectorPenVertexMarker

Make ( aMarker ) :  VectorPenVertexMarker

Instance Requests

VLnVMrk

ReturnMarker  :  BasicMarker

SetMarker ( aBasicMarker ) :  Void

__________

See also

VectorPenDiamond
VectorPenDot
VectorPenHollow
VectorPenHash
VectorPenVertexMarker
VectorPenScrub
VectorPenSlant
VectorPenZigZag


Make (VectorPenVertexMarker)
Make

Creates a VectorPenVertexMarker symbol using aMarker symbol.

Syntax

VectorPenVertexMarker.Make (aMarker)

Returns

VectorPenVertexMarker


ReturnMarker (VectorPenVertexMarker)
ReturnMarker

Return the Marker used by aVectorPenVertexMarker

Syntax

aVectorPenVertexMarker.ReturnMarker

Returns

BasicMarker


SetMarker (VectorPenVertexMarker)
SetMarker

Sets the BasicMarker used by aVectorPenVertexMarker

Syntax

aVectorPenVertexMarker.SetMarker (aBasicMarker)

Returns

Void


VectorPenZigZag

 A VectorPenZigZag symbol draws a ZigZag line. The interval attribute is half the length of the ZigZag. For example, with interval 9, a Zig or a Zag is a 1/4 inch long. (9 points is half the length of the ZigZag; the whole ZigZag is 18 points, 18 points / 72 points per inch = 1/4 inch.)

Inherits From

VectorPen

Class Requests

VectorPenZigZag

Make  :  VectorPenZigZag

__________

See also

VectorPenDiamond
VectorPenDot
VectorPenHollow
VectorPenHash
VectorPenScallop
VectorPenScrub
VectorPenSlant


Make (VectorPenZigZag)
Make

Creates a VectorPenZigZag symbol.

Syntax

VectorPenZigZag.Make

Returns

VectorPenZigZag


VectorFill

 Instances of VectorFill are used to symbolize polygons. The symbolization process uses a different approach than that used by basic shade symbols which use stipples as raster templates for polygon filling. VectorFills symbolize polygons by stroking their interiors with a pen. These fill operations are much slower than raster operations, but may yield more appropriate results for output on a pen plotter. A variety of vector fill styles is available, with the attributes described below defining the final appearance of a VectorFill symbol.

Attributes

Angle.The Angle is the angle at which the lines are drawn.

Height.- The Height is the vertical height of each line. Note: If the height is set to zero, then ArcView will assume that the pensize is one and will stroke each hatch once.

PenSize.The PenSize is the size of the pen used to draw the lines. Note that this can be less than Height. If so, multiple strokes will be performed for each line. If PenSize is larger than Height, the actual height of the line will be PenSize.

Style.The Style is one of Hatch, Rectangle, Dot, RandDot, or CrossHatch.

Width.- The Width is the horizontal width of each line segment for a broken line.

XOffset.- The XOffset is the starting horizontal offset for the filling algorithm.

XSeparation.- The XSeparation is the horizontal separation (spacing) between line segments for a broken line.

YOffset.- The YOffset is the starting vertical offset for the filling algorithm.

YSeparation.- The YSeparation is the vertical separation (spacing) between line segments.

Inherits From

Fill

Enumerations

VectorFillStyleEnum

Class Requests

Making a VectorFills

Make  :  VectorFill

Instance Requests

Generic Object Requests

= anObject :  Boolean

Using Dot Density Symbols

GetDotDensity  :  Number

GetDotSymbol  :  Marker

SetDotDensity ( aNumber )

SetDotSymbol ( aMarkerSymbol )

Getting and Setting Attributes

Copy ( aSymbol )

GetAngle  :  Number

GetBgColor  :  Color

GetHeight  :  Number

GetPenSize  :  Number

GetStyle  :  VectorFillStyleEnum

GetWidth  :  Number

GetXOffset  :  Number

GetXSeparation  :  Number

GetYOffset  :  Number

GetYSeparation  :  Number

SetAngle ( anAngle )

SetBgColor ( aColor )

SetHeight ( aHeight )

SetPenSize ( aSize )

SetStyle ( aVectorFillStyle )

SetWidth ( aWidth )

SetXOffset ( anOffset )

SetXSeparation ( aSeparation )

SetYOffset ( anOffset )

SetYSeparation ( aSeparation )

__________

See also

RasterFill
CompositeFill


Make (VectorFill)
Make

Makes a standard VectorFill.

Syntax

VectorFill.Make

Returns

VectorFill


= (VectorFill)
=

Compares aVectorFill and anObject.

Syntax

aVectorFill = anObject

Returns

Boolean


GetDotDensity (VectorFill)
GetDotDensity

Get number of dots to draw in poly.

Syntax

aVectorFill.GetDotDensity

Returns

Number


GetDotSymbol (VectorFill)
GetDotSymbol

Get marker symbol with which to draw dots.

Syntax

aVectorFill.GetDotSymbol

Returns

Marker


SetDotDensity (VectorFill)
SetDotDensity

Set number of dots to draw in poly.

Syntax

aVectorFill.SetDotDensity (aNumber)


SetDotSymbol (VectorFill)
SetDotSymbol

Set marker symbol with which to draw dots.

Syntax

aVectorFill.SetDotSymbol (aMarkerSymbol)


Copy (VectorFill)
Copy

Copies the attributes of aSymbol into aVectorFill.

Syntax

aVectorFill.Copy (aSymbol)


GetAngle (VectorFill)
GetAngle

Gets the angle of aVectorFill.

Syntax

aVectorFill.GetAngle

Returns

Number


GetBgColor (VectorFill)
GetBgColor

Gets the background color.

Syntax

aVectorFill.GetBgColor

Returns

Color


GetHeight (VectorFill)
GetHeight

Gets the height of aVectorFill.

Syntax

aVectorFill.GetHeight

Returns

Number


GetPenSize (VectorFill)
GetPenSize

Gets the pen size of aVectorFill.

Syntax

aVectorFill.GetPenSize

Returns

Number


GetStyle (VectorFill)
GetStyle

Gets the style of aVectorFill.

Syntax

aVectorFill.GetStyle

Returns

VectorFillStyleEnum


GetWidth (VectorFill)
GetWidth

Gets the width of aVectorFill.

Syntax

aVectorFill.GetWidth

Returns

Number


GetXOffset (VectorFill)
GetXOffset

Gets the x offset of aVectorFill.

Syntax

aVectorFill.GetXOffset

Returns

Number


GetXSeparation (VectorFill)
GetXSeparation

Gets the x separation of aVectorFill.

Syntax

aVectorFill.GetXSeparation

Returns

Number


GetYOffset (VectorFill)
GetYOffset

Gets the y offset of aVectorFill.

Syntax

aVectorFill.GetYOffset

Returns

Number


GetYSeparation (VectorFill)
GetYSeparation

Gets the y separation of aVectorFill.

Syntax

aVectorFill.GetYSeparation

Returns

Number


SetAngle (VectorFill)
SetAngle

Sets the angle of aVectorFill to anAngle.

Syntax

aVectorFill.SetAngle (anAngle)


SetBgColor (VectorFill)
SetBgColor

Sets the background color.

Syntax

aVectorFill.SetBgColor (aColor)


SetHeight (VectorFill)
SetHeight

Sets the height of aVectorFill to aHeight. aHeight is in points. (1/72 of an inch)

Syntax

aVectorFill.SetHeight (aHeight)


SetPenSize (VectorFill)
SetPenSize

Sets the pen size of aVectorFill to aSize. aSize is in points. (1/72 of an inch)

Syntax

aVectorFill.SetPenSize (aSize)


SetStyle (VectorFill)
SetStyle

Sets the style of aVectorFill to aVectorFillStyle.

Syntax

aVectorFill.SetStyle (aVectorFillStyle)


SetWidth (VectorFill)
SetWidth

Sets the width of aVectorFill to aWidth. aWidth is in points. (1/72 of an inch)

Syntax

aVectorFill.SetWidth (aWidth)


SetXOffset (VectorFill)
SetXOffset

Sets the x offset of aVectorFill to anOffset.

Syntax

aVectorFill.SetXOffset (anOffset)


SetXSeparation (VectorFill)
SetXSeparation

Sets the x separation of aVectorFill to aSeparation.

Syntax

aVectorFill.SetXSeparation (aSeparation)


SetYOffset (VectorFill)
SetYOffset

Sets the y offset of aVectorFill to anOffset.

Syntax

aVectorFill.SetYOffset (anOffset)


SetYSeparation (VectorFill)
SetYSeparation

Sets the y separation of aVectorFill to aSeparation.

Syntax

aVectorFill.SetYSeparation (aSeparation)


VectorFillStyleEnum

 These types are defined to indicate the style of vector shade symbol.

#VECTORFILL_STYLE_CROSSHATCH

Cross hatching

#VECTORFILL_STYLE_DOT

Dotted line

#VECTORFILL_STYLE_DOTDENSITY

Random dots (for dot density mapping)

#VECTORFILL_STYLE_HATCH

Single hatching

#VECTORFILL_STYLE_RANDDOT

Dotted line with random displacement

#VECTORFILL_STYLE_RECTANGLE

Filled rectangles


VTab

 A virtual table (VTab) manages a tabular view of multiple tabular data sources. A VTab underlies three of ArcView's documents - the Table document is a viewer for a VTab in the form of a grid, the Chart document is a viewer for the numeric values in a VTab in the form of a graph, and the View document's feature themes show the shape values in a VTab (FTab) with legends generated from non-shape values in the form of a map.

The VTab provides support for many of the features found on the user interfaces of the three documents such as join and link, add and export, query, summarize, theme definition queries, etc.

You cannot access all records in a virtual table by simply incrementing a record number counter since record numbers are not guaranteed to be 0, 1, 2, 3, etc. Instead, use the for each construct. For example,

  for each record in aVTab
    v = aVTab.ReturnValue(aField, record)
  end

You can loop through the selected records by first getting the selection and using that in the for each construct. The script for the statistics function in the Table user interface (Table.Statistics) is a good example of the use of for each with a VTab.

Here's another:

 myTable = av.GetActiveDoc
 myVTab  = myTable.GetVTab
 myField = myVTab.FindField("Sales")
 salesTotal = 0
 for each rec in myVTab.GetSelection
   s = myVTab.ReturnValueString(myField,rec)
   salesTotal = salesTotal + s.asNumber
 end
 System.BasicEcho("Total sales are" ++ salesTotal.asString, FALSE)

VTabs are optimized for record-oriented access. Every time ReturnValue or a similar request reads the value for a field from disk, the entire record is read into memory. That way values for other fields of the same record do not have to be re-read from disk. However, as soon as a value in another record is read, the previous one is lost. Therefore, if you want to loop through all fields in all records:

  for each record in aVTab
    for each f in aVTab.GetFields
      v = aVTab.ReturnValue(f, record)
    end
  end

When you are changing the values in a VTab, or adding or deleting fields or records, don't forget that you are changing its representation external to ArcView (on disk, for instance).

Because the values in a VTab are stored externally, some tabular data formats may not support all operations. Make sure you use the requests beginning with Can to determine if an operation is possible before you attempt it. For example, use CanEdit before trying to use SetEditable, and CanAddRecord before AddRecord.

There are some additional requests on VTab to work with other programs that may be changing the external representation of data. The Refresh request causes any changes in the file or SQL database to be seen by ArcView. The Flush request forces any changes to disk. The Activate and Deactivate requests connects and disconnects ArcView from the data files so that ArcView can take turns with other software (such as ARC/INFO) in the use of tabular data files.

In order to fully understand what you can do to a virtual table, make sure you understand what can be done to the ArcView table document. Refer to the documentation for the table document for more on this.

Example

In this example, the VTab in Table1.dbf has three fields: X, Y and ID. An FTab is created whose shape field is built from the X, Y fields in aVTab.

 ' Table1 contains X, Y and ID fields.
 aVTab = av.GetProject.FindDoc( "table1.dbf" ).GetVTab

 ' Get the fields to copy from aVTab
 xV = aVTab.FindField( "X" )
 yV = aVTab.FindField( "Y" )
 idV = aVTab.FindField( "ID" )

 ' Create an FTAB and get its fields
 myFTab = FTab.MakeNew( "myFile.dbf".AsFileName, POINT )
 myFTab.AddFields( {idV.clone} )
 idF = myFTab.FindField( "id" )
 shapeF = myFTab.FindField( "shape" )

 ' copy each row in the VTab to the new FTab
 for each i in aVTab

   ' Get the values from aVTab
   x = aVTab.ReturnValue(  xV , i)
   y = aVTab.ReturnValue(  yV, i )
   id = aVTab.ReturnValue( idV, i )

   ' create the next row and add values
   newRec = myFTab.AddRecord
   myFTab.SetValue( shapeF, newRec, x@y )
   myFTab.SetValue( idF, newRec, id )
 end

 myView.AddTheme( FTheme.Make( myFTab ))

Another Example

Here is an example of querying from Avenue without the Query Builder.

 theTable = av.GetActiveDoc
 theVTab = theTable.GetVTab
 theBitmap = theVTab.GetSelection

 ' build a query string
 SearchStr = MsgBox.Input("Enter the State name to select", "Query", "")
 theQuery = "[State_name] = " + SearchStr.Quote

 ' query and apply selection
 theVTab.Query(theQuery, theBitmap, #VTAB_SELTYPE_NEW)
 theVTab.UpdateSelection

Attributes

Fields.Fields is the list of Field objects that describe the data contained in the VTab.

Base.A VTab with no joins is a base VTab. A VTab with joins is a non-base VTab. You cannot join a non-base VTab to any VTab. You can join a base VTab to a non-base VTab.

Selection.Selection is a bitmap that indicates which records in the VTab are highlighted in a table or view or drawn on a chart. The Selection is changed with the select tool on a View or Table, the erase tools on a chart, with the select all, none, and switch selection buttons, and with the query builder. Since you change the Selection bitmap with bitmap requests, use the UpdateSelection request to tell the VTab that its component bitmap has changed.

Definition.The Definition is a query expression that indicates which records in the underlying files are considered part of the VTab. This expression is reapplied to the VTab whenever the project is opened. The definition is changed through the theme definition in the theme properties dialog box.

DefBitmap.The DefBitmap is a bitmap that indicates which records in the VTab meet the definition just like the selection bitmap indicates which records meet the selection. However, the DefBitmap is not stored in the project and will be overridden by the Definition the next time the project is opened. It should only be used for temporary changes to the set of records making up the VTab. Don't use the DefBitmap to change which records are highlighted (use the Selection bitmap) or which records are permanently considered part of a theme (use the Definition). Also, don't use the Query request with the Definition bitmap - you must use the SetDefinition request.

ResultBitmap.The ResultBitmap is used while aVTab.Query is processing records. Since ArcView executes queries by running Avenue scripts, the requests used by these scripts must be public. When you are not executing queries you may set this attribute to be any bitmap. Be aware that it will be set to nil after a Query is executed or the Definition is set.

ResultField.The ResultField is used while aVTab.Calculate is processing records. Since ArcView executes calculations by running Avenue scripts, the requests used by these scripts must be public. When you are not executing calculations you may set this attribute to be any field. Be aware that it will be set to nil after the Calculate request is made on VTab.

Inherits From

Obj

Inherited By

FTab

Enumerations

VTabSelTypeEnum

VTabSummaryEnum

Class Requests

Making a VTab

CanMake ( aFileName ) :  Boolean

Make ( aFileName, forWrite, skipFirst ) :  VTab

MakeNew ( aFileName, aClass ) :  VTab

MakeSQL ( anSQLCon, aQueryString ) :  VTab

Instance Requests

Indexing a VTab

CanModifyIndex ( aField ) :  Boolean

CreateIndex ( aField )

IsFieldIndexed ( aField ) :  Boolean

RemoveIndex ( aField )

Manipulating a VTab

Export ( aFileName, aClass, SelectedRecordsOnly ) :  VTab

Identify ( aRecordNumber, aString )

Summarize ( aFileName, aClass, aField, Fields, Summarys ) :  VTab

Getting and setting attributes

FindField ( aFieldName ) :  Field

GetBaseTableClass  :  Classes

GetBaseTableFileName  :  FileName

GetDefBitmap  :  BitMap

GetDefinition  :  String

GetFields  :  List

GetLastSelection  :  BitMap

GetLockError  :  LockErrorEnum

GetNumRecords  :  Number

GetNumSelRecords  :  Number

GetSelection  :  BitMap

HasError  :  Boolean

HasLockError  :  Boolean

RememberSelection

SetDefBitmap ( aBitmap )

SetDefinition ( aQueryString ) :  Boolean

SetSelection ( aBitmap )

UpdateDefBitmap

UpdateSelection

Querying a VTab

Calculate ( aCalculateString, aField ) :  Boolean

GetResultBitmap  :  BitMap

GetResultField  :  Field

Query ( aQueryString, aBitmap, aSelType ) :  Boolean

SetResultBitmap ( aBitmap )

SetResultField ( aField )

Getting and Setting the structure

AddFields ( Fields )

AddRecord  :  Number

BeginTransaction

CanAddFields  :  Boolean

CanAddRecord  :  Boolean

CanEdit  :  Boolean

CanRedo  :  Boolean

CanRemoveFields  :  Boolean

CanRemoveRecords  :  Boolean

CanUndo  :  Boolean

EndTransaction

IsBeingEditedWithRecovery  :  Boolean

IsEditable  :  Boolean

Redo

RemoveFields ( Fields )

RemoveRecord ( aRecordNumber )

RemoveRecords ( aBitmap )

SaveEditsAs ( aFileName ) :  VTab

SetEditable ( isEditable )

StartEditingWithRecovery  :  Boolean

StopEditingWithRecovery ( saveEdits ) :  Boolean

Undo

Synchronizing a VTab and its component data

Activate

DeActivate

Flush

Refresh

Getting and Setting values

ReturnValue ( aField, aRecordNumber ) :  Obj

ReturnValueNumber ( aField, aRecordNumber ) :  Number

ReturnValueString ( aField, aRecordNumber ) :  String

SetValue ( aField, aRecordNumber, anObj )

SetValueNumber ( aField, aRecordNumber, aNumber )

SetValueString ( aField, aRecordNumber, aString )

Joining and Linking VTabs

IsBase  :  Boolean

IsJoinedField ( aField ) :  Boolean

IsLinked  :  Boolean

Join ( aToField, aFromVTab, aFromField )

Link ( aFromField, aToVTab, aToField )

UnjoinAll

UnlinkAll

__________

See also

Field
IdentifyWin
SQLWin
SummaryDialog
Table
BitMap


CanMake (VTab)
CanMake

Returns TRUE if a VTab can be made from aFileName. Otherwise returns FALSE.

Syntax

VTab.CanMake (aFileName)

Returns

Boolean


Make (VTab)
Make

Makes the VTab from aFileName. aFileName may be either an INFO file, a dBASE file, or a text file.

If forWrite is TRUE, the VTab will start out editable. If aFileName is a text file, forWrite must be FALSE.

If skipFirst is TRUE, the VTab will not include the first record of the disk file; this feature is useful for polygon attribute tables because it drops the universe polygon.

Use VTab.MakeNew if you want to create a new file.

Use aVTab.HasError after executing this request to make sure that the returned VTab is valid.

Syntax

VTab.Make (aFileName, forWrite, skipFirst)

Returns

VTab


MakeNew (VTab)
MakeNew

Makes a new VTab from a new file called aFileName. aClass can be either dBASE, INFO, or DText (textfile). If you want your INFO file to be readable by ARC/INFO, put it in a directory called info. Be aware that if aFileName exists, VTab.MakeNew will erase it. Use VTab.Make instead.

Syntax

VTab.MakeNew (aFileName, aClass)

Returns

VTab


MakeSQL (VTab)
MakeSQL

Makes a VTab by sending aQueryString through anSQLCon. aQueryString can be any valid SQL statement that returns a result set. Do not include newline (nl) characters in the query string.

  aCon = SQLCon.Find("World database")
  aCon.Login("SRVR=oraworld;UID=world;PWD=world")
  aVTab = VTab.MakeSQL(aCon,"Select name from countries where tot_pop > 200000000")

Syntax

VTab.MakeSQL (anSQLCon, aQueryString)

Returns

VTab


CanModifyIndex (VTab)
CanModifyIndex

Returns TRUE if the index of aField can be modified, otherwise returns FALSE. Before using this request, use the IsFieldIndexed request to make sure that the field is curently indexed.

Syntax

aVTab.CanModifyIndex (aField)

Returns

Boolean


CreateIndex (VTab)
CreateIndex

Creates an index for aField.

Syntax

aVTab.CreateIndex (aField)


IsFieldIndexed (VTab)
IsFieldIndexed

Returns TRUE if the field is indexed, otherwise returns FALSE.

Syntax

aVTab.IsFieldIndexed (aField)

Returns

Boolean


RemoveIndex (VTab)
RemoveIndex

Removes the index of aField.

Syntax

aVTab.RemoveIndex (aField)


Export (VTab)
Export

Exports aVTab to a new VTab in aFileName of type aClass, which must be dBASE, INFO, or DText. If SelectedRecordsOnly is TRUE, then only the selected records will be exported. Otherwise, all records will be exported. Only visible fields are exported and the exported table uses any aliases for its field names. Characters are replaced and field names truncated if the aliases contain invalid characters or are too long. Search using the keyword limits to find the field name limitations for dBASE and INFO files. At least one field must be visible. The new VTab is returned.

 theTable = av.GetActiveDoc
 theVTab = theTable.GetVTab
 ' create a new dBASE file of the table's selected records
 theVTab.Export ( "/oxford1/teresa/newfile".asFileName, dBASE, TRUE )
 ' output file, newfile.dbf, contains only the selected records

 theVTab.Export ( "/oxford1/teresa/newfile".asFileName, DText, FALSE )
 ' output file, newfile.txt, contains all the records

Syntax

aVTab.Export (aFileName, aClass, SelectedRecordsOnly)

Returns

VTab


Identify (VTab)
Identify

Puts information from in aVTab in aRecordNumber into the Identify window labeled by aString. Also, Identify blinks the data corresponding to aRecordNumber wherever it is currently showing on the screen.

Syntax

aVTab.Identify (aRecordNumber, aString)


Summarize (VTab)
Summarize

Summarizes aVTab by grouping records by aField and performing the operations listed in Summarys (a list of VTabSummaryEnums) on the corresponding fields in listed in Fields. For each field in the list Fields, you must name a corresponding VTabSummaryEnum in the list Summarys. The VTabSummaryEnum describes how to summarize the corresponding field's values. The new VTab is in aFileName of type aClass, which must be dBASE, INFO, or DText (for textfiles). The new VTab is returned.

 landUseFld = theVTab.FindField( "Land_Use" )
 popFld = theVTab.FindField( "Population" )
 areaFld = theVTab.FindField( "Area" )

 newFTab = theVTab.Summarize( "landUse".AsFileName, dBASE, landUseFld,
           {popFld, areaFld},{ #VTAB_SUMMARY_SUM, #VTAB_SUMMARY_SUM }

Syntax

aVTab.Summarize (aFileName, aClass, aField, Fields, Summarys)

Returns

VTab


FindField (VTab)
FindField

Finds the first field named aFieldName. FindField checks the field aliases first, then the field names. Returns nil if aFieldName is not found.

Syntax

aVTab.FindField (aFieldName)

Returns

Field


GetBaseTableClass (VTab)
GetBaseTableClass

Returns the class of the base table in aVTab

Syntax

aVTab.GetBaseTableClass

Returns

Class


GetBaseTableFileName (VTab)
GetBaseTableFileName

Returns the file name of the base table in aVTab. Can be nil.

Syntax

aVTab.GetBaseTableFileName

Returns

FileName


GetDefBitmap (VTab)
GetDefBitmap

Gets the definition bitmap of aVTab. The definition bitmap is initially created by the query specified in GetDefinition. You can alter the definition bitmap by flipping bits and then set the definition bitmap with SetDefBitmap.

Syntax

aVTab.GetDefBitmap

Returns

BitMap


GetDefinition (VTab)
GetDefinition

Gets the definition query of aVTab.

Syntax

aVTab.GetDefinition

Returns

String


GetFields (VTab)
GetFields

Gets the list of fields of aVTab.

NOTE: These fields belong to aVTab and must be cloned (or DeepCloned when using the whole list) if they are to be added to another VTab.

Syntax

aVTab.GetFields

Returns

List


GetLastSelection (VTab)
GetLastSelection

Gets the saved selection bitmap of aVTab. You save a previous selection bitmap with RememberSelection.

In this example, the saved selection is restored to the current selection. You should associate a clone of the last selection bitmap to the current selection bitmap otherwise both the saved selection and the current selection reference the same bitmap object.

 theTable = av.GetActiveDoc
 theVTab = theTable.GetVTab

 ' Get the saved selection bitmap
 lastSelection = theVTab.GetLastSelection

 ' Restore the saved selection bitmap
 theVTab.SetSelection( lastSelection.clone )
 theVTab.UpdateSelection

Syntax

aVTab.GetLastSelection

Returns

BitMap


GetLockError (VTab)
GetLockError

Gets the type of lock acquisition error for aVTab.

Syntax

aVTab.GetLockError

Returns

LockErrorEnum


GetNumRecords (VTab)
GetNumRecords

Gets the number of records in aVTab.

Syntax

aVTab.GetNumRecords

Returns

Number


GetNumSelRecords (VTab)
GetNumSelRecords

Gets the number of selected records in aVTab. The same can be accomplished with aVTab.GetSelection.Count.

Syntax

aVTab.GetNumSelRecords

Returns

Number


GetSelection (VTab)
GetSelection

Gets the selection bitmap of aVTab.

In this example, the total sales are calculated only for the selected records.

 myTable = av.GetActiveDoc
 myVTab  = myTable.GetVTab
 myField = myVTab.FindField("Sales")
 salesTotal = 0

 for each rec in myVTab.GetSelection
   s = myVTab.ReturnValueString(myField,rec)
   salesTotal = salesTotal + s.asNumber
 end

 System.BasicEcho("Total sales are" ++ salesTotal.asString, FALSE)

Syntax

aVTab.GetSelection

Returns

BitMap


HasError (VTab)
HasError

Returns TRUE if an error occurred when creating aVTab, otherwise returns FALSE.

Syntax

aVTab.HasError

Returns

Boolean


HasLockError (VTab)
HasLockError

Returns TRUE if an error occurred in acquiring a lock for aVTab. aVTab.HasError will always be TRUE if aVTab.HasLockError is TRUE.

Syntax

aVTab.HasLockError

Returns

Boolean


RememberSelection (VTab)
RememberSelection

Stores the current selection bitmap of aVTab. You can later retrieve this bitmap with GetLastSelection. See GetLastSelection for an example of restoring the selection.

 theTable = av.GetActiveDoc
 theVTab = theTable.GetVTab
 theVTab.RememberSelection

Syntax

aVTab.RememberSelection


SetDefBitmap (VTab)
SetDefBitmap

Sets the definition bitmap of aVTab to aBitmap. The definition bitmap is NOT persistent with the project. Whenever possible, use SetDefinition to subset the records in the source file for the VTab. After changing the definition bitmap, use UpdateDefBitmap to reflect the change in aVTab.

If it is impossible to identify selected records through a query and if the source is NOT dynamic, you can force persistence by setting the definition bitmap to an object tag and then restoring the definition bitmap at project startup. If the VTab source is dynamic, the bitmap may not accurately reflect source.

Syntax

aVTab.SetDefBitmap (aBitmap)


SetDefinition (VTab)
SetDefinition

Sets the definition query of aVTab to aQueryString. aQueryString is evaluated and the definition of aVTab changes. See help for the Query builder for examples of query strings. After changing the definition, use UpdateDefBitmap to reflect the change in the VTab.

aQueryString contains field names from aVTab and relationships to values. Field names are always enclosed in square braces. Values may be other fields or constants.

If you enclose the query expression in parenthesis, ArcView uses the index on the field.

Use the String request Quote to dynamically build a query string in Avenue. Quote returns a quoted version of the target string.

For more information on building query strings, see the "Query Builder" topic.

 qString = "([pop95] > [pop94])"

 aSize = 1000
 qString = "([area] > " + aSize.AsString+")"

 aName = MsgBox.Input( "Enter state name", "", "California")
 qString = "([state_name] = "++aName.Quote+")"

 aField = "Name"
 aStrValue = "Redlands"
 qString = "(["+aField+"] ="++aStrValue.Quote+")"

Syntax

aVTab.SetDefinition (aQueryString)

Returns

Boolean


SetSelection (VTab)
SetSelection

Sets the selection of aVTab to aBitmap. After changing the selection, use the UpdateSelection request to reflect the change in the VTab.

Syntax

aVTab.SetSelection (aBitmap)


UpdateDefBitmap (VTab)
UpdateDefBitmap

Updates aVTab to reflect changes to its definition bitmap. Issue this request after making changes to the definition bitmap through either SetDefinition or SetDefBitmap.

Syntax

aVTab.UpdateDefBitmap


UpdateSelection (VTab)
UpdateSelection

Updates aVTab to reflect changes to its selection bitmap. Issue this request after making changes to the selection bitmap.

Syntax

aVTab.UpdateSelection


Calculate (VTab)
Calculate

Evaluates aCalculateString and puts the results into aField. If records are selected, only the selected records are processed, otherwise all records are processed. aCalculateString is an Avenue expression with field names in square brackets, exactly as it would appear in the calculator.

  ' Populate number and string fields using the Calculate request
  aVTab = av.GetActiveDoc.GetVTab
  aVTab.SetEditable(True)
  theFields = aVTab.GetFields
  numFld = theFields.Get(0)
  strFld = theFields.Get(1)
  ' Populate a number field with the value 2
  aVTab.Calculate("2", numFld)
  ' Populate a string field with the value "avalue"
  aStr = "avalue"
  aVTab.Calculate(aStr.Quote, strFld)
  aVTab.Refresh
  aVTab.SetEditable(False)

See help on Calculating a field's values for more examples.

Syntax

aVTab.Calculate (aCalculateString, aField)

Returns

Boolean


GetResultBitmap (VTab)
GetResultBitmap

Gets the result bitmap of aVTab. The result bitmap is used while aVTab.Query is processing records. Since ArcView executes queries by running Avenue scripts, the requests used by these scripts must be public. When you are not executing queries you may set this attribute to be any bitmap. Be aware that it will be set to nil after a Query is executed or the Definition is set.

Syntax

aVTab.GetResultBitmap

Returns

BitMap


GetResultField (VTab)
GetResultField

Gets the result field of aVTab.

Syntax

aVTab.GetResultField

Returns

Field


Query (VTab)
Query

Evaluates aQueryString and puts the results into aBitmap. aSelType determines how the existing bits in aBitmap are treated. aQueryString is simply an Avenue expression with field names enclosed in brackets, exactly as it would appear in the query builder. See the Query Builder help topic for examples of how make different types of queries. Query returns TRUE if aQueryString compiles and runs correctly and FALSE if the Avenue string had errors.

  ' Builds the query string:  ( date  = date.make("01/01/1990","MM/dd/yyyy"))
  q1 = "([adate] = date.make("+"01/01/1990".Quote+","+"MM/dd/yyyy".Quote+"))"
  ' Builds the query string:  (( num5  = 12345) or ( strfld = "String 3"))
  q2 = "(([num5] = 12345) or ([strfld] = "+"""String 3"""+"))"
  MsgBox.Report(q1 +nl+nl+ q2,"")

Syntax

aVTab.Query (aQueryString, aBitmap, aSelType)

Returns

Boolean


SetResultBitmap (VTab)
SetResultBitmap

Sets the result bitmap of aVTab to aBitmap.

Syntax

aVTab.SetResultBitmap (aBitmap)


SetResultField (VTab)
SetResultField

Sets the result field of aVTab to aField.

Syntax

aVTab.SetResultField (aField)


AddFields (VTab)
AddFields

Adds the fields listed in Fields to aVTab.

NOTE: Field objects in the list are added directly so if you are copying fields from another VTab, you should clone them first (or DeepClone the list containing them).

Syntax

aVTab.AddFields (Fields)


AddRecord (VTab)
AddRecord

Adds a record to the VTab and returns the new record number. All the values in the record are set to null. Use CanAddRecord before using AddRecord.

Syntax

aVTab.AddRecord

Returns

Number


BeginTransaction (VTab)
BeginTransaction

Marks the beginning of a group of write operations on aVTab. The group can be undone as a unit.

The following script puts the VTab of a table, table1.dbf, into edit mode, and does three edits to the VTab: adds a new record and sets values for the ID and Code fields. Then the edits are saved and the FTab is taken out of edit mode.

 theTable = av.FindDoc("table1.dbf")
 theVTab = theTable.GetVTab
 idField = theVTab.FindField("ID")
 codeField = theVTab.FindField("Code")
 'Put the VTab in edit mode and if successful, do some edits
 if (theVTab.StartEditingWithRecovery) then
   'These three editing operations contained in this Begin/End transaction
   'block can be undone or reapplied as a group using VTab.Undo or VTab.Redo
   theVTab.BeginTransaction
   theRec = theVTab.AddRecord
   theVTab.SetValue(idField,theRec,"2")
   theVTab.SetValue(codeField,theRec,"XYZ")
   theVTab.EndTransaction
 end
 saveEdits = TRUE
 'Since saveEdits is set to TRUE the edits will be committed, if saveEdits
 'was set to FALSE then the edits would be discarded
 theVTab.StopEditingWithRecovery(saveEdits)

Syntax

aVTab.BeginTransaction


CanAddFields (VTab)
CanAddFields

Returns TRUE if fields can be added to aVTab, otherwise returns FALSE.

Syntax

aVTab.CanAddFields

Returns

Boolean


CanAddRecord (VTab)
CanAddRecord

Returns TRUE if a record can be added to aVTab, otherwise returns FALSE. Use CanAddRecord before using AddRecord.

Syntax

aVTab.CanAddRecord

Returns

Boolean


CanEdit (VTab)
CanEdit

Returns TRUE if aVTab can be edited, otherwise returns FALSE. CanEdit reports whether you have write permission to aVTab or not. Use CanEdit before trying to use SetEditable.

Syntax

aVTab.CanEdit

Returns

Boolean


CanRedo (VTab)
CanRedo

Returns TRUE if there are undo operations that can be redone.

Syntax

aVTab.CanRedo

Returns

Boolean


CanRemoveFields (VTab)
CanRemoveFields

Returns TRUE if fields can be removed from aVTab, otherwise returns FALSE.

Syntax

aVTab.CanRemoveFields

Returns

Boolean


CanRemoveRecords (VTab)
CanRemoveRecords

Returns TRUE if records can be removed from aVTab, otherwise returns FALSE.

Syntax

aVTab.CanRemoveRecords

Returns

Boolean


CanUndo (VTab)
CanUndo

Returns TRUE if there are editing transactions that can be undone.

Syntax

aVTab.CanUndo

Returns

Boolean


EndTransaction (VTab)
EndTransaction

Marks the end of a group of write operations on aVTab. The group can be undone as a unit. If a transaction is not explicitly started then each write operation on the FTab is treated as a transaction.

The following script puts the VTab of a table, table1.dbf, into edit mode, and does three edits to the VTab: adds a new record and sets values for the ID and Code fields. Then the edits are saved and the FTab is taken out of edit mode.

 theTable = av.FindDoc("table1.dbf")
 theVTab = theTable.GetVTab
 idField = theVTab.FindField("ID")
 codeField = theVTab.FindField("Code")
 'Put the VTab in edit mode and if successful, do some edits
 if (theVTab.StartEditingWithRecovery) then
   'These three editing operations contained in this Begin/End transaction
   'block can be undone or reapplied as a group using VTab.Undo or VTab.Redo
   theVTab.BeginTransaction
   theRec = theVTab.AddRecord
   theVTab.SetValue(idField,theRec,"2")
   theVTab.SetValue(codeField,theRec,"XYZ")
   theVTab.EndTransaction
 end
 saveEdits = TRUE
 'Since saveEdits is set to TRUE the edits will be committed, if saveEdits
 'was set to FALSE then the edits would be discarded
 theVTab.StopEditingWithRecovery(saveEdits)

Syntax

aVTab.EndTransaction


IsBeingEditedWithRecovery (VTab)
IsBeingEditedWithRecovery

Returns TRUE if an editing session on aVTab is in progress.

Syntax

aVTab.IsBeingEditedWithRecovery

Returns

Boolean


IsEditable (VTab)
IsEditable

Returns TRUE if aVTab is being edited, otherwise returns FALSE. Use IsEditable to determine whether aVTab has become editable after you use the SetEditable request. Sometimes it is not possible to make aVTab editable, even when CanEdit returns TRUE.

Syntax

aVTab.IsEditable

Returns

Boolean


Redo (VTab)
Redo

Performs a Redo. The state of aVTab is rolled forward by the last undone transaction.

Syntax

aVTab.Redo


RemoveFields (VTab)
RemoveFields

Removes Fields from aVTab. Fields is a list of field objects in aVTab.

Syntax

aVTab.RemoveFields (Fields)


RemoveRecord (VTab)
RemoveRecord

Removes the record numbered aRecordNumber from aVTab.

Syntax

aVTab.RemoveRecord (aRecordNumber)


RemoveRecords (VTab)
RemoveRecords

Removes the records set in aBitmap from aVTab.

Syntax

aVTab.RemoveRecords (aBitmap)


SaveEditsAs (VTab)
SaveEditsAs

Saves the edits made to aVTab to a new VTab stored in aFileName. After the edits are saved to the new VTab, aVTab remains in edit mode. Returns the new VTab as result.

Syntax

aVTab.SaveEditsAs (aFileName)

Returns

VTab


SetEditable (VTab)
SetEditable

Sets whether aVTab can be edited to isEditable. Make sure you use the IsEditable request to determine whether aVTab has become editable after you use this request. Sometimes it is not possible to make aVTab editable, even when CanEdit returns TRUE.

Only dBASE and INFO VTabs can be edited. If you have some other file type, you can export it to a dBASE file and create a new Table from it.

The following script puts the VTab of a table, table1.dbf, into edit mode, adds a new record and sets values for the ID and Code fields. The SetEditable(FALSE) request takes the table out of edit mode and automatically commits the edits. When you put the table into edit mode this way you cannot undo or redo any edits. To have the option to discard the edits and to have the option to undo and redo, you should use the VTab.StartEditingWithRecovery request instead of the VTab.SetEditable(isEditable).

 theTable = av.FindDoc("table1.dbf")
 theVTab = theTable.GetVTab
 idField = theVTab.FindField("ID")
 codeField = theVTab.FindField("Code")
 theVTab.SetEditable(true)
 if (theVTab.IsEditable) then
   theRec = theVTab.AddRecord
   theVTab.SetValue(idField,theRec,"2")
   theVTab.SetValue(codeField,theRec,"XYZ")
 end
 theVTab.SetEditable(FALSE)

Syntax

aVTab.SetEditable (isEditable)


StartEditingWithRecovery (VTab)
StartEditingWithRecovery

Begins an editing session on aVTab. Undo, Redo and Cancelling of the editing session are supported when editing with recovery. Returns TRUE if the editing session was successfully begun.

The following script puts the VTab of a table, table1.dbf, into edit mode, adds a new record and sets values for the ID and Code fields. Then the edits are saved and the FTab is taken out of edit mode.

 theTable = av.FindDoc("table1.dbf")
 theVTab = theTable.GetVTab
 idField = theVTab.FindField("ID")
 codeField = theVTab.FindField("Code")
 'Put the VTab in edit mode and if successful, do some edits
 if (theVTab.StartEditingWithRecovery) then
   'These three editing operations contained in this Begin/End transaction
   'block can be undone or reapplied as a group using VTab.Undo or VTab.Redo
   theVTab.BeginTransaction
   theRec = theVTab.AddRecord
   theVTab.SetValue(idField,theRec,"2")
   theVTab.SetValue(codeField,theRec,"XYZ")
   theVTab.EndTransaction
 end
 saveEdits = TRUE
 'Since saveEdits is set to TRUE the edits will be committed, if saveEdits
 'was set to FALSE then the edits would be discarded
 theVTab.StopEditingWithRecovery(saveEdits)

Syntax

aVTab.StartEditingWithRecovery

Returns

Boolean


StopEditingWithRecovery (VTab)
StopEditingWithRecovery

Ends an editing session on aVTab. If saveEdits is FALSE then the editing session is cancelled and no changes are made to data files on disk. Returns FALSE if the request fails because edits cannot be saved, TRUE otherwise.

The following script puts the VTab of a table, table1.dbf, into edit mode, adds a new record and sets values for the ID and Code fields. Then the edits are saved and the FTab is taken out of edit mode.

 theTable = av.FindDoc("table1.dbf")
 theVTab = theTable.GetVTab
 idField = theVTab.FindField("ID")
 codeField = theVTab.FindField("Code")
 'Put the VTab in edit mode and if successful, do some edits
 if (theVTab.StartEditingWithRecovery) then
   'These three editing operations contained in this Begin/End transaction
   'block can be undone or reapplied as a group using VTab.Undo or VTab.Redo
   theVTab.BeginTransaction
   theRec = theVTab.AddRecord
   theVTab.SetValue(idField,theRec,"2")
   theVTab.SetValue(codeField,theRec,"XYZ")
   theVTab.EndTransaction
 end
 saveEdits = TRUE
 'Since saveEdits is set to TRUE the edits will be committed, if saveEdits
 'was set to FALSE then the edits would be discarded
 theVTab.StopEditingWithRecovery(saveEdits)

Syntax

aVTab.StopEditingWithRecovery (saveEdits)

Returns

Boolean


Undo (VTab)
Undo

Performs an Undo. The state of aVTab is rolled back to that at the beginning of the last transaction.

Syntax

aVTab.Undo


Activate (VTab)
Activate

Activates aVTab, making its data accessible for reading and writing (if editable). Issue Activate only after Deactivating aVTab.

Syntax

aVTab.Activate


DeActivate (VTab)
DeActivate

Deactivates aVTab, making it unavailable for reading and writing. This request is useful if you want to let another program edit the component files of aVTab or you want to close aVTab's files. Activate aVTab when the other program completes its updates.

Syntax

aVTab.DeActivate


Flush (VTab)
Flush

Flushes aVTab so that the component files are synchronized with the memory version of aVTab. Flush writes the in-memory VTab to the file.

Syntax

aVTab.Flush


Refresh (VTab)
Refresh

Refreshes the data in aVTab to reflect the component files. Refresh re-reads the file and updates the in-memory version of aVTab. This request also re-queries data from SQL connections and recomputes joins.

Syntax

aVTab.Refresh


ReturnValue (VTab)
ReturnValue

Returns the value of aField of record aRecordNumber as an object. Null values are returned as a Null object of the appropriate class.

Syntax

aVTab.ReturnValue (aField, aRecordNumber)

Returns

Obj


ReturnValueNumber (VTab)
ReturnValueNumber

Returns the value of aField in record aRecordNumber as a number. Null values are returned as the Null number.

Syntax

aVTab.ReturnValueNumber (aField, aRecordNumber)

Returns

Number


ReturnValueString (VTab)
ReturnValueString

Returns the value of aField of record aRecordNumber as a string. Null values are returned as the Null String.

Syntax

aVTab.ReturnValueString (aField, aRecordNumber)

Returns

String


SetValue (VTab)
SetValue

Sets the current value of aField (if editable) of record aRecordNumber to anObj.

Syntax

aVTab.SetValue (aField, aRecordNumber, anObj)


SetValueNumber (VTab)
SetValueNumber

Sets the current value of aField (if editable) in record aRecordNumber with aNumber. aNumber will be converted to the appropriate type.

Syntax

aVTab.SetValueNumber (aField, aRecordNumber, aNumber)


SetValueString (VTab)
SetValueString

Sets the current value of aField (if editable) in record aRecordNumber with aString. aString will be converted to the appropriate type.

Syntax

aVTab.SetValueString (aField, aRecordNumber, aString)


IsBase (VTab)
IsBase

Returns TRUE if aVTab does not contain any joins, otherwise returns FALSE. A VTab with no joins is a Base VTab. A VTab with joins is a non-Base VTab.

Syntax

aVTab.IsBase

Returns

Boolean


IsJoinedField (VTab)
IsJoinedField

Returns TRUE if aField has been added to aVTab as a result of a Join.

Syntax

aVTab.IsJoinedField (aField)

Returns

Boolean


IsLinked (VTab)
IsLinked

Returns TRUE if aVTab has links, otherwise returns FALSE.

Syntax

aVTab.IsLinked

Returns

Boolean


Join (VTab)
Join

Joins aFromVTab to the VTab by matching values in aFromField to values in aToField. After successfully executing Join, aVTab.IsBase returns FALSE.

A VTab with no joins is a Base VTab. A VTab with joins is a non-Base VTab. You cannot join a non-Base VTab to any VTab. You can join a Base VTab to a non-Base VTab.

Syntax

aVTab.Join (aToField, aFromVTab, aFromField)


Link (VTab)
Link

Links aToVTab to aVTab. Selections made in aVTab will change the selections in aToVTab. After successfully executing Link, aVTab.IsLinked returns FALSE.

Syntax

aVTab.Link (aFromField, aToVTab, aToField)


UnjoinAll (VTab)
UnjoinAll

Undoes all join operations on aVTab, restoring it to its initial state.

Syntax

aVTab.UnjoinAll


UnlinkAll (VTab)
UnlinkAll

Removes all links from aVTab.

Syntax

aVTab.UnlinkAll


VTabSelTypeEnum

 A spatial query on an FTab or an attribute query on a VTab can be merged with the existing query in four different ways.

#VTAB_SELTYPE_NEW

Replaces the existing selection with a new selection. This is called "New Set" in the Query Builder.

#VTAB_SELTYPE_AND

ANDs the new selection with the existing selection. This is called "Select From Set" in the Query Builder.

#VTAB_SELTYPE_OR

ORs the new selection with the existing selection. This is called "Add To Set" in the Query Builder.

#VTAB_SELTYPE_XOR

XORs the new selection with the existing selection. The resulting selected set contains records that were either in the existing selection or in the new selection but not in both.


VTabSummaryEnum

 VTabSummaryEnum defines the type of operations that can be performed with the Summarize request.

#VTAB_SUMMARY_AVG

Adds up the values and divides by the number of values in the group.

#VTAB_SUMMARY_SUM

Adds up the values in the group.

#VTAB_SUMMARY_MIN

Finds the minimum value in the group.

#VTAB_SUMMARY_MAX

Finds the maximum value in the group.

#VTAB_SUMMARY_STDEV

Calculates the standard deviation of the values in the group.

#VTAB_SUMMARY_VAR

Calculates the variance of the values in the group.

#VTAB_SUMMARY_FIRST

Finds the first value in the group.

#VTAB_SUMMARY_LAST

Finds the last value in the group.

#VTAB_SUMMARY_COUNT

Gives the total count of non-null values in the group.


XAxis

 An XAxis is an Axis ChartPart representing the x-axis on a chart. An XAxis can be placed at the bottom or top of the chart or on the chart itself.

Use the GetXAxis request on a Chart to get the x-axis or use the GetUserPart request on a Chart to let the user click on a chart part.

Attributes

Bottom.Bottom determines whether the axis is drawn at the bottom of the chart or at the top of the chart. If IsCrossValueUsed is true, this attribute is ignored and the axis is drawn at the cross value on the y-axis.

Inherits From

Axis

Instance Requests

Getting and Setting Attributes

IsBottom  :  Boolean

IsValueAxis  :  Boolean

SetAxisVisible ( isVisible )

SetBottom ( isBottom )

SetBoundsUsed ( isUsed )

SetColor ( aColor )

SetCrossValueUsed ( isUsed )

SetLabelVisible ( isVisible )

SetLog ( isLog )

SetMajorGridVisible ( isVisible )

SetMinorGridVisible ( isVisible )

SetName ( aName )

SetTickLabelsVisible ( isVisible )

__________

See also

ChartDisplay


IsBottom (XAxis)
IsBottom

Returns TRUE if the x-axis is along the bottom of the chart, return TRUE if it is along the top.

Syntax

anXAxis.IsBottom

Returns

Boolean


IsValueAxis (XAxis)
IsValueAxis

Returns TRUE if anXAxis is a value axis, returns FALSE if anXAxis is a group axis.

Syntax

anXAxis.IsValueAxis

Returns

Boolean


SetAxisVisible (XAxis)
SetAxisVisible

Sets the visibility of the axis and tick marks of anXAxis to isVisible.

Syntax

anXAxis.SetAxisVisible (isVisible)


SetBottom (XAxis)
SetBottom

Sets whether the x-axis is along the bottom of the chart to isBottom.

Syntax

anXAxis.SetBottom (isBottom)


SetBoundsUsed (XAxis)
SetBoundsUsed

Sets whether the bounds are used to isUsed.

Syntax

anXAxis.SetBoundsUsed (isUsed)


SetColor (XAxis)
SetColor

Sets the color of anXAxis to aColor.

Syntax

anXAxis.SetColor (aColor)


SetCrossValueUsed (XAxis)
SetCrossValueUsed

Sets whether the cross value of anXAxis is used to isUsed.

Syntax

anXAxis.SetCrossValueUsed (isUsed)


SetLabelVisible (XAxis)
SetLabelVisible

Sets whether the label on anXAxis is visible to isVisible.

Syntax

anXAxis.SetLabelVisible (isVisible)


SetLog (XAxis)
SetLog

Sets whether anXAxis is logarithmic to isLog.

Syntax

anXAxis.SetLog (isLog)


SetMajorGridVisible (XAxis)
SetMajorGridVisible

Sets whether the major grid perpendicular to anXAxis is visible to isVisible.

Syntax

anXAxis.SetMajorGridVisible (isVisible)


SetMinorGridVisible (XAxis)
SetMinorGridVisible

Sets whether the minor grid perpendicular to anXAxis is visible to isVisible.

Syntax

anXAxis.SetMinorGridVisible (isVisible)


SetName (XAxis)
SetName

Sets the name of anXAxis to aName.

Syntax

anXAxis.SetName (aName)


SetTickLabelsVisible (XAxis)
SetTickLabelsVisible

Sets whether the tick mark labels along anXAxis are visible to isVisible.

Syntax

anXAxis.SetTickLabelsVisible (isVisible)


XYName

 An XYName is a kind of SrcName used to create XY event themes. An XY event theme is a point theme created from coordinate data carried in a VTab. When the XY event theme is created, ArcView creates an FTab which contains the points identified by the X and Y Fields. This FTab is rebuilt from the VTab when the project is restored; it is not explicitly saved to file.

Attributes

VTab. A VTab containing fields with X and Y values is interpreted as a point theme in ArcView.

XField, YField. The X and Y fields are Fields in the VTab that contain the X and Y coordinates that identify the point location.

Inherits From

SrcName

Class Requests

Creating an XYName

Make ( aVTab, anXField, aYField ) :  XYName

Instance Requests

Getting and Setting Attributes

GetVTab  :  VTab

GetXField  :  Field

GetYField  :  Field

SetXField ( aField )

SetYField ( aField )

__________

See also

GeoName
DynName
Theme


Make (XYName)
Make

 Makes an XYName using aVTab that contains anXField and aYField.

Here's an example of how to make an XY event theme from an XYName:

    theVTab   = VTab.Make( "$AVDATA/info/wadi.tic".asFileName, FALSE, FALSE )
    theXYName = XYName.Make( theVTab, theVTab.FindField("XTic"), theVTab.FindField("YTic") )
    theTheme  = Theme.Make( theXYName )
    theTheme.SetName( "My XY theme" )
    theView   = av.GetProject.FindDoc( "View1" )
    theView.AddTheme( theTheme )

Syntax

XYName.Make (aVTab, anXField, aYField)

Returns

XYName


GetVTab (XYName)
GetVTab

Gets the VTab of anXYName.

Syntax

anXYName.GetVTab

Returns

VTab


GetXField (XYName)
GetXField

Gets the XField of anXYName.

Syntax

anXYName.GetXField

Returns

Field


GetYField (XYName)
GetYField

Gets the YField of anXYName.

Syntax

anXYName.GetYField

Returns

Field


SetXField (XYName)
SetXField

Sets the XField of anXYName to aField.

Syntax

anXYName.SetXField (aField)


SetYField (XYName)
SetYField

Sets the YField of anXYName to aField.

Syntax

anXYName.SetYField (aField)


YAxis

 A YAxis is an Axis ChartPart representing the y-axis on a chart. A YAxis can be placed at the right or left of the chart or on the chart itself.

Use the GetYAxis request on a Chart to get the y-axis or use the GetUserPart request on a Chart to let the user click on a chart part.

Attributes

Left.Left determines whether the axis is drawn at the left of the chart or at the right of the chart. If IsCrossValueUsed is true, this attribute is ignored and the axis is placed at the cross value on the x-axis.

Inherits From

Axis

Instance Requests

Getting and Setting Attributes

IsLeft  :  Boolean

IsValueAxis  :  Boolean

SetAxisVisible ( isVisible )

SetBoundsUsed ( isUsed )

SetColor ( aColor )

SetCrossValueUsed ( isUsed )

SetLabelVisible ( isVisible )

SetLeft ( isLeft )

SetLog ( isLog )

SetMajorGridVisible ( isVisible )

SetMinorGridVisible ( isVisible )

SetName ( aName )

SetTickLabelsVisible ( isVisible )

__________

See also

ChartDisplay
XAxis


IsLeft (YAxis)
IsLeft

Returns TRUE if aYAxis is at the left of the chart, returns FALSE otherwise.

Syntax

aYAxis.IsLeft

Returns

Boolean


IsValueAxis (YAxis)
IsValueAxis

Returns TRUE if aYAxis is a value axis, returns FALSE if aYAxis is a group axis.

Syntax

aYAxis.IsValueAxis

Returns

Boolean


SetAxisVisible (YAxis)
SetAxisVisible

Sets the visibility of the axis and tick marks of aYAxis to isVisible.

Syntax

aYAxis.SetAxisVisible (isVisible)


SetBoundsUsed (YAxis)
SetBoundsUsed

Sets whether the bounds are used to isUsed.

Syntax

aYAxis.SetBoundsUsed (isUsed)


SetColor (YAxis)
SetColor

Sets the color of aYAxis to aColor.

Syntax

aYAxis.SetColor (aColor)


SetCrossValueUsed (YAxis)
SetCrossValueUsed

Sets whether the cross value of aYAxis is used to isUsed.

Syntax

aYAxis.SetCrossValueUsed (isUsed)


SetLabelVisible (YAxis)
SetLabelVisible

Sets whether the label on aYAxis is visible to isVisible.

Syntax

aYAxis.SetLabelVisible (isVisible)


SetLeft (YAxis)
SetLeft

Sets whether aYAxis is at the left of the chart to isLeft.

Syntax

aYAxis.SetLeft (isLeft)


SetLog (YAxis)
SetLog

Sets whether aYAxis is logarithmic to isLog.

Syntax

aYAxis.SetLog (isLog)


SetMajorGridVisible (YAxis)
SetMajorGridVisible

Sets whether the major grid perpendicular to aYAxis is visible to isVisible.

Syntax

aYAxis.SetMajorGridVisible (isVisible)


SetMinorGridVisible (YAxis)
SetMinorGridVisible

Sets whether the minor grid perpendicular to aYAxis is visible to isVisible.

Syntax

aYAxis.SetMinorGridVisible (isVisible)


SetName (YAxis)
SetName

Sets the name of aYAxis to aName.

Syntax

aYAxis.SetName (aName)


SetTickLabelsVisible (YAxis)
SetTickLabelsVisible

Sets whether the tick mark labels along aYAxis are visible to isVisible.

Syntax

aYAxis.SetTickLabelsVisible (isVisible)


Classes

A Class defines a common set of attributes and operations. From a class, you can create objects. All objects are instances of a particular class. For example, a class is like a blueprint and an object is like a house built from the blueprint. You can build many houses from the same blueprint; each is a different house, but all these houses share a common design.

An object knows its class and through Avenue you can get that information. The obj request GetClass returns the class and the obj class request GetClassName returns a string with the class name. The following script displays the name of the class of the active document

MsgBox.Info( av.GetActiveDoc.GetClass.GetClassName, "")

Through Avenue, you send requests to objects. You can also send requests to classes. The most common class request is the Make request. The Make request tells the class to create a new object.

View.Make
in = LineFile.Make( "$AVDATA/test.dat".AsFileName, #FILE_PERM_WRITE )
myList = List.Make

Besides Make, there are other requests that you send to a class.

Existing = File.Exists( "$AVDATA/mytest.dat".AsFileName )

To tell which requests you send to a class and which requests you send to an object, look in the class help. Requests listed under "Class Requests" are sent to the class and requests listed under "Instance Requests" are sent to instances of the class, that is, objects.

You can reference a class with a variable. This example creates a new document that is the same kind as the active document.

ActiveClass = av.GetActiveDoc.GetClass
ActiveClass.Make

A class can be an argument to another request. The request below returns the DocGUIs that support View documents.

viewGUIs = av.GetProject.FindGUIsFor( View )


Functional Overview of ArcView Classes

This overview offers an entry point to the Avenue class documentation based upon functionality and relationships with other classes. These functional groupings are derived from the ArcView's architecture and presented in the form of Object Model diagrams. Object Model diagrams provide a blueprint illustrating how classes interrelate.

Most Object Model diagrams are color coded. Abstract super classes are cyan. Whenever an inheritance relationship is illustrated, all related subclasses have the same color (usually yellow, green or magenta). When you click on a class, you will jump to the class description for that class.

Application Framework

Application Framework

Document User Interface

Collections

Value Classes

Files

ArcView's Documents

The View Document

The Table Document

The Chart Document

The Layout Document

The Script Editor and Scripts

Views, Themes and Graphics

Image Themes

Feature Themes

Database Themes

Data Sources

Geocoding

Shapes

Displaying Shapes and Graphics

Symbols

Projections

________

See Also

How to read the class help

How to read the request help

Avenue Request Naming Conventions

Understanding the Object Model


Application Framework (Avenue object model diagram)
Application Framework


Values (Avenue object model diagram)
Values


Collections (Avenue object model diagram)
Collections


Chart Document (Avenue object model diagram)
The Chart Document


Data Sources (Avenue object model diagram)
Data Sources
Discussion


Document User Interface (Avenue object model diagram)
Document User Interface


Files (Avenue object model diagram)
Files
Discussion


Feature Themes (Avenue object model diagram)
Feature Themes


Geocoding (Avenue object model diagram)
Geocoding
Discussion


Displaying Shapes and Graphics (Avenue object model diagram)
Displaying Shapes and Graphics
Discussion


Image Themes (Avenue object model diagram)
Image Themes


Layout Document (Avenue object model diagram)
The Layout Document


Projections (Avenue object model diagram)
Projections


Script Editor and Scripts (Avenue object model diagram)
The Script Editor and Scripts


Shapes (Avenue object model diagram)
Shapes
Discussion


Symbols (Avenue object model diagram)
Symbols
Discussion


Table Document (Avenue object model diagram)
The Table Document


View Document (Avenue object model diagram)
The View Document

Note	Links to some Theme classes will not work if the associated extension is not installed.


How classes are shown in an Avenue object model diagram
Classes


How generalization is shown in an Avenue object model diagram
Generalization


How aggregation is shown in an Avenue object model diagram
Aggregation


How association is shown in an Avenue object model diagram
Association


How multiplicity is shown in an Avenue object model diagram
Multiplicity


Understanding the Object Model

This overview of ArcView classes includes illustrations that use the notation described in Object-Oriented Modeling and Design, by James Rumbaugh, et al. (Prentice Hall, Englewood Cliffs, N.J., 1991).

The object model diagram illustrates relationships among classes in ArcView. The diagram depicts several types of relationships: generalization (inheritance), aggregation (composition), association and the multiplicity.

Generalization or inheritance relationships illustrate the "Is Kind Of" relationship and allow for a progressive refinement of classes from the more general to the more specific. Superclasses define more general aspects which subclasses inherit and further define additional more specific characteristics and behavior. When looking for a particular request or attribute, search the class and then also the superclasses.

Aggregation represents the "is composed of" relationship: a class includes objects from other classes. An aggregation is transitive; for example, a Button is a part of a ButtonBar and a ButtonBar is part of a DocGUI, so a Button is part of a DocGUI. An aggregation is antisymmetric; for example, a ButtonBar is part of a DocGUI, but a DocGUI is NOT part of a ButtonBar. Operations on the aggregate class generally propagate to its parts.

Association represents a structural relationship between classes. An aggregation is a strong form of association. For example, a document has an associated DocGUI. Not all ArcView associations are modeled in these diagrams. For example, the association between a project and the one active document is not illustrated.

Aggregation and association relationships tend to translate into Avenue requests. For example, a DocGUI is comprised of a MenuBar, a ButtonBar and a ToolBar; Avenue provides requests aDocGUI.GetMenuBar, aDocGUI.GetButtonBar and aDocGUI.GetToolBar. Also, an application contains one project; the request av.GetProject gets the project associated with the application.

Relationships with multiplicity of zero or more are often supported through collections such as lists or dictionaries. For example, a project contains one or more documents; the request aProject.GetDocs returns a list containing Document objects.

Abstract and Concrete Classes

Some classes never instantiate objects; instead they provide common methods and attributes inherited by subclasses. These are abstract classes.  Classes which do instantiate objects are called concrete classes. The File class is an example of an abstract class; its subclasses TextFile and LineFile inherit common behavior and attributes.


AddBatch EndBatch Example

' In this example, many graphics are added to a View's GraphicList,

' but they are not displayed until the EndBatch Request is given.

theView = av.GetActiveDoc

gl = theView.GetGraphics

for each x in 1..25

  g = GraphicShape.Make(x@x)

  gl.AddBatch(g)

end

Msgbox.Info("Done Adding Graphics","AddBatch")

gl.EndBatch

' To contrast this, use just the add request

'theView = av.GetActiveDoc

'gl = theView.GetGraphics

'for each x in 1..25

'  g = GraphicShape.Make(x@x)

'  gl.Add(g)

'end

'Msgbox.Info("Done Adding Graphics","Add")


AddressStyle Discussion

An AddressStyle defines a style of address and the method for geocoding.  An AddressStyle identifies required and optional fields for matching and other properties of the style.  AddressStyles are defined in an address style data base.  The AddressStyle request GetDefStylesODB returns the default data base - $AVHOME/geocode/addstyle.db.

The address style data base is an ODB file. You can modify the address style objects using Avenue. A typical example is you can save the selected address styles in a new ODB file if you don’t want to use all address styles defined in the default address style data base. See AddressStyle Example.

The GetStyles request returns the list of address styles from the specified address style data base. See AddressStyle.GetStyles Example. You can select a specific address style with either the FindStyle or FindBestStyle request.  Through Avenue, you can alter some AddressStyle attributes such as the default offset and squeeze factor. You can save changes to an AddressStyle to the data base file with the SaveStyles request. See AddressStyle.SaveStyles Example.

Once the address styles are loaded, ArcView reads the loaded styles throughout the session. If you have modified an address style or want to get the styles from a new file, you should clear the styles in the current ArcView session first using the ClearStyles request.

Attributes

MaxScore.   The maximum candidate score for this AddressStyle. This value is used to standardize candidate scores between 0 and 100.

MaxXScore.   The maximum intersection candidate score for this AddressStyle. This value is used to standardize candidate scores between 0 and 100.

MFields.   MFields is the list of MatchFields defined by the AddressStyle.

XMFields.   XMFields is the list of Intersection MatchFields defined by the AddressStyle.

XDelimiter.   The intersection delimiter which defines the left and right halves of an intersection event.

Offset.   The offset distance from the linear segment where the point representing the location of the event is placed. The distance is specified in map units. The point will be placed on the line if the offset distance is 0. This option is used only when the matchable theme is a line theme with left and right address range attributes. The offset distance is ignored if the theme features are polygons, points, or lines with single address range attributes.

Squeeze.   The distance, given in percentage of the linear segment's length, used to place addresses inward from an intersection. For example, a squeeze factor of 5 indicates that the computed location for an address shifts 2.5 percent distance from each end inward of a street segment defined by its two ending intersections. Use this option to prevent addresses at the end of a block from being placed on top of an intersection.

Zone.   The name of the MatchKey zone field, if a zone field is present for this AddressStyle.

Intersections.   Intersection has the value TRUE if the AddressStyle defines intersections.


AddressStyle Example

'This example shows how to save the first two address styles (US Streets with

'Zone and US Streets) defined in the default address style data base

'(addstyle.db) in a new ODB file. Using the GetStyles request, ArcView will

'read these two styles. If you want to make the two styles a system default,

'rename the file newstyle.db to addstyle.db and store it in the installation's

'geocode directory.

styleDB = ODB.Open ("$AVHOME\geocode\addstyle.db".AsFileName)

s1 = styleDB.Get(0)

s2 = styleDB.Get(1)

myODB = ODB.Make("c:\temp\newstyle.db".AsFileName)

myODB.Add(s1)

myODB.Add(s2)

myODB.Commit

' output ODB file name.

AddressStyle.ClearStyles

newList = AddressStyle.GetStyles ("c:\temp\newstyle.db".asFileName)

Msgbox.ListAsString (newList, " Address Styles" , "")


AddressStyle.GetStyles Example

'Displays the list of address styles defined in ArcView's default address style data base.

StyleList = AddressStyle.GetStyles ( AddressStyle.GetDefStylesODB )

Msgbox.ListAsString (StyleList, "ArcView Address Styles" , "")


AddressStyle.SaveStyles Example

'This example shows how to modify an address style and save the styles in a new file.

AddressStyle.ClearStyles   'Clear all styles in the current ArcView session

StyleList = AddressStyle.GetStyles ( AddressStyle.GetDefStylesODB )

aFN = FN.Make("c:\temp\newstyle.db")

s1 = AddressStyle.FindStyle ("US Streets")

'Change the default offset of the US Street address style to 30.

s1.SetDefOffset (30)

'Save all styles including the modification in the file, newstyle.db

AddressStyle.SaveStyles(aFN)


Add a new classification to a themes legend
Add a new classification to a theme’s legend

'******************************************************************

'* To run this example make a new view and add the US States      *

'* sample shape file to the view.  Edit its legend so that the    *

'* legend type is Graduated Color, and the Classification field   *

'* is Pop1996.  Apply it, and then run this script--you may have  *

'* to change the name of the view if it was not the only one in   *

'* your project.                                                  *

'******************************************************************

theView = av.GetProject.FindDoc("View1")

theTheme = theView.GetThemes.Get(0)

theLegend = theTheme.GetLegend

'*******************************************

'* Get the current list of classifications *

'*******************************************

theClassesList = theLegend.GetClassifications

'*****************************

'* Make a new classification *

'*****************************

theNewClass = Classification.Make(40000,380000)

'*****************************

'* Insert it into the legend *

'*****************************

theClassesList.Insert(theNewClass)

'***********************************************

'* Make a new symbol for your new class and    *

'* insert it into the legend's list of symbols *

'* you must do this, otherwise there will be a *

'* mismatch in your theme's legend, and one    *

'* class will not have a symbol.               *

'***********************************************

aSymbol4theNewclass = RasterFill.Make

aSymbol4theNewclass.SetStyle(#RASTERFILL_STYLE_SOLID)

aSymbol4theNewclass.SetColor(Color.GetGray)

theLegend.GetSymbols.Insert(aSymbol4theNewclass)

'**********************************************

'* To move this class within the legend       *

'* you will need to shuffle it and its symbol *

'* the desired position in your legend.       *

'**********************************************

theClassesList.Shuffle(theNewClass,2)

theLegend.GetSymbols.Shuffle(aSymbol4theNewclass,2)

theTheme.UpdateLegend


Add To GraphicSet Example

myView = av.GetActiveDoc

myTheme = myView.GetActiveThemes.Get(0)

‘ Get the GraphicSet for aTheme

myGraphicSet = myTheme.GetGraphics

‘ Make a GraphicText object to be added myView

myText = GraphicText.Make(“Identifies something in myTheme”,(-95,43))

‘ Add myText to myView’s GraphicsList

myView.GetGraphics.Add(myText)

‘ Add myText to myTheme’s GraphicSet

myGraphicSet.Add(myText)

‘ Set all graphics for myTheme visible

myGraphicSet.SetVisible(true)


Albers Projection (Avenue example)
Albers Projection Example

theView = av.GetActiveDoc

' set the parameters of the Albers Equal-Area Conic projection

p = Albers.Make(theView.ReturnExtent)

p.SetCentralMeridian(-122.59)

p.SetReferenceLatitude(45.165)

p.SetLowerStandardParallel(27.6)

p.SetUpperStandardParallel(62.65)

p.SetFalseEasting(40000)

p.SetFalseNorthing(0)

' set Map Units to feet and Distance Units to meters

theView.SetUnits(#UNITS_LINEAR_FEET)

theView.GetDisplay.SetDistanceUnits(#UNITS_LINEAR_METERS)

' apply the projection to the view

theView.SetProjection(p)


Auto-label multiple themes simultaneously

'*********************************************

'* This example shows how to use Avenue to   *

'* autolabel many themes have have conflicts *

'* between labels resolved within a theme's  *

'* labels and with other theme's labels.     *

'*********************************************

'**************************************************

'* Identify the view and the themes that are to   *

'* be labeled, then set those themes to be active *

'* because the labeler object will not load them  *

'* unless they are active.                        *

'**************************************************

theView = av.GetActiveDoc

theGraphics=theView.GetGraphics

theHighways = theView.FindTheme("Highways")

theRivers = theView.FindTheme("Rivers")

theLakes = theView.FindTheme("Lakes")

theCities = theView.FindTheme("City Population")

theHighways.SetActive(true)

theRivers.SetActive(true)

theLakes.SetActive(true)

theCities.SetActive(true)

'*************************************************

'* Set the textSymbol of all the themes to be    *

'* labeled, it needs to be large enough to be    *

'* useful for all themes, since that textSymbol  *

'* is initially used for all themes.  The reason *

'* you need to do this is that there is a bug    *

'* with setting the textSymbol for any other     *

'* theme to be different that causes ArcView to  *

'* crash.                                        *

'*************************************************

aTextSym = TextSymbol.Make

aTextSym.SetFont(Font.Make("Arial","Bold"))

aTextSym.SetSize(12)

theHighways.SetLabelTextSym(aTextSym)

theRivers.SetLabelTextSym(aTextSym)

theLakes.SetLabelTextSym(aTextSym)

theCities.SetLabelTextSym(aTextSym)

'***************************************************

'* Make the labeler object and set the extent that *

'* is to be labeled.  This example uses the entire *

'* view's extent.  You might want to use           *

'* theView.GetDisplay.ReturnVisExtent to label     *

'* just the visible extent of the view.            *

'***************************************************

anExt = theView.ReturnExtent

aLabeler = Labeler.Make(anExt)

'*********************************************

'* As each of the themes are loaded into the *

'* labeler object, their feature and label   *

'* weights may need to be set in order to    *

'* create the most appropriate result.       *

'*********************************************

aLabeler.SetFeatureWeight(#LABEL_WEIGHT_HIGH)

aLabeler.SetLabelWeight(#LABEL_WEIGHT_HIGH)

aLabeler.RemoveDuplicates(true)

aLabeler.Load(theCities)

aLabeler.SetFeatureWeight(#LABEL_WEIGHT_MEDIUM)

aLabeler.Load(theHighways)

aLabeler.Load(theRivers)

aLabeler.Load(theLakes)

theView.GetAutoLabels(aLabeler, false)

'*******************************************

'* Due to a bug, the textSymbols for each  *

'* theme are not honored during the label  *

'* placement process, so here is a the     *

'* workaround to this.  Note, that the     *

'* size of labels are not accounted for    *

'* here, so be careful about setting a     *

'* theme's labels to be a larger size as   *

'* conflicts may arise.                    *

'*******************************************

aTextSym2 = TextSymbol.Make

aTextSym2.SetFont(Font.Make("Arial","Normal"))

aTextSym2.SetSize(10)

theView.GetDisplay.HookUpSymbol(aTextSym2)

theHighways.SetLabelTextSym(aTextSym2)

thedeleteList = {}

theGraphics.UnSelectAll

for each HwyLabel in theHighways.GetGraphics

  thedeleteList.Add(HwyLabel.clone)

  HwyLabel.SetSelected(true)

end

theGraphics.ClearSelected

aHwyGTS = {}

for each oldGL in thedeleteList

  aString = oldGL.GetText

  aPoint = oldGL.GetBounds.ReturnOrigin

  anAngle = oldGL.GetAngle

  newGL = GraphicLabel.MakeWithSym ( aString, aPoint, aTextSym2, aHwyGTS )

  newGL.SetAngle(anAngle)

  theGraphics.addbatch(newGL)

end

aTextSym3 = TextSymbol.Make

aTextSym3.SetFont(Font.Make("Arial","Italic"))

aTextSym3.SetSize(10)

aTextSym3.SetColor(Color.GetBlue)

theView.GetDisplay.HookUpSymbol(aTextSym3)

theDeleteList = {}

theGraphics.UnSelectAll

for each lakeLabel in theLakes.GetGraphics

  theDeleteList.Add(lakeLabel.Clone)

  lakeLabel.SetSelected(true)

end

for each riverLabel in theRivers.GetGraphics

  theDeleteList.Add(RiverLabel.clone)

  riverLabel.SetSelected(true)

end

theGraphics.ClearSelected

aWaterGTS = {}

for each oldGL in thedeleteList

  aString = oldGL.GetText

  aPoint = oldGL.GetBounds.ReturnOrigin

  anAngle = oldGL.GetAngle

  newGL = GraphicLabel.MakeWithSym ( aString, aPoint, aTextSym3, aWaterGTS )

  newGL.SetAngle(anAngle)

  theGraphics.AddBatch(newGL)

end

theGraphics.EndBatch


Auto-label a single theme

aView = av.GetActiveDoc

aTheme = aView.GetActiveThemes.Get(0)

aExt = aView.GetDisplay.ReturnVisExtent

aLabeler = Labeler.Make(aExt)

' These weights are the defaults for a line theme.

aLabeler.SetFeatureWeight(#LABEL_WEIGHT_NO)

aLabeler.SetLabelWeight(#LABEL_WEIGHT_HIGH)

aLabeler.RemoveDuplicates(true)

' Set the textsymbol for the theme you are labeling

aTextSym = TextSymbol.Make

aTextSym.SetFont(Font.Make("Times","Bold"))

aTextSym.SetSize(8)

aTheme.SetLabelTextSym(aTextSym)

' This starts the labeling process and corresponds to the first

' status bar you see on the application window.

aLabeler.Load(aTheme)

' Get the Labels from the labeler (corresponds to the second

' status bar you see on the application window) and draw them

' on the view.

' The GetAutoLabels request automatically adds the new labels

' to the aView's GraphicList and aTheme's GraphicSet.

aView.GetAutoLabels(aLabeler, false)


Cassini Projection (Avenue example)
Cassini Projection Example

theView = av.GetActiveDoc

' set the parameters of the Cassini Soldner projection

p = Cassini.Make(theView.ReturnExtent)

p.SetCentralMeridian(125.88)

p.SetReferenceLatitude(0)

' set Map Units to feet and Distance Units to miles

theView.SetUnits(#UNITS_LINEAR_FEET)

theView.GetDisplay.SetDistanceUnits(#UNITS_LINEAR_MILES)

' apply the projection to the view

theView.SetProjection(p)


Changes to classes and requests in ArcView 3.0

All the changes to classes and requests from ArcView 2.1 to ArcView 3.0 are listed below. You can also find this information in delimited text files called chngclas.txt and chngreqs.txt available in the ArcView samples other directory ($AVHOME/samples/other). Also, the sample extension ClassBrowser lets you inspect these files from tabular format where you can search and sort.

For information about the changes to the Database Access extension, see Changes to classes and requests for Database Access

If classes or requests have changed, there is some information indicating what change has occurred. For requests, if the change has been a name change, then the explanation shows the old name and the new name. If the change has been to the request's return object, you will see the key "return:" followed by the old return type and the new return type. If the change has been to the request's arguments, you will see the key "arguments:" followed by the old argument list and the new argument list.

Classes: Changed

ArcView 3.0	ArcView 2.1	Change
EqualAreaAzimuthal	Eqarazi	name change
EqualAreaCylindrical	Eqarcyl	name change
EquidistantAzimuthal	Equiazi	name change
EquidistantConic	Equicon	name change
EquidistantCylindrical	Equicyl	name change
ObliqueMercator	Oblmerc	name change
Orthographic	Ortho	name change
Stereographic	Stereo	name change
TransverseMercator	Trnmerc	name change
ISrc	ISrc inherited from Src	ISrc inherits from ImgSrc
Classes: New

Annotation

AttrUpdate

AttrRange

AttrSingle

AutoLabelDialog

ChartSymbol

Codepage

ColumnChartSymbol

DocExtension

DwgFile (CAD Reader)

DwgSrc

Extension

ExtensionObject

ExtensionWin

GEdgeRec

GeocodeDialog

GNodeRec

GraphicLabel

GShapeRec

Hammer

ImgCat

ImgSrc

Labeler

LegendExtension

LOCKMGR

Mollweide

PieChartSymbol

Popup

PopupSet

ReMatchDialog

ShowCandWin

SourceManager

SrcExtension

StanEditDialog

ThemeExtension

VectorPenArrow

Digitizer extension

Digit

Network Analyst extension

ClosestFacilityWin

DirectionsWin

GraphicFlag

NetCostField

NetDef

NetPropWin

NetUnits

NetWork

NetworkSrc

NetworkWin

NetworkWinSrc

ServiceAreaWin

ShortestPathWin

Spatial Analyst extension

AnalysisEnvironment

AnalysisPropertiesDialog

DensitySurfaceDialog

FocalStatisticsDialog

Grid

GridLegendExtension

GridLegendWindow

GTheme

Interp

InterpolationDialog

NbrHood

Radius

ReclassEditor

SVGram

TabulateAreaDialog

Requests: Changed

Class	ArcView 3.0 request	ArcView 2.1 request	Change
Application	GetSysDefault	GetSysDefaults	renamed from GetSysDefaults to GetSysDefault
	GetUserDefault	GetUserDefaults	renamed from GetUserDefaults to GetUserDefault
Chart	MakeUsingDialog	MakeUsingDialog	arguments: (aVTab) changed to (aVTab, aString)
Classification	Contains	Contains	arguments: (aObj, aNumber) changed to (aObj)
	ReturnMaximum	GetMaximum	renamed from GetMaximum to ReturnMaximum
	ReturnMinimum	GetMinimum	renamed from GetMinimum to ReturnMinimum
DLL	GetFileName	GetFileName	return: String changed to FileName
Display	GetDistanceUnits	GetReportUnits	renamed from GetReportUnits to GetDistanceUnits
	SetDistanceUnits	SetReportUnits	renamed from SetReportUnits to SetDistanceUnits
EventDialog	Show	Show	arguments: () changed to (aView)
IdentifyWin	Add	Add	arguments: (aVTab, aNumber, aString) changed to (aObj, aObj, aString)
ITheme	ReturnExtent	GetExtent	renamed from GetExtent to ReturnExtent
Layout	Export	Export	return: Nil changed to FileName
Legend	GetSymbols	GetSymbols	return: List changed to SymbolList
	Interval	Interval	arguments: (aVTab, aField, aNumber) changed to (aTheme, aString, aNumber)
	Load	Load	arguments: (aFileName) changed to (aFileName, aEnumerationElt)
	Quantile	Quantile	arguments: (aVTab, aField, aNumber) changed to (aTheme, aString, aNumber)
	Unique	Unique	arguments: (aVTab, aField) changed to (aTheme, aString)
MatchCand	GetSide	GetSide	return: Obj changed to String
MatchSource	BatchMatch	BatchMatch	renamed from ReMatch to BatchMatch
MatchPrefDialog	Show	Show	return: Nil changed to Boolean
Prj	CanDoSpheroid	CanDoEllipsoid	renamed from CanDoEllipsoid to CanDoSpheroid
	GetSpheroid	GetEllipsoid	renamed from GetEllipsoid to GetSpheroid
	IsNull	IsNil	renamed from IsNil to IsNull
	MakeNull	MakeNil	renamed from MakeNil to MakeNull
	SetSpheroid	SetEllipsoid	renamed from SetEllipsoid to SetSpheroid
Project	MakeDocName	MakeDocName	arguments: (aClass) changed to (aDocGUI)
	RemoveGUI	RemoveGUI	return: Nil changed to Boolean
	Save	Save	return: Nil changed to Boolean
ProjectionDialog	Show	Show	arguments: (aView) changed to (aView, anEnumerationElt)
System	LoadLibrary	LoadLibrary	moved from application
	UnloadLibrary	UnloadLibrary	moved from application
Theme	ReturnExtent	GetExtent	renamed from GetExtent to ReturnExtent
	ReturnExtent	GetExtent	renamed from GetExtent to ReturnExtent
	SelectByTheme	SelectByTheme	argument:s (aFTheme, aEnumerationElt, aNumber, aEnumerationElt) changed to (aTheme, aEnumerationElt, aNumber, aEnumerationElt)
	SetSnapping	SetSnapping	arguments: (aBoolean, aNumber) changed to (aBoolean)
Window	Make	Make	arguments: (aFileName, aString, aString, aString) changed to (aFileName, aString, aString, aString, aBoolean)
View	Export	Export	return: Nil changed to FileName
Requests: Removed

Class	ArcView 2.1 Request
Application	LoadLibrary (moved to System)
	UnloadLibrary (moved to system)
Duration	GetIncrement
Doc	GetPluralClassName
Graphic	NextSelect
ITheme	GetISrc (see GetImgSrc)
Legend	Default
	GetField (use GetFieldNames)
	GetMaxClassifications
	IsSimple
	RampColors (moved to SymbolList)
	RandomColors (moved to SymbolList)
	SetField (use SetFieldNames)
	SetMaxClassifications
Pattern	BasicTrim
Polygon	PointPosition
Project	GetActive
	GetActiveClass
	Print
	SetActive
Script	AddBreak (use SEd request)
	ClearBreak (use SEd request)
TextSymbol	GetBgColor
	GetOlColor
	SetBgColor
	SetOlColor
Requests: New

Class	ArcView 3.0 Request
Obj	HasInstances
Application	ClearWorkingStatus
	FindDoc
	FindGUIsFor
	GetCodepageConvert
	GetExtensionWin
	GetGUI
	ProcessAllInvals
	SetCodepageConvert
	SetWorkingStatus
AttrUpdate	AddMissingRules
	GetField
	HasField
	MakeDefault
	ReturnDefaultRules
AttrRange	GetPairedField
	GetRangeType
	Make
	SetPairedField
	SetRangeType
AttrSingle	GetSplitRule
	GetUnionRule
	Make
	SetSplitRule
	SetUnionRule
Bitmap	NotRange
Classification	GetComponents
	GetPrecision
	IsDisjoint
	IsEmpty
	IsNoData
	MakeDisjoint
	SetPrecision
Codepage	EditProfile
	IsCodepageValid
	Load
	Make
Dictionary	GetLoadAverage
	GetLoadBalance
	GetLoadMax
	GetLoadMin
	GetUsed
List	FindByClass
	Minus
GraphicList	CanRestoreGraphic
	ClearUndoStack
	GetMaxUndoTransactionSize
	GetUndoStackSize
	RestoreGraphic
	SaveGraphic
	SaveSelectedGraphics
	SetMaxUndoTransactionSize
	SetUndoStackSize
GraphicSet	CanConvertOverlappingLabels
	ConvertOverlappingLabels
	HasLabels
	HasOverlappingLabels
	SelectLabels
	SelectOverlappingLabels
SymbolList	GetPredefined
	RampSavedColors
	RampSizes
	RampSplitSavedColors
	RampSubset
	RandomSavedSymbols
	RandomSymbols
NameDictionary	ForceMerge
Stack	Size
Control	HasScript
	IsModified
	SetModified
Button	HasScript
Choice	HasScript
ControlSet	Empty
	FindByName
	FindByScript
ButtonBar	Empty
	FindByName
	FindByScript
	Remove
Menu	FindByLabel
	FindByName
	FindByScript
Popup	FindByLabel
	GetLabel
	Make
MenuBar	FindByLabel
	FindByName
	FindByScript
PopupSet	FindByLabel
	FindByName
	FindByScript
	GetActive
	SetActive
ToolBar	Empty
	FindByName
	FindByScript
	Remove
LabelButton	HasScript
Tool	HasScript
ToolMenu	Add
	FindByScript
	HasScript
	Make
	Remove
	SetApply
	SetClick
	SetEnabled
	SetHelp
	SetHelpTopic
	SetIcon
	SetObjectTag
	SetTag
	SetUpdate
	Shift
Date	=
Date	MakeFromNumber
Display	CanRenderString
	CanUndoZoom
	DeleteUserPoint
	DisableZoomUndo
	EnableZoomUndo
	ExportStartParams
	HookupSymbol
	SetCanRenderString
	UndoZoom
ListDisplay	ExportStartParams
	HookupSym
MapDisplay	ExportStartParams
	Flush
	HookUpSymbol
PageDisplay	ExportStartParams
	Flush
	HookupSymbol
	UndoZoom
Doc	GetExtension
	GetGroupGUI
	Make
	MakeWithGUI
	RegisterExtension
	RemoveExtension
	SetExtension
	SetGroupGUI
	UnregisterExtension
Chart	GetGroupGUI
	MakeWithGUI
	SetGroupGUI
Layout	ExportToFile
	GetGroupGUI
	GetSelectMode
	MakeWithGUI
	SelectToEdit
	SetGroupGUI
	SetSelectMode
Project	FindGUIsFor
	GetDependencies
	GetDocsWithGUI
	GetDocsWithGroupGUI
	GetGroupGUI
	GetSelectedDocs
	GetSelectedGUI
	GetVisibleGUIsWidth
	IsClosing
	MakeGUIName
	MakeWithGUI
	SetGroupGUI
	SetSelectedDoc
	SetSelectedGUI
	SetVisibleGUIsWidth
	ShowCodepage
	Update
SEd	GetCodepage
	GetDefaultFontSize
	GetFontSize
	GetGroupGUI
	MakeWithGUI
	SetCodepage
	SetDefaultFontSize
	SetFontSize
	SetGroupGUI
	ShowCodepage
Table	GetEditor
	GetGroupGUI
	MakeWithGUI
	SetGroupGUI
	ShowCodepage
View	ExportToFile
	FindThemeByClass
	GetAutoLabels
	GetGroupGUI
	GetOverlapLabelColor
	GetSelectMode
	GetUnits
	MakeWithGUI
	SelectToEdit
	SetGroupGUI
	SetInteractiveSnapping
	SetInteractiveSnappingPersistent
	SetOverlapLabelColor
	SetSelectMode
	SetUnits
DocGUI	GetActionScript
	GetActionUpdateScript
	GetDocBaseName
	GetIcon
	GetNewScript
	GetNewUpdateScript
	GetOpenScript
	GetOpenUpdateScript
	GetPopups
	GetTitle
	IsVisible
	SetActionScript
	SetActionUpdateScript
	SetDocBaseName
	SetIcon
	SetName
	SetNewScript
	SetNewUpdateScript
	SetOpenScript
	SetOpenUpdateScript
	SetTitle
	SetVisible
DocExtension	Activate
LegendExtension	OverrideAdvancedDialog
	ShowAdvancedDialog
Script	IsCompiled
EncryptedScript	IsCompiled
Shape	AsPolyLine
	Clean
	IsEmpty
	LineIntersection
	PointIntersection
	ReturnBuffered
	ReturnDifference
	ReturnIntersection
	ReturnUnion
	SetCleanPreference
Circle	ReturnDifference
	ReturnIntersection
	ReturnUnion
Line	ReturnOffset
MultiPoint	IsEmpty
	PointIntersection
	ReturnBuffered
PolyLine	Along
	AsPolyLine
	Clean
	Explode
	Flip
	FlipPart
	IsEmpty
	LineIntersection
	PointIntersection
	QueryPointDistance
	ReShape
	ReturnBuffered
	ReturnConnected
	ReturnOffset
	Split
	SplitLines
Polygon	Along
	AsPolyLine
	Explode
	IsEmpty
	LineIntersection
	PointIntersection
	ReturnBuffered
	ReturnDifference
	ReturnIntersection
	ReturnUnion
	Split
Annotation	=
	AsString
	GetBaseline
	GetHeight
	GetLevel
	GetSymbol
	GetText
Oval	AsArc
	ReturnDifference
	ReturnIntersection
	ReturnUnion
Rect	ReturnDifference
	ReturnIntersection
	ReturnUnion
SourceManager	GetDataSet
	ManageDataSets
	PutDataSet
	ReturnDataSets
Spheroid	GetUnits
	SetUnits
File	CanDelete
TextFile	GetCodepage
FileName	FindInSystemSearchPath
Font	=
	GetDefault
	SetDefault
Graphic	CanUndo
	GetSiblingList
	HasSiblings
	IsTouchedBy
	ReturnUniqueName
	SelectToEdit
DocFrame	CanUndo
ViewFrame	GetMapDisplay
	GetUserScale
	IsExtentPreserved
	SetExtentPreserved
	SetUserScale
GraphicShape	SelectEdit
GFeature	CanUndo
GEdgeRec	GetSymbol
GNodeRec	GetSymbol
GraphicLabel	ChangeSets
	Clone
	GetSiblings
	HasSiblings
	MakeWithSym
	SetBounds
	SetSpacing
	SetText
ScaleBarFrame	GetPreserveInterval
	SetPreserveInterval
Help	ExecuteMacro
	RegisterExtension
	UnregisterExtension
Icon	IsMacIcon
	MakeFromMacClipboard
	MakeFromMacResFile
LOCKMGR	GetErrorMsg
	GetRefreshRate
	IsActive
	IsConnected
	Make
	MakeFromFile
	The
Labeler	GetFeatureWeight
	GetLabelWeight
	GetLinePlacement
	Load
	Make
	RemoveDuplicates
	RemovingDuplicates
	SetFeatureWeight
	SetLabelWeight
	SetLinePlacement
Legend	Area
	ColumnChart
	DisplayNoDataClass
	Dot
	GetClassType
	GetDensity
	GetExtension
	GetFieldNames
	GetIndex
	GetLegendType
	GetLineOffset
	GetNormFieldName
	GetNormType
	GetNullValue
	GetNumClasses
	GetNumStdDev
	GetPrecision
	GetRefScale
	GetRotationFieldName
	GetSizeFieldName
	GetSymbol
	IsNoDataClassDisplayed
	IsScaled
	Natural
	PieChart
	RemoveExtension
	ResetClasses
	RestoreSymbols
	ReturnBestDensity
	ReturnClassInfo
	ReturnFieldNames
	ScaleSymbols
	SetClassInfo
	SetDensity
	SetExtension
	SetFieldNames
	SetLegendType
	SetLineOffset
	SetNormFieldName
	SetNormType
	SetNullValue
	SetPrecision
	SetRefScale
	SetRotationFieldName
	SetScaleSymbols
	SetSizeFieldName
	SingleSymbol
	StdDev
MatchCand	GetMatchSourceRec2
MatchKey	GetFieldLabel
MatchSource	EditMatch
	GetScore
	InvalIndex
	SetDefOffset
	SetDefSqueeze
	SingleMatch
QueryWin	Close
AutoLabelDialog	Show
EventDialog	Show
ExtensionWin	Show
GeocodeDialog	Show
ReMatchDialog	Show
ShowCandWin	Show
StanEditDialog	Show
MsgBox	AllYesNo
	LongYesNo
	MultiList
	MultiListAsString
ODB	GetCodepage
	GetDependencies
	GetFileName
	GetVersion
	OpenAndInstall
Extension	CanUnload
	Find
	FindByName
	FindDoc
	FindGUI
	FindGUIsFor
	GetAbout
	GetCanUnloadScript
	GetDocs
	GetExtVersion
	GetExtensions
	GetGUIs
	GetInstallScript
	GetLoadScript
	GetPreferences
	GetProjectSaveScript
	GetScripts
	GetUninstallScript
	GetUnloadScript
	IsADependency
	Make
	Open
	OpenAndInstall
	SetAbout
	SetCanUnloadScript
	SetExtVersion
	SetInstallScript
	SetLoadScript
	SetProjectSaveScript
	SetUninstallScript
	SetUnloadScript
	Unload
Prj	FixExtent
Albers	FixExtent
Cassini	FixExtent
EqualAreaAzimuthal	FixExtent
EqualAreaCylindrical	FixExtent
EquidistantAzimuthal	FixExtent
EquidistantConic	FixExtent
EquidistantCylindrical	FixExtent
Hammer	FixExtent
	GetDisplayQuality
	Make
	ProjectPt
	Recalculate
	ReturnCentralMeridian
	SetCentralMeridian
	UnProjectPt
Lambert	FixExtent
Mercator	FixExtent
Miller	FixExtent
Mollweide	FixExtent
	GetDisplayQuality
	Make
	ProjectPt
	Recalculate
	ReturnCentralMeridian
	SetCentralMeridian
	UnProjectPt
NewZealand	FixExtent
ObliqueMercator	FixExtent
Perspective	FixExtent
RSO	FixExtent
Robinson	FixExtent
Sinusoid	FixExtent
TransverseMercator	FixExtent
RPCClient	GetMachineName
	SetCodepage
ImgSrc	GetNumBands
	GetSrcName
	HasError
	IsValidFileName
	Make
	ReturnClipExtent
	ReturnExtent
	ReturnMapExtent
	SetClipExtent
ISrc	ReturnClipExtent
	ReturnExtent
	ReturnType
	ReturnTypeFromFileExt
	SetClipExtent
ImgCat	ContainType
	GetNumBands
	GetNumImages
	GetSrcName
	HasError
	IsValidFileName
	Make
	ReturnClipExtent
	ReturnExtent
	ReturnImageNames
	ReturnMapExtent
	SetChecking
	SetClipExtent
DynName	GetOffsetField
	SetOffsetField
GeoName	GetDisplayField
	SetDisplayField
Symbol	CanSetSize
	UnHook
ChartSymbol	Copy
	GetBgColor
	GetBgSym
	GetMaxSize
	GetMaxValue
	GetMinSize
	GetMinValue
	GetNumValues
	GetOlColor
	GetSize
	GetType
	SetBgColor
	SetBgSym
	SetMaxSize
	SetMaxValue
	SetMinSize
	SetMinValue
	SetNumValues
	SetOlColor
	SetSize
	SetSymbols
	SetValues
ColumnChartSymbol	GetBgSym
	GetColumnWidth
	Make
	SetBgSym
	SetColumnWidth
PieChartSymbol	GetBgSym
	IsFirstValueRadius
	Make
	SetBgSym
	SetFirstValueRadius
RasterFill	UnHook
VectorFill	GetDotDensity
	GetDotSymbol
	SetBgColor
	SetDotDensity
	SetDotSymbol
BasicMarker	CanSetSize
	GetAngle
	SetAngle
	UnHook
CompositeMarker	CanSetSize
Pen	GetOffset
	SetOffset
BasicPen	CanSetSize
	GetOffset
	SetOffset
	UnHook
CompositePen	CanSetSize
	GetOffset
	SetOffset
VectorPen	CanSetSize
	GetOffset
	SetOffset
VectorPenArrow	GetFlip
	Make
	SetArrowLen
TextSymbol	CanSetSize
	UnHook
System	CanUnloadLibrary
	GetAVProcessID
	GetUNCFilename
	IsLibrary
	QueryLocalMachineName
TOC	IsOrderLocked
	SetOrderLocked
Theme	CanDeleteFromView
	CanExportToFTab
	CanFindByPoint
	CanHotLink
	CanLabel
	CanProject
	CanReturnClassCounts
	ClearSelection
	ExportToFTab
	FindByPoint
	GetExtension
	GetFixedSizeText
	GetLabelField
	GetLabelTextSym
	GetLegendEditorScript
	GetView
	HasAttributes
	HasTable
	Identify
	IsActiveLocked
	IsVisibleLocked
	RemoveExtension
	ReturnClassCounts
	ReturnDefaultLegend
	ReturnLabel
	ReturnValueString
	SelectByTheme
	SetActiveLocked
	SetDefaultLegend
	SetExtension
	SetFixedSizeText
	SetLabelField
	SetLabelTextSym
	SetLegendEditorScript
	SetVisibleLocked
FTheme	AutoComplete
	CanDeleteFromView
	CanExportToFTab
	CanHotLink
	CanLabel
	CanProject
	CanReturnClassCounts
	CancelEditing
	ClearSelection
	ClipSelected
	ExportToFTab
	GetAttrUpdateRules
	GetFeatureSymbol
	GetFixedSizeText
	GetInteractiveSnapTolerance
	GetLabelTextSym
	HasTable
	Identify
	IntersectSelected
	IsActiveLocked
	IsInteractiveSnapping
	ReturnClassCounts
	ReturnDefaultLegend
	SaveEditsAs
	SelectByLine
	SelectByPolyLine
	SelectToEdit
	SelectToEditByPoint
	SetActiveLocked
	SetAttrUpdateRules
	SetDefaultLegend
	SetFixedSizeText
	SetInteractiveSnapTolerance
	SetInteractiveSnapping
	SetLabelTextSym
	SetSnapTolerance
	Split
	StopEditing
	SubtractShape
	UnionSelected
	UserSnapPoint
ITheme	CanFindByPoint
	GetImgSrc
	IsActiveLocked
	Make
	MakeFromSrc
	SetActiveLocked
VTab	BeginTransaction
	CanRedo
	CanUndo
	EndTransaction
	GetBaseTableClass
	GetBaseTableFileName
	GetLockError
	HasLockError
	IsBeingEditedWithRecovery
	IsJoinedField
	Redo
	SaveEditsAs
	StartEditingWithRecovery
	StopEditingWithRecovery
	Undo
FTab	AddAnnoFields
	AsGrid
	BatchMatch
	BeginTransaction
	CalculateDensity
	CanAddFields
	CanEdit
	CanManageDataSet
	CanRedo
	CanRemoveFields
	CanUndo
	EndTransaction
	ExportClean
	ExportProjected
	ExportUnprojected
	FocalStats
	GetAnnoAddFieldsPreference
	GetDataSetName
	GetExtension
	Interpolate
	IsAnno
	IsBeingEditedWithRecovery
	Redo
	RemoveExtension
	SaveEditsAs
	SetAnnoAddFieldsPreference
	SetExtension
	StartEditingWithRecovery
	StopEditingWithRecovery
	Undo
EnumerationElt	ReturnElements
Number	ATan
	AsDate
	AsGrid (Spatial Analyst)
	IsInfinity
	SetFormatPrecision
	Tan
Digitizer extension

Digit	CanSetup
	GetDigitTics
	GetLastViewDoc
	GetMode
	GetPoint
	GetPointsFromDig
	GetPuckClick
	GetPuckLoc
	GetRmsDigErr
	GetRmsMapErr
	GetTicDigList
	GetTicMapList
	GetUnits
	IsAvailable
	IsBtnLeftClick
	IsBtnLeftDblClick
	IsBtnLeftDrag
	IsBtnMiddleClick
	IsBtnMiddleDblClick
	IsBtnMiddleDrag
	IsBtnRightClick
	IsBtnRightDblClick
	IsBtnRightDrag
	IsButtonAssignedForAction
	IsTracking
	Make
	RegTics
	RegTicsFromList
	ReturnBtnClick
	ReturnPhysicalBtnClick
	SetBeep
	SetCurrentDocWin
	SetMode
	SetSwitchButton
	The
DigitWin
Network Analyst extension

NetworkWin	AddPoint
	CanSolve
	Close
	GetFTab
	GetInvalidSymbol
	GetNetwork
	GetNextPointNum
	GetNumPoints
	GetSourceTheme
	GetValidSymbol
	GetViewSearchTol
	IsOpen
	IsSymWinClient
	Refresh
	SetInvalidSymbol
	SetValidSymbol
	Solve
ClosestFacilityWin	AddPoint
	CanSolve
	GetSourceTheme
	Make
	MakeNewResultFTab
	Open
	Refresh
	Solve
GraphicFlag	GetInvalidSymbol
	GetValidSymbol
	SetInvalidSymbol
	SetShape
	SetSymbol
	SetSymbols
	SetValidSymbol
NetCostField	GetFields
	GetInputUnits
	GetLabel
	GetReportUnits
	IsDir
	SetReportUnits
NetDef	BuildTopology
	CanMakeFromFTab
	CanMakeFromTheme
	Close
	GetCostFields
	GetEdgeFTab
	GetElevFields
	GetNetworkDBFN
	GetNodeFields
	GetNodeVTab
	GetOneWayField
	GetSchema
	GetTurnCosts
	GetTurnVTab
	HasError
	HaveTopology
	IsBeingUpdated
	IsCurrent
	IsWritable
	Make
	NetworkDBExists
	Open
	SetSchema
	SetTurnVTab
	StartUpdate
	StopUpdate
	UpdateCosts
NetUnits	Convert
	ConvertMeasEnum
	ConvertNetUnitsEnum
	GetDefNumber
	GetDomain
	GetEnum
	GetFullUnitString
	GetInputNames
	GetInputUnits
	GetReportNames
	GetReportUnits
	GetUnitString
	GetUnknownName
	HasErr
	IsUnknown
	Make
	SetHMSFormat
	SetInputUnits
	SetReportUnits
	SetStartMeasure
	VelocityToTime
NetWork	ClearClosestFacResult
	ClearPathResult
	ClearServiceAreaResult
	FindClosestFac
	FindPath
	FindPathCost
	FindServiceArea
	GetClosestFacDirections
	GetClosestFacIndex
	GetClosestFacPathCost
	GetDefaultSearchTol
	GetNetDef
	GetPathDirections
	GetSearchTol
	HasClosestFacResult
	HasPathResult
	HasServiceAreaResult
	IsPointOnNetwork
	Make
	ResetSearchTol
	ReturnClosestFacShape
	ReturnPathShape
	SetCostField
	SetDirCostField
	SetDirLandMarks
	SetDirStreetNameFields
	SetSearchTol
	WriteClosestFac
	WriteClosestFacLong
	WriteClosestFacPath
	WriteClosestFacPathLong
	WritePath
	WritePathLong
	WriteServiceArea
NetworkSrc	GetNetwork
	Make
NetworkWinSrc	GetNetworkWin
	Make
ServiceAreaWin	AddPoint
	CanSolve
	GetSourceTheme
	Make
	MakeNewResultAreaFTab
	MakeNewResultNetFTab
	Open
	Refresh
	Solve
ShortestPathWin	AddPoint
	CanSolve
	GetSourceTheme
	Make
	MakeNewResultFTab
	Open
	Refresh
	Solve
Spatial Analyst extension

AnalysisEnvironment	Activate
	GetCellSize
	GetExtent
	GetMask
	SetCellSize
	SetExtent
	SetMask
	Store
Grid	!
	%
	&
	*
	+
	/
	<
	<<
	<=
	<>
	=
	>
	>=
	>>
	ACos
	ACosH
	ASin
	ASinH
	ATan
	ATan2
	ATanH
	Abs
	Aggregate
	And
	AsPolygonFTab
	Aspect
	BlockStats
	BoundaryClean
	BuildSTA
	BuildVAT
	CanManageDataSet
	Ceil
	CellValue
	CellValueList
	Combine
	Con
	Contour
	ContourList
	CopyDataSet
	Cos
	CosH
	CostDistance
	CostPath
	Curvature
	DeleteDataSet
	EqualTo
	EucAllocation
	EucDistance
	Exp
	Exp10
	Exp2
	Expand
	ExtractByAttributes
	ExtractByCircle
	ExtractByMask
	ExtractByPoints
	ExtractByPolygon
	ExtractByRect
	ExtractSelection
	FMod
	Flip
	Float
	Floor
	FlowAccumulation
	FlowDirection
	FlowLength
	FocalFlow
	FocalStats
	GetAnalysisCellSize
	GetAnalysisExtent
	GetAnalysisMask
	GetCellSize
	GetDataSetName
	GetExtent
	GetNoDataTransparency
	GetNumRowsAndCols
	GetSrcName
	GetStatistics
	GetVTab
	GetVerify
	GridsGreaterThan
	GridsLessThan
	HasError
	HasTempDataSet
	HillShade
	Int
	IsInteger
	IsNull
	IsValidDataSetFileName
	LocalStats
	Log
	Log10
	Log2
	Lookup
	MajorityFilter
	Make
	MakeByInterpolation
	MakeDensitySurface
	MakeFromASCII
	MakeFromDEM
	MakeFromDTED
	MakeFromFTab
	MakeFromFloat
	MakeFromImage
	MakeFromNumb
	MakeFromPointStats
	MakeNormal
	MakeRandom
	MakeSrcName
	Merge
	Minus
	Mirror
	Mosaic
	Negate
	Nibble
	Not
	Or
	Pick
	PointValue
	PointValueList
	Pow
	QueryContour
	Reclass
	ReclassByClassList
	RegionGroup
	Rename
	RenameDataSet
	Resample
	Reset
	ReturnContour
	ReturnCostPath
	Rotate
	Sample
	SaveAsASCII
	SaveAsFloat
	SaveDataSet
	SetAnalysisCellSize
	SetAnalysisExtent
	SetAnalysisMask
	SetNoDataTransparency
	SetNull
	SetVerify
	Shift
	Shrink
	Sin
	SinH
	Sink
	Slice
	Slope
	SnapPourPoint
	Sqr
	Sqrt
	StreamLink
	StreamOrder
	TabulateArea
	Tan
	TanH
	Test
	Thin
	Visibility
	Warp
	Watershed
	XOr
	ZonalFill
	ZonalGeometry
	ZonalGeometryTable
	ZonalStats
	ZonalStatsTable
	^
	|
	~
GridLegendExtension	GetBrightnessGrid
	GetBrightnessThemeName
	GetBrightnessView
	GetMaxBrightness
	GetMinBrightness
	OverrideAdvancedDialog
	QueryBrightnessRange
	SetBrightnessRange
	SetBrightnessThemeName
	SetBrightnessThemeView
	ShowAdvancedDialog
GSrc	BuildBandStatistics
	GetBandStatistics
GTheme	BuildQuery
	CanEdit
	CanExportToFTab
	CanLabel
	CanSelect
	ClearSelection
	Clone
	EditExpression
	EditLegend
	EditTable
	ExportToFTab
	FindByPoint
	GetGrid
	GetQueryColor
	GetVTab
	HasExpression
	HasTable
	Histogram
	Identify
	IsActiveLocked
	Make
	MakeCalculationMap
	MakeQueryMap
	QueryValStr
	ReturnCellValue
	ReturnExtent
	SetActiveLocked
	SetName
	SetQueryColor
	UpdateLegend
	ZoneHistogram
Interp	Make
	MakeFromVariogram
	MakeIDW
	MakeKriging
	MakeSpline
	MakeTrend
NbrHood	Make
	MakeAnnulus
	MakeCircle
	MakeIrregular
	MakeRectangle
	MakeWedge
Radius	Make
	MakeFixed
	MakeVariable
SVGram	GetVTab
	Make
AnalysisPropertiesDialog	Show
DensitySurfaceDialog	Show
FocalStatisticsDialog	Show
GridLegendWindow	Show
InterpolationDialog	Show
ReclassEditor	Show
TabulateAreaDialog	Show


Changes to classes and requests in ArcView 3.1

With new releases of ArcView, changes are often made to the classes and requests. These changes may affect existing projects and scripts. Information about what changes have been made to classes and requests from ArcView 3.0x to ArcView 3.1 can be found in delimited text files called chngclas31.txt and chngreq31.txt available in the ArcView samples directory ($AVHOME/samples/other). Also, the sample extension ClassBrowser lets you inspect these files from tabular format where you can search and sort.

For information about the changes to the Database Access extension, see Changes to classes and requests for Database Access

If classes or requests have changed, there is some information in these text files indicating what change has occurred. For requests, if the change has been a name change, then the explanation shows the old name and the new name. If the change has been to the request's return object, you will see the key "return:" followed by the old return type and the new return type. If the change has been to the request's arguments, you will see the key "arguments:" followed by the old argument list and the new argument list.

Note: These text files only cover changes to classes and requests in core ArcView 3.1 and included extensions (i.e. Dialog Designer, CAD Reader, Digitizer, etc.). It does not include changes to the optional Analyst extensions (i.e. 3D Analyst, Spatial Analyst, Network Analyst, etc.).


Changing a Marker Symbol in an Imported ARC/INFO VectorPenMarker Symbol Example

'** Changing the Marker symbol in a VectorPenMarker Symbol:

theSymWin = av.GetSymbolWin

theSymWin.Open

theSymWin.SetPanel(#SYMBOLWIN_PANEL_PEN)

thePalette = theSymWin.GetPalette

thePens = thePalette.GetList(#PALETTE_LIST_PEN)

'** For the sake of this example, we want to change the

'** marker symbol for first symbol in the pen palette

theSym = thePens.Get(0)

theCorrectMarker = BasicMarker.Make

theCorrectMarker.SetStyle(#BASICMARKER_STYLE_PATTERN)

theCorrectMarker.SetFont(Font.Make("ESRI Geometric Symbols","Normal"))

theCorrectMarker.SetCharacter(167)

theCorrectMarker.SetColor(Color.GetBlue)

theCorrectMarker.SetColorLock(true)

theSym.SetMarker(theCorrectMarker)

'** Update the Palette

theSymWin.RefreshPalette(#PALETTE_LIST_PEN)


Changing a Marker Symbol in a layer of an Imported CompositeArcInfoPen Symbol Example

'** Changing the Marker symbol in a VectorPenMarker Symbol

'** that is part of a CompositeArcInfoPen symbol:

theSymWin = av.GetSymbolWin

theSymWin.Open

theSymWin.SetPanel(#SYMBOLWIN_PANEL_PEN)

thePalette = theSymWin.GetPalette

thePens = thePalette.GetList(#PALETTE_LIST_PEN)

'** For the sake of this example, we want to change the

'** marker symbol for first symbol in the pen palette

theSym = thePens.Get(0)

theCorrectMarker = BasicMarker.Make

theCorrectMarker.SetStyle(#BASICMARKER_STYLE_PATTERN)

theCorrectMarker.SetFont(Font.Make("ESRI Geometric Symbols","Normal"))

theCorrectMarker.SetCharacter(167)

theCorrectMarker.SetColor(Color.GetBlue)

theCorrectMarker.SetColorLock(true)

'** Here we will iterate over the list of component symbols

'** that comprise the CompositeArcInfoPen symbol and if

'** one of those layers is a VectorPenMarker Symbols, then

'** we will replace its marker symbol

theComponents = theSym.GetSymbols

for each penSym in theComponents

  if (penSym.Is(VectorPenVertexMarker)) then

    penSym.SetMarker(theCorrectMarker)

  end

end

theNewSym = CompositeArcInfoPen.Make(SymbolList.FromList(theComponents))

thePens.Set(0,theNewSym)

'** Update the Palette

theSymWin.RefreshPalette(#PALETTE_LIST_PEN)


ColumnChart Legend Example

'To Create a ColumnChart Legend, get the legend Object of the active theme.

theView = av.GetActiveDoc

theTheme = theView.GetActiveThemes.Get(0)

theLegend = theTheme.GetLegend

' Decide what fieldNames you want to use and place them in a list.

theFieldNames = {"Field1", "Field2","Field3"}

' Create as many fill symbols as you have fieldNames and place them in a list.

sym1 = RasterFill.Make

sym1.SetStyle(#RASTERFILL_STYLE_SOLID)

sym1.SetColor(Color.GetRed)

sym2 = RasterFill.Make

sym2.SetStyle(#RASTERFILL_STYLE_SOLID)

sym2.SetColor(Color.GetGreen)

sym3 = RasterFill.Make

sym3.SetStyle(#RASTERFILL_STYLE_SOLID)

sym3.SetColor(Color.GetYellow)

theSyms = {sym1, sym2, sym3}

' Make a background fill Symbol

BGsym = RasterFill.Make

BGsym.SetStyle(#RASTERFILL_STYLE_SOLID)

BGsym.SetColor(Color.GetWhite)

' Create the New Legend

theLegend.ColumnChart(theTheme,theFieldNames,theSyms,BgSym)

theSym = theLegend.GetSymbol(theLegend.ReturnFieldNames, false)

theSym.SetMinSize(2)

theSym.SetMaxSize(24)

theSym.SetColumnWidth(8)

' Redraw the theme using the ColumnChart legend.

theTheme.UpdateLegend


CompositeArcInfoPen Example

'****************************************

'* CompositeArcInfoPen Example Script   *

'*                                      *

'* Creates a CompositeArcInfoPen symbol *

'* and a new palette file for it so you *

'* can use it in the Symbol Window.     *

'****************************************

'** Make a New Palette and get its Pen List

pal = Palette.Make

pens = pal.GetList(#PALETTE_LIST_PEN)

'** Make a VectorPenMarker Symbol

mrk = BasicMarker.Make

mrk.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk.SetFont(Font.Make("ESRI Geology","Normal"))

mrk.SetCharacter(37)

vpm = VectorPenMarker.Make(mrk)

vpm.SetTemplate("041")

vpm.SetInterval(8)

vpm.SetSize(32)

'** Make a BasicPen Symbol

bln = BasicPen.Make

bln.SetWidth(0.5)

'** Make a SymbolList that contains the above pen symbols

syl = SymbolList.FromList({vpm,bln})

'** Make the CompositeArcInfoPen Symbol

caip = CompositeArcInfoPen.Make(syl)

'** Add it to the Pen List of the new palette

pens.Add(caip)

'** Write the new palette out to the file system for later use

mypal = "$AVHOME/symbols/myLine.avp".AsFileName

pal.SaveToFile(#PALETTE_LIST_ALL,mypal)


CoordSys (Avenue example)
CoordSys Example

' Create a CoordSys object and get its list of projections

c = CoordSys.Make

c.SetName("My Custom Projections")

projections = c.GetProjections

' Create a projection

r = Rect.Make(103@"-56".AsNumber,164@"-7".AsNumber)

projection1 = TrnMerc.Make(r)

projection1.SetDescription("AMG ; Zone 55")

projection1.SetCentralMeridian(147)

projection1.SetReferenceLatitude(0)

projection1.SetScale(0.99960)

projection1.SetFalseEasting(500000)

projection1.SetFalseNorthing(100000)

projection1.SetSpheroid(#SPHEROID_AUSTRALIAN)

' Create another projection

projection2 = TrnMerc.Make(r)

projection2.SetDescription("AMG ; Zone 56")

projection2.SetCentralMeridian(0)

projection2.SetReferenceLatitude(0)

projection2.SetScale(0.99960)

projection2.SetFalseEasting(500000)

projection2.SetFalseNorthing(100000)

projection2.SetSpheroid(#SPHEROID_AUSTRALIAN)

' Add the new projections to the CoordSys projections

projections.Add(projection1)

projections.Add(projection2)

' Create a default.prj file and add the CoordSys object

defprj = ODB.Make("$HOME/default.prj".AsFilename)

defprj.Add(c)

defprj.Commit


Create a composite marker symbol and add it to the marker palette

av.GetSymbolWin.Open

av.GetSymbolWin.SetPanel(#SYMBOLWIN_PANEL_MARKER)

'Set the properties of each marker symbol according to your requirements

m1 = BasicMarker.Make

m1.SetStyle(#BASICMARKER_STYLE_PATTERN)

m1.SetSize(16)

m1.SetColor(Color.GetBlack)

m1.SetFont(Font.Make("ESRI Cartography","normal"))

m1.SetCharacter(33)

m2 = BasicMarker.Make

m2.SetStyle(#BASICMARKER_STYLE_PATTERN)

m2.SetSize(16)

m2.SetColor(Color.GetBlack)

m2.SetFont(Font.Make("ESRI Cartography","normal"))

m2.SetCharacter(33)

'Make as marker symbols as there are layers in your composite symbol

cm = CompositeMarker.Make(SymbolList.FromList({m1,m2}))

mp = av.GetSymbolWin.GetPalette.GetList(#PALETTE_LIST_MARKER)

mp.Add(cm)

av.GetSymbolWin.RefreshPalette(#PALETTE_LIST_MARKER)


Create marker symbol and add it to the marker palette

av.GetSymbolWin.Open

av.GetSymbolWin.SetPanel(#SYMBOLWIN_PANEL_MARKER)

'Set the properties of the marker symbol according to your requirements.

m = BasicMarker.Make

m.SetStyle(#BASICMARKER_STYLE_PATTERN)

m.SetSize(16)

m.SetColor(Color.GetBlack)

m.SetFont(Font.Make("ESRI Cartography","normal"))

m.SetCharacter(33)

mp = av.GetSymbolWin.GetPalette.GetList(#PALETTE_LIST_MARKER)

mp.Add(m)

av.GetSymbolWin.RefreshPalette(#PALETTE_LIST_MARKER)


Create modify delete graphic point markers
Create, Modify, or Delete Graphic Point Markers

'***********************************************

'***********************************************

'**Adding a Graphic and setting its symbol    **

'**using one from the current marker palette  **

'***********************************************

'***********************************************

'** This particular view assumes you have some

'** data that shows all of North America.

theView = av.GetProject.FindDoc("View1")

'** the point in this case is just an arbitrary

'** point, but it could be the result of the

'** aDisplay.ReturnUserPoint that gets executed

'** in a tool's apply event.  Essentially, thePoint

'** is referencing a geographic location, nothing more.

thePoint = Point.Make(-84,34)

'** Now we will create a GraphicShape, which is a

'** kind of object that ArcView knows how to display

'** in a view or layout document's display.

TheGShape = GraphicShape.Make(thePoint)

'** Now we want to get an appropriate symbol for

'** this GraphicPoint object.  To do so we will

'** use the default palette file for ArcView and

'** read it directly from file.  To do so we will

'** first make a new palette object to hold the

'** symbols we will read from file.

thePalette = Palette.Make

thePaletteFile = "$AVHOME/symbols/default.avp".AsFileName

thePalette.LoadFromFile(#PALETTE_LIST_MARKER, thePaletteFile)

'** The symbol we want is in this palette now, so

'** we need to retreive it.  To do so we will get

'** the list of marker symbols in the palette.

theMarkerList = thePalette.GetList(#PALETTE_LIST_MARKER)

'** The the marker symbols for this palette are contained

'** in this list and all we need to do is get the one we

'** want.  It is also very important to clone any symbol

'** you get from a palette, whether it is in a file, or

'** currently loaded into the symbol window because if

'** somebody changes anything about that symbol it will

'** also change the one in the palette, which is very

'** undesirable.

theSymbol = theMarkerList.Get(7).Clone

'** Now to our GraphicShape to use the symbol we just

'** retrieved.

theGShape.SetSymbol(theSymbol)

'** Now we will add this GraphicShape to theView

'** document's GraphicsList.  The GraphicsList contains

'** all Graphics that are shown on that document's

'** display.

theView.GetGraphics.Add(theGShape)

'** Now we will redraw the view

theView.Invalidate

'**************************************

'**************************************

'** Changing the symbol of a graphic **

'**************************************

'**************************************

'** Well now that we see our symbol, it isn't

'** the right color, so let's change it to red.

'** First we will get our graphic again from

'** the View.

OurGraphic = theView.GetGraphics.Get(0)

'** To change the color, we need to get the

'** symbol for our graphicShape and then

'** change its color property.

OurGraphic.GetSymbol.Setcolor(color.GetRed)

'** We can change the size too

OurGraphic.GetSymbol.SetSize(12) 'a little smaller

'************************

'************************

'** Deleting a graphic **

'************************

'************************

'** Our graphic has outlived its usefulness and

'** must be removed from our view's display.  The

'** way to do this is to remove it from the view's

'** graphics list.  To do so it must be selected.

OurGraphic.Select

'** To delete our graphic, or any other select

'** graphics in our view's graphic list we use the

'** clearSelected request.

theView.GetGraphics.ClearSelected


Custom spheroid (Avenue example)
Custom Spheroid Example

' Create a Coordinate System

myCoordSys = CoordSys.Make

myCoordSys.SetName("My Custom Projections")

thePrjs = myCoordSys.GetProjections

 ' Create a Projection

myPrj = TrnMerc.Make(Rect.MakeXY(-180,-90,180,90))

myPrj.SetDescription("Trinidad")

myPrj.SetCentralMeridian(-63)

myPrj.SetReferenceLatitude(0)

myPrj.SetScale(0.99960)

myPrj.SetFalseEasting(500000)

myPrj.SetFalseNorthing(0)

myPrj.SetSpheroid(#SPHEROID_CLARKE1866)

 ' Get the Projection's Spheroid and modify it

mySphere = myPrj.GetSpheroid

mySphere.SetName("Clarke 1858")

mySphere.SetMajorAndMinorAxes(6378294,6356621)

mySphere.SetUnits(#UNITS_LINEAR_METERS)

 ' Add the new projection to the CoordSys projections

thePrjs.Add(myPrj)

 ' Create a default.prj file and add the CoordSys object

defprj = ODB.Make("$HOME/default.prj".AsFilename)

defprj.Add(myCoordSys)

defprj.Commit


Data Source OMD Discussion
Data Sources

A SrcName identifies the data source used to create a theme.  ArcView supports a wide variety of data sources ranging from simple filenames to route events. SrcName encapsulates this diversity.  More complex data sources require enhanced features and thus are identified by subclasses of SrcName: DynName, GeoName and XYName.

You can create a SrcName from a source name string. The structure of the string depends upon the type of data source. If the data source is a simple file for images or shape files, then the source string is simply the pathname to that file.

shpDataSrc = SrcName.Make("theme1.shp")       'shape file
shpDataSrc = "\user\data\theme1.shp".AsSrcName  'shape file
imgDataSrc = SrcName.Make("esri.rs")          'image file

If the data source is an ARC/INFO coverage, library layer or ArcStorm library layer, the source string contains two components: the data source name and feature class. Specify a coverage with its pathname. Specify a library layer following the ARC/INFO naming convention of LibraryName.LayerName. Specify an ArcStorm data set with ArcStormName.LibraryName.LayerName.

dataSrc = Srcname.Make("c:\avdata\world\country polygon")
layerSrc = SrcName.Make("myLib.myLayer route.shot")
strmSrc = SrcName.Make("myDB.myLib.myLayer polygon")

Always verify the SrcName after creating it and before using it to make a new theme.

dataSrc = SrcName.Make("theme1.shp")
if (dataSrc = nil) then
  MsgBox.Error("Bad source string", "")
end
newTheme = Theme.Make(dataSrc)

Other data source specifications are complex and cannot be accomplished using a single string. AsSrcName  cannot define these data sources. Specialized subclasses of SrcName provide the necessary attributes and functions: DynName, GeoName, and XYName.

These subclasses of SrcName define special themes derived from objects in ArcView. XYName defines an XY event theme. XYName requires a virtual table (VTab) and two fields in that table for the X and Y coordinate locations.  DynName defines route event themes. It requires the FTab from a route theme, the field of the RouteId in that theme, a virtual table containing the events, the RouteId field in that theme, the type (point or line), and the measure field(s). GeoName defines a geocoded data source; you must specify the matchable theme, the event source, the event field and other optional information.

The SourceDialog box allows the user to select data sources from either directories or ArcStorm and ARC/INFO libraries. It returns a list of SrcNames.


Dot Density Example

' This example shows how to make a legend for a polygon theme

' into a dot density legend.

theView = av.GetActiveDoc

theTheme = theView.GetActiveThemes.Get(0)

theLegend = theTheme.GetLegend

theLegend.SetLegendType(#LEGEND_TYPE_DOT)

' Make a Marker symbol that will be the dot symbol

dotSymbol = BasicMarker.Make

dotSymbol.SetSize(4)

' Make a Fill Symbol to be the background symbol

fillSymbol = RasterFill.Make

fillSymbol.SetStyle(#RASTERFILL_STYLE_SOLID)

fillSymbol.SetColor(Color.GetGreen)

' Calculate the best density and create the dot legend

theBestDensity = theLegend.ReturnBestDensity(theTheme,"Value",dotSymbol)

theLegend.Dot("Value",theBestDensity, dotSymbol,fillSymbol)

' Send Changes to the Theme

theTheme.UpdateLegend


DynName Discussion

A DynName identifies a Dynamic Segmentation data source. The Dynamic Segmentation data source defines a theme of route events - either point, linear or continuous events.

The DynName identifies the route theme's feature table (FTab), the RouteId field in that feature table, the event table, the RouteId field in the event table and the fields in the event table defining the events. The requests SetLineEvent or SetPointEvent define the event theme type. Additionally, the DynName can identify a field which contains offset values. The offset values should be expressed in the same units as the route theme's feature table.

Use a DynName object as the argument to Theme.Make to create a theme of Dynamic Segmentation events. To improve display and selection performance, a spatial index is always created for a new Dynamic Segmentation Theme.


DynName Example

'This example creates a new theme containing the accident locations described

'in accid.dbf. Accid.dbf contains events associated with the route theme "Hwy"

'in the view "highway".

'Get the Route Theme

aView = av.GetProject.FindDoc("highway")

aTheme = aView.FindTheme("Hwy")  ' Route theme

aRouteFTab = aTheme.GetFTab

aRouteFTabRid = aRouteFTab.FindField("Rkey")

' Get the event table with accident information

aEventVtab = av.GetProject.FindDoc("accid.dbf").GetVTab

aEventVTabRid = aEventVtab.FindField("Rkey")

aEventVTabMsr = aEventVtab.FindField("Mile")

'Make the DynName object for Accident (point) data

aPointsDynName = DynName.Make( aRouteFTab, aRouteFTabRid )

'Create the dynseg point events

aPointsDynName.SetPointEvent( aEventVtab, aEventVTabRid, aEventVTabMsr )

'Now aPointsDynName can be treated like any other SrcName.

'Create a new theme from aPointsDynName

pointsTheme = Theme.Make( aPointsDynName )

' Name it (otherwise it will show on legend without a name)

pointsTheme.SetName("Accidents")

pointsTheme.SetVisible(True)

' Add the Theme to the view

aView.AddTheme( pointsTheme )


Equal Area Cylindrical Projection (Avenue example)
Equal Area Cylindrical Projection Example

theView = av.GetActiveDoc

' set the parameters of the Equal Area Cylindrical projection

p = EqualAreaCylindrical.Make(Rect.MakeXY(-110,70,-112,80))

p.SetCentralMeridian(-111.883)

p.SetStandardParallel(15)

' set Map Units to meters and Distance Units to feet

theView.SetUnits(#UNITS_LINEAR_METERS)

theView.GetDisplay.SetDistanceUnits(#UNITS_LINEAR_FEET)

' apply the projection to the view

theView.SetProjection(p)


Equal Area Example

theView = av.GetProject.FindDoc("View1")

theTheme = theView.GetActiveThemes.Get(0)

theLegend = theTheme.GetLegend

theLegend.SetLegendType(#LEGEND_TYPE_COLOR)

theLegend.Area(theTheme,"Value",7)

theColorRamp = SymbolList.GetPreDefined(#SYMLIST_TYPE_COLORRAMP).Get(0)

theLegend.GetSymbols.RampSavedColors(theColorRamp)

theTheme.UpdateLegend


Equal Interval Example

theView = av.GetProject.FindDoc("View1")

theTheme = theView.GetActiveThemes.Get(0)

theLegend = theTheme.GetLegend

theLegend.SetLegendType(#LEGEND_TYPE_COLOR)

theLegend.Interval(theTheme,"Value",7)

theColorRamp = SymbolList.GetPreDefined(#SYMLIST_TYPE_COLORRAMP).Get(0)

theLegend.GetSymbols.RampSavedColors(theColorRamp)

theTheme.UpdateLegend


Equidistant Azimuthal Projection (Avenue example)
Equidistant Azimuthal Projection Example

theView = av.GetActiveDoc

' set the parameters of the projection

p = EquidistantAzimuthal.Make(Rect.MakeXY(-10,-10,10,10))

p.SetCentralMeridian(5.23491)

p.SetReferenceLatitude(-6.023)

' set Map Units to meters and Distance Units to meters

theView.SetUnits(#UNITS_LINEAR_METERS)

theView.GetDisplay.SetDistanceUnits(#UNITS_LINEAR_METERS)

' apply the projection to the view

theView.SetProjection(p)


Equidistant Conic Projection (Avenue example)
Equidistant Conic Projection Example

theView = av.GetActiveDoc

thebox = Rect.MakeXY(-125,20,-65,60)

' set the parameters of the projection

p = EquidistantConic.Make(thebox)

p.SetCentralMeridian(-80.34981)

p.SetReferenceLatitude(22.22222)

p.SetLowerStandardParallel(27.6)

p.SetUpperStandardParallel(62.65)

' set Map Units to feet and Distance Units to meters

theView.SetUnits(#UNITS_LINEAR_FEET)

theView.GetDisplay.SetDistanceUnits(#UNITS_LINEAR_METERS)

' apply the projection to the view

theView.SetProjection(p)


Equidistant Cylindrical Projection (Avenue example)
Equidistant Cylindrical Projection Example

theView = av.GetActiveDoc

' set the parameters of the projection

p = EquidistantCylindrical.Make(Rect.MakeXY(-117.77777,35.77777,-118,36))

p.SetCentralMeridian(-117.88)

p.SetReferenceLatitude(35)

' set Map Units to feet and Distance Units to feet

theView.SetUnits(#UNITS_LINEAR_FEET)

theView.GetDisplay.SetDistanceUnits(#UNITS_LINEAR_FEET)

' apply the projection to the view

theView.SetProjection(p)


ExportStartFN and ExportEnd example

theView = av.GetProject.FindDoc("View1")

theView.GetWin.Open

theFormats = theView.GetDisplay.ReturnExportFormats

theFormat = Msgbox.ChoiceAsString(theFormats, "Select a format:","ArcView Export Formats")

if (theFormat <> nil) then

  aFNStr = Msgbox.Input("Enter a file name:","Export FileName","temp.tmp")

  theExpFile = aFNStr.AsFileName

  theExportDisplay = theView.GetDisplay.ExportStartFN(theExpFile, theFormat)

  theExportDisplay.Invalidate(false)

  theView.Draw(theExportDisplay)

  theExportDisplay.ExportEnd

end


Extension discussion

Creating Extensions

You create an extension by sending the Make request to the Extension class. You must specify its name, its file on disk, its Install and Uninstall scripts, and its list of dependencies. The ExtVersion number of the new extension defaults to 1. You can change this using the SetExtVersion request. You can specify the Load and Unload scripts using the Set and Get requests for those attributes. You then Add root objects to the extension. You then Commit the extension. This writes the extension to the filename that you specified in the Make request. For more information, see How to create an extension .

Using Extensions

You make the objects in an extension available for use by sending the Extension class the Open request. When an extension is opened, its load script and then install script are automatically executed. The SELF parameter for both scripts is the extension being loaded.

When you open an extension that is dependent on other extensions, those other extensions are opened first. This means that their load and install scripts are also executed first.

To unload an extension from memory, send it the Unload request. This triggers execution of the extension's CanUnload script and then possibly its Uninstall script and Unload script. The SELF object for these scripts is the extension being unloaded. The CanUnload script should determine whether or not the extension can be removed from memory. If it can be, this script should return TRUE. If it can't be, this script should return FALSE. There are several requests that this script can use to help it make this decision. Send the HasInstances request to any class to determine if there are any objects of that class currently in the system.  Send the CanUnloadLibrary request to the System class to determine if a shared library can be unloaded.

If the CanUnload scripts returns TRUE, then the Uninstall script will be executed. This script should undo the affect of the Install script. In particular, it should remove any user interface components that it has installed. See the section on Extensions and Project, below, for more information on this. After that, the Unload script will be executed. This script should undo the effects of the load script, and whatever other shutdown activities are required.

When you unload an extension, your extension attempts to unload itself and then, if successful, attempts to unload any extensions upon which it is dependent. You do not need to explicitly unload shared libraries that your extension is dependent upon.

 Extensions are reference counted. This means that if several extensions are both dependent on some other extension, the latter will not be unloaded prematurely.

Extensions and Projects

Your Uninstall script may not need to remove user interface components that the Install script has added under the following circumstances:

 The extension is being unloaded when no project is open.

 The extension is being uninstalled as a result of closing the current project.

You need to test for the first situation by examining the return value of av.GetProject. If this value is the nil object, then no project is open.

You need to test for the second situation by examining the return value of the av.GetProject.IsClosing request. If this value is the true object, then you do not need to explicitly remove any user interface components added to the project, because they will be removed as part of the normal process of closing the project.

Extensions, Scripts, Documents, and DocGUIs

Scripts, documents and DocGUIs are located by name. When you use av.FindXXX("aName") any currently loaded extension will also be searched to see if one contains an object of class XXX named "aName". The search order is: 1) the current project, 2) the user's default project, 3) any loaded extensions (in an arbitrary order), 4) the system default project (default.apr).

When you use av.GetProject.FindXXX("aName") only the current project is searched. Extensions, user, and system defaults are not searched.

When a user interacts with controls or data installed by an extension, he or she may modify the presentation of those objects. For example, the label of a menu item  installed by an extension may be changed in ArcView's customization dialog. Such modifications need to be stored with the project, rather than with the extension. User A may want the menu to have one label, while user B may not want it to change. The GetPreferences request allows you to manage this three-way relationship between projects, extensions and changes made by the user. The GetPreferences request on an extension object returns the dictionary, owned by the current project, that maintains preferences for that extension object. Sending this request after a different project has been loaded will return a different preferences dictionary. Thus, you should not store the result of this request across multiple executions of scripts in your extension.

Using DocGUIs in Extensions

You can include custom DocGUIs in an extension. You must add the GUI (aProject.AddGUI) to a project before it can be used, and remove it from that project (aProject.RemoveGUI) when the extension is uninstalled.

Attributes

In addition to the attributes defined for an ODB, an extension introduces the following attributes. Many of these attributes are scripts that define how your extension interacts with the ArcView environment.

LoadScript. This script is executed when the extension ODB is loaded (opened) from disk. It should perform any one-time initialization of the extension. This script is optional.

UnloadScript. This script is executed when the user unloads the extension. It should undo the effects of the load script. This script is optional.

InstallScript. This script is executed when a user first loads the extension into memory (after the load script has been executed), when a new project is created, or when an existing project is opened. When opening an existing project, this script is executed before any documents are opened. This script should install any interface portions of the extension into the current project or any other objects that need to be part of the project such as documents. If extension A is dependent upon extension B, then you can assume that B's install script will always be executed before A's install script. This script is optional.

If there is no current project, then this script should not install user interface components, since those components would modify the user's default project settings. You can determine if there is a current project by comparing the result of av.GetProject to the NIL object.

UninstallScript. This script is executed before the extension is unloaded and while the project is closing. In general, it should undo the effects of executing the InstallScript. When several extensions are being uninstalled, the execution order of their uninstall scripts is arbitrary. This script is optional.

About. This string is used to describe the extension to users who have not yet loaded the extension. It is displayed from the extension dialog when the user clicks on the name of an available extension.

ProjectSaveScript. This script can be used by an extension o modify a project just before the project is saved. This script, if present, will frequently modify the project's preferences for the extension. See the discussion below on storing extension preferences in a project.

CanUnloadScript. This script is executed in order indicate to the user whether or not an extension can or can't be unloaded. The Extension dialog send the CanUnload request to each loaded extension whenever the mouse enters that dialog's window. I is also executed just before the extension is to be unloaded. It should return TRUE if the extension can be unloaded, and FALSE if it can't be. This script is optional. If it is not present, then it is assumed that the extension can always be unloaded.

Because of the context and frequency of this script's execution, it must not interact with the user. The purpose of this script is not to obtain a preference from the user, but rather to examine the current ArcView environment to determine if the extension an be successfully unloaded if the user chooses to do so.

Dependencies. An extension can be dependent upon other extensions or shared libraries. For example, one extension could be a set of pre-defined views that rely on several specialized DocGUIs. Each specialized DocGUI would be stored as a separate extension. The document extension would be dependent on the DocGUI extensions. When a user chooses to load the document extension, the DocGUI extensions would be automatically loaded first.

ExtVersion. The contents of an extension may evolve over time. Use the ExtVersion property to specify the current state of the extension's contents.


Files OMD Discussion
Files

The abstract class File supports basic file management and access functionality.  File management functionality includes requests that copy files, delete files, verify existence of a file, and check write permission on a file.  File access requests support the standard file operations: open, close, read, write a file, and position the file pointer.

File has two concrete subclasses, LineFile and TextFile.  Both classes support ASCII text files, but differ in their "element" type. To a TextFile object, an element is one ASCII character; to a LineFile object, an element is one line (delimited by the EOL character). An ASCII file on disk may be opened as either a TextFile or a LineFile object; the choice depends upon how the Avenue application uses the file.

The FileName class identifies the file's location on disk; FileName conceals system dependent aspects of file locations from other classes. You can create a File object using a FileName object that identifies the pathname of the file. You can create a FileName object with the FileName.Make request or with the string request AsFileName. These requests convert the string pathname to a FileName object.

aFileName = "$AVHOME/scripts/addtheme.ave".AsFileName
aFileName = FileName.Make("$AVHOME/scripts/addtheme.ave")

FileDialog navigates the file system, allowing the user to  select or specify files. FileDialog returns either a FileName object or a list of FileName objects. The Put request gets a FileName object for a new file. Show lets the user choose an existing file. ReturnFiles lets the user select multiple files returning a list files.

This example opens a file, reads it and creates a string to display in a MsgBox.report.

theFile = FileDialog.Show("*", "Text File", "make string")
if (nil = theFile) then
  return nil
end

tFile = TextFile.Make(theFile, #FILE_PERM_READ)
displayString = tFile.Read(tFile.GetSize)
tFile.Close

MsgBox.Report(displayString, file_name.GetBaseName)

ODB, Object Data Base, provides file-based storage and retrieval for ArcView objects. ODB reads and writes a specially formatted textfile that contains the ASCII representation of objects' persistent attributes including other objects related to the specified object(s). The project file (.apr) is an ODB file that stores the project object - and hence all objects related to the project.

Create an ODB file with the Make request; Add the objects to save and then Commit the ODB to file. To retrieve saved objects, Open an ODB file and Get the saved objects.

' Save the DocGUI "special" to an ODB file
myODB = ODB.Make("odbfile.apr".AsFileName)
myODB.Add(av.FindGUI("special"))
myODB.Commit

' Restore the DocGUI "special" from an ODB file
myODB = ODB.Open("odbfile.apr".AsFileName)
restoredGUI = myODB.Get(0)
av.GetProject.AddGUI(savedGUI)
restoredGUI.SetModified(true)


FTab BatchMatch Example
FTab.BatchMatch Example

'Batch matching addresses of a geocoded theme. It does the same thing

 as Batch Re-Match provided from the Re-match Addresses dialog.

theView = av.GetProject.FindDoc( "View1" )

aGeoFTab = theView.FindTheme( "Match.shp" ).GetFTab

'Make a new Preference and change the minimum match score to 50

aMatchPref = MatchPref.Make

aMatchPref.SetPrefVal(#MATCHPREF_MINMATCHSCORE, 50)

aGeoFTab.SetMatchPref (aMatchPref)

'check if the FTab is a geocoded FTab

if (aGeoFTab.IsGeocoded) then

  aGeoFTab.BatchMatch

end


FTab Discussion

A feature table (FTab) stores attribute and shape information on a set of features.  An FTab is a kind of VTab in which each record, in addition to storing normal relational-style data, also stores a geographic feature. This feature is present in the "Shape" field of each record. The types of shapes supported are Point, PolyLine, Polygon and MultiPoint.

Feature tables inherit all the operations of which virtual tables are capable. In addition, powerful spatial analysis operations such as selection based upon selected records in another feature table, and a "spatial" version of the join operation are also possible.

Using Feature Tables

You can create feature tables from existing data or from scratch and then populate them. Here, a SrcName is used to open an FTab on an existing source, and then make a theme from it:

sN  = SrcName.Make("/data/coverages/calif/counties polygon")

fT  = FTab.Make(sN)

fTh = FTheme.Make(fT)

av.GetProject.FindDoc("View1").AddTheme(fTh)

The veteran Avenue programmer might write instead:

av.GetProject.FindDoc("View1").AddTheme(

  Theme.Make(SrcName.Make("/data/coverages/calif/counties polygon")))

Or, you could look at a feature table in a table document:

t = Table.Make(anFTab)

t.GetWin.Open

You can create a new feature table and then modify its structure, or modify the structure of an existing feature table when it is based upon an editable data source. For an introduction to this, see Editing a theme.  When you create a new FTab, you must add at least one additional field besides the Shape field (which is created in the MakeNew) for the FTab to be valid.

You can use a combination of feature tables to do powerful selection operations. Here is an example of a very basic selection operation. All selected features in one FTab are used to select features in another FTab. This script needs two polygon themes loaded into "View1".

v         = av.GetProject.FindDoc("View1")

fCounties = v.GetThemes.Get(1).GetFTab

fTheme1   = v.GetThemes.Get(0).GetFTab

fCounties.SelectByFTab(fTheme1,

                       #FTAB_RELTYPE_INTERSECTS,

                       0,

                       #VTAB_SELTYPE_NEW)

Once the selection has been made, you can obtain the selection bitmap and do operations directly on it, such as merging the results of a relational query stored in another bitmap of the same size.

Projection

The shapes of the features in an FTab are never projected. The shapes passed to FTab requests aren't projected either. If you want to project the shapes, use an FTheme in a projected view, use projection commands or convert the shapes to a projected shapefile using FTab.ExportProjected.


FTab EditMatch Example
FTab.EditMatch Example

'Invoke the Geocoding Editor for a geocoded theme. It does the same thing

 as Interactive Re-Match provided from the Re-match Addresses dialog.

theView = av.GetProject.FindDoc( "View1" )

aGeoFTab = theView.FindTheme( "Match.shp" ).GetFTab

'check if the FTab is a geocoded FTab

if (aGeoFTab.IsGeocoded) then

  aGeoFTab.EditMatch

end


FTab ReturnLocation Example
FTab.ReturnLocation Example

'View.RouteMeasure - script to find the Route Measure at a user point

'You can add this script to a tool in the View as an APPLY script

theView = av.GetActiveDoc

p = theView.GetDisplay.ReturnUserPoint  'APPLY event

for each t in theView.GetThemes

  'Make sure the current theme is a Ftheme

  if (t.Is(FTheme)) then

    'Find out if the theme is a measured Polyline or an ARC/INFO

    'coverage route-system

    theShpClass = t.GetFTab.GetShapeClass.GetClassName

    if ((theShpClass = "PolyLineM") or (theShpClass = "PolyLineZ")) then

      thePolyLine = t.GetFtab.ReturnValue(t.GetFtab.FindField("shape"),0)

      canReturnLoc = thePolyLine.IsMeasured

    elseif (theShpClass = "PolyLine") then

      theSrc = t.GetSrcName.GetSubName.AsString

      canReturnLoc = theSrc = "*route*".AsPattern

    else

      canReturnLoc = FALSE

    end

    'If the theme is a route system or a type of measured PolyLine then try to ReturnLocation

    if (canReturnLoc) then

      theMlist = t.GetFTab.ReturnLocation(p,150)

      if (theMlist.Count = 0) then

         MsgBox.Info ("Measure not found","")

         continue

      end

      'theMlist is a list of ROUTE/MEASURE pairs

      for each m in 0..(theMlist.Count - 1) by 2

        MsgBox.Info("Route"++theMlist.Get(m).AsString++ "Measure"++theMlist.Get(m+1).AsString, "Results of RouteMeasure Query")

        'display the points

        locs = t.GetFTab.ReturnRouteMeasure(theMList.Get(m), theMList.Get(m+1))

        for each pp in locs

          gloc = GraphicShape.Make(pp)

          theView.GetGraphics.Add(gloc)

        end

      end

    end

  end

end


FTheme_Discussion
FTheme Discussion

An FTheme is a visual representation of the features defined in an FTab. An FTheme is based upon feature data from coverage or map library layer data sources or an ArcView shapefile. The geometry of the features is carried in the Shape field of the FTab.

Attributes

HotField.   The HotField is the field of the FTheme's FTab used to store Hot Link values.

HotScriptName.   HotScriptName is the name of the script executed on a Hot Link.

LabelField.   The LabelField is the field in the FTheme's FTab used to label features.

MatchSource.   A MatchSource exists only on matchable themes.  Matchable themes are used to create geocoded themes from event tables.

TextPositioner.   The TextPositioner is used to position labels around features.

FixedSizeText.   TRUE when graphic text attached to this theme should remain at the scale at which it was created. FALSE when graphic text attached to this theme should change scale as the theme changes scale. This property is applied whenever a graphic text object is created. Individual graphic text objects can override this default. Existing graphic text objects retain whatever behavior they had when they were created.

The default is FALSE.

FTab.   An FTab defines the feature source displayed in the FTheme.


FTheme Example

' This script selects some features on the view using a box

' Get the view

myView = av.GetActiveDoc

' Get the first theme

myTheme = myView.GetThemes.Get(0)

' Make a box, then use it to select features

myBox = Rect.MakeXY(-115,35,-120,37)

if (myTheme.CanSelect) then

  myTheme.SelectByRect(myBox,#VTAB_SELTYPE_NEW)

  mySet = myTheme.GetFTab.GetNumSelRecords

  ' Ask the user if they want to keep the selected features

  clearSet = MsgBox.YesNo("Number of features selected ="++

    mySet.AsString+NL+

    "Clear selected set?","FTheme Example", FALSE)

  if (clearSet) then

    myTheme.ClearSelection

  end

end

Besides the FTheme requests, you can further manipulate an FTheme by using requests which operate on the FTheme's FTab. For example, to set a definition on the theme, use the FTab request SetDefinition.

' We only want to see earthquakes with a magnitude of 3.0 and higher

myView = av.GetActiveDoc

myTheme = myView.FindTheme("Quakes")

myTheme.GetFTab.SetDefinition( "( [Magnitude] > 3.0 )" )

myTheme.GetFTab.UpdateDefBitmap

myView.Invalidate


Geocoding OMD Discussion
Geocoding

Geocoding is the mechanism that allows you to use addresses and other georeferenced keys to identify locations on a map. See the topics "What is geocoding" and "Overview of address geocoding" to familiarize yourself with geocoding concepts and terminology.

The Match classes provide an Avenue interface to ArcView's geocoding engine. Matching or geocoding centers around the MatchSource class.

Geocoding makes references to two types of themes; a matchable theme and a geocoded theme. A matchable theme is a feature theme which has a MatchSource associated with it. You can create a matchable theme either by setting the theme's Geocoding properties or by using the FTheme request SetMatchSource. (see MatchSource for a detailed discussion) A geocoded theme is a new theme created by geocoding. You can create a geocoded theme with the Add Event Theme menu or the MatchSource InitGeoTheme request.

You can create a MatchSource using a predefined AddressStyle as a template. The AddressStyle embodies a method of geocoding; it contains references to the fields, indexes and index queries needed for matching.  Geocoding provides the ability to georeference street addresses, street intersections, ZIP+4 ZIP codes and single field keys, such as building names, well numbers, or any other identifier.  You choose the type of georeferencing system by selecting an appropriate AddressStyle when the theme is made matchable.

The MatchSource performs indexing and searching on a Feature Theme's FTab. A MatchKey is a standardized address. Apply the MatchKey to the MatchSource to create a MatchCase. The MatchCase contains a collection of possible match candidates, MatchCands, which can be scored relative to the MatchKey. Individual feature candidates, MatchCands, can be queried for their matching scores as well as their geocoded locations.

In Avenue-based geocoding, it is the user's responsibility to define the main matching loop, which for most applications consists of the following steps:

1) Read an input event record.

2) Set the MatchKey's key value.

3) Search the MatchSource using the MatchKey.

4) Score the MatchCase's feature candidates.

5) Get the best MatchCand from the MatchCase.

6) Interrogate the MatchCand for its geographic location.

The interactions of the Match classes are best illustrated in the following excerpt from an Avenue script that geocodes a single address:

aMKey.SetKey("123 Main Street")

if (aMatchSource.Search(aMKey, 80, aMCase) != 0) then
  aMCase.ScoreCandidates
  cand = aMCase.GetBestCand
  if (cand.GetScore >= aMPref.GetPrefVal(#MPREF_MINMATCHSCORE)) then
    p = aMatchSource.QueryPoint(cand)
  end
end
aMatchSource.EndMatch

The MatchKey class performs street address event standardization.  Standardization is the process of converting a free form address into a structured record which can be used for geocoding. In the example above "123 Main Street" is converted into the fields "123", "Main" and "ST". Most errors in geocoding occur in this phase of the process.

After standardization, the script searches the MatchSource for potential matching addresses. This phase is also referred to as "blocking" the MatchSource.  The process of blocking selects a subset of potential features to which the address event may match. These records are considered potential candidates for matching. The candidates found in the blocking phase are collected into a MatchCase and scored using the MatchCase request ScoreCandidates.  The script scores candidates using a set of field comparison rules specific to the MatchSource's AddressStyle.

The final step in geocoding is to interrogate the scored candidates.  Candidates are scored based on how well they match with the input address event; the candidate with the highest score is considered the best candidate.  Compare the best candidate's score with a minimum match score to determine if an acceptable match has been made.


Geology Palette Make Example

'**************************************************

'* Geology Palette Creator                        *

'*                                                *

'* The purpose of this script is to create a new  *

'* palette to support geologic mapping with point *

'* and line symbols.                              *

'**************************************************

geol = "$AVHOME/symbols/geology.avp".AsFileName

p = Palette.Make

Markers = p.GetList(#PALETTE_LIST_MARKER)

Pens = p.GetList(#PALETTE_LIST_PEN)

MarkGlyphs = {97,98,101,

              111,

              112,113,114,

              115,116,117,

              118,119,120,

              121,122,123,

              124,125,126,

              162,163,106,

              107,108,109,110,

              253,164,165,

              166,167,168,

              169,170,171,

              172,161,174,

              175,176,177,

              178,179,180,

              181,182,183,

              185,186,187,

              188,189,190,

              191,192,193,

              194,195,196,

              197,198,199,

              200,201,202,

              203,204,205,

              206,207,243,

              184,255,208,

              209,210,211,

              212,213,214,

              215,216,217,

              218,219,220,

              221,222,223,

              224,225,226,

              227,228,229,

              230,231,232,

              233,234,235,

              236,237,241,

              242,246,247,

              248}

red = Color.Make

red.SetRGBList({255,0,0})

redPlate = {97,98,204,205,206,207,243,184,255,208,209,210,211,

            212,213,214,215,216,217,218,219}

blue = Color.Make

blue.SetRGBList({77,77,255})

bluePlate = {241,242}

for each GlyphNum in MarkGlyphs

  m = BasicMarker.Make

  m.SetStyle(#BASICMARKER_STYLE_PATTERN)

  m.SetFont(Font.Make("ESRI Geology","Normal"))

  m.SetCharacter(GlyphNum)

  m.SetSize(32)

  if (redPlate.FindByValue(GlyphNum) <> -1) then

    m.SetColor(red)

    m.SetColorLock(true)

  elseif (bluePlate.FindByValue(GlyphNum) <> -1) then

    m.SetColor(blue)

    m.SetColorLock(true)

  else

    m.SetColor(Color.GetBlack)

  end

  markers.Add(m)

end

bln = BasicPen.make

bln.SetSize(0.5)

pens.Add(bln)

mrk = BasicMarker.Make

mrk.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk.SetFont(Font.Make("ESRI Geology","Normal"))

mrk.SetCharacter(249)

vpm = VectorPenMarker.Make(mrk.Clone)

vpm.SetTemplate("71")

vpm.SetSize(16)

pens.Add(vpm)

mrka = BasicMarker.Make

mrka.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrka.SetFont(Font.Make("ESRI Geology","Normal"))

mrka.SetCharacter(249)

vpma = VectorPenMarker.Make(mrka)

vpma.SetTemplate("41")

vpma.SetSize(16)

pens.Add(vpma)

mrkb = BasicMarker.Make

mrkb.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrkb.SetFont(Font.Make("ESRI Geology","Normal"))

mrkb.SetCharacter(249)

vpmb = VectorPenMarker.Make(mrkb)

vpmb.SetTemplate("11")

vpmb.SetSize(16)

pens.Add(vpmb)

'**2.1.1  Up***

mrk0 = BasicMarker.Make

mrk0.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk0.SetFont(Font.Make("ESRI Geology","Normal"))

mrk0.SetCharacter(35)

vpm0 = VectorPenMarker.Make(mrk0)

vpm0.SetTemplate("031")

vpm0.SetInterval(8)

vpm0.SetAltSize(3)

vpm0.SetSize(32)

bln0 = BasicPen.Make

bln0.SetWidth(0.5)

syl0 = SymbolList.FromList({vpm0,bln0})

p0 = CompositeArcInfoPen.Make(syl0)

pens.Add(p0)

'**2.1.1  Down***

mrk1 = BasicMarker.Make

mrk1.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk1.SetFont(Font.Make("ESRI Geology","Normal"))

mrk1.SetCharacter(35)

vpm1 = VectorPenMarker.Make(mrk1)

vpm1.SetTemplate("031")

vpm1.SetInterval(8)

vpm1.SetAltSize(-3)

vpm1.SetSize(32)

bln1 = BasicPen.Make

bln1.SetWidth(0.5)

syl1 = SymbolList.FromList({vpm1,bln1})

p1 = CompositeArcInfoPen.Make(syl1)

pens.Add(p1)

'**2.1.2

mrk2 = BasicMarker.Make

mrk2.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk2.SetFont(Font.Make("ESRI Geology","Normal"))

mrk2.SetCharacter(64)

mrk2a = BasicMarker.Make

mrk2a.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk2a.SetFont(Font.Make("ESRI Geology","Normal"))

mrk2a.SetCharacter(249)

mrk2a.SetSize(32)

vpm2 = VectorPenMarker.Make(mrk2)

vpm2.SetTemplate("041")

vpm2.SetSize(29.6)

vpm2.SetInterval(2)

vpm2a = VectorPenMarker.Make(mrk2a)

vpm2a.SetTemplate("41414146")

vpm2a.SetSize(24)

syl2 = SymbolList.FromList({vpm2,vpm2a})

p2 = CompositeArcInfoPen.Make(syl2)

pens.Add(p2)

'**2.1.3

mrk3 = BasicMarker.Make

mrk3.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk3.SetFont(Font.Make("ESRI Geology","Normal"))

mrk3.SetCharacter(64)

mrk3a = BasicMarker.Make

mrk3a.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk3a.SetFont(Font.Make("ESRI Geology","Normal"))

mrk3a.SetCharacter(249)

vpm3 = VectorPenMarker.Make(mrk3)

vpm3.SetTemplate("071")

vpm3.SetSize(29.2)

vpm3a = VectorPenMarker.Make(mrk3a)

vpm3a.SetTemplate("21212121212126")

vpm3a.SetSize(32)

syl3 = SymbolList.FromList({vpm3,vpm3a})

p3 = CompositeArcInfoPen.Make(syl3)

pens.Add(p3)

'**2.1.5

mrk5 = BasicMarker.Make

mrk5.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk5.SetFont(Font.Make("ESRI Geology","Normal"))

mrk5.SetCharacter(37)

vpm5 = VectorPenMarker.Make(mrk5)

vpm5.SetTemplate("12")

vpm5.SetSize(24)

pens.Add(vpm5)

'**2.1.11

mrk6 = BasicMarker.Make

mrk6.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk6.SetFont(Font.Make("ESRI Geology","Normal"))

mrk6.SetCharacter(33)

vpm6 = VectorPenMarker.Make(mrk6)

vpm6.SetTemplate("041")

vpm6.SetSize(24)

vpm6.SetAltSize(3.9)

bln6 = BasicPen.Make

bln6.SetWidth(0.5)

syl6 = SymbolList.FromList({vpm6,bln6})

p6 = CompositeArcInfoPen.Make(syl6)

pens.Add(p6)

'**2.1.12-15

bln7 = BasicPen.Make

bln7.SetSize(0.375)

bln7.SetPattern({7.7,2.2,2.2,2.2,2.2,2.2})

pens.Add(bln7)

'**2.2.2

mrk7 = BasicMarker.Make

mrk7.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk7.SetFont(Font.Make("ESRI Geology","Normal"))

mrk7.SetCharacter(34)

vpm7 = VectorPenMarker.Make(mrk7)

vpm7.SetTemplate("041")

vpm7.SetSize(24)

vpm7.SetAltSize(3.9)

bln7 = BasicPen.Make

bln7.SetWidth(0.5)

syl7 = SymbolList.FromList({vpm7,bln7})

p7 = CompositeArcInfoPen.Make(syl7)

pens.Add(p7)

'**2.2.3

mrk8 = BasicMarker.Make

mrk8.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk8.SetFont(Font.Make("ESRI Geology","Normal"))

mrk8.SetCharacter(35)

mrk8a = BasicMarker.Make

mrk8a.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk8a.SetFont(Font.Make("ESRI Geology","Normal"))

mrk8a.SetCharacter(37)

mrk8b = BasicMarker.Make

mrk8b.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk8b.SetFont(Font.Make("ESRI Geology","Normal"))

mrk8b.SetCharacter(35)

vpm8 = VectorPenMarker.Make(mrk8)

vpm8.SetTemplate("0215")

vpm8.SetInterval(10)

vpm8.SetAltSize(2.9)

vpm8.SetSize(32)

vpm8a = VectorPenMarker.Make(mrk8a)

vpm8a.SetTemplate("0314")

vpm8a.SetInterval(10)

vpm8a.SetSize(32)

vpm8b = VectorPenMarker.Make(mrk8b)

vpm8b.SetTemplate("0413")

vpm8b.SetInterval(10)

vpm8b.SetAltSize(-3.3)

vpm8b.SetSize(32)

bln8 = BasicPen.Make

bln8.SetWidth(0.5)

syl8 = SymbolList.FromList({vpm8,vpm8a,vpm8b,bln8})

p8 = CompositeArcInfoPen.Make(syl8)

pens.Add(p8)

'**2.2.12

mrk9 = BasicMarker.Make

mrk9.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk9.SetFont(Font.Make("ESRI Geology","Normal"))

mrk9.SetCharacter(40)

vpm9 = VectorPenMarker.Make(mrk9)

vpm9.SetTemplate("041")

vpm9.SetAltSize(0.4)

vpm9.SetSize(16)

bln9 = BasicPen.Make

bln9.SetWidth(0.5)

syl9 = SymbolList.FromList({vpm9,bln9})

p9 = CompositeArcInfoPen.Make(syl9)

pens.Add(p9)

mrk10 = BasicMarker.Make

mrk10.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk10.SetFont(Font.Make("ESRI Geology","Normal"))

mrk10.SetCharacter(43)

vpm10 = VectorPenMarker.Make(mrk10)

vpm10.SetTemplate("041")

vpm10.SetAltSize(-0.5)

vpm10.SetSize(16)

bln10 = BasicPen.Make

bln10.SetWidth(0.5)

syl10 = SymbolList.FromList({vpm10,bln10})

p10 = CompositeArcInfoPen.Make(syl10)

pens.Add(p10)

'**2.2.13

mrk11 = BasicMarker.Make

mrk11.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk11.SetFont(Font.Make("ESRI Geology","Normal"))

mrk11.SetCharacter(41)

vpm11 = VectorPenMarker.Make(mrk11)

vpm11.SetTemplate("041")

vpm11.SetAltSize(0.32)

vpm11.SetSize(16)

bln11 = BasicPen.Make

bln11.SetWidth(0.5)

syl11 = SymbolList.FromList({vpm11,bln11})

p11= CompositeArcInfoPen.Make(syl11)

pens.Add(p11)

mrk12 = BasicMarker.Make

mrk12.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk12.SetFont(Font.Make("ESRI Geology","Normal"))

mrk12.SetCharacter(44)

vpm12 = VectorPenMarker.Make(mrk12)

vpm12.SetTemplate("041")

vpm12.SetAltSize(-0.45)

vpm12.SetSize(16)

bln12 = BasicPen.Make

bln12.SetWidth(0.5)

syl12 = SymbolList.FromList({vpm12,bln12})

p12 = CompositeArcInfoPen.Make(syl12)

pens.Add(p12)

'**2.2.14

mrk13 = BasicMarker.Make

mrk13.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk13.SetFont(Font.Make("ESRI Geology","Normal"))

mrk13.SetCharacter(42)

vpm13 = VectorPenMarker.Make(mrk13)

vpm13.SetTemplate("041")

vpm13.SetAltSize(0.32)

vpm13.SetSize(16)

bln13 = BasicPen.Make

bln13.SetWidth(0.5)

syl13 = SymbolList.FromList({vpm13,bln13})

p13= CompositeArcInfoPen.Make(syl13)

pens.Add(p13)

mrk14 = BasicMarker.Make

mrk14.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk14.SetFont(Font.Make("ESRI Geology","Normal"))

mrk14.SetCharacter(45)

vpm14 = VectorPenMarker.Make(mrk14)

vpm14.SetTemplate("041")

vpm14.SetAltSize(-0.41)

vpm14.SetSize(16)

bln14 = BasicPen.Make

bln14.SetWidth(0.5)

syl14 = SymbolList.FromList({vpm14,bln14})

p14 = CompositeArcInfoPen.Make(syl14)

pens.Add(p14)

'**2.2.15

mrk15 = BasicMarker.Make

mrk15.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk15.SetFont(Font.Make("ESRI Geology","Normal"))

mrk15.SetCharacter(249)

vpm15 = VectorPenMarker.Make(mrk15)

vpm15.SetTemplate("0182")

vpm15.SetSize(22.23)

mrk15a = BasicMarker.Make

mrk15a.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk15a.SetFont(Font.Make("ESRI Geology","Normal"))

mrk15a.SetCharacter(40)

vpm15a = VectorPenMarker.Make(mrk15a)

vpm15a.SetTemplate("011311")

vpm15a.SetAltSize(0.42)

vpm15a.SetSize(16)

syl15 = SymbolList.FromList({vpm15,vpm15a})

p15 = CompositeArcInfoPen.Make(syl15)

pens.Add(p15)

mrk16 = BasicMarker.Make

mrk16.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk16.SetFont(Font.Make("ESRI Geology","Normal"))

mrk16.SetCharacter(249)

vpm16 = VectorPenMarker.Make(mrk16)

vpm16.SetTemplate("0182")

vpm16.SetSize(22.23)

mrk16a = BasicMarker.Make

mrk16a.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk16a.SetFont(Font.Make("ESRI Geology","Normal"))

mrk16a.SetCharacter(43)

vpm16a = VectorPenMarker.Make(mrk16a)

vpm16a.SetTemplate("011311")

vpm16a.SetAltSize(-0.42)

vpm16a.SetSize(16)

syl16 = SymbolList.FromList({vpm16,vpm16a})

p16 = CompositeArcInfoPen.Make(syl16)

pens.Add(p16)

'**2.2.16

mrk17x = BasicMarker.Make

mrk17x.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk17x.SetFont(Font.Make("ESRI Geology","Normal"))

mrk17x.SetCharacter(40)

vpm17x = VectorPenMarker.Make(mrk17x)

vpm17x.SetInterval(1.88)

vpm17x.SetMarkLayer(0.4,0.4)

vpm17x.SetSize(16)

mrk17y = BasicMarker.Make

mrk17y.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk17y.SetFont(Font.Make("ESRI Geology","Normal"))

mrk17y.SetCharacter(249)

vpm17y = VectorPenMarker.Make(mrk17y)

vpm17y.SetTemplate("42")

vpm17y.SetSize(16)

vpm17y.SetAltSize(3.9)

syl17x = SymbolList.FromList({vpm17x,vpm17y})

p17x = CompositeArcInfoPen.Make(syl17x)

pens.Add(p17x)

mrk17t = BasicMarker.Make

mrk17t.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk17t.SetFont(Font.Make("ESRI Geology","Normal"))

mrk17t.SetCharacter(43)

vpm17t = VectorPenMarker.Make(mrk17t)

vpm17t.SetInterval(1.88)

vpm17t.SetMarkLayer(0.4,0)

vpm17t.SetAltSize(-0.36)

vpm17t.SetSize(16)

mrk17u = BasicMarker.Make

mrk17u.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk17u.SetFont(Font.Make("ESRI Geology","Normal"))

mrk17u.SetCharacter(249)

vpm17u = VectorPenMarker.Make(mrk17u)

vpm17u.SetTemplate("42")

vpm17u.SetSize(16)

vpm17u.SetAltSize(3.9)

syl17t = SymbolList.FromList({vpm17t,vpm17u})

p17t = CompositeArcInfoPen.Make(syl17t)

pens.Add(p17t)

'**2.2.17

mrk17k = BasicMarker.Make

mrk17k.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk17k.SetFont(Font.Make("ESRI Geology","Normal"))

mrk17k.SetCharacter(40)

vpm17k = VectorPenMarker.Make(mrk17k)

vpm17k.SetInterval(1.1595)

vpm17k.SetMarkLayer(0.4,0.4)

vpm17k.SetSize(16)

mrk17j = BasicMarker.Make

mrk17j.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk17j.SetFont(Font.Make("ESRI Geology","Normal"))

mrk17j.SetCharacter(249)

vpm17j = VectorPenMarker.Make(mrk17j)

vpm17j.SetTemplate("411111")

vpm17j.SetSize(16)

vpm17j.SetAltSize(3.9)

syl17k = SymbolList.FromList({vpm17k,vpm17j})

p17k = CompositeArcInfoPen.Make(syl17k)

pens.Add(p17k)

mrk17p = BasicMarker.Make

mrk17p.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk17p.SetFont(Font.Make("ESRI Geology","Normal"))

mrk17p.SetCharacter(43)

vpm17p = VectorPenMarker.Make(mrk17p)

vpm17p.SetInterval(1.1595)

vpm17p.SetMarkLayer(0.4,0)

vpm17p.SetAltSize(-0.36)

vpm17p.SetSize(16)

mrk17q = BasicMarker.Make

mrk17q.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk17q.SetFont(Font.Make("ESRI Geology","Normal"))

mrk17q.SetCharacter(249)

vpm17q = VectorPenMarker.Make(mrk17q)

vpm17q.SetTemplate("411111")

vpm17q.SetSize(16)

vpm17q.SetAltSize(3.9)

syl17p = SymbolList.FromList({vpm17p,vpm17q})

p17p = CompositeArcInfoPen.Make(syl17p)

pens.Add(p17p)

'**2.2.18

mrk17 = BasicMarker.Make

mrk17.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk17.SetFont(Font.Make("ESRI Geology","Normal"))

mrk17.SetCharacter(46)

vpm17 = VectorPenMarker.Make(mrk17)

vpm17.SetTemplate("041")

vpm17.SetAltSize(0.18)

vpm17.SetSize(16)

bln17 = BasicPen.Make

bln17.SetWidth(0.5)

syl17 = SymbolList.FromList({vpm17,bln17})

p17 = CompositeArcInfoPen.Make(syl17)

pens.Add(p17)

mrk18 = BasicMarker.Make

mrk18.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk18.SetFont(Font.Make("ESRI Geology","Normal"))

mrk18.SetCharacter(49)

vpm18 = VectorPenMarker.Make(mrk18)

vpm18.SetTemplate("041")

vpm18.SetAltSize(-0.18)

vpm18.SetSize(16)

bln18 = BasicPen.Make

bln18.SetWidth(0.5)

syl18 = SymbolList.FromList({vpm18,bln18})

p18 = CompositeArcInfoPen.Make(syl18)

pens.Add(p18)

'**2.2.19

mrk19 = BasicMarker.Make

mrk19.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk19.SetFont(Font.Make("ESRI Geology","Normal"))

mrk19.SetCharacter(47)

vpm19 = VectorPenMarker.Make(mrk19)

vpm19.SetTemplate("041")

vpm19.SetAltSize(0.18)

vpm19.SetSize(16)

bln19 = BasicPen.Make

bln19.SetWidth(0.5)

syl19 = SymbolList.FromList({vpm19,bln19})

p19 = CompositeArcInfoPen.Make(syl19)

pens.Add(p19)

mrk20 = BasicMarker.Make

mrk20.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk20.SetFont(Font.Make("ESRI Geology","Normal"))

mrk20.SetCharacter(50)

vpm20 = VectorPenMarker.Make(mrk20)

vpm20.SetTemplate("041")

vpm20.SetAltSize(-0.18)

vpm20.SetSize(16)

bln20 = BasicPen.Make

bln20.SetWidth(0.5)

syl20 = SymbolList.FromList({vpm20,bln20})

p20 = CompositeArcInfoPen.Make(syl20)

pens.Add(p20)

'**2.2.20

mrk21 = BasicMarker.Make

mrk21.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk21.SetFont(Font.Make("ESRI Geology","Normal"))

mrk21.SetCharacter(48)

vpm21 = VectorPenMarker.Make(mrk21)

vpm21.SetTemplate("041")

vpm21.SetAltSize(0.18)

vpm21.SetSize(16)

bln21 = BasicPen.Make

bln21.SetWidth(0.5)

syl21 = SymbolList.FromList({vpm21,bln21})

p21 = CompositeArcInfoPen.Make(syl21)

pens.Add(p21)

mrk22 = BasicMarker.Make

mrk22.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk22.SetFont(Font.Make("ESRI Geology","Normal"))

mrk22.SetCharacter(51)

vpm22 = VectorPenMarker.Make(mrk22)

vpm22.SetTemplate("041")

vpm22.SetAltSize(-0.2)

vpm22.SetSize(16)

bln22 = BasicPen.Make

bln22.SetWidth(0.5)

syl22 = SymbolList.FromList({vpm22,bln22})

p22 = CompositeArcInfoPen.Make(syl22)

pens.Add(p22)

'**2.2.21

mrk23 = BasicMarker.Make

mrk23.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk23.SetFont(Font.Make("ESRI Geology","Normal"))

mrk23.SetCharacter(251)

vpm23 = VectorPenMarker.Make(mrk23)

vpm23.SetTemplate("0131")

vpm23.SetSize(21.3375)

mrk23a = BasicMarker.Make

mrk23a.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk23a.SetFont(Font.Make("ESRI Geology","Normal"))

mrk23a.SetCharacter(46)

vpm23a = VectorPenMarker.Make(mrk23a)

vpm23a.SetTemplate("011311")

vpm23a.SetAltSize(0.17)

vpm23a.SetSize(16)

syl23 = SymbolList.FromList({vpm23,vpm23a})

p23 = CompositeArcInfoPen.Make(syl23)

pens.Add(p23)

mrk24 = BasicMarker.Make

mrk24.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk24.SetFont(Font.Make("ESRI Geology","Normal"))

mrk24.SetCharacter(251)

vpm24 = VectorPenMarker.Make(mrk24)

vpm24.SetTemplate("0131")

vpm24.SetSize(21.3375)

mrk24a = BasicMarker.Make

mrk24a.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk24a.SetFont(Font.Make("ESRI Geology","Normal"))

mrk24a.SetCharacter(49)

vpm24a = VectorPenMarker.Make(mrk24a)

vpm24a.SetTemplate("011311")

vpm24a.SetAltSize(-0.17)

vpm24a.SetSize(16)

syl24 = SymbolList.FromList({vpm24,vpm24a})

p24 = CompositeArcInfoPen.Make(syl24)

pens.Add(p24)

'**2.2.22

mrk22x = BasicMarker.Make

mrk22x.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk22x.SetFont(Font.Make("ESRI Geology","Normal"))

mrk22x.SetCharacter(46)

vpm22x = VectorPenMarker.Make(mrk22x)

vpm22x.SetInterval(1.526)

vpm22x.SetAltSize(0.24)

vpm22x.SetMarkLayer(0.4,0)

vpm22x.SetSize(16)

mrk22y = BasicMarker.Make

mrk22y.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk22y.SetFont(Font.Make("ESRI Geology","Normal"))

mrk22y.SetCharacter(249)

vpm22y = VectorPenMarker.Make(mrk22y)

vpm22y.SetTemplate("62")

vpm22y.SetSize(16)

vpm22y.SetAltSize(3.9)

syl22x = SymbolList.FromList({vpm22x,vpm22y})

p22x = CompositeArcInfoPen.Make(syl22x)

pens.Add(p22x)

mrk22t = BasicMarker.Make

mrk22t.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk22t.SetFont(Font.Make("ESRI Geology","Normal"))

mrk22t.SetCharacter(49)

vpm22t = VectorPenMarker.Make(mrk22t)

vpm22t.SetInterval(1.526)

vpm22t.SetMarkLayer(0.4,0)

vpm22t.SetAltSize(-0.16)

vpm22t.SetSize(16)

mrk22u = BasicMarker.Make

mrk22u.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk22u.SetFont(Font.Make("ESRI Geology","Normal"))

mrk22u.SetCharacter(249)

vpm22u = VectorPenMarker.Make(mrk22u)

vpm22u.SetTemplate("62")

vpm22u.SetSize(16)

vpm22u.SetAltSize(3.9)

syl22t = SymbolList.FromList({vpm22t,vpm22u})

p22t = CompositeArcInfoPen.Make(syl22t)

pens.Add(p22t)

'**2.2.23

mrk23k = BasicMarker.Make

mrk23k.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk23k.SetFont(Font.Make("ESRI Geology","Normal"))

mrk23k.SetCharacter(46)

vpm23k = VectorPenMarker.Make(mrk23k)

vpm23k.SetInterval(0.737)

vpm23k.SetMarkLayer(0.4,0.4)

vpm23k.SetAltSize(-0.16)

vpm23k.SetSize(16)

mrk23j = BasicMarker.Make

mrk23j.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk23j.SetFont(Font.Make("ESRI Geology","Normal"))

mrk23j.SetCharacter(249)

vpm23j = VectorPenMarker.Make(mrk23j)

vpm23j.SetTemplate("611111")

vpm23j.SetSize(16)

vpm23j.SetAltSize(3.9)

syl23k = SymbolList.FromList({vpm23k,vpm23j})

p23k = CompositeArcInfoPen.Make(syl23k)

pens.Add(p23k)

mrk23p = BasicMarker.Make

mrk23p.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk23p.SetFont(Font.Make("ESRI Geology","Normal"))

mrk23p.SetCharacter(49)

vpm23p = VectorPenMarker.Make(mrk23p)

vpm23p.SetInterval(0.737)

vpm23p.SetMarkLayer(0.4,0)

vpm23p.SetAltSize(-0.16)

vpm23p.SetSize(16)

mrk23q = BasicMarker.Make

mrk23q.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk23q.SetFont(Font.Make("ESRI Geology","Normal"))

mrk23q.SetCharacter(249)

vpm23q = VectorPenMarker.Make(mrk23q)

vpm23q.SetTemplate("611111")

vpm23q.SetSize(16)

vpm23q.SetAltSize(3.9)

syl23p = SymbolList.FromList({vpm23p,vpm23q})

p23p = CompositeArcInfoPen.Make(syl23p)

pens.Add(p23p)

'**2.2.24

mrk25 = BasicMarker.Make

mrk25.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk25.SetFont(Font.Make("ESRI Geology","Normal"))

mrk25.SetCharacter(52)

vpm25 = VectorPenMarker.Make(mrk25)

vpm25.SetTemplate("041")

vpm25.SetAltSize(0.22)

vpm25.SetSize(16)

bln25 = BasicPen.Make

bln25.SetWidth(0.5)

syl25 = SymbolList.FromList({vpm25,bln25})

p25 = CompositeArcInfoPen.Make(syl25)

pens.Add(p25)

mrk26 = BasicMarker.Make

mrk26.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk26.SetFont(Font.Make("ESRI Geology","Normal"))

mrk26.SetCharacter(55)

vpm26 = VectorPenMarker.Make(mrk26)

vpm26.SetTemplate("041")

vpm26.SetAltSize(-0.22)

vpm26.SetSize(16)

bln26 = BasicPen.Make

bln26.SetWidth(0.5)

syl26 = SymbolList.FromList({vpm26,bln26})

p26 = CompositeArcInfoPen.Make(syl26)

pens.Add(p26)

mrk27 = BasicMarker.Make

mrk27.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk27.SetFont(Font.Make("ESRI Geology","Normal"))

mrk27.SetCharacter(53)

vpm27 = VectorPenMarker.Make(mrk27)

vpm27.SetTemplate("041")

vpm27.SetAltSize(0.22)

vpm27.SetSize(16)

bln27 = BasicPen.Make

bln27.SetWidth(0.5)

syl27 = SymbolList.FromList({vpm27,bln27})

p27 = CompositeArcInfoPen.Make(syl27)

pens.Add(p27)

mrk28 = BasicMarker.Make

mrk28.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk28.SetFont(Font.Make("ESRI Geology","Normal"))

mrk28.SetCharacter(56)

vpm28 = VectorPenMarker.Make(mrk28)

vpm28.SetTemplate("041")

vpm28.SetAltSize(-0.22)

vpm28.SetSize(16)

bln28 = BasicPen.Make

bln28.SetWidth(0.5)

syl28 = SymbolList.FromList({vpm28,bln28})

p28 = CompositeArcInfoPen.Make(syl28)

pens.Add(p28)

mrk29 = BasicMarker.Make

mrk29.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk29.SetFont(Font.Make("ESRI Geology","Normal"))

mrk29.SetCharacter(54)

vpm29 = VectorPenMarker.Make(mrk29)

vpm29.SetTemplate("041")

vpm29.SetAltSize(0.22)

vpm29.SetSize(16)

bln29 = BasicPen.Make

bln29.SetWidth(0.5)

syl29 = SymbolList.FromList({vpm29,bln29})

p29 = CompositeArcInfoPen.Make(syl29)

pens.Add(p29)

mrk30 = BasicMarker.Make

mrk30.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk30.SetFont(Font.Make("ESRI Geology","Normal"))

mrk30.SetCharacter(57)

vpm30 = VectorPenMarker.Make(mrk30)

vpm30.SetTemplate("041")

vpm30.SetAltSize(-0.22)

vpm30.SetSize(16)

bln30 = BasicPen.Make

bln30.SetWidth(0.5)

syl30 = SymbolList.FromList({vpm30,bln30})

p30 = CompositeArcInfoPen.Make(syl30)

pens.Add(p30)

'**2.2.25

mrk31 = BasicMarker.Make

mrk31.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk31.SetFont(Font.Make("ESRI Geology","Normal"))

mrk31.SetCharacter(249)

vpm31 = VectorPenMarker.Make(mrk31)

vpm31.SetTemplate("0182")

vpm31.SetSize(22.239)

mrk31a = BasicMarker.Make

mrk31a.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk31a.SetFont(Font.Make("ESRI Geology","Normal"))

mrk31a.SetCharacter(52)

vpm31a = VectorPenMarker.Make(mrk31a)

vpm31a.SetTemplate("011311")

vpm31a.SetAltSize(0.32)

vpm31a.SetSize(16)

syl31 = SymbolList.FromList({vpm31,vpm31a})

p31 = CompositeArcInfoPen.Make(syl31)

pens.Add(p31)

mrk32 = BasicMarker.Make

mrk32.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk32.SetFont(Font.Make("ESRI Geology","Normal"))

mrk32.SetCharacter(249)

vpm32 = VectorPenMarker.Make(mrk32)

vpm32.SetTemplate("0182")

vpm32.SetSize(22.239)

mrk32a = BasicMarker.Make

mrk32a.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk32a.SetFont(Font.Make("ESRI Geology","Normal"))

mrk32a.SetCharacter(55)

vpm32a = VectorPenMarker.Make(mrk32a)

vpm32a.SetTemplate("011311")

vpm32a.SetAltSize(-0.22)

vpm32a.SetSize(16)

syl32 = SymbolList.FromList({vpm32,vpm32a})

p32 = CompositeArcInfoPen.Make(syl32)

pens.Add(p32)

'**2.2.26

mrk26x = BasicMarker.Make

mrk26x.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk26x.SetFont(Font.Make("ESRI Geology","Normal"))

mrk26x.SetCharacter(52)

vpm26x = VectorPenMarker.Make(mrk26x)

vpm26x.SetInterval(1.88)

vpm26x.SetMarkLayer(0.4,0)

vpm26x.SetAltSize(0.28)

vpm26x.SetSize(24)

mrk26y = BasicMarker.Make

mrk26y.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk26y.SetFont(Font.Make("ESRI Geology","Normal"))

mrk26y.SetCharacter(249)

vpm26y = VectorPenMarker.Make(mrk26y)

vpm26y.SetTemplate("42")

vpm26y.SetSize(24)

vpm26y.SetAltSize(3.9)

syl26x = SymbolList.FromList({vpm26x,vpm26y})

p26x = CompositeArcInfoPen.Make(syl26x)

pens.Add(p26x)

mrk26t = BasicMarker.Make

mrk26t.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk26t.SetFont(Font.Make("ESRI Geology","Normal"))

mrk26t.SetCharacter(55)

vpm26t = VectorPenMarker.Make(mrk26t)

vpm26t.SetInterval(1.88)

vpm26t.SetMarkLayer(0.4,0)

vpm26t.SetAltSize(-0.16)

vpm26t.SetSize(24)

mrk26u = BasicMarker.Make

mrk26u.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk26u.SetFont(Font.Make("ESRI Geology","Normal"))

mrk26u.SetCharacter(249)

vpm26u = VectorPenMarker.Make(mrk26u)

vpm26u.SetTemplate("42")

vpm26u.SetSize(24)

vpm26u.SetAltSize(3.9)

syl26t = SymbolList.FromList({vpm26t,vpm26u})

p26t = CompositeArcInfoPen.Make(syl26t)

pens.Add(p26t)

'**2.2.27

mrk27k = BasicMarker.Make

mrk27k.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk27k.SetFont(Font.Make("ESRI Geology","Normal"))

mrk27k.SetCharacter(52)

vpm27k = VectorPenMarker.Make(mrk27k)

vpm27k.SetInterval(1.1595)

vpm27k.SetMarkLayer(0.4,0)

vpm27k.SetAltSize(0.28)

vpm27k.SetSize(24)

mrk27j = BasicMarker.Make

mrk27j.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk27j.SetFont(Font.Make("ESRI Geology","Normal"))

mrk27j.SetCharacter(249)

vpm27j = VectorPenMarker.Make(mrk27j)

vpm27j.SetTemplate("411111")

vpm27j.SetSize(24)

vpm27j.SetAltSize(3.9)

syl27k = SymbolList.FromList({vpm27k,vpm27j})

p27k = CompositeArcInfoPen.Make(syl27k)

pens.Add(p27k)

mrk27p = BasicMarker.Make

mrk27p.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk27p.SetFont(Font.Make("ESRI Geology","Normal"))

mrk27p.SetCharacter(55)

vpm27p = VectorPenMarker.Make(mrk27p)

vpm27p.SetInterval(1.1595)

vpm27p.SetMarkLayer(0.4,0)

vpm27p.SetAltSize(-0.16)

vpm27p.SetSize(24)

mrk27q = BasicMarker.Make

mrk27q.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk27q.SetFont(Font.Make("ESRI Geology","Normal"))

mrk27q.SetCharacter(249)

vpm27q = VectorPenMarker.Make(mrk27q)

vpm27q.SetTemplate("411111")

vpm27q.SetSize(24)

vpm27q.SetAltSize(3.9)

syl27p = SymbolList.FromList({vpm27p,vpm27q})

p27p = CompositeArcInfoPen.Make(syl27p)

pens.Add(p27p)

'**2.2.29

mrk33 = BasicMarker.Make

mrk33.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk33.SetFont(Font.Make("ESRI Geology","Normal"))

mrk33.SetCharacter(58)

vpm33 = VectorPenMarker.Make(mrk33)

vpm33.SetTemplate("081")

vpm33.SetAltSize(0.99)

vpm33.SetSize(16)

bln33 = BasicPen.Make

bln33.SetWidth(0.5)

syl33 = SymbolList.FromList({vpm33,bln33})

p33 = CompositeArcInfoPen.Make(syl33)

pens.Add(p33)

mrk34 = BasicMarker.Make

mrk34.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk34.SetFont(Font.Make("ESRI Geology","Normal"))

mrk34.SetCharacter(59)

vpm34 = VectorPenMarker.Make(mrk34)

vpm34.SetTemplate("081")

vpm34.SetAltSize(-0.99)

vpm34.SetSize(16)

bln34 = BasicPen.Make

bln34.SetWidth(0.5)

syl34 = SymbolList.FromList({vpm34,bln34})

p34 = CompositeArcInfoPen.Make(syl34)

pens.Add(p34)

'**2.2.31

mrk35 = BasicMarker.Make

mrk35.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk35.SetFont(Font.Make("ESRI Geology","Normal"))

mrk35.SetCharacter(36)

vpm35 = VectorPenMarker.Make(mrk35)

vpm35.SetTemplate("081")

vpm35.SetAltSize(0)

vpm35.SetSize(16)

bln35 = BasicPen.Make

bln35.SetWidth(0.5)

syl35 = SymbolList.FromList({vpm35,bln35})

p35 = CompositeArcInfoPen.Make(syl35)

pens.Add(p35)

mrk35a = BasicMarker.Make

mrk35a.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk35a.SetFont(Font.Make("ESRI Geology","Normal"))

mrk35a.SetCharacter(38)

vpm35a = VectorPenMarker.Make(mrk35a)

vpm35a.SetTemplate("081")

vpm35a.SetAltSize(0)

vpm35a.SetSize(16)

bln35a = BasicPen.Make

bln35a.SetWidth(0.5)

syl35a = SymbolList.FromList({vpm35a,bln35a})

p35a = CompositeArcInfoPen.Make(syl35a)

pens.Add(p35a)

'**2.2.32

mrk36 = BasicMarker.Make

mrk36.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk36.SetFont(Font.Make("ESRI Geology","Normal"))

mrk36.SetCharacter(36)

vpm36 = VectorPenMarker.Make(mrk36)

vpm36.SetTemplate("031")

vpm36.SetMarkLayer(-0.9,0)

vpm36.SetAltSize(0.0)

vpm36.SetSize(16)

mrk36a = BasicMarker.Make

mrk36a.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk36a.SetFont(Font.Make("ESRI Geology","Normal"))

mrk36a.SetCharacter(60)

vpm36a = VectorPenMarker.Make(mrk36a)

vpm36a.SetTemplate("031")

vpm36a.SetInterval(1)

vpm36a.SetAltSize(0.5)

vpm36a.SetSize(16)

bln36 = BasicPen.Make

bln36.SetWidth(0.5)

syl36 = SymbolList.FromList({vpm36,vpm36a,bln36})

p36 = CompositeArcInfoPen.Make(syl36)

pens.Add(p36)

mrk36m = BasicMarker.Make

mrk36m.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk36m.SetFont(Font.Make("ESRI Geology","Normal"))

mrk36m.SetCharacter(36)

vpm36m = VectorPenMarker.Make(mrk36m)

vpm36m.SetTemplate("031")

vpm36m.SetMarkLayer(-0.9,0)

vpm36m.SetAltSize(0.0)

vpm36m.SetSize(16)

mrk36am = BasicMarker.Make

mrk36am.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk36am.SetFont(Font.Make("ESRI Geology","Normal"))

mrk36am.SetCharacter(61)

vpm36am = VectorPenMarker.Make(mrk36am)

vpm36am.SetTemplate("031")

vpm36am.SetInterval(1)

vpm36am.SetAltSize(-0.5)

vpm36am.SetSize(16)

bln36m = BasicPen.Make

bln36m.SetWidth(0.5)

syl36m = SymbolList.FromList({vpm36m,vpm36am,bln36m})

p36m = CompositeArcInfoPen.Make(syl36m)

pens.Add(p36m)

mrk36x = BasicMarker.Make

mrk36x.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk36x.SetFont(Font.Make("ESRI Geology","Normal"))

mrk36x.SetCharacter(38)

vpm36x = VectorPenMarker.Make(mrk36x)

vpm36x.SetTemplate("031")

vpm36x.SetMarkLayer(-0.9,0)

vpm36x.SetAltSize(0.0)

vpm36x.SetSize(16)

mrk36ax = BasicMarker.Make

mrk36ax.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk36ax.SetFont(Font.Make("ESRI Geology","Normal"))

mrk36ax.SetCharacter(60)

vpm36ax = VectorPenMarker.Make(mrk36ax)

vpm36ax.SetTemplate("031")

vpm36ax.SetInterval(1)

vpm36ax.SetAltSize(0.5)

vpm36ax.SetSize(16)

bln36x = BasicPen.Make

bln36x.SetWidth(0.5)

syl36x = SymbolList.FromList({vpm36x,vpm36ax,bln36x})

p36x = CompositeArcInfoPen.Make(syl36x)

pens.Add(p36x)

mrk36my = BasicMarker.Make

mrk36my.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk36my.SetFont(Font.Make("ESRI Geology","Normal"))

mrk36my.SetCharacter(38)

vpm36my = VectorPenMarker.Make(mrk36my)

vpm36my.SetTemplate("031")

vpm36my.SetMarkLayer(-0.9,0)

vpm36my.SetAltSize(0.0)

vpm36my.SetSize(16)

mrk36amy = BasicMarker.Make

mrk36amy.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk36amy.SetFont(Font.Make("ESRI Geology","Normal"))

mrk36amy.SetCharacter(61)

vpm36amy = VectorPenMarker.Make(mrk36amy)

vpm36amy.SetTemplate("031")

vpm36amy.SetInterval(1)

vpm36amy.SetAltSize(-0.5)

vpm36amy.SetSize(16)

bln36my = BasicPen.Make

bln36my.SetWidth(0.5)

syl36my = SymbolList.FromList({vpm36my,vpm36amy,bln36my})

p36my = CompositeArcInfoPen.Make(syl36my)

pens.Add(p36my)

'**2.3.1 Shear Zone

mrk37 = BasicMarker.Make

mrk37.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk37.SetFont(Font.Make("ESRI Geology","Normal"))

mrk37.SetCharacter(66)

vpm37 = VectorPenMarker.Make(mrk37)

vpm37.SetSize(16)

pens.Add(vpm37)

'**2.3.2 Zone of Sheared Rock

mrk38 = BasicMarker.Make

mrk38.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk38.SetFont(Font.Make("ESRI Geology","Normal"))

mrk38.SetCharacter(67)

vpm38 = VectorPenMarker.Make(mrk38)

vpm38.SetAltSize(0.1)

vpm38.SetSize(16)

mrk38a = BasicMarker.Make

mrk38a.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk38a.SetFont(Font.Make("ESRI Geology","Normal"))

mrk38a.SetCharacter(249)

vpm38a = VectorPenMarker.Make(mrk38a)

vpm38a.SetTemplate("51")

vpm38a.SetSize(24)

syl38 = SymbolList.FromList({vpm38,vpm38a})

p38 = CompositeArcInfoPen.Make(syl38)

pens.Add(p38)

'**2.5.1 Pike Anticline

mrk39 = BasicMarker.Make

mrk39.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk39.SetFont(Font.Make("ESRI Geology","Normal"))

mrk39.SetCharacter(70)

vpm39 = VectorPenMarker.Make(mrk39)

vpm39.SetTemplate("021")

vpm39.SetInterval(0.263)

vpm39.SetAltSize(-0.05)

vpm39.SetSize(16)

bln39 = BasicPen.Make

bln39.SetWidth(0.5)

syl39 = SymbolList.FromList({vpm39,bln39})

p39 = CompositeArcInfoPen.Make(syl39)

pens.Add(p39)

'**2.5.1 Pike Anticline Approximately located

mrk39a = BasicMarker.Make

mrk39a.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk39a.SetFont(Font.Make("ESRI Geology","Normal"))

mrk39a.SetCharacter(70)

vpm39a = VectorPenMarker.Make(mrk39a)

vpm39a.SetTemplate("021")

vpm39a.SetInterval(0.263)

vpm39a.SetMarkLayer(-0.187,-0.05)

vpm39a.SetSize(16)

mrk39b = BasicMarker.Make

mrk39b.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk39b.SetFont(Font.Make("ESRI Geology","Normal"))

mrk39b.SetCharacter(249)

vpm39b = VectorPenMarker.Make(mrk39b)

vpm39b.SetTemplate("71")

vpm39b.SetSize(16)

syl39ab = SymbolList.FromList({vpm39a,vpm39b})

p39ab = CompositeArcInfoPen.Make(syl39ab)

pens.Add(p39ab)

'**2.5.1 Pike Anticline Inferred

mrk39c = BasicMarker.Make

mrk39c.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk39c.SetFont(Font.Make("ESRI Geology","Normal"))

mrk39c.SetCharacter(70)

vpm39c = VectorPenMarker.Make(mrk39c)

vpm39c.SetTemplate("021")

vpm39c.SetInterval(0.1839)

vpm39c.SetMarkLayer(0.2,-0.05)

vpm39c.SetSize(16)

mrk39d = BasicMarker.Make

mrk39d.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk39d.SetFont(Font.Make("ESRI Geology","Normal"))

mrk39d.SetCharacter(249)

vpm39d = VectorPenMarker.Make(mrk39d)

vpm39d.SetTemplate("41")

vpm39d.SetSize(16)

syl39cd = SymbolList.FromList({vpm39c,vpm39d})

p39cd = CompositeArcInfoPen.Make(syl39cd)

pens.Add(p39cd)

'**2.5.1 Pike Anticline Concealed

mrk39e = BasicMarker.Make

mrk39e.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk39e.SetFont(Font.Make("ESRI Geology","Normal"))

mrk39e.SetCharacter(70)

vpm39e = VectorPenMarker.Make(mrk39e)

vpm39e.SetTemplate("021")

vpm39e.SetInterval(0.263)

vpm39e.SetAltSize(-0.05)

vpm39e.SetSize(16)

mrk39f = BasicMarker.Make

mrk39f.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk39f.SetFont(Font.Make("ESRI Geology","Normal"))

mrk39f.SetCharacter(249)

vpm39f = VectorPenMarker.Make(mrk39f)

vpm39f.SetTemplate("11")

vpm39f.SetSize(16)

syl39ef = SymbolList.FromList({vpm39e,vpm39f})

p39ef = CompositeArcInfoPen.Make(syl39ef)

pens.Add(p39ef)

'**2.5.5 Antiform

mrk40 = BasicMarker.Make

mrk40.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk40.SetFont(Font.Make("ESRI Geology","Normal"))

mrk40.SetCharacter(71)

vpm40 = VectorPenMarker.Make(mrk40)

vpm40.SetTemplate("031")

vpm40.SetAltSize(-0.05)

vpm40.SetSize(16)

bln40 = BasicPen.Make

bln40.SetWidth(0.5)

syl40 = SymbolList.FromList({vpm40,bln40})

p40 = CompositeArcInfoPen.Make(syl40)

pens.Add(p40)

'**2.5.5 Antiform Approximately Located

mrk40a = BasicMarker.Make

mrk40a.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk40a.SetFont(Font.Make("ESRI Geology","Normal"))

mrk40a.SetCharacter(71)

vpm40a = VectorPenMarker.Make(mrk40a)

vpm40a.SetTemplate("021")

vpm40a.SetInterval(0.0433)

vpm40a.SetMarkLayer(-0.2,-0.05)

vpm40a.SetSize(16)

mrk40b = BasicMarker.Make

mrk40b.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk40b.SetFont(Font.Make("ESRI Geology","Normal"))

mrk40b.SetCharacter(249)

vpm40b = VectorPenMarker.Make(mrk40b)

vpm40b.SetTemplate("71")

vpm40b.SetSize(16)

syl40ab = SymbolList.FromList({vpm40a,vpm40b})

p40ab = CompositeArcInfoPen.Make(syl40ab)

pens.Add(p40ab)

'**2.5.5 Antiform Inferred

mrk40c = BasicMarker.Make

mrk40c.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk40c.SetFont(Font.Make("ESRI Geology","Normal"))

mrk40c.SetCharacter(71)

vpm40c = VectorPenMarker.Make(mrk40c)

vpm40c.SetTemplate("011")

vpm40c.SetMarkLayer(0.55,-0.05)

vpm40c.SetInterval(0.3042)

vpm40c.SetSize(16)

mrk40d = BasicMarker.Make

mrk40d.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk40d.SetFont(Font.Make("ESRI Geology","Normal"))

mrk40d.SetCharacter(249)

vpm40d = VectorPenMarker.Make(mrk40d)

vpm40d.SetMarkLayer(0.5,0)

vpm40d.SetTemplate("41")

vpm40d.SetSize(16)

syl40cd = SymbolList.FromList({vpm40c,vpm40d})

p40cd = CompositeArcInfoPen.Make(syl40cd)

pens.Add(p40cd)

'**2.5.5 Antiform Concealed

mrk40e = BasicMarker.Make

mrk40e.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk40e.SetFont(Font.Make("ESRI Geology","Normal"))

mrk40e.SetCharacter(71)

vpm40e = VectorPenMarker.Make(mrk40e)

vpm40e.SetTemplate("031")

vpm40e.SetAltSize(-0.05)

vpm40e.SetSize(16)

mrk40f = BasicMarker.Make

mrk40f.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk40f.SetFont(Font.Make("ESRI Geology","Normal"))

mrk40f.SetCharacter(249)

vpm40f = VectorPenMarker.Make(mrk40f)

vpm40f.SetTemplate("11")

vpm40f.SetSize(16)

syl40ef = SymbolList.FromList({vpm40e,vpm40f})

p40ef = CompositeArcInfoPen.Make(syl40ef)

pens.Add(p40ef)

'**2.5.6 Antiform Second type

mrk41 = BasicMarker.Make

mrk41.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk41.SetFont(Font.Make("ESRI Geology","Normal"))

mrk41.SetCharacter(72)

vpm41 = VectorPenMarker.Make(mrk41)

vpm41.SetTemplate("031")

vpm41.SetAltSize(-0.05)

vpm41.SetSize(16)

bln41 = BasicPen.Make

bln41.SetWidth(0.5)

syl41 = SymbolList.FromList({vpm41,bln41})

p41 = CompositeArcInfoPen.Make(syl41)

pens.Add(p41)

'**2.5.6 Antiform Second type, Approximately located

mrk41a = BasicMarker.Make

mrk41a.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk41a.SetFont(Font.Make("ESRI Geology","Normal"))

mrk41a.SetCharacter(72)

vpm41a = VectorPenMarker.Make(mrk41a)

vpm41a.SetTemplate("021")

vpm41a.SetInterval(0.0433)

vpm41a.SetMarkLayer(-0.2,-0.05)

vpm41a.SetSize(16)

mrk41b = BasicMarker.Make

mrk41b.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk41b.SetFont(Font.Make("ESRI Geology","Normal"))

mrk41b.SetCharacter(249)

vpm41b = VectorPenMarker.Make(mrk41b)

vpm41b.SetTemplate("71")

vpm41b.SetSize(16)

syl41ab = SymbolList.FromList({vpm41a,vpm41b})

p41ab = CompositeArcInfoPen.Make(syl41ab)

pens.Add(p41ab)

'**2.5.6 Antiform Second type, inferred

mrk41c = BasicMarker.Make

mrk41c.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk41c.SetFont(Font.Make("ESRI Geology","Normal"))

mrk41c.SetCharacter(72)

vpm41c = VectorPenMarker.Make(mrk41c)

vpm41c.SetTemplate("011")

vpm41c.SetMarkLayer(0.55,-0.05)

vpm41c.SetInterval(0.3042)

vpm41c.SetSize(16)

mrk41d = BasicMarker.Make

mrk41d.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk41d.SetFont(Font.Make("ESRI Geology","Normal"))

mrk41d.SetCharacter(249)

vpm41d = VectorPenMarker.Make(mrk41d)

vpm41d.SetTemplate("41")

vpm41d.SetMarkLayer(0.5,0)

vpm41d.SetSize(16)

syl41cd = SymbolList.FromList({vpm41c,vpm41d})

p41cd = CompositeArcInfoPen.Make(syl41cd)

pens.Add(p41cd)

'**2.5.6 Antiform Second type, concealed

mrk41e = BasicMarker.Make

mrk41e.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk41e.SetFont(Font.Make("ESRI Geology","Normal"))

mrk41e.SetCharacter(72)

vpm41e = VectorPenMarker.Make(mrk41e)

vpm41e.SetTemplate("031")

vpm41e.SetAltSize(-0.05)

vpm41e.SetSize(16)

mrk41f = BasicMarker.Make

mrk41f.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk41f.SetFont(Font.Make("ESRI Geology","Normal"))

mrk41f.SetCharacter(249)

vpm41f = VectorPenMarker.Make(mrk41f)

vpm41f.SetTemplate("11")

vpm41f.SetSize(16)

syl41ef = SymbolList.FromList({vpm41e,vpm41f})

p41ef = CompositeArcInfoPen.Make(syl41ef)

pens.Add(p41ef)

'**2.5.8 Asymmetric Anticline (UP)

mrk42 = BasicMarker.Make

mrk42.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk42.SetFont(Font.Make("ESRI Geology","Normal"))

mrk42.SetCharacter(70)

vpm42 = VectorPenMarker.Make(mrk42)

vpm42.SetTemplate("031")

vpm42.SetAltSize(-0.3)

vpm42.SetSize(16)

bln42 = BasicPen.Make

bln42.SetWidth(0.5)

syl42 = SymbolList.FromList({vpm42,bln42})

p42 = CompositeArcInfoPen.Make(syl42)

pens.Add(p42)

'**2.5.8 Asymmetric Anticline, Approximately Located (UP)

mrk42a = BasicMarker.Make

mrk42a.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk42a.SetFont(Font.Make("ESRI Geology","Normal"))

mrk42a.SetCharacter(70)

vpm42a = VectorPenMarker.Make(mrk42a)

vpm42a.SetTemplate("021")

vpm42a.SetInterval(0.263)

vpm42a.SetMarkLayer(-0.187,-0.3)

vpm42a.SetSize(16)

mrk42b = BasicMarker.Make

mrk42b.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk42b.SetFont(Font.Make("ESRI Geology","Normal"))

mrk42b.SetCharacter(249)

vpm42b = VectorPenMarker.Make(mrk42b)

vpm42b.SetTemplate("71")

vpm42b.SetSize(16)

syl42ab = SymbolList.FromList({vpm42a,vpm42b})

p42ab = CompositeArcInfoPen.Make(syl42ab)

pens.Add(p42ab)

'**2.5.8 Asymmetric Anticline, Inferred (UP)

mrk42c = BasicMarker.Make

mrk42c.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk42c.SetFont(Font.Make("ESRI Geology","Normal"))

mrk42c.SetCharacter(70)

vpm42c = VectorPenMarker.Make(mrk42c)

vpm42c.SetTemplate("021")

vpm42c.SetInterval(0.1839)

vpm42c.SetMarkLayer(0.2,-0.3)

vpm42c.SetSize(16)

mrk42d = BasicMarker.Make

mrk42d.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk42d.SetFont(Font.Make("ESRI Geology","Normal"))

mrk42d.SetCharacter(249)

vpm42d = VectorPenMarker.Make(mrk42d)

vpm42d.SetTemplate("41")

vpm42d.SetSize(16)

syl42cd = SymbolList.FromList({vpm42c,vpm42d})

p42cd = CompositeArcInfoPen.Make(syl42cd)

pens.Add(p42cd)

'**2.5.8 Asymmetric Anticline, Concealed (UP)

vpm39c.SetTemplate("021")

vpm39c.SetInterval(0.1839)

vpm39c.SetMarkLayer(0.2,-0.05)

mrk42e = BasicMarker.Make

mrk42e.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk42e.SetFont(Font.Make("ESRI Geology","Normal"))

mrk42e.SetCharacter(70)

vpm42e = VectorPenMarker.Make(mrk42e)

vpm42e.SetTemplate("031")

vpm42e.SetAltSize(-0.3)

vpm42e.SetSize(16)

mrk42f = BasicMarker.Make

mrk42f.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk42f.SetFont(Font.Make("ESRI Geology","Normal"))

mrk42f.SetCharacter(249)

vpm42f = VectorPenMarker.Make(mrk42f)

vpm42f.SetTemplate("11")

vpm42f.SetSize(16)

syl42ef = SymbolList.FromList({vpm42e,vpm42f})

p42ef = CompositeArcInfoPen.Make(syl42ef)

pens.Add(p42ef)

'**2.5.8 Asymmetric Anticline (DOWN)

mrk43 = BasicMarker.Make

mrk43.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk43.SetFont(Font.Make("ESRI Geology","Normal"))

mrk43.SetCharacter(70)

vpm43 = VectorPenMarker.Make(mrk43)

vpm43.SetTemplate("031")

vpm43.SetAltSize(0.22)

vpm43.SetSize(16)

bln43 = BasicPen.Make

bln43.SetWidth(0.5)

syl43 = SymbolList.FromList({vpm43,bln43})

p43 = CompositeArcInfoPen.Make(syl43)

pens.Add(p43)

'**2.5.8 Asymmetric Anticline, Approximately located (DOWN)

mrk43a = BasicMarker.Make

mrk43a.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk43a.SetFont(Font.Make("ESRI Geology","Normal"))

mrk43a.SetCharacter(70)

vpm43a = VectorPenMarker.Make(mrk43a)

vpm43a.SetTemplate("021")

vpm43a.SetInterval(0.263)

vpm43a.SetMarkLayer(-0.187,0.22)

vpm43a.SetSize(16)

mrk43b = BasicMarker.Make

mrk43b.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk43b.SetFont(Font.Make("ESRI Geology","Normal"))

mrk43b.SetCharacter(249)

vpm43b = VectorPenMarker.Make(mrk43b)

vpm43b.SetTemplate("71")

vpm43b.SetSize(16)

syl43ab = SymbolList.FromList({vpm43a,vpm43b})

p43ab = CompositeArcInfoPen.Make(syl43ab)

pens.Add(p43ab)

'**2.5.8 Asymmetric Anticline, Inferred (DOWN)

mrk43c = BasicMarker.Make

mrk43c.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk43c.SetFont(Font.Make("ESRI Geology","Normal"))

mrk43c.SetCharacter(70)

vpm43c = VectorPenMarker.Make(mrk43c)

vpm43c.SetTemplate("021")

vpm43c.SetInterval(0.1839)

vpm43c.SetMarkLayer(0.2,0.22)

vpm43c.SetSize(16)

mrk43d = BasicMarker.Make

mrk43d.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk43d.SetFont(Font.Make("ESRI Geology","Normal"))

mrk43d.SetCharacter(249)

vpm43d = VectorPenMarker.Make(mrk43d)

vpm43d.SetTemplate("41")

vpm43d.SetSize(16)

syl43cd = SymbolList.FromList({vpm43c,vpm43d})

p43cd = CompositeArcInfoPen.Make(syl43cd)

pens.Add(p43cd)

'**2.5.8 Asymmetric Anticline, Concealed (DOWN)

mrk43e = BasicMarker.Make

mrk43e.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk43e.SetFont(Font.Make("ESRI Geology","Normal"))

mrk43e.SetCharacter(70)

vpm43e = VectorPenMarker.Make(mrk43e)

vpm43e.SetTemplate("031")

vpm43e.SetAltSize(0.22)

vpm43e.SetSize(16)

mrk43f = BasicMarker.Make

mrk43f.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk43f.SetFont(Font.Make("ESRI Geology","Normal"))

mrk43f.SetCharacter(249)

vpm43f = VectorPenMarker.Make(mrk43f)

vpm43f.SetTemplate("11")

vpm43f.SetSize(16)

syl43ef = SymbolList.FromList({vpm43e,vpm43f})

p43ef = CompositeArcInfoPen.Make(syl43ef)

pens.Add(p43ef)

'**2.5.9 Overturned Anticline (UP)

mrk44 = BasicMarker.Make

mrk44.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk44.SetFont(Font.Make("ESRI Geology","Normal"))

mrk44.SetCharacter(73)

vpm44 = VectorPenMarker.Make(mrk44)

vpm44.SetTemplate("011")

vpm44.SetInterval(0.702)

vpm44.SetAltSize(0.2)

vpm44.SetSize(16)

bln44 = BasicPen.Make

bln44.SetWidth(0.5)

syl44 = SymbolList.FromList({vpm44,bln44})

p44 = CompositeArcInfoPen.Make(syl44)

pens.Add(p44)

'**2.5.9 Overturned Anticline, Approximatedly located (UP)

mrk44a = BasicMarker.Make

mrk44a.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk44a.SetFont(Font.Make("ESRI Geology","Normal"))

mrk44a.SetCharacter(73)

vpm44a = VectorPenMarker.Make(mrk44a)

vpm44a.SetTemplate("011")

vpm44a.SetInterval(0.702)

vpm44a.SetMarkLayer(0.051,0.2)

vpm44a.SetSize(16)

mrk44b = BasicMarker.Make

mrk44b.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk44b.SetFont(Font.Make("ESRI Geology","Normal"))

mrk44b.SetCharacter(249)

vpm44b = VectorPenMarker.Make(mrk44b)

vpm44b.SetTemplate("71")

vpm44b.SetSize(16)

syl44ab = SymbolList.FromList({vpm44a,vpm44b})

p44ab = CompositeArcInfoPen.Make(syl44ab)

pens.Add(p44ab)

'**2.5.9 Overturned Anticline, Inferred (UP)

mrk44c = BasicMarker.Make

mrk44c.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk44c.SetFont(Font.Make("ESRI Geology","Normal"))

mrk44c.SetCharacter(73)

vpm44c = VectorPenMarker.Make(mrk44c)

vpm44c.SetTemplate("011")

vpm44c.SetInterval(0.702)

vpm44c.SetMarkLayer(0.32,0.2)

vpm44c.SetSize(16)

mrk44d = BasicMarker.Make

mrk44d.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk44d.SetFont(Font.Make("ESRI Geology","Normal"))

mrk44d.SetCharacter(249)

vpm44d = VectorPenMarker.Make(mrk44d)

vpm44d.SetTemplate("41")

vpm44d.SetSize(16)

syl44cd = SymbolList.FromList({vpm44c,vpm44d})

p44cd = CompositeArcInfoPen.Make(syl44cd)

pens.Add(p44cd)

'**2.5.9 Overturned Anticline, Concealed (UP)

mrk44e = BasicMarker.Make

mrk44e.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk44e.SetFont(Font.Make("ESRI Geology","Normal"))

mrk44e.SetCharacter(73)

vpm44e = VectorPenMarker.Make(mrk44e)

vpm44e.SetTemplate("011")

vpm44e.SetInterval(0.702)

vpm44e.SetAltSize(0.2)

vpm44e.SetSize(16)

mrk44f = BasicMarker.Make

mrk44f.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk44f.SetFont(Font.Make("ESRI Geology","Normal"))

mrk44f.SetCharacter(249)

vpm44f = VectorPenMarker.Make(mrk44f)

vpm44f.SetTemplate("11")

vpm44f.SetSize(16)

syl44ef = SymbolList.FromList({vpm44e,vpm44f})

p44ef = CompositeArcInfoPen.Make(syl44ef)

pens.Add(p44ef)

'**2.5.9 Overturned Anticline (DOWN)

mrk45 = BasicMarker.Make

mrk45.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk45.SetFont(Font.Make("ESRI Geology","Normal"))

mrk45.SetCharacter(65)

vpm45 = VectorPenMarker.Make(mrk45)

vpm45.SetTemplate("011")

vpm45.SetInterval(0.702)

vpm45.SetAltSize(-0.25)

vpm45.SetSize(16)

bln45 = BasicPen.Make

bln45.SetWidth(0.5)

syl45 = SymbolList.FromList({vpm45,bln45})

p45 = CompositeArcInfoPen.Make(syl45)

pens.Add(p45)

'**2.5.9 Overturned Anticline, Approximately Located (DOWN)

mrk45a = BasicMarker.Make

mrk45a.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk45a.SetFont(Font.Make("ESRI Geology","Normal"))

mrk45a.SetCharacter(65)

vpm45a = VectorPenMarker.Make(mrk45a)

vpm45a.SetTemplate("011")

vpm45a.SetInterval(0.702)

vpm45a.SetMarkLayer(0.051,-0.25)

vpm45a.SetSize(16)

mrk45b = BasicMarker.Make

mrk45b.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk45b.SetFont(Font.Make("ESRI Geology","Normal"))

mrk45b.SetCharacter(249)

vpm45b = VectorPenMarker.Make(mrk45b)

vpm45b.SetTemplate("71")

vpm45b.SetSize(16)

syl45ab = SymbolList.FromList({vpm45a,vpm45b})

p45ab = CompositeArcInfoPen.Make(syl45ab)

pens.Add(p45ab)

'**2.5.9 Overturned Anticline, Inferred (DOWN)

mrk45c = BasicMarker.Make

mrk45c.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk45c.SetFont(Font.Make("ESRI Geology","Normal"))

mrk45c.SetCharacter(65)

vpm45c = VectorPenMarker.Make(mrk45c)

vpm45c.SetTemplate("011")

vpm45c.SetInterval(0.702)

vpm45c.SetMarkLayer(0.32,-0.25)

vpm45c.SetSize(16)

mrk45d = BasicMarker.Make

mrk45d.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk45d.SetFont(Font.Make("ESRI Geology","Normal"))

mrk45d.SetCharacter(249)

vpm45d = VectorPenMarker.Make(mrk45d)

vpm45d.SetTemplate("41")

vpm45d.SetSize(16)

syl45cd = SymbolList.FromList({vpm45c,vpm45d})

p45cd = CompositeArcInfoPen.Make(syl45cd)

pens.Add(p45cd)

'**2.5.9 Overturned Anticline, Concealed (DOWN)

mrk45e = BasicMarker.Make

mrk45e.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk45e.SetFont(Font.Make("ESRI Geology","Normal"))

mrk45e.SetCharacter(65)

vpm45e = VectorPenMarker.Make(mrk45e)

vpm45e.SetTemplate("011")

vpm45e.SetInterval(0.703)

vpm45e.SetAltSize(-0.25)

vpm45e.SetSize(16)

mrk45f = BasicMarker.Make

mrk45f.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk45f.SetFont(Font.Make("ESRI Geology","Normal"))

mrk45f.SetCharacter(249)

vpm45f = VectorPenMarker.Make(mrk45f)

vpm45f.SetTemplate("11")

vpm45f.SetSize(16)

syl45ef = SymbolList.FromList({vpm45e,vpm45f})

p45ef = CompositeArcInfoPen.Make(syl45ef)

pens.Add(p45ef)

'**2.5.10 Inverted Anticline

mrk46 = BasicMarker.Make

mrk46.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk46.SetFont(Font.Make("ESRI Geology","Normal"))

mrk46.SetCharacter(74)

vpm46 = VectorPenMarker.Make(mrk46)

vpm46.SetTemplate("011")

vpm46.SetInterval(0.1429)

vpm46.SetAltSize(0)

vpm46.SetSize(16)

bln46 = BasicPen.Make

bln46.SetWidth(0.5)

syl46 = SymbolList.FromList({vpm46,bln46})

p46 = CompositeArcInfoPen.Make(syl46)

pens.Add(p46)

'**2.5.10 Inverted Anticline, Approximately Located

mrk46a = BasicMarker.Make

mrk46a.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk46a.SetFont(Font.Make("ESRI Geology","Normal"))

mrk46a.SetCharacter(74)

vpm46a = VectorPenMarker.Make(mrk46a)

vpm46a.SetTemplate("011")

vpm46a.SetInterval(0.1429)

vpm46a.SetMarkLayer(0.38,0)

vpm46a.SetSize(16)

mrk46b = BasicMarker.Make

mrk46b.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk46b.SetFont(Font.Make("ESRI Geology","Normal"))

mrk46b.SetCharacter(249)

vpm46b = VectorPenMarker.Make(mrk46b)

vpm46b.SetTemplate("71")

vpm46b.SetSize(16)

syl46ab = SymbolList.FromList({vpm46a,vpm46b})

p46ab = CompositeArcInfoPen.Make(syl46ab)

pens.Add(p46ab)

'**2.5.10 Inverted Anticline, Inferred

mrk46c = BasicMarker.Make

mrk46c.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk46c.SetFont(Font.Make("ESRI Geology","Normal"))

mrk46c.SetCharacter(74)

vpm46c = VectorPenMarker.Make(mrk46c)

vpm46c.SetTemplate("011")

vpm46c.SetInterval(0.1429)

vpm46c.SetMarkLayer(0.425,0)

vpm46c.SetSize(16)

mrk46d = BasicMarker.Make

mrk46d.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk46d.SetFont(Font.Make("ESRI Geology","Normal"))

mrk46d.SetCharacter(249)

vpm46d = VectorPenMarker.Make(mrk46d)

vpm46d.SetTemplate("41")

vpm46d.SetSize(16)

syl46cd = SymbolList.FromList({vpm46c,vpm46d})

p46cd = CompositeArcInfoPen.Make(syl46cd)

pens.Add(p46cd)

'**2.5.10 Inverted Anticline, Concealed

mrk46e = BasicMarker.Make

mrk46e.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk46e.SetFont(Font.Make("ESRI Geology","Normal"))

mrk46e.SetCharacter(74)

vpm46e = VectorPenMarker.Make(mrk46e)

vpm46e.SetTemplate("011")

vpm46e.SetInterval(0.1429)

vpm46e.SetAltSize(0)

vpm46e.SetSize(16)

mrk46f = BasicMarker.Make

mrk46f.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk46f.SetFont(Font.Make("ESRI Geology","Normal"))

mrk46f.SetCharacter(249)

vpm46f = VectorPenMarker.Make(mrk46f)

vpm46f.SetTemplate("11")

vpm46f.SetSize(16)

syl46ef = SymbolList.FromList({vpm46e,vpm46f})

p46ef = CompositeArcInfoPen.Make(syl46ef)

pens.Add(p46ef)

'**2.5.11 Synform

mrk47 = BasicMarker.Make

mrk47.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk47.SetFont(Font.Make("ESRI Geology","Normal"))

mrk47.SetCharacter(75)

vpm47 = VectorPenMarker.Make(mrk47)

vpm47.SetTemplate("021")

vpm47.SetInterval(0.1428)

vpm47.SetAltSize(-0.027)

vpm47.SetSize(16)

bln47 = BasicPen.Make

bln47.SetWidth(0.5)

syl47 = SymbolList.FromList({vpm47,bln47})

p47 = CompositeArcInfoPen.Make(syl47)

pens.Add(p47)

'**2.5.11 Synform, Approximately Located

mrk47a = BasicMarker.Make

mrk47a.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk47a.SetFont(Font.Make("ESRI Geology","Normal"))

mrk47a.SetCharacter(75)

vpm47a = VectorPenMarker.Make(mrk47a)

vpm47a.SetTemplate("021")

vpm47a.SetInterval(0.1428)

vpm47a.SetMarkLayer(-0.2,-0.027)

vpm47a.SetSize(16)

mrk47b = BasicMarker.Make

mrk47b.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk47b.SetFont(Font.Make("ESRI Geology","Normal"))

mrk47b.SetCharacter(249)

vpm47b = VectorPenMarker.Make(mrk47b)

vpm47b.SetTemplate("71")

vpm47b.SetSize(16)

syl47ab = SymbolList.FromList({vpm47a,vpm47b})

p47ab = CompositeArcInfoPen.Make(syl47ab)

pens.Add(p47ab)

'**2.5.11 Synform, Inferred

mrk47c = BasicMarker.Make

mrk47c.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk47c.SetFont(Font.Make("ESRI Geology","Normal"))

mrk47c.SetCharacter(75)

vpm47c = VectorPenMarker.Make(mrk47c)

vpm47c.SetTemplate("011")

vpm47c.SetMarkLayer(0.56,-0.027)

vpm47c.SetInterval(0.4287)

vpm47c.SetSize(16)

mrk47d = BasicMarker.Make

mrk47d.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk47d.SetFont(Font.Make("ESRI Geology","Normal"))

mrk47d.SetCharacter(249)

vpm47d = VectorPenMarker.Make(mrk47d)

vpm47d.SetMarkLayer(0.5,0)

vpm47d.SetTemplate("41")

vpm47d.SetSize(16)

syl47cd = SymbolList.FromList({vpm47c,vpm47d})

p47cd = CompositeArcInfoPen.Make(syl47cd)

pens.Add(p47cd)

'**2.5.11 Synform, Concealed

mrk47e = BasicMarker.Make

mrk47e.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk47e.SetFont(Font.Make("ESRI Geology","Normal"))

mrk47e.SetCharacter(75)

vpm47e = VectorPenMarker.Make(mrk47e)

vpm47e.SetTemplate("011")

vpm47e.SetInterval(0.1428)

vpm47e.SetAltSize(-0.027)

vpm47e.SetSize(16)

mrk47f = BasicMarker.Make

mrk47f.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk47f.SetFont(Font.Make("ESRI Geology","Normal"))

mrk47f.SetCharacter(249)

vpm47f = VectorPenMarker.Make(mrk47f)

vpm47f.SetTemplate("11")

vpm47f.SetSize(16)

syl47ef = SymbolList.FromList({vpm47e,vpm47f})

p47ef = CompositeArcInfoPen.Make(syl47ef)

pens.Add(p47ef)

'**2.5.12 Synform, Second Type

mrk48 = BasicMarker.Make

mrk48.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk48.SetFont(Font.Make("ESRI Geology","Normal"))

mrk48.SetCharacter(76)

vpm48 = VectorPenMarker.Make(mrk48)

vpm48.SetTemplate("021")

vpm48.SetInterval(0.1428)

vpm48.SetAltSize(-0.025)

vpm48.SetSize(16)

bln48 = BasicPen.Make

bln48.SetWidth(0.5)

syl48 = SymbolList.FromList({vpm48,bln48})

p48 = CompositeArcInfoPen.Make(syl48)

pens.Add(p48)

'**2.5.12 Synform, Second Type, Approximately Located

mrk48a = BasicMarker.Make

mrk48a.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk48a.SetFont(Font.Make("ESRI Geology","Normal"))

mrk48a.SetCharacter(76)

vpm48a = VectorPenMarker.Make(mrk48a)

vpm48a.SetTemplate("021")

vpm48a.SetInterval(0.2)

vpm48a.SetMarkLayer(-0.21,-0.025)

vpm48a.SetSize(16)

mrk48b = BasicMarker.Make

mrk48b.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk48b.SetFont(Font.Make("ESRI Geology","Normal"))

mrk48b.SetCharacter(249)

vpm48b = VectorPenMarker.Make(mrk48b)

vpm48b.SetTemplate("71")

vpm48b.SetSize(16)

syl48ab = SymbolList.FromList({vpm48a,vpm48b})

p48ab = CompositeArcInfoPen.Make(syl48ab)

pens.Add(p48ab)

'**2.5.12 Synform, Second Type, Inferred

mrk48c = BasicMarker.Make

mrk48c.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk48c.SetFont(Font.Make("ESRI Geology","Normal"))

mrk48c.SetCharacter(76)

vpm48c = VectorPenMarker.Make(mrk48c)

vpm48c.SetTemplate("011")

vpm48c.SetMarkLayer(0.56,-0.027)

vpm48c.SetInterval(0.5)

vpm48c.SetSize(16)

mrk48d = BasicMarker.Make

mrk48d.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk48d.SetFont(Font.Make("ESRI Geology","Normal"))

mrk48d.SetCharacter(249)

vpm48d = VectorPenMarker.Make(mrk48d)

vpm48d.SetTemplate("41")

vpm48d.SetMarkLayer(0.5,0)

vpm48d.SetSize(16)

syl48cd = SymbolList.FromList({vpm48c,vpm48d})

p478d = CompositeArcInfoPen.Make(syl48cd)

pens.Add(p478d)

'**2.5.12 Synform, Second Type, Concealed

mrk48e = BasicMarker.Make

mrk48e.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk48e.SetFont(Font.Make("ESRI Geology","Normal"))

mrk48e.SetCharacter(76)

vpm48e = VectorPenMarker.Make(mrk48e)

vpm48e.SetTemplate("021")

vpm48e.SetInterval(0.1428)

vpm48e.SetAltSize(-0.025)

vpm48e.SetSize(16)

mrk48f = BasicMarker.Make

mrk48f.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk48f.SetFont(Font.Make("ESRI Geology","Normal"))

mrk48f.SetCharacter(249)

vpm48f = VectorPenMarker.Make(mrk48f)

vpm48f.SetTemplate("11")

vpm48f.SetSize(16)

syl48ef = SymbolList.FromList({vpm48e,vpm48f})

p48ef = CompositeArcInfoPen.Make(syl48ef)

pens.Add(p48ef)

'**2.5.13 Syncline

mrk49 = BasicMarker.Make

mrk49.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk49.SetFont(Font.Make("ESRI Geology","Normal"))

mrk49.SetCharacter(77)

vpm49 = VectorPenMarker.Make(mrk49)

vpm49.SetTemplate("021")

vpm49.SetInterval(0.25)

vpm49.SetAltSize(-0.025)

vpm49.SetSize(16)

bln49 = BasicPen.Make

bln49.SetWidth(0.5)

syl49 = SymbolList.FromList({vpm49,bln49})

p49 = CompositeArcInfoPen.Make(syl49)

pens.Add(p49)

'**2.5.13 Syncline, Approximately Located

mrk49a = BasicMarker.Make

mrk49a.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk49a.SetFont(Font.Make("ESRI Geology","Normal"))

mrk49a.SetCharacter(77)

vpm49a = VectorPenMarker.Make(mrk49a)

vpm49a.SetTemplate("021")

vpm49a.SetInterval(0.5)

vpm49a.SetMarkLayer(-0.32,-0.025)

vpm49a.SetSize(16)

mrk49b = BasicMarker.Make

mrk49b.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk49b.SetFont(Font.Make("ESRI Geology","Normal"))

mrk49b.SetCharacter(249)

vpm49b = VectorPenMarker.Make(mrk49b)

vpm49b.SetTemplate("71")

vpm49b.SetSize(16)

syl49ab = SymbolList.FromList({vpm49a,vpm49b})

p49ab = CompositeArcInfoPen.Make(syl49ab)

pens.Add(p49ab)

'**2.5.13 Syncline, Inferred

mrk49c = BasicMarker.Make

mrk49c.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk49c.SetFont(Font.Make("ESRI Geology","Normal"))

mrk49c.SetCharacter(77)

vpm49c = VectorPenMarker.Make(mrk49c)

vpm49c.SetTemplate("021")

vpm49c.SetInterval(0.4064)

vpm49c.SetMarkLayer(0.1,-0.025)

vpm49c.SetSize(16)

mrk49d = BasicMarker.Make

mrk49d.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk49d.SetFont(Font.Make("ESRI Geology","Normal"))

mrk49d.SetCharacter(249)

vpm49d = VectorPenMarker.Make(mrk49d)

vpm49d.SetTemplate("41")

vpm49d.SetSize(16)

syl49cd = SymbolList.FromList({vpm49c,vpm49d})

p49cd = CompositeArcInfoPen.Make(syl49cd)

pens.Add(p49cd)

'**2.5.13 Syncline, Concealed

mrk49e = BasicMarker.Make

mrk49e.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk49e.SetFont(Font.Make("ESRI Geology","Normal"))

mrk49e.SetCharacter(77)

vpm49e = VectorPenMarker.Make(mrk49e)

vpm49e.SetTemplate("021")

vpm49e.SetInterval(0.5)

vpm49e.SetMarkLayer(0,-0.025)

vpm49e.SetSize(16)

mrk49f = BasicMarker.Make

mrk49f.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk49f.SetFont(Font.Make("ESRI Geology","Normal"))

mrk49f.SetCharacter(249)

vpm49f = VectorPenMarker.Make(mrk49f)

vpm49f.SetTemplate("11")

vpm49f.SetSize(16)

syl49ef = SymbolList.FromList({vpm49e,vpm49f})

p49ef = CompositeArcInfoPen.Make(syl49ef)

pens.Add(p49ef)

'**2.5.14 Asymmetric Syncline (UP)

mrk50 = BasicMarker.Make

mrk50.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk50.SetFont(Font.Make("ESRI Geology","Normal"))

mrk50.SetCharacter(78)

vpm50 = VectorPenMarker.Make(mrk50)

vpm50.SetTemplate("021")

vpm50.SetMarkLayer(-0.32,0.5)

vpm50.SetSize(16)

bln50 = BasicPen.Make

bln50.SetWidth(0.5)

syl50 = SymbolList.FromList({vpm50,bln50})

p50 = CompositeArcInfoPen.Make(syl50)

pens.Add(p50)

'**2.5.14 Asymmetric Syncline, Approximately Located (UP)

mrk50a = BasicMarker.Make

mrk50a.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk50a.SetFont(Font.Make("ESRI Geology","Normal"))

mrk50a.SetCharacter(78)

vpm50a = VectorPenMarker.Make(mrk50a)

vpm50a.SetTemplate("021")

vpm50a.SetInterval(0.5)

vpm50a.SetMarkLayer(-0.32,0.5)

vpm50a.SetSize(16)

mrk50b = BasicMarker.Make

mrk50b.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk50b.SetFont(Font.Make("ESRI Geology","Normal"))

mrk50b.SetCharacter(249)

vpm50b = VectorPenMarker.Make(mrk50b)

vpm50b.SetTemplate("71")

vpm50b.SetSize(16)

syl50ab = SymbolList.FromList({vpm50a,vpm50b})

p50ab = CompositeArcInfoPen.Make(syl50ab)

pens.Add(p50ab)

'**2.5.14 Asymmetric Syncline, Inferred (UP)

mrk50c = BasicMarker.Make

mrk50c.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk50c.SetFont(Font.Make("ESRI Geology","Normal"))

mrk50c.SetCharacter(78)

vpm50c = VectorPenMarker.Make(mrk50c)

vpm50c.SetTemplate("021")

vpm50c.SetInterval(0.4064)

vpm50c.SetMarkLayer(0.1,0.5)

vpm50c.SetSize(16)

mrk50d = BasicMarker.Make

mrk50d.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk50d.SetFont(Font.Make("ESRI Geology","Normal"))

mrk50d.SetCharacter(249)

vpm50d = VectorPenMarker.Make(mrk50d)

vpm50d.SetTemplate("41")

vpm50d.SetSize(16)

syl50cd = SymbolList.FromList({vpm50c,vpm50d})

p50cd = CompositeArcInfoPen.Make(syl50cd)

pens.Add(p50cd)

'**2.5.14 Asymmetric Syncline, Concealed (UP)

mrk50e = BasicMarker.Make

mrk50e.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk50e.SetFont(Font.Make("ESRI Geology","Normal"))

mrk50e.SetCharacter(78)

vpm50e = VectorPenMarker.Make(mrk50e)

vpm50e.SetTemplate("021")

vpm50e.SetInterval(0.5)

vpm50e.SetMarkLayer(0,0.5)

vpm50e.SetSize(16)

mrk50f = BasicMarker.Make

mrk50f.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk50f.SetFont(Font.Make("ESRI Geology","Normal"))

mrk50f.SetCharacter(249)

vpm50f = VectorPenMarker.Make(mrk50f)

vpm50f.SetTemplate("11")

vpm50f.SetSize(16)

syl50ef = SymbolList.FromList({vpm50e,vpm50f})

p50ef = CompositeArcInfoPen.Make(syl50ef)

pens.Add(p50ef)

'**2.5.14 Asymmetric Syncline (DOWN)

mrk51 = BasicMarker.Make

mrk51.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk51.SetFont(Font.Make("ESRI Geology","Normal"))

mrk51.SetCharacter(79)

vpm51 = VectorPenMarker.Make(mrk51)

vpm51.SetTemplate("021")

vpm51.SetMarkLayer(-0.32,1.28)

vpm51.SetSize(16)

bln51 = BasicPen.Make

bln51.SetWidth(0.5)

syl51 = SymbolList.FromList({vpm51,bln51})

p51 = CompositeArcInfoPen.Make(syl51)

pens.Add(p51)

'**2.5.14 Asymmetric Syncline, Approximately Located (DOWN)

mrk51a = BasicMarker.Make

mrk51a.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk51a.SetFont(Font.Make("ESRI Geology","Normal"))

mrk51a.SetCharacter(79)

vpm51a = VectorPenMarker.Make(mrk51a)

vpm51a.SetTemplate("021")

vpm51a.SetInterval(0.5)

vpm51a.SetMarkLayer(-0.32,1.28)

vpm51a.SetSize(16)

mrk51b = BasicMarker.Make

mrk51b.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk51b.SetFont(Font.Make("ESRI Geology","Normal"))

mrk51b.SetCharacter(249)

vpm51b = VectorPenMarker.Make(mrk51b)

vpm51b.SetTemplate("71")

vpm51b.SetSize(16)

syl51ab = SymbolList.FromList({vpm51a,vpm51b})

p51ab = CompositeArcInfoPen.Make(syl51ab)

pens.Add(p51ab)

'**2.5.14 Asymmetric Syncline, Inferred (DOWN)

mrk51c = BasicMarker.Make

mrk51c.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk51c.SetFont(Font.Make("ESRI Geology","Normal"))

mrk51c.SetCharacter(79)

vpm51c = VectorPenMarker.Make(mrk51c)

vpm51c.SetTemplate("021")

vpm51c.SetInterval(0.4064)

vpm51c.SetMarkLayer(0.1,1.28)

vpm51c.SetSize(16)

mrk51d = BasicMarker.Make

mrk51d.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk51d.SetFont(Font.Make("ESRI Geology","Normal"))

mrk51d.SetCharacter(249)

vpm51d = VectorPenMarker.Make(mrk51d)

vpm51d.SetTemplate("41")

vpm51d.SetSize(16)

syl51cd = SymbolList.FromList({vpm51c,vpm51d})

p51cd = CompositeArcInfoPen.Make(syl51cd)

pens.Add(p51cd)

'**2.5.14 Asymmetric Syncline, Concealed (DOWN)

mrk51e = BasicMarker.Make

mrk51e.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk51e.SetFont(Font.Make("ESRI Geology","Normal"))

mrk51e.SetCharacter(79)

vpm51e = VectorPenMarker.Make(mrk51e)

vpm51e.SetTemplate("021")

vpm51e.SetInterval(0.5)

vpm51e.SetMarkLayer(0,1.28)

vpm51e.SetSize(16)

mrk51f = BasicMarker.Make

mrk51f.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk51f.SetFont(Font.Make("ESRI Geology","Normal"))

mrk51f.SetCharacter(249)

vpm51f = VectorPenMarker.Make(mrk51f)

vpm51f.SetTemplate("11")

vpm51f.SetSize(16)

syl51ef = SymbolList.FromList({vpm51e,vpm51f})

p51ef = CompositeArcInfoPen.Make(syl51ef)

pens.Add(p51ef)

'**2.5.15 Overturned Syncline (UP)

mrk52 = BasicMarker.Make

mrk52.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk52.SetFont(Font.Make("ESRI Geology","Normal"))

mrk52.SetCharacter(80)

vpm52 = VectorPenMarker.Make(mrk52)

vpm52.SetTemplate("011")

vpm52.SetInterval(0.4884)

vpm52.SetAltSize(0.21)

vpm52.SetSize(16)

bln52 = BasicPen.Make

bln52.SetWidth(0.5)

syl52 = SymbolList.FromList({vpm52,bln52})

p52 = CompositeArcInfoPen.Make(syl52)

pens.Add(p52)

'**2.5.15 Overturned Syncline, Approximately Located (UP)

mrk52a = BasicMarker.Make

mrk52a.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk52a.SetFont(Font.Make("ESRI Geology","Normal"))

mrk52a.SetCharacter(80)

vpm52a = VectorPenMarker.Make(mrk52a)

vpm52a.SetTemplate("011")

vpm52a.SetInterval(0.4884)

vpm52a.SetMarkLayer(0.82,0.2)

vpm52a.SetSize(16)

mrk52b = BasicMarker.Make

mrk52b.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk52b.SetFont(Font.Make("ESRI Geology","Normal"))

mrk52b.SetCharacter(249)

vpm52b = VectorPenMarker.Make(mrk52b)

vpm52b.SetTemplate("71")

vpm52b.SetSize(16)

syl52ab = SymbolList.FromList({vpm52a,vpm52b})

p52ab = CompositeArcInfoPen.Make(syl52ab)

pens.Add(p52ab)

'**2.5.15 Overturned Syncline, Inferred (UP)

mrk52c = BasicMarker.Make

mrk52c.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk52c.SetFont(Font.Make("ESRI Geology","Normal"))

mrk52c.SetCharacter(80)

vpm52c = VectorPenMarker.Make(mrk52c)

vpm52c.SetTemplate("011")

vpm52c.SetInterval(0.6279)

vpm52c.SetMarkLayer(0.79,0.2)

vpm52c.SetSize(16)

mrk52d = BasicMarker.Make

mrk52d.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk52d.SetFont(Font.Make("ESRI Geology","Normal"))

mrk52d.SetCharacter(249)

vpm52d = VectorPenMarker.Make(mrk52d)

vpm52d.SetTemplate("41")

vpm52d.SetSize(16)

syl52cd = SymbolList.FromList({vpm52c,vpm52d})

p52cd = CompositeArcInfoPen.Make(syl52cd)

pens.Add(p52cd)

'**2.5.15 Overturned Syncline, Concealed (UP)

mrk52e = BasicMarker.Make

mrk52e.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk52e.SetFont(Font.Make("ESRI Geology","Normal"))

mrk52e.SetCharacter(80)

vpm52e = VectorPenMarker.Make(mrk52e)

vpm52e.SetTemplate("011")

vpm52e.SetInterval(0.4884)

vpm52e.SetMarkLayer(0,0.2)

vpm52e.SetSize(16)

mrk52f = BasicMarker.Make

mrk52f.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk52f.SetFont(Font.Make("ESRI Geology","Normal"))

mrk52f.SetCharacter(249)

vpm52f = VectorPenMarker.Make(mrk52f)

vpm52f.SetTemplate("11")

vpm52f.SetSize(16)

syl52ef = SymbolList.FromList({vpm52e,vpm52f})

p52ef = CompositeArcInfoPen.Make(syl52ef)

pens.Add(p52ef)

'**2.5.15 Overturned Syncline (DOWN)

mrk53 = BasicMarker.Make

mrk53.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk53.SetFont(Font.Make("ESRI Geology","Normal"))

mrk53.SetCharacter(90)

vpm53 = VectorPenMarker.Make(mrk53)

vpm53.SetTemplate("011")

vpm53.SetInterval(0.4884)

vpm53.SetAltSize(-0.25)

vpm53.SetSize(16)

bln53 = BasicPen.Make

bln53.SetWidth(0.5)

syl53 = SymbolList.FromList({vpm53,bln53})

p53 = CompositeArcInfoPen.Make(syl53)

pens.Add(p53)

'**2.5.15 Overturned Syncline, Approximately Located (DOWN)

mrk53a = BasicMarker.Make

mrk53a.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk53a.SetFont(Font.Make("ESRI Geology","Normal"))

mrk53a.SetCharacter(90)

vpm53a = VectorPenMarker.Make(mrk53a)

vpm53a.SetTemplate("011")

vpm53a.SetInterval(0.4884)

vpm53a.SetMarkLayer(0.82,-0.25)

vpm53a.SetSize(16)

mrk53b = BasicMarker.Make

mrk53b.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk53b.SetFont(Font.Make("ESRI Geology","Normal"))

mrk53b.SetCharacter(249)

vpm53b = VectorPenMarker.Make(mrk53b)

vpm53b.SetTemplate("71")

vpm53b.SetSize(16)

syl53ab = SymbolList.FromList({vpm53a,vpm53b})

p53ab = CompositeArcInfoPen.Make(syl53ab)

pens.Add(p53ab)

'**2.5.15 Overturned Syncline, Inferred (DOWN)

mrk53c = BasicMarker.Make

mrk53c.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk53c.SetFont(Font.Make("ESRI Geology","Normal"))

mrk53c.SetCharacter(90)

vpm53c = VectorPenMarker.Make(mrk53c)

vpm53c.SetTemplate("011")

vpm53c.SetInterval(0.6279)

vpm53c.SetMarkLayer(0.79,-0.25)

vpm53c.SetSize(16)

mrk53d = BasicMarker.Make

mrk53d.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk53d.SetFont(Font.Make("ESRI Geology","Normal"))

mrk53d.SetCharacter(249)

vpm53d = VectorPenMarker.Make(mrk53d)

vpm53d.SetTemplate("41")

vpm53d.SetSize(16)

syl53cd = SymbolList.FromList({vpm53c,vpm53d})

p53cd = CompositeArcInfoPen.Make(syl53cd)

pens.Add(p53cd)

'**2.5.15 Overturned Syncline, Concealed (DOWN)

mrk53e = BasicMarker.Make

mrk53e.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk53e.SetFont(Font.Make("ESRI Geology","Normal"))

mrk53e.SetCharacter(90)

vpm53e = VectorPenMarker.Make(mrk53e)

vpm53e.SetTemplate("011")

vpm53e.SetInterval(0.4884)

vpm53e.SetMarkLayer(0,-0.25)

vpm53e.SetSize(16)

mrk53f = BasicMarker.Make

mrk53f.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk53f.SetFont(Font.Make("ESRI Geology","Normal"))

mrk53f.SetCharacter(249)

vpm53f = VectorPenMarker.Make(mrk53f)

vpm53f.SetTemplate("11")

vpm53f.SetSize(16)

syl53ef = SymbolList.FromList({vpm53e,vpm53f})

p53ef = CompositeArcInfoPen.Make(syl53ef)

pens.Add(p53ef)

'**2.5.16 Inverted Syncline

mrk54 = BasicMarker.Make

mrk54.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk54.SetFont(Font.Make("ESRI Geology","Normal"))

mrk54.SetCharacter(81)

vpm54 = VectorPenMarker.Make(mrk54)

vpm54.SetTemplate("011")

vpm54.SetInterval(0.1429)

vpm54.SetAltSize(-0.01)

vpm54.SetSize(16)

bln54 = BasicPen.Make

bln54.SetWidth(0.5)

syl54 = SymbolList.FromList({vpm54,bln54})

p54 = CompositeArcInfoPen.Make(syl54)

pens.Add(p54)

'**2.5.16 Inverted Syncline, Approximately Located

mrk54a = BasicMarker.Make

mrk54a.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk54a.SetFont(Font.Make("ESRI Geology","Normal"))

mrk54a.SetCharacter(81)

vpm54a = VectorPenMarker.Make(mrk54a)

vpm54a.SetTemplate("011")

vpm54a.SetInterval(0.15938)

vpm54a.SetMarkLayer(0.38,-0.01)

vpm54a.SetSize(16)

mrk54b = BasicMarker.Make

mrk54b.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk54b.SetFont(Font.Make("ESRI Geology","Normal"))

mrk54b.SetCharacter(249)

vpm54b = VectorPenMarker.Make(mrk54b)

vpm54b.SetTemplate("71")

vpm54b.SetSize(16)

syl54ab = SymbolList.FromList({vpm54a,vpm54b})

p54ab = CompositeArcInfoPen.Make(syl54ab)

pens.Add(p54ab)

'**2.5.16 Inverted Syncline, Inferred

mrk54c = BasicMarker.Make

mrk54c.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk54c.SetFont(Font.Make("ESRI Geology","Normal"))

mrk54c.SetCharacter(81)

vpm54c = VectorPenMarker.Make(mrk54c)

vpm54c.SetTemplate("011")

vpm54c.SetInterval(0.15935)

vpm54c.SetMarkLayer(0.425,-0.01)

vpm54c.SetSize(16)

mrk54d = BasicMarker.Make

mrk54d.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk54d.SetFont(Font.Make("ESRI Geology","Normal"))

mrk54d.SetCharacter(249)

vpm54d = VectorPenMarker.Make(mrk54d)

vpm54d.SetTemplate("41")

vpm54d.SetSize(16)

syl54cd = SymbolList.FromList({vpm54c,vpm54d})

p54cd = CompositeArcInfoPen.Make(syl54cd)

pens.Add(p54cd)

'**2.5.16 Inverted Syncline, Concealed

mrk54e = BasicMarker.Make

mrk54e.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk54e.SetFont(Font.Make("ESRI Geology","Normal"))

mrk54e.SetCharacter(81)

vpm54e = VectorPenMarker.Make(mrk54e)

vpm54e.SetTemplate("011")

vpm54e.SetInterval(0.1429)

vpm54e.SetAltSize(-0.01)

vpm54e.SetSize(16)

mrk54f = BasicMarker.Make

mrk54f.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk54f.SetFont(Font.Make("ESRI Geology","Normal"))

mrk54f.SetCharacter(249)

vpm54f = VectorPenMarker.Make(mrk54f)

vpm54f.SetTemplate("11")

vpm54f.SetSize(16)

syl54ef = SymbolList.FromList({vpm54e,vpm54f})

p54ef = CompositeArcInfoPen.Make(syl54ef)

pens.Add(p54ef)

'**2.5.17 Moncline (UP)

mrk55 = BasicMarker.Make

mrk55.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk55.SetFont(Font.Make("ESRI Geology","Normal"))

mrk55.SetCharacter(82)

vpm55 = VectorPenMarker.Make(mrk55)

vpm55.SetTemplate("041")

vpm55.SetAltSize(0)

vpm55.SetSize(16)

bln55 = BasicPen.Make

bln55.SetWidth(0.5)

syl55 = SymbolList.FromList({vpm55,bln55})

p55 = CompositeArcInfoPen.Make(syl55)

pens.Add(p55)

'**2.5.17 Moncline, Approximately Located (UP)

mrk55a = BasicMarker.Make

mrk55a.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk55a.SetFont(Font.Make("ESRI Geology","Normal"))

mrk55a.SetCharacter(82)

vpm55a = VectorPenMarker.Make(mrk55a)

vpm55a.SetTemplate("041")

vpm55a.SetMarkLayer(-0.81,0)

vpm55a.SetSize(16)

mrk55b = BasicMarker.Make

mrk55b.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk55b.SetFont(Font.Make("ESRI Geology","Normal"))

mrk55b.SetCharacter(249)

vpm55b = VectorPenMarker.Make(mrk55b)

vpm55b.SetTemplate("71")

vpm55b.SetSize(16)

syl55ab = SymbolList.FromList({vpm55a,vpm55b})

p55ab = CompositeArcInfoPen.Make(syl55ab)

pens.Add(p55ab)

'**2.5.17 Moncline, Inferred (UP)

mrk55c = BasicMarker.Make

mrk55c.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk55c.SetFont(Font.Make("ESRI Geology","Normal"))

mrk55c.SetCharacter(82)

vpm55c = VectorPenMarker.Make(mrk55c)

vpm55c.SetTemplate("041")

vpm55c.SetInterval(0.25006)

vpm55c.SetMarkLayer(-0.01,0)

vpm55c.SetSize(16)

mrk55d = BasicMarker.Make

mrk55d.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk55d.SetFont(Font.Make("ESRI Geology","Normal"))

mrk55d.SetCharacter(249)

vpm55d = VectorPenMarker.Make(mrk55d)

vpm55d.SetTemplate("41")

vpm55d.SetSize(16)

syl55cd = SymbolList.FromList({vpm55c,vpm55d})

p55cd = CompositeArcInfoPen.Make(syl55cd)

pens.Add(p55cd)

'**2.5.17 Moncline, Concealed (UP)

mrk55e = BasicMarker.Make

mrk55e.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk55e.SetFont(Font.Make("ESRI Geology","Normal"))

mrk55e.SetCharacter(82)

vpm55e = VectorPenMarker.Make(mrk55e)

vpm55e.SetTemplate("041")

vpm55e.SetAltSize(0)

vpm55e.SetSize(16)

mrk55f = BasicMarker.Make

mrk55f.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk55f.SetFont(Font.Make("ESRI Geology","Normal"))

mrk55f.SetCharacter(249)

vpm55f = VectorPenMarker.Make(mrk55f)

vpm55f.SetTemplate("11")

vpm55f.SetSize(16)

syl55ef = SymbolList.FromList({vpm55e,vpm55f})

p55ef = CompositeArcInfoPen.Make(syl55ef)

pens.Add(p55ef)

'**2.5.17 Moncline (DOWN)

mrk56 = BasicMarker.Make

mrk56.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk56.SetFont(Font.Make("ESRI Geology","Normal"))

mrk56.SetCharacter(83)

vpm56 = VectorPenMarker.Make(mrk56)

vpm56.SetTemplate("081")

vpm56.SetAltSize(0)

vpm56.SetSize(16)

bln56 = BasicPen.Make

bln56.SetWidth(0.5)

syl56 = SymbolList.FromList({vpm56,bln56})

p56 = CompositeArcInfoPen.Make(syl56)

pens.Add(p56)

'**2.5.17 Moncline, Approximately Located (DOWN)

mrk56a = BasicMarker.Make

mrk56a.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk56a.SetFont(Font.Make("ESRI Geology","Normal"))

mrk56a.SetCharacter(83)

vpm56a = VectorPenMarker.Make(mrk56a)

vpm56a.SetTemplate("041")

vpm56a.SetMarkLayer(-0.81,0)

vpm56a.SetSize(16)

mrk56b = BasicMarker.Make

mrk56b.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk56b.SetFont(Font.Make("ESRI Geology","Normal"))

mrk56b.SetCharacter(249)

vpm56b = VectorPenMarker.Make(mrk56b)

vpm56b.SetTemplate("71")

vpm56b.SetSize(16)

syl56ab = SymbolList.FromList({vpm56a,vpm56b})

p56ab = CompositeArcInfoPen.Make(syl56ab)

pens.Add(p56ab)

'**2.5.17 Moncline, Inferred (DOWN)

mrk56c = BasicMarker.Make

mrk56c.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk56c.SetFont(Font.Make("ESRI Geology","Normal"))

mrk56c.SetCharacter(83)

vpm56c = VectorPenMarker.Make(mrk56c)

vpm56c.SetTemplate("041")

vpm56c.SetInterval(0.25006)

vpm56c.SetMarkLayer(-0.01,0)

vpm56c.SetSize(16)

mrk56d = BasicMarker.Make

mrk56d.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk56d.SetFont(Font.Make("ESRI Geology","Normal"))

mrk56d.SetCharacter(249)

vpm56d = VectorPenMarker.Make(mrk56d)

vpm56d.SetTemplate("41")

vpm56d.SetSize(16)

syl56cd = SymbolList.FromList({vpm56c,vpm56d})

p56cd = CompositeArcInfoPen.Make(syl56cd)

pens.Add(p56cd)

'**2.5.17 Moncline, Concealed (DOWN)

mrk56e = BasicMarker.Make

mrk56e.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk56e.SetFont(Font.Make("ESRI Geology","Normal"))

mrk56e.SetCharacter(83)

vpm56e = VectorPenMarker.Make(mrk56e)

vpm56e.SetTemplate("041")

vpm56e.SetAltSize(0)

vpm56e.SetSize(16)

mrk56f = BasicMarker.Make

mrk56f.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk56f.SetFont(Font.Make("ESRI Geology","Normal"))

mrk56f.SetCharacter(249)

vpm56f = VectorPenMarker.Make(mrk56f)

vpm56f.SetTemplate("11")

vpm56f.SetSize(16)

syl56ef = SymbolList.FromList({vpm56e,vpm56f})

p56ef = CompositeArcInfoPen.Make(syl56ef)

pens.Add(p56ef)

'**2.5.18, Moncline, Anticlinal bend (UP)

mrk57 = BasicMarker.Make

mrk57.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk57.SetFont(Font.Make("ESRI Geology","Normal"))

mrk57.SetCharacter(84)

vpm57 = VectorPenMarker.Make(mrk57)

vpm57.SetTemplate("041")

vpm57.SetAltSize(0.2)

vpm57.SetSize(16)

bln57 = BasicPen.Make

bln57.SetWidth(0.5)

syl57 = SymbolList.FromList({vpm57,bln57})

p57 = CompositeArcInfoPen.Make(syl57)

pens.Add(p57)

'**2.5.18, Moncline, Anticlinal bend Approximately Located(UP)

mrk57a = BasicMarker.Make

mrk57a.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk57a.SetFont(Font.Make("ESRI Geology","Normal"))

mrk57a.SetCharacter(84)

vpm57a = VectorPenMarker.Make(mrk57a)

vpm57a.SetTemplate("041")

vpm57a.SetMarkLayer(-0.81,0.2)

vpm57a.SetSize(16)

mrk57b = BasicMarker.Make

mrk57b.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk57b.SetFont(Font.Make("ESRI Geology","Normal"))

mrk57b.SetCharacter(249)

vpm57b = VectorPenMarker.Make(mrk57b)

vpm57b.SetTemplate("71")

vpm57b.SetSize(16)

syl57ab = SymbolList.FromList({vpm57a,vpm57b})

p57ab = CompositeArcInfoPen.Make(syl57ab)

pens.Add(p57ab)

'**2.5.18, Moncline, Anticlinal bend Inferred (UP)

mrk57c = BasicMarker.Make

mrk57c.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk57c.SetFont(Font.Make("ESRI Geology","Normal"))

mrk57c.SetCharacter(84)

vpm57c = VectorPenMarker.Make(mrk57c)

vpm57c.SetTemplate("041")

vpm57c.SetInterval(0.25006)

vpm57c.SetMarkLayer(-0.01,0.2)

vpm57c.SetSize(16)

mrk57d = BasicMarker.Make

mrk57d.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk57d.SetFont(Font.Make("ESRI Geology","Normal"))

mrk57d.SetCharacter(249)

vpm57d = VectorPenMarker.Make(mrk57d)

vpm57d.SetTemplate("41")

vpm57d.SetSize(16)

syl57cd = SymbolList.FromList({vpm57c,vpm57d})

p57cd = CompositeArcInfoPen.Make(syl57cd)

pens.Add(p57cd)

'**2.5.18, Moncline, Anticlinal bend Concealed(UP)

mrk57e = BasicMarker.Make

mrk57e.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk57e.SetFont(Font.Make("ESRI Geology","Normal"))

mrk57e.SetCharacter(84)

vpm57e = VectorPenMarker.Make(mrk57e)

vpm57e.SetTemplate("041")

vpm57e.SetAltSize(0.2)

vpm57e.SetSize(16)

mrk57f = BasicMarker.Make

mrk57f.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk57f.SetFont(Font.Make("ESRI Geology","Normal"))

mrk57f.SetCharacter(249)

vpm57f = VectorPenMarker.Make(mrk57f)

vpm57f.SetTemplate("11")

vpm57f.SetSize(16)

syl57ef = SymbolList.FromList({vpm57e,vpm57f})

p57ef = CompositeArcInfoPen.Make(syl57ef)

pens.Add(p57ef)

'**2.5.18, Moncline, Anticlinal bend (DOWN)

mrk58 = BasicMarker.Make

mrk58.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk58.SetFont(Font.Make("ESRI Geology","Normal"))

mrk58.SetCharacter(85)

vpm58 = VectorPenMarker.Make(mrk58)

vpm58.SetTemplate("041")

vpm58.SetAltSize(1.6)

vpm58.SetSize(16)

bln58 = BasicPen.Make

bln58.SetWidth(0.5)

syl58 = SymbolList.FromList({vpm58,bln58})

p58 = CompositeArcInfoPen.Make(syl58)

pens.Add(p58)

'**2.5.18, Moncline, Anticlinal bend Approximately Located (DOWN)

mrk58a = BasicMarker.Make

mrk58a.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk58a.SetFont(Font.Make("ESRI Geology","Normal"))

mrk58a.SetCharacter(85)

vpm58a = VectorPenMarker.Make(mrk58a)

vpm58a.SetTemplate("041")

vpm58a.SetMarkLayer(-0.81,1.6)

vpm58a.SetSize(16)

mrk58b = BasicMarker.Make

mrk58b.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk58b.SetFont(Font.Make("ESRI Geology","Normal"))

mrk58b.SetCharacter(249)

vpm58b = VectorPenMarker.Make(mrk58b)

vpm58b.SetTemplate("71")

vpm58b.SetSize(16)

syl58ab = SymbolList.FromList({vpm58a,vpm58b})

p58ab = CompositeArcInfoPen.Make(syl58ab)

pens.Add(p58ab)

'**2.5.18, Moncline, Anticlinal bend Inferred(DOWN)

mrk58c = BasicMarker.Make

mrk58c.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk58c.SetFont(Font.Make("ESRI Geology","Normal"))

mrk58c.SetCharacter(85)

vpm58c = VectorPenMarker.Make(mrk58c)

vpm58c.SetTemplate("041")

vpm58c.SetInterval(0.25006)

vpm58c.SetMarkLayer(-0.01,1.6)

vpm58c.SetSize(16)

mrk58d = BasicMarker.Make

mrk58d.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk58d.SetFont(Font.Make("ESRI Geology","Normal"))

mrk58d.SetCharacter(249)

vpm58d = VectorPenMarker.Make(mrk58d)

vpm58d.SetTemplate("41")

vpm58d.SetSize(16)

syl58cd = SymbolList.FromList({vpm58c,vpm58d})

p58cd = CompositeArcInfoPen.Make(syl58cd)

pens.Add(p58cd)

'**2.5.18, Moncline, Anticlinal bend Concealed (DOWN)

mrk58e = BasicMarker.Make

mrk58e.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk58e.SetFont(Font.Make("ESRI Geology","Normal"))

mrk58e.SetCharacter(85)

vpm58e = VectorPenMarker.Make(mrk58e)

vpm58e.SetTemplate("041")

vpm58e.SetAltSize(1.6)

vpm58e.SetSize(16)

mrk58f = BasicMarker.Make

mrk58f.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk58f.SetFont(Font.Make("ESRI Geology","Normal"))

mrk58f.SetCharacter(249)

vpm58f = VectorPenMarker.Make(mrk58f)

vpm58f.SetTemplate("11")

vpm58f.SetSize(16)

syl58ef = SymbolList.FromList({vpm58e,vpm58f})

p58ef = CompositeArcInfoPen.Make(syl58ef)

pens.Add(p58ef)

'**2.5.19 Monocline, Synclinal Bend (UP)

mrk59 = BasicMarker.Make

mrk59.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk59.SetFont(Font.Make("ESRI Geology","Normal"))

mrk59.SetCharacter(86)

vpm59 = VectorPenMarker.Make(mrk59)

vpm59.SetTemplate("041")

vpm59.SetAltSize(1.5)

vpm59.SetSize(16)

bln59 = BasicPen.Make

bln59.SetWidth(0.5)

syl59 = SymbolList.FromList({vpm59,bln59})

p59 = CompositeArcInfoPen.Make(syl59)

pens.Add(p59)

'**2.5.19 Monocline, Synclinal Bend Approximately Located(UP)

mrk59a = BasicMarker.Make

mrk59a.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk59a.SetFont(Font.Make("ESRI Geology","Normal"))

mrk59a.SetCharacter(86)

vpm59a = VectorPenMarker.Make(mrk59a)

vpm59a.SetTemplate("041")

vpm59a.SetMarkLayer(-0.81,1.5)

vpm59a.SetSize(16)

mrk59b = BasicMarker.Make

mrk59b.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk59b.SetFont(Font.Make("ESRI Geology","Normal"))

mrk59b.SetCharacter(249)

vpm59b = VectorPenMarker.Make(mrk59b)

vpm59b.SetTemplate("71")

vpm59b.SetSize(16)

syl59ab = SymbolList.FromList({vpm59a,vpm59b})

p59ab = CompositeArcInfoPen.Make(syl59ab)

pens.Add(p59ab)

'**2.5.19 Monocline, Synclinal Bend Inferred(UP)

mrk59c = BasicMarker.Make

mrk59c.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk59c.SetFont(Font.Make("ESRI Geology","Normal"))

mrk59c.SetCharacter(86)

vpm59c = VectorPenMarker.Make(mrk59c)

vpm59c.SetTemplate("041")

vpm59c.SetInterval(0.25006)

vpm59c.SetMarkLayer(-0.01,1.5)

vpm59c.SetSize(16)

mrk59d = BasicMarker.Make

mrk59d.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk59d.SetFont(Font.Make("ESRI Geology","Normal"))

mrk59d.SetCharacter(249)

vpm59d = VectorPenMarker.Make(mrk59d)

vpm59d.SetTemplate("41")

vpm59d.SetSize(16)

syl59cd = SymbolList.FromList({vpm59c,vpm59d})

p59cd = CompositeArcInfoPen.Make(syl59cd)

pens.Add(p59cd)

'**2.5.19 Monocline, Synclinal Bend Concealed(UP)

mrk59e = BasicMarker.Make

mrk59e.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk59e.SetFont(Font.Make("ESRI Geology","Normal"))

mrk59e.SetCharacter(86)

vpm59e = VectorPenMarker.Make(mrk59e)

vpm59e.SetTemplate("041")

vpm59e.SetAltSize(1.5)

vpm59e.SetSize(16)

mrk59f = BasicMarker.Make

mrk59f.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk59f.SetFont(Font.Make("ESRI Geology","Normal"))

mrk59f.SetCharacter(249)

vpm59f = VectorPenMarker.Make(mrk59f)

vpm59f.SetTemplate("11")

vpm59f.SetSize(16)

syl59ef = SymbolList.FromList({vpm59e,vpm59f})

p59ef = CompositeArcInfoPen.Make(syl59ef)

pens.Add(p59ef)

'**2.5.19 Monocline, Synclinal Bend (DOWN)

mrk60 = BasicMarker.Make

mrk60.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk60.SetFont(Font.Make("ESRI Geology","Normal"))

mrk60.SetCharacter(87)

vpm60 = VectorPenMarker.Make(mrk60)

vpm60.SetTemplate("081")

vpm60.SetAltSize(0.2)

vpm60.SetSize(16)

bln60 = BasicPen.Make

bln60.SetWidth(0.5)

syl60 = SymbolList.FromList({vpm60,bln60})

p60 = CompositeArcInfoPen.Make(syl60)

pens.Add(p60)

'**2.5.19 Monocline, Synclinal Bend Approximately Located (DOWN)

mrk60a = BasicMarker.Make

mrk60a.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk60a.SetFont(Font.Make("ESRI Geology","Normal"))

mrk60a.SetCharacter(87)

vpm60a = VectorPenMarker.Make(mrk60a)

vpm60a.SetTemplate("041")

vpm60a.SetMarkLayer(-0.81,0.2)

vpm60a.SetSize(16)

mrk60b = BasicMarker.Make

mrk60b.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk60b.SetFont(Font.Make("ESRI Geology","Normal"))

mrk60b.SetCharacter(249)

vpm60b = VectorPenMarker.Make(mrk60b)

vpm60b.SetTemplate("71")

vpm60b.SetSize(16)

syl60ab = SymbolList.FromList({vpm60a,vpm60b})

p60ab = CompositeArcInfoPen.Make(syl60ab)

pens.Add(p60ab)

'**2.5.19 Monocline, Synclinal Bend Inferred (DOWN)

mrk60c = BasicMarker.Make

mrk60c.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk60c.SetFont(Font.Make("ESRI Geology","Normal"))

mrk60c.SetCharacter(87)

vpm60c = VectorPenMarker.Make(mrk60c)

vpm60c.SetTemplate("041")

vpm60c.SetInterval(0.25006)

vpm60c.SetMarkLayer(-0.01,0.2)

vpm60c.SetSize(16)

mrk60d = BasicMarker.Make

mrk60d.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk60d.SetFont(Font.Make("ESRI Geology","Normal"))

mrk60d.SetCharacter(249)

vpm60d = VectorPenMarker.Make(mrk60d)

vpm60d.SetTemplate("41")

vpm60d.SetSize(16)

syl60cd = SymbolList.FromList({vpm60c,vpm60d})

p60cd = CompositeArcInfoPen.Make(syl60cd)

pens.Add(p60cd)

'**2.5.19 Monocline, Synclinal Bend Concealed (DOWN)

mrk60e = BasicMarker.Make

mrk60e.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk60e.SetFont(Font.Make("ESRI Geology","Normal"))

mrk60e.SetCharacter(87)

vpm60e = VectorPenMarker.Make(mrk60e)

vpm60e.SetTemplate("041")

vpm60e.SetAltSize(0.2)

vpm60e.SetSize(16)

mrk60f = BasicMarker.Make

mrk60f.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk60f.SetFont(Font.Make("ESRI Geology","Normal"))

mrk60f.SetCharacter(249)

vpm60f = VectorPenMarker.Make(mrk60f)

vpm60f.SetTemplate("11")

vpm60f.SetSize(16)

syl60ef = SymbolList.FromList({vpm60e,vpm60f})

p60ef = CompositeArcInfoPen.Make(syl60ef)

pens.Add(p60ef)

'**2.5.25

mrk61 = BasicMarker.Make

mrk61.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk61.SetFont(Font.Make("ESRI Geology","Normal"))

mrk61.SetCharacter(88)

vpm61 = VectorPenMarker.Make(mrk61)

vpm61.SetTemplate("021")

vpm61.SetAltSize(-0.02)

vpm61.SetSize(16)

bln61 = BasicPen.Make

bln61.SetWidth(0.5)

syl61 = SymbolList.FromList({vpm61,bln61})

p61 = CompositeArcInfoPen.Make(syl61)

pens.Add(p61)

mrk61a = BasicMarker.Make

mrk61a.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk61a.SetFont(Font.Make("ESRI Geology","Normal"))

mrk61a.SetCharacter(88)

vpm61a = VectorPenMarker.Make(mrk61a)

vpm61a.SetTemplate("041")

vpm61a.SetAltSize(-0.02)

vpm61a.SetSize(16)

mrk61b = BasicMarker.Make

mrk61b.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk61b.SetFont(Font.Make("ESRI Geology","Normal"))

mrk61b.SetCharacter(249)

vpm61b = VectorPenMarker.Make(mrk61b)

vpm61b.SetTemplate("71")

vpm61b.SetSize(16)

syl61ab = SymbolList.FromList({vpm61a,vpm61b})

p61ab = CompositeArcInfoPen.Make(syl61ab)

pens.Add(p61ab)

mrk61c = BasicMarker.Make

mrk61c.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk61c.SetFont(Font.Make("ESRI Geology","Normal"))

mrk61c.SetCharacter(88)

vpm61c = VectorPenMarker.Make(mrk61c)

vpm61c.SetTemplate("041")

vpm61c.SetAltSize(-0.02)

vpm61c.SetSize(16)

mrk61d = BasicMarker.Make

mrk61d.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk61d.SetFont(Font.Make("ESRI Geology","Normal"))

mrk61d.SetCharacter(249)

vpm61d = VectorPenMarker.Make(mrk61d)

vpm61d.SetTemplate("41")

vpm61d.SetSize(16)

syl61cd = SymbolList.FromList({vpm61c,vpm61d})

p61cd = CompositeArcInfoPen.Make(syl61cd)

pens.Add(p61cd)

mrk61e = BasicMarker.Make

mrk61e.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk61e.SetFont(Font.Make("ESRI Geology","Normal"))

mrk61e.SetCharacter(88)

vpm61e = VectorPenMarker.Make(mrk61e)

vpm61e.SetTemplate("041")

vpm61e.SetAltSize(-0.02)

vpm61e.SetSize(16)

mrk61f = BasicMarker.Make

mrk61f.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk61f.SetFont(Font.Make("ESRI Geology","Normal"))

mrk61f.SetCharacter(249)

vpm61f = VectorPenMarker.Make(mrk61f)

vpm61f.SetTemplate("11")

vpm61f.SetSize(16)

syl61ef = SymbolList.FromList({vpm61e,vpm61f})

p61ef = CompositeArcInfoPen.Make(syl61ef)

pens.Add(p61ef)

mrk62 = BasicMarker.Make

mrk62.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk62.SetFont(Font.Make("ESRI Geology","Normal"))

mrk62.SetCharacter(89)

vpm62 = VectorPenMarker.Make(mrk62)

vpm62.SetTemplate("021")

vpm62.SetAltSize(-0.02)

vpm62.SetSize(16)

bln62 = BasicPen.Make

bln62.SetWidth(0.5)

syl62 = SymbolList.FromList({vpm62,bln62})

p62 = CompositeArcInfoPen.Make(syl62)

pens.Add(p62)

mrk62a = BasicMarker.Make

mrk62a.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk62a.SetFont(Font.Make("ESRI Geology","Normal"))

mrk62a.SetCharacter(89)

vpm62a = VectorPenMarker.Make(mrk62a)

vpm62a.SetTemplate("041")

vpm62a.SetAltSize(-0.02)

vpm62a.SetSize(16)

mrk62b = BasicMarker.Make

mrk62b.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk62b.SetFont(Font.Make("ESRI Geology","Normal"))

mrk62b.SetCharacter(249)

vpm62b = VectorPenMarker.Make(mrk62b)

vpm62b.SetTemplate("71")

vpm62b.SetSize(16)

syl62ab = SymbolList.FromList({vpm62a,vpm62b})

p62ab = CompositeArcInfoPen.Make(syl62ab)

pens.Add(p62ab)

mrk62c = BasicMarker.Make

mrk62c.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk62c.SetFont(Font.Make("ESRI Geology","Normal"))

mrk62c.SetCharacter(89)

vpm62c = VectorPenMarker.Make(mrk62c)

vpm62c.SetTemplate("041")

vpm62c.SetAltSize(-0.02)

vpm62c.SetSize(16)

mrk62d = BasicMarker.Make

mrk62d.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk62d.SetFont(Font.Make("ESRI Geology","Normal"))

mrk62d.SetCharacter(249)

vpm62d = VectorPenMarker.Make(mrk62d)

vpm62d.SetTemplate("41")

vpm62d.SetSize(16)

syl62cd = SymbolList.FromList({vpm62c,vpm62d})

p62cd = CompositeArcInfoPen.Make(syl62cd)

pens.Add(p62cd)

mrk62e = BasicMarker.Make

mrk62e.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk62e.SetFont(Font.Make("ESRI Geology","Normal"))

mrk62e.SetCharacter(89)

vpm62e = VectorPenMarker.Make(mrk62e)

vpm62e.SetTemplate("041")

vpm62e.SetAltSize(-0.02)

vpm62e.SetSize(16)

mrk62f = BasicMarker.Make

mrk62f.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk62f.SetFont(Font.Make("ESRI Geology","Normal"))

mrk62f.SetCharacter(249)

vpm62f = VectorPenMarker.Make(mrk62f)

vpm62f.SetTemplate("11")

vpm62f.SetSize(16)

syl62ef = SymbolList.FromList({vpm62e,vpm62f})

p62ef = CompositeArcInfoPen.Make(syl62ef)

pens.Add(p62ef)

'**2.1.28**

mrk148 = BasicMarker.Make

mrk148.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk148.SetFont(Font.Make("ESRI Cartography","Normal"))

mrk148.SetCharacter(84)

vpm148 = VectorPenMarker.Make(mrk148)

vpm148.SetTemplate("031")

vpm148.SetAltSize(-0.09)

vpm148.SetSize(8)

vpm148.SetColor(Color.GetRed)

bln148 = BasicPen.Make

bln148.SetSize(0.5)

bln148.SetColor(Color.GetRed)

bln148.SetColorLock(true)

syl148 = SymbolList.FromList({vpm148, bln148})

p148 = CompositeArcInfoPen.Make(syl148)

pens.Add(p148)

mrk149 = BasicMarker.Make

mrk149.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk149.SetFont(Font.Make("ESRI Geology","Normal"))

mrk149.SetCharacter(37)

vpm149 = VectorPenMarker.Make(mrk149)

vpm149.SetTemplate("081")

vpm149.SetInterval(0.5)

vpm149.SetAltSize(0)

vpm149.SetSize(20)

vpm149.SetColor(Color.GetRed)

bln149 = BasicPen.Make

bln149.SetSize(0.5)

bln149.SetColor(Color.GetRed)

bln149.SetColorLock(true)

syl149 = SymbolList.FromList({vpm149, bln149})

p149 = CompositeArcInfoPen.Make(syl149)

pens.Add(p149)

'**2.4.1**

mrk150 = BasicMarker.Make

mrk150.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk150.SetFont(Font.Make("ESRI Geometric Symbols","Normal"))

mrk150.SetCharacter(34)

vpm150 = VectorPenMarker.Make(mrk150)

vpm150.SetTemplate("021")

vpm150.SetAltSize(0)

vpm150.SetSize(8)

vpm150.SetColor(Color.GetRed)

bln150 = BasicPen.Make

bln150.SetSize(0.5)

bln150.SetColor(Color.GetRed)

bln150.SetColorLock(true)

syl150 = SymbolList.FromList({vpm150, bln150})

p150 = CompositeArcInfoPen.Make(syl150)

pens.Add(p150)

mrk150a = BasicMarker.Make

mrk150a.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk150a.SetFont(Font.Make("ESRI Geometric Symbols","Normal"))

mrk150a.SetCharacter(34)

vpm150a = VectorPenMarker.Make(mrk150a)

vpm150a.SetTemplate("021")

vpm150a.SetAltSize(0)

vpm150a.SetSize(8)

vpm150a.SetColor(Color.GetRed)

mrk150b = BasicMarker.Make

mrk150b.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk150b.SetFont(Font.Make("ESRI Geology","Normal"))

mrk150b.SetCharacter(249)

vpm150b = VectorPenMarker.Make(mrk150b)

vpm150b.SetTemplate("71")

vpm150b.SetSize(16)

vpm150b.SetColor(Color.GetRed)

syl150ab = SymbolList.FromList({vpm150a, vpm150b})

p150ab = CompositeArcInfoPen.Make(syl150ab)

pens.Add(p150ab)

mrk150c = BasicMarker.Make

mrk150c.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk150c.SetFont(Font.Make("ESRI Geometric Symbols","Normal"))

mrk150c.SetCharacter(34)

vpm150c = VectorPenMarker.Make(mrk150c)

vpm150c.SetTemplate("021")

vpm150c.SetAltSize(0)

vpm150c.SetSize(8)

vpm150c.SetColor(Color.GetRed)

mrk150d = BasicMarker.Make

mrk150d.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk150d.SetFont(Font.Make("ESRI Geology","Normal"))

mrk150d.SetCharacter(249)

vpm150d = VectorPenMarker.Make(mrk150d)

vpm150d.SetTemplate("41")

vpm150d.SetSize(16)

vpm150d.SetColor(Color.GetRed)

syl150cd = SymbolList.FromList({vpm150c, vpm150d})

p150cd = CompositeArcInfoPen.Make(syl150cd)

pens.Add(p150cd)

mrk150e = BasicMarker.Make

mrk150e.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk150e.SetFont(Font.Make("ESRI Geometric Symbols","Normal"))

mrk150e.SetCharacter(34)

vpm150e = VectorPenMarker.Make(mrk150e)

vpm150e.SetTemplate("021")

vpm150e.SetAltSize(0)

vpm150e.SetSize(8)

vpm150e.SetColor(Color.GetRed)

mrk150f = BasicMarker.Make

mrk150f.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk150f.SetFont(Font.Make("ESRI Geology","Normal"))

mrk150f.SetCharacter(249)

vpm150f = VectorPenMarker.Make(mrk150f)

vpm150f.SetTemplate("11")

vpm150f.SetSize(16)

vpm150f.SetColor(Color.GetRed)

syl150ef = SymbolList.FromList({vpm150e, vpm150f})

p150ef = CompositeArcInfoPen.Make(syl150ef)

pens.Add(p150ef)

'**2.17.4

mrk63 = BasicMarker.Make

mrk63.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk63.SetFont(Font.Make("ESRI Geology","Normal"))

mrk63.SetCharacter(244)

vpm63 = VectorPenMarker.Make(mrk63)

vpm63.SetTemplate("11")

vpm63.SetAltSize(0)

vpm63.SetSize(16)

vpm63.SetColor(blue.Clone)

vpm63.SetColorLock(true)

pens.Add(vpm63)

mrk64 = BasicMarker.Make

mrk64.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk64.SetFont(Font.Make("ESRI Geology","Normal"))

mrk64.SetCharacter(245)

vpm64 = VectorPenMarker.Make(mrk64)

vpm64.SetTemplate("11")

vpm64.SetAltSize(0)

vpm64.SetSize(16)

vpm64.SetColor(blue.Clone)

vpm64.SetColorLock(true)

pens.Add(vpm64)

'**2.18.4

mrk156 = BasicMarker.Make

mrk156.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk156.SetFont(Font.Make("ESRI Geometric Symbols","Normal"))

mrk156.SetCharacter(65)

vpm156 = VectorPenMarker.Make(mrk156)

vpm156.SetTemplate("11")

vpm156.SetAltSize(0)

vpm156.SetSize(5)

vpm156.SetColor(blue.Clone)

vpm156.SetColorLock(true)

pens.Add(vpm156)

'**2.18.5

mrk157 = BasicMarker.Make

mrk157.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk157.SetFont(Font.Make("ESRI Geometric Symbols","Normal"))

mrk157.SetCharacter(65)

vpm157 = VectorPenMarker.Make(mrk157)

vpm157.SetTemplate("13")

vpm157.SetMarkLayer(0.5,0)

vpm157.SetAltSize(0)

vpm157.SetSize(5)

vpm157.SetColor(blue.Clone)

vpm157.SetColorLock(true)

mrk157a = BasicMarker.Make

mrk157a.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk157a.SetFont(Font.Make("ESRI Geology","Normal"))

mrk157a.SetCharacter(249)

vpm157a = VectorPenMarker.Make(mrk157a)

vpm157a.SetTemplate("077")

vpm157a.SetAltSize(0)

vpm157a.SetMarkLayer(-2,0)

vpm157a.SetSize(16)

vpm157a.SetColor(blue.Clone)

vpm157a.SetColorLock(true)

mrk157b = BasicMarker.Make

mrk157b.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk157b.SetFont(Font.Make("ESRI Geology","Normal"))

mrk157b.SetCharacter(35)

vpm157b = VectorPenMarker.Make(mrk157b)

vpm157b.SetTemplate("14")

vpm157b.SetInterval(6.2)

vpm157b.SetMarkLayer(22,2.6)

vpm157b.SetSize(20)

vpm157b.SetColor(blue.Clone)

vpm157b.SetColorLock(true)

syl157 = SymbolList.FromList({vpm157, vpm157a, vpm157b})

p157 = CompositeArcInfoPen.Make(syl157)

pens.Add(p157)

mrk158 = BasicMarker.Make

mrk158.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk158.SetFont(Font.Make("ESRI Geometric Symbols","Normal"))

mrk158.SetCharacter(65)

vpm158 = VectorPenMarker.Make(mrk158)

vpm158.SetTemplate("13")

vpm158.SetMarkLayer(0.5,0)

vpm158.SetAltSize(0)

vpm158.SetSize(5)

vpm158.SetColor(blue.Clone)

vpm158.SetColorLock(true)

mrk158a = BasicMarker.Make

mrk158a = BasicMarker.Make

mrk158a.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk158a.SetFont(Font.Make("ESRI Geology","Normal"))

mrk158a.SetCharacter(249)

vpm158a = VectorPenMarker.Make(mrk158a)

vpm158a.SetTemplate("077")

vpm158a.SetAltSize(0)

vpm158a.SetMarkLayer(-2,0)

vpm158a.SetSize(16)

vpm158a.SetColor(blue.Clone)

vpm158a.SetColorLock(true)

mrk158b = BasicMarker.Make

mrk158b = BasicMarker.Make

mrk158b.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk158b.SetFont(Font.Make("ESRI Geology","Normal"))

mrk158b.SetCharacter(35)

vpm158b = VectorPenMarker.Make(mrk158b)

vpm158b.SetTemplate("14")

vpm158b.SetInterval(6.2)

vpm158b.SetMarkLayer(22,-2.8)

vpm158b.SetSize(20)

vpm158b.SetColor(blue.Clone)

vpm158b.SetColorLock(true)

syl158 = SymbolList.FromList({vpm158, vpm158a, vpm158b})

p158 = CompositeArcInfoPen.Make(syl158)

pens.Add(p158)

'**2.20.5

mrk65 = BasicMarker.Make

mrk65.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk65.SetFont(Font.Make("ESRI Geology","Normal"))

mrk65.SetCharacter(244)

vpm65 = VectorPenMarker.Make(mrk65)

vpm65.SetTemplate("021")

vpm65.SetAltSize(1.7)

vpm65.SetSize(16)

vpm65.SetColor(blue.Clone)

bln65 = BasicPen.Make

bln65.SetWidth(0.5)

bln65.SetColor(blue.Clone)

syl65 = SymbolList.FromList({vpm65,bln65})

p65 = CompositeArcInfoPen.Make(syl65)

pens.Add(p65)

mrk66 = BasicMarker.Make

mrk66.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk66.SetFont(Font.Make("ESRI Geology","Normal"))

mrk66.SetCharacter(245)

vpm66 = VectorPenMarker.Make(mrk66)

vpm66.SetTemplate("021")

vpm66.SetAltSize(1.7)

vpm66.SetSize(16)

vpm66.SetColor(blue.Clone)

bln66 = BasicPen.Make

bln66.SetWidth(0.5)

bln66.SetColor(blue.Clone)

syl66 = SymbolList.FromList({vpm66,bln66})

p66 = CompositeArcInfoPen.Make(syl66)

pens.Add(p66)

'**2.22.1

mrk161 = BasicMarker.Make

mrk161.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk161.SetFont(Font.Make("ESRI Geology","Normal"))

mrk161.SetCharacter(249)

vpm161 = VectorPenMarker.Make(mrk161)

vpm161.SetTemplate("11")

vpm161.SetAltSize(2)

vpm161.SetSize(16)

mrk161a = BasicMarker.Make

mrk161a.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk161a.SetFont(Font.Make("ESRI Geology","Normal"))

mrk161a.SetCharacter(249)

vpm161a = VectorPenMarker.Make(mrk161a)

vpm161a.SetTemplate("11")

vpm161a.SetAltSize(-2)

vpm161a.SetSize(16)

bln161 = BasicPen.Make

bln161.SetWidth(0.5)

syl161 = SymbolList.FromList({vpm161,vpm161a,bln161})

p161 = CompositeArcInfoPen.Make(syl161)

pens.Add(p161)

'**2.24.6

mrk162 = BasicMarker.Make

mrk162.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk162.SetFont(Font.Make("ESRI Geology","Normal"))

mrk162.SetCharacter(35)

vpm162 = VectorPenMarker.Make(mrk162)

vpm162.SetTemplate("19")

vpm162.SetInterval(0.5)

vpm162.SetAltSize(9)

vpm162.SetSize(12)

mrk162a = BasicMarker.Make

mrk162a.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk162a.SetFont(Font.Make("ESRI Geology","Normal"))

mrk162a.SetCharacter(35)

vpm162a = VectorPenMarker.Make(mrk162a)

vpm162a.SetTemplate("19")

vpm162a.SetInterval(0.5)

vpm162a.SetAltSize(-9.1)

vpm162a.SetSize(12)

vph162 = VectorPenHollow.Make

vph162.SetSize(6)

vph162.SetAltSize(5.6)

syl162 = SymbolList.FromList({vpm162,vpm162a,vph162})

p162 = CompositeArcInfoPen.Make(syl162)

pens.Add(p162)

'**2.24.7

mrk163 = BasicMarker.Make

mrk163.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk163.SetFont(Font.Make("ESRI Geology","Normal"))

mrk163.SetCharacter(35)

vpm163 = VectorPenMarker.Make(mrk163)

vpm163.SetTemplate("18")

vpm163.SetInterval(0.5)

vpm163.SetAltSize(2.5)

vpm163.SetSize(16)

bln163 = BasicPen.Make

bln163.SetSize(0.6)

syl163 = SymbolList.FromList({vpm163,bln163})

p163 = CompositeArcInfoPen.Make(syl163)

pens.Add(p163)

mrk163a = BasicMarker.Make

mrk163a.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk163a.SetFont(Font.Make("ESRI Geology","Normal"))

mrk163a.SetCharacter(35)

vpm163a = VectorPenMarker.Make(mrk163a)

vpm163a.SetTemplate("18")

vpm163a.SetInterval(0.5)

vpm163a.SetAltSize(-2.6)

vpm163a.SetSize(16)

bln163a = BasicPen.Make

bln163a.SetSize(0.6)

syl163a = SymbolList.FromList({vpm163a,bln163a})

p163a = CompositeArcInfoPen.Make(syl163a)

pens.Add(p163a)

p.SaveToFile(#PALETTE_LIST_ALL,geol)


Geology Symbols Sample Plot

Description: This is a project file containing a layout document that contains graphical representations of the geologic symbols that are in the geology.avp file. This map is for an E sized plotter sheet. We hope you will find it useful.

Requires:  ARC/INFO Line Symbol Support extension is installed and can be loaded from %AVHOME%/ext32 or $AVHOME/ext.

FileName:  %AVHOME%/samples/other/aisym.apr


GeoName Discussion

A GeoName contains the information needed to create a Geocoding Feature Source. Through a GeoName object, a MatchSource (from a matchable theme) is associated with an EventTable containing an Event field (address) and an optional Zone field. (use the MatchSource request HasZone to determine if the MatchSource requires a Zone)

A GeoName is used to create a geocoded theme with the MatchSource request InitGeoTheme.  Use Search, EditMatch or BatchMatch to perform the geocoding. See examples in MatchSource.

Attributes

Output File.   You must specify the name of the shape file that will contain the geocoded dataset.  Shape files have the .shp suffix (xxx.shp).

Match Preferences.   The default Match preferences may be modified and associated with the GeoName.  The geocoded dataset will be created using these match preferences.

Join Field.   The join field may be optionally specified.  It is a field in the matchable theme that is copied to the geocoded theme allowing the possibility to join the matchable theme and geocoded theme on that item.

Display Field.   The display field may be optionally specified.  It is a field in the event table which is displayed in the Geocoding Editor during interactive matching.  Typically, a field containing the customer or business name for an event would be used as the display field.

Offset.   The offset distance from the linear segment where the point representing the location of the event is placed. The distance is specified in map units. The point will be placed on the line if the offset distance is 0. This option is used only when the matchable theme is a line theme with left and right address range attributes. The offset distance is ignored if the theme features are polygons, points, or lines with single address range attributes.

Squeeze.   The distance, given in percentage of the linear segment's length, used to place addresses inward from an intersection. For example, a squeeze factor of 5 indicates that the computed location for an address shifts 2.5 percent distance from each end inward of a street segment defined by its two ending intersections. Use this option to prevent addresses at the end of a block from being placed on top of an intersection.

Alias Table.   An alias table allows you to associate a place name with an address.  For example, the alias General Hospital is the common name for 411 Gaylord Street.  The alias table contains at least two fields:  the first field contains the alias names and the second field contains the addresses.  The fields may have any name.


GetLegend Example

' This example shows how to get aTheme’s legend and then change the color

' of that legend’s symbol.  The legend is assumed not to be a chart legend.

theView = av.GetProject.FindDoc("View1")

theTheme = theView.GetActiveThemes.Get(0)

' Get the theme’s legend

theLegend = theTheme.GetLegend

' Change the symbol’s color

theSymbol = theLegend.GetSymbols.Get(0).SetColor(Color.GetBlue)

' Updating the legend is used to apply your changes just as you would

' in the Legend Editor.

theTheme.UpdateLegend


Gnomonic Projection (Avenue example)
Gnomonic Projection Example

theView = av.GetActiveDoc

' set the parameters of the projection

p = Gnomonic.Make(Rect.MakeNull)

p.SetCentralMeridian(-175)

p.SetReferenceLatitude(-60)

' set Map Units to feet and Distance Units to meters

theView.SetUnits(#UNITS_LINEAR_FEET)

theView.GetDisplay.SetDistanceUnits(#UNITS_LINEAR_METERS)

' apply the projection to the view

theView.SetProjection(p)


Graduated Color Legend Example

' This script changes a single symbol legend into a graduated

' color legend with a Natural Breaks classification.

theView = av.GetProject.FindDoc("View1")

theTheme = theView.GetActiveThemes.Get(0)

theLegend = theTheme.GetLegend

' First, the LegendType must be set

theLegend.SetLegendType(#LEGEND_TYPE_COLOR)

' Now classify the legend.

theLegend.Natural(theTheme,"Value",7)

' Add a normalization by type Field

' But First eliminate a known null value in the normalization field

theLegend.SetNullValue("Modifier",-99)

theLegend.SetNormType(#LEGEND_NORMTYPE_FIELD)

theLegend.SetNormFieldName("Modifier")

' Now Set a colorramp (When you create a legend in Avenue, the initial

' colors are random, so, a ramp must explicitly be set.

theColorRamp = SymbolList.GetPreDefined(#SYMLIST_TYPE_COLORRAMP).Get(0)

theLegend.GetSymbols.RampSavedColors(theColorRamp)

' Update the theme’s legend in the TOC and redraw the theme.

theTheme.UpdateLegend


GraphicLabel Class Discussion

A GraphicLabel object is similar to a GraphicText object in that is also a type of graphic that contains information necessary to draw text on a display. GraphicLabel objects are different than GraphicText objects in that many GraphicLabel objects can reference the same TextSymbol Object. This means that if you change the properties of the TextSymbol object for a GraphicLabel, you do so for all GraphicLabels that share that TextSymbol.

The way GraphicLabels are managed is by a SiblingList, which is just a List object that contains other GraphicLabels that reference the same TextSymbol. You can use the ChangeSets request to move GraphicLabels from one SiblingList to another SiblingList.

GraphicLabels are used by ArcView when you Auto-label and use the Find Best Label Placement option. All your labels are placed in the same sibling list, except when you use the Allow Overlapping Labels option, which causes two sets of GraphicLabels to be made. The first referencing a TextSymbol for non-overlapping labels and the second a TextSymbol that is set to the color of the View's overlapping label color.

Attributes

Alignment.   Alignment is a TextComposerJustEnum. This controls whether text with more than one line is left, right, or center justified.

Angle.   The Angle is the rotation angle in degrees. An angle of 0 is no rotation.  GraphicLabel are rotated about the origin point of its bounding rectangle.

Spacing.   The spacing is the distance between lines of text in points.

Text.    The Text is what is drawn on the display. Text is a String object.

SiblingList.   A list object that contains other GraphicLabels that share the same text symbol.

Symbols.  GraphicLabelobjects are symbolized with a SymbolList. The first element in the SymbolList is a TextSymbol object.

TextSymbol.   TextSymbols control the font, style, and size of text for GraphicLabels.


GraphicLabel Example

'Run this script as an apply event on a tool in a GUI that supports Views

theView = av.GetActiveDoc

thePoint = theView.GetDisplay.ReturnUserPoint

'Make the TextSet list, which is used to contain all lables that

'Share a Particular TextSymbol

txtSet = {}

'Make a TextSymbol object that will be used each time you make a

'GraphicLabel that goes into a specified TextSet.  Do not try

'the coding shortcut of just using TextSymbol.Make as the third

'Argument of the GraphicLabel.MakeWithSym request, since that

'inherently violates the purpose of graphic labels (conserve

'font/symbol resources).

txtSymbol = TextSymbol.Make

'Create the GraphicLabel.  Do NOT the Make request that might

'appear to be inherited from the GraphicText class.  This will

'result in a possibly fatal scenario for ArcView.

gl = GraphicLabel.MakeWithSym("Hello World",thePoint,txtSymbol,txtSet)

'The MakeWithSym request automatically adds gl to txtSet

'Since this is just a simple example, we will not make any other

'graphiclabels, but by making txtSet and txtSymbol global variables

'you could make tools that exclusively created graphiclabels within

'specified textSets.

theView.GetGraphics.Add(gl)

gl.Invalidate


GraphicList Class Discussion

A GraphicList is a list of graphics that are associated with a Display object.  A GraphicList manages the graphics which must be repeatedly drawn on the associated display. Every view and layout document has an associated GraphicList. To get the GraphicList associated with a view or layout use the View or Layout request GetGraphics. Graphics in the view or layout GraphicList are automatically drawn each time the view or layout invalidates. An invalidation is what triggers all or part of a display to be redrawn.

You can create other GraphicList objects and associated them with displays, but you must explicitly draw and redraw them each time the view or layout invalidates.

The order that graphics are entered into a GraphicLIst is also the order that they are drawn in and thus, what determines the front to back relationship among graphics. The first graphic in a graphic list is drawn first and is subsequently displayed behind any other graphics that happen to share all or part of the same display extent.

Since a GraphicList is a subclass of Collection, it can be used in the Avenue 'for each' statement.

Attributes

Display.   The Display where the graphics in a GraphicList will appear when drawn. If you create a GraphicList (using the Make request), you must associate it with a Display - use the SetDisplay request. A GraphicList on a View or Layout automatically associates to that document's display.

Selected.   The GraphicList's list of currently selected graphics.

Extent.    Extent is the smallest rectangle that completely contains all graphics in a GraphicList.

SelectedExtent.   The SelectedExtent is the smallest rectangle that completely contains all graphics that are selected in a GraphicList.


GraphicList Example

' The following are some examples of tasks typically done

' with GraphicLists.

' To get the GraphicList that is automatically associated

' with either a view or layout, use:

theGraphicList = av.GetActiveDoc.GetGraphics

' To Redraw all the Graphics in a GraphicList:

theGraphicList.Invalidate

' To Redraw only the selected Graphics in a GraphicList:

theGraphicList.GetSelected.Invalidate

' To Zoom to the extent of the graphics:

av.GetActiveDoc.GetDisplay.SetExtent(theGraphicList.ReturnExtent)

' To Zoom to the extent of the selected Graphics

av.GetActiveDoc.GetDisplay.SetExtent(theGraphicList.GetSelected.ReturnExtent)


GraphicList Make Example

' This example shows how a GraphicList is used to draw graphics

' onto a View's display

theView = av.GetActiveDoc

gl = GraphicList.Make

gl.SetDisplay(theView.GetDisplay)

' Add some graphics

for each x in 1..25

  g = GraphicShape.Make(x@x)

  gl.Add(g)

end

' Display the contents of gl on the View

gl.Draw

Msgbox.Info("Look at the points","")

' Redraw the view, note that the graphics in gl do not draw now.

theView.Invalidate


GraphicShape Class Discussion

GraphicShapes are graphics that contain information about a geometric shape that can be drawn on a display. GraphicShapes can be displayed in views and layouts. The information about a geometric shape corresponds to a shape object and can be any subclass of ArcView's Shape Class, such as Point, Circle, or Polyline.

Attributes

Shape.   This can be any object of the Shape class.

Bounds.   This the smallest rectangle that completely contains the entire shape of a GraphicShape. The bounds defines the position and extent of a GraphicShape.

Origin.   This is aPoint that is origin point of the bounds.  This is always the lower left point.

Display.   The Display is where the GraphicShape is drawn. If the GraphicShape is an element in a GraphicList, then the Display is automatically the display associated with the GraphicList. If the GraphicShape is not in a GraphicList then you should set the Display with the SetDisplay request.

Symbol.   The appearance of a GraphicShape is defined by its symbol.  Use the GetSymbol and SetSymbol requests from the Graphic Class to change a GraphicShape's symbol.


Graphics OMD Discussion
Displaying Shapes and Graphics

This section discusses ArcView's drawing model, how Graphics and GraphicLists are used in this model, and some useful auxiliary concepts. Familiarize yourself with the end-user interface to Views and Layouts to supplement your understanding of this subject.

A Display encapsulates a coordinate system and knowledge of how to place shapes onto a portion of the physical computer screen. Any kind of drawing that gets done in ArcView ultimately ends up as a sequence of drawing requests sent to some display. A display is also the source of shapes that the user adds interactively. The example scripts below show how to obtain various shapes from the user via a display.

A Graphic is an object which knows how to draw a shape on a Display with a certain symbology. A Graphic also allows the end-user to interactively modify the geometry of a Shape. See the object model in the Shapes section to see the relationship of Shape to Graphic. A GraphicList is a collection of graphics. Each view and layout document owns a single GraphicList (see the object model diagram), the contents of which it draws onto its associated display, whenever the display must be drawn.

When a View's data changes in some way, it must be redrawn to reflect the changes. To do so, the document notifies its GraphicList to draw on its Display. The GraphicList notifies each of its Graphics to draw their Shapes, and each Graphic in turn passes its shape data to the Display along with the Symbol information. The Display renders the symbolized shape data.

This high-level approach to drawing means that you do not have to render shape data onto a display explicitly. High-level drawing means defining a mathematical shape, attaching it to a graphic, and then placing that graphic into the graphic list of a view or layout. ArcView then does the rest.

If you do not want your shapes to be visible on a display persistently (i.e., they disappear on the first redraw of that display), bypass the Graphic and GraphicList objects, and send draw requests directly to the Display. With this low level approach to drawing, you must manage all drawing related data in the script which does the drawing.

Here is an example of high-level drawing. Assume that Layout1 exists and is open. These example scripts must be attached to tools in order to work correctly.

p = av.GetProject.FindDoc("Layout1").GetDisplay.ReturnUserPolygon_
g = GraphicShape.Make(p)
'
' Bind a symbol to this graphic. The graphic will always be
' rendered using this symbol and will ignore any default
'
g.SetSymbol(av.GetSymbolWin.ReturnCurrentSymbol(#SYMBOL_FILL))
av.GetProject.FindDoc("Layout1").GetGraphics.Add(g)

Notice that this shape can now be directly manipulated. It also will be automatically redrawn whenever a part of it becomes exposed.

Here is an example of low-level drawing. You obtain Shape data from the user through the display request ReturnUserPolyLine, but instead of adding the Graphic to the GraphicList, the script explicitly draws it on the display.

d = av.GetProject.FindDoc("Layout1").GetDisplay
p = d.ReturnUserPolyLine 'Get a PolyLine shape from the user
d.BeginClip
d.DrawPolyLine(p, av.GetSymbolWin.ReturnCurrentSymbol(#SYMBOL_PEN))
d.EndClip

The BeginClip request tells the display that drawing is about to commence. The display uses this information to make drawing operations as efficient as possible. The EndClip request always closes a BeginClip request.

In low-level drawing, rendered shapes are erased (either partially or entirely) the next time the display draws.

In the example of high level drawing above, the display doesn't actually change its appearance until the script finishes executing. Think of the display as a file. During execution of a script, the file is open. The script "writes" drawing instructions to that open file. When the script ends, ArcView closes this "file". When you close a normal file its contents are flushed to disk. When a script finishes executing, ArcView flushes drawing instructions from the display to the physical screen. As with files, you can force this flush to occur earlier. That is, you can force shapes to appear on the display while the script executes.

Append the following lines to the high level drawing script and re-run it.

av.GetProject.FindDoc("Layout1").GetDisplay.Flush
MsgBox.Info("You should now see the shape.", "")

You can change the number of drawing instructions in the buffer before they are sent to the physical screen. By buffering a large number of instructions, drawing will appear to be instantaneous, although you will have to wait longer before any drawing begins. By buffering a smaller number of drawing instructions, drawing will start sooner, but will take somewhat longer to finish. A useful application of a large drawing buffer is to visualize data which changes over time. Since drawing is instantaneous, related data sets can be sequentially displayed as one would display a set of slides.

You can distribute the contents of a view's GraphicList among its themes. Each theme owns a GraphicSet object. A GraphicSet is a subset of the graphics contained in the view's GraphicList. Graphics in a GraphicSet display only when the Theme is visible.


GraphicText Class Discussion

GraphicText objects are graphics that contain information necessary to draw text on a display.

Attributes

Alignment.   Alignment is a TextComposerJustEnum. This controls whether text with more than one line is left, right, or center justified.

Angle.   The Angle is the rotation angle in degrees. An angle of 0 is no rotation.  GraphicText is rotated about the origin point of its bounding rectangle.

Spacing.   The spacing is the distance between lines of text in points.

Text.   The Text is what is drawn on the display. Text is a String object.

Symbols.   GraphicText objects are symbolized with a SymbolList. The first element in the SymbolList is a TextSymbol object.  Each GraphicText element contains a unique TextSymbol property which contains a unique font property.  Because the use of fonts is resource intensive, you should minimize the use of them.  There are two ways to do this, first you can use a few GraphicText objects with large strings that contain “nl” statements to wrap lines where you want versus using many GraphicText objects with small strings.  Second you can use GraphicLabels which use font resources more efficiently.

TextSymbol.   TextSymbols control the font, style, and size of text in a GraphicText object.


Hammer-Aitoff Projection (Avenue example)
Hammer-Aitoff Projection Example

theView = av.GetActiveDoc

' set the parameters of the projection

p = Hammer.Make(Rect.MakeXY(-180,-90,180,90))

p.SetCentralMeridian(111.883)

' set Map Units to meters and Distance Units to miles

theView.SetUnits(#UNITS_LINEAR_METERS)

theView.GetDisplay.SetDistanceUnits(#UNITS_LINEAR_MILES)

' apply the projection to the view

theView.SetProjection(p)


ImgCat Discussion

An ImgCat is an Image Data Source based on an Image Catalog. An image catalog is an organized collection of spatially referenced images, that can be accessed as one logical image. An image catalog can be drawn in an image theme with an image legend. An ImgCat can be created from a table of any supported image file on disk. Refer to the online help for images for a list of supported file formats.

Requests on ImgCat are provided to georeference it, or align it with the coordinate system of an existing map. The MapExtent determines where the image is drawn on the map.

An ImgCat can also be clipped so that not all of it needs to be displayed. The ClipExtent determines which portions of the map extent are actually displayed and determines the extent of the image theme.

The set of files displayed in the source browser when browsing for images corresponds to the set of files in the current directory that have extensions that are in a list of supported image extensions.  The user can run the SetChecking request on the Image Catalog class to enable the display of the image catalogs. Note that enabling image catalog checking causes all files in a directory  including any non image files to be opened and checked for a valid image catalog before it appears in the Source Browser.

Attributes

SrcName.   The SrcName describes the location of the data files making up the image catalog.

MapExtent.   The MapExtent is the extent of the entire image in map coordinates. Georeferencing an image changes the map extent.

ClipExtent.   The ClipExtent is the extent of the portion of the image of interest. Areas of the image outside of the ClipExtent will not be drawn. This attribute is set from the Definition panel of the Image Theme Properties dialog box.

NumImages.   NumImages is the number of Images in an image catalog table. The lead image is the first selected image in the image catalog table.

NumBands.   NumBands is the number of bands of data making up the lead image. Each pixel has a value in each band. Gray-scale images have one band. Color images have three bands for red, green, and blue. Images from other sources may have more bands although only three can be displayed at a time.


ImgSrc Discussion

ImgSrc is an ABSTRACT Image Data Source superclass. It defines the behavior of its subclasses through defining its own requests. An ImgSrc is an Image Data Source that can be drawn in an image theme with an image legend. An ImgSrc can be created from any supported image file or image catalog on disk.

The set of files displayed in the source browser when browsing for images corresponds to the set of files in the current directory that have extensions that are in a list of supported image extensions, and the Image catalogs in that directory.

Attributes

SrcName.   The SrcName describes the location of the data files making up the image source.

MapExtent.    The MapExtent is the extent of the entire image in map coordinates. Georeferencing an image changes the map extent.

ClipExtent.   The ClipExtent is the extent of the portion of the image of interest. Areas of the image outside of the ClipExtent will not be drawn. This attribute is set from the Definition panel of the Image Theme Properties dialog box.


ISrc Discussion

An ISrc is an Image Data Source that can be drawn in an image theme with an image legend. An ISrc can be created from any supported image file on disk. Refer to the on- line help for images for a list of supported file formats.

Requests on ISrc are provided to georeference it, or align it with the coordinate system of an existing map. The MapExtent determines where the image is drawn on the map. It can be changed with the MatchRectangles and MatchPoints requests which align parts of the image with parts of the map.

An ISrc can also be clipped so that not all of it needs to be displayed. The ClipExtent determines which portions of the map extent are actually displayed and determines the extent of the image theme.

The set of files displayed in the source browser when browsing for images corresponds to the set of files in the current directory that have extensions that are in a list of supported image extensions. The ReturnExtensions and SetExtensions class requests on ISrc can be used to control this set of extensions. The SetExtensionChecking request can be used to enable or disable extension checking. Note that disabling extension checking causes all files in a directory including any non image files to appear in the Source Browser, and transfers the responsibility of picking image files to the user.

Attributes

SrcName.    The SrcName describes the location of the data files making up the image.

MapExtent.    The MapExtent is the extent of the entire image in map coordinates. Georeferencing an image changes the map extent.

ClipExtent.    The ClipExtent is the extent of the portion of the image of interest. Areas of the image outside of the ClipExtent will not be drawn. This attribute is set with the Definition area of the Image Theme Properties dialog box.

NumColumns.    NumColumns is the number of columns in the image or the number of pixels horizontally across the image.

NumRows.    NumRows is the number of rows in the image or the number of pixels vertically down the image.

NumBands.    NumBands is the number of bands of data making up the image. Each pixel has a value in each band. Grayscale images have one band. Color images have three bands for red, green, and blue. Images from other sources may have more bands although only three can be displayed at a time.


Lambert Conformal Conic Projection (Avenue example)
Lambert Conformal Conic Projection Example

theView = av.GetActiveDoc

r = Rect.MakeXY(35,45,40,60)

' set the parameters of the projection

p = Lambert.Make(r)

p.SetCentralMeridian(35.788)

p.SetReferenceLatitude(0)

p.SetLowerStandardParallel(31.77245)

p.SetUpperStandardParallel(62.111)

p.SetFalseEasting(0)

p.SetFalseNorthing(0)

' set Map Units to feet and Distance Units to meters

theView.SetUnits(#UNITS_LINEAR_FEET)

theView.GetDisplay.SetDistanceUnits(#UNITS_LINEAR_METERS)

' apply the projection to the view

theView.SetProjection(p)


Lambert Equal Area Azimuthal Projection (Avenue example)
Lambert Equal Area Azimuthal Projection Example

theView = av.GetActiveDoc

r = Rect.MakeXY(-122,18,-110,50)

' set the parameters of the projection

p = EqualAreaAzimuthal.Make(r)

p.SetCentralMeridian(-119)

p.SetReferenceLatitude(37.2)

' set Map Units to meters and Distance Units to meters

theView.SetUnits(#UNITS_LINEAR_METERS)

theView.GetDisplay.SetDistanceUnits(#UNITS_LINEAR_METERS)

' apply the projection to the view

theView.SetProjection(p)


LegendGetIndex Example
GetIndex Example

' This is an example of how to use GetIndex to find out what class

' a particular value is classified within

theLegend = aTheme.GetLegend

' Determine the FieldNames using the GetFieldNames request

classFldName = theLegend.GetFieldNames.Get(1)

normFldName  = theLegend.GetFieldNames.Get(0)

cv = Msgbox.Input("Enter value for"++classFldName, "Classification Field", "0")

nv = Msgbox.Input("Enter value for"++normFldName, "Normalization Field", "0")

' Make certain the values can be converted to numbers then do so.

if (cv.IsNumber) then

  c = cv.AsNumber

else

  exit

end

if (nv.IsNumber) then

  n = nv.AsNumber

else

  exit

end

' The first value in the list corresponds to a value for the

' normalization field, and the second value corresponds to a

' value in the classification field.  If there is not a

' normalization field, only one value within the list is required.

classIndex = theLegend.GetIndex({n,c})

Msgbox.Info(classIndex.AsString,"Class Index Result")


Legend Class
Legend Class Description

The legend class determines which symbols will be used to draw each of a theme’s features. Legends are divided into seven basic types which differentiate which requests can be used on a particular instance of a legend object. For instance, it would not make sense to use the QueryBestDensity request on a Single Symbol legend.

The legend also controls some special characteristics of how a theme’s features are displayed. For point themes, a rotation angle field can be assigned to a legend and each feature will be rotated according to its value in the rotation field, independently of any classification that is in place.  For point and line themes, a reference scale can be set, which determines how large symbols will be displayed at a particular scale.

If you update a legend, you must use the request aTheme.UpdateLegend. This is the equivalent of clicking the Apply button on the Legend Editor window.

Attributes

Legend Type.  The type of a legend. There are seven types of legends:  Simple (Single Symbol), Graduated Color, Graduated Symbol, Unique Value, Dot, Chart, and Old, which correspond to pre ArcView 3.0 legends that might be contained in project files or save legend files (.avl).

Classification Type.  The type of classification, used only for Gradated Color  and Graduated Symbol legends.

Classifications.  The classification object associated with a legend, used for Graduated Color, Graduated Symbol, and Unique Value legends.

Normalization Type.  The type of normalization used on a legend. There are three types of normalizations:  none, field, or percent of total.

FieldNames.  A list of strings that correspond to the fieldnames used in a legend. This list will contain classification fields and normalization fields, or all fields used in a chart legend, including size and normalization fields.

Normalization FieldName.  If a legend is normalized by a field, then this is a string that corresponds to that fieldname used to normalize the values of classification fields.

Size FieldName.  For Pie Chart legends, this is a string that corresponds to the fieldname used to control the size of pie charts symbols.

Symbols.  This is a SymbolList that contains symbols that correspond to each class, or field in a chart legend. The last symbol in the Symbol List corresponds to the Null Symbol, regardless of whether the null symbol is displayed. The number of symbols in the SymbolList must be the same as the number of classes in the legend, including the No Data class.

Density.  For Dot legends, this is the value in the density field that each dot symbol represents.

Number of StdDevs.   This is the number of standard deviations per class for legends that are classified using the Standard Deviation Classification.

Null Symbol.  The symbol used to represent features whose values do not fall within any classification value range, or have been explicitly denoted as being null. There is only one null symbol per type of symbol, thus all polygon themes, in all views use the same null symbol.

Null Values.  There are two types of null values.

1) Cells within the data that literally have no value, which ArcView automatically sets to be null.

2) Each Field has a null value property, which can be changed to be equal to any value that is not to be included in legends. There are several conventions that data providers  use, some common ones include -99, -98, -97, or -99999. Only one null value can be explicitly set per field.

Scaled Symbols.  This property sets whether a point or line theme’s features will scale based on a reference scale, when the view document’s scale is changed.

Rotate Symbols.  This property sets whether a point theme’s features are to be rotated by the values contained in a rotation field.

Reference Scale.  The scale at which a legend’s symbols are specified, and then is used as the basis to set the size of those symbols when a view’s scale is changed.

Line Offset.  This property is the distance (In points, 1/72 inch) that the symbols for a line theme will be offset.  If the value is negative, then the features will be offset to the left, and if positive, the features will offset to the right. Left and Right are based on the fnode and tnode relationship in ARC/INFO coverage data sources, and the sequence of points within the list of points in a polyline shape for shapefile data sources.


HasZ (Line)
HasZ

Returns FALSE because aLine does not have Z coordinates.

Syntax

aLine.HasZ

Returns

Boolean


AsLineM (Line)
AsLineM

Returns a LineM by preserving all of the xy coordinates from aLine and setting the measure values to Null Numbers

Syntax

aLine.AsLineM

Returns

LineM


@ (Line)
@

Returns a LineZ by preserving the xy coordinates from aLine and setting both vertex heights to zValue.

Syntax

aLine@zValue

Returns

LineZ


Make a ColumnChart Symbol

' This script makes a ColumnChart symbol.  It assumes that a layout is

' the active document and that there is at least one graphic

' (GraphicShape) in the layout.

l = av.GetProject.FindDoc("Layout1")

g = l.GetGraphics.Get(0)

s = ColumnChartSymbol.Make

BgSym = RasterFill.Make

BgSym.SetStyle(#RASTERFILL_STYLE_SOLID)

BgSym.SetColor(Color.GetCyan)

s.SetBgSym(BgSym)

Sym1 = RasterFill.Make

Sym1.SetStyle(#RASTERFILL_STYLE_SOLID)

Sym1.SetColor(Color.GetGreen)

Sym2 = RasterFill.Make

Sym2.SetStyle(#RASTERFILL_STYLE_SOLID)

Sym2.SetColor(Color.GetRed)

Sym3 = RasterFill.Make

Sym3.SetStyle(#RASTERFILL_STYLE_SOLID)

Sym3.SetColor(Color.GetBlue)

Syms = SymbolList.FromList({Sym1,Sym2,Sym3})

s.SetNumValues(3)

s.SetSymbols(Syms)

s.SetValues({5,10,15})

s.SetColumnWidth(40)

s.SetMinValue(2)

s.SetMaxValue(25)

s.SetMinSize(6)

s.SetMaxSize(60)

g.SetSymbol(s)

g.Invalidate


Make a PieChart Symbol

' This script makes a piechart symbol.  It assumes that a layout is

' the active document and that there is at least one graphic

' (GraphicShape) in the layout.

l = av.GetActiveDoc

g = l.GetGraphics.Get(0)

s = PieChartSymbol.Make

BgSym = RasterFill.Make

BgSym.SetStyle(#RASTERFILL_STYLE_SOLID)

BgSym.SetColor(Color.GetCyan)

s.SetBgSym(BgSym)

Sym1 = RasterFill.Make

Sym1.SetStyle(#RASTERFILL_STYLE_SOLID)

Sym1.SetColor(Color.GetGreen)

Sym2 = RasterFill.Make

Sym2.SetStyle(#RASTERFILL_STYLE_SOLID)

Sym2.SetColor(Color.GetRed)

Sym3 = RasterFill.Make

Sym3.SetStyle(#RASTERFILL_STYLE_SOLID)

Sym3.SetColor(Color.GetBlue)

Syms = SymbolList.FromList({Sym1,Sym2,Sym3})

s.SetNumValues(3)

s.SetSymbols(Syms)

s.SetValues({5,10,15})

s.SetMinSize(144)

g.SetSymbol(s)

g.Invalidate


MatchKey.AllowIntersections Example

'After making a MatchKey, issue the AllowIntersections request on the MatchKey

'for standardizing an intersection address."us_intsc.stn" is the

'standardization rule for US street intersections. ArcView uses an "&" as the

'intersection's delimiter. You can use any other character, symbol or string.

'The GetValue request will show the standardized values of each address

'component. Use the GetNthFields request in MatchKey to get the MatchKey field

'names. Typically, "S1" is the name for the first half's street name and "S2"

'is the name for the second half's street name.

aMatchKey = MatchKey.Make("us_addr.stn")

aMatchKey.AllowIntersections ("us_intsc.stn", "&")

aMatchKey.SetKey("First St & Main Avenue")

MsgBox.Info ((aMatchKey.GetValue ("S1")), "Street Name for the first half")

MsgBox.Info ((aMatchKey.GetValue ("T1")), "Street Type for the first half")

MsgBox.Info ((aMatchKey.GetValue ("S2")), "Street Name for the second half")

MsgBox.Info ((aMatchKey.GetValue ("T2")), "Street Type for the second half")


MatchKey Discussion

The MatchKey class standardizes event strings (addresses) based on the definitions in the standardization process file used to create the MatchKey.  Standardization converts a free-form text string into a fixed-field record.  During standardization, the numbers and words of the free-form text string are converted into tokens and a set of standard abbreviations are substituted for the common words.  Following this, the free-form text is copied into the MatchKey fields.  From Avenue, you can create a MatchKey based upon a standardization process file and then perform standardization on event strings. The results of the standardization can be altered by setting the MatchKey field values. Use the Make request to create a MatchKey. If the address event is a street intersection address, issue the AllowIntersections request on the MatchKey.

Depending on what standardization rule is used, a MatchKey made upon the specified rule may contain different number of fields and names.  The standardization rules reside in $AVHOME/geocode and have a .stn suffix.  For example, "us_addr.stn" is the standardization rule for U.S. general addresses (e.g. "123 N Main Ave") and "us_intsc.stn" is the rule for U.S. intersection addresses (e.g. "Main Ave & 1st St").  A MatchKey built on the "us_addr.stn" standardization rule contains seven fields.  As shown in the table below, the MatchKey fields are defined as two character names. These names cannot be changed but they can be retrieved using the GetNthField request.

MatchKey Fields	Description	MatchKey Field Labels
HN	House Number	HouseNum
PD	Prefix Direction	PreDir
PT	Prefix Type	PreType
SN	Street Name	StreetName
ST	Street Type	StreetType
SD	Suffix Direction	SufDir
ZN	Zone	Zone

Before an address event is matched, the address in the MatchKey is standardized and the values are copied into the MatchKey fields. For example, the standardization result of "123 N Main Avenue" will become

MatchKey Fields	Values
HN	123
PD	N
PT
SN	MAIN
ST	AVE
SD
ZN

The values in the MatchKey fields can be accessed using the GetValue request. If you want to override the values, you can use the SetValue request. The Zone field is special. You need to use the SetZoneKey and GetZoneKey requests to set or get the values of the zone.

ArcView uses the standardized MatchKey to search for a list of potential candidate records and to score each candidate record for matching.  Searching for addresses that match the MatchKey against a MatchSource populates a MatchCase.  In an Avenue script, define the MatchKey first before the MatchCase. See MatchSource Example.

The MatchKey fields are mapped with expanded names called Field Labels.  As shown in the first table, each MatchKey field has a label. The labels are used as the label fields in the StanEditDialog (Edit Standardization dialog box). To learn how to change the labels, see MatchKey.GetFieldLabel Discussion.

Attributes

Key.   The Key is the event string that is to be standardized.

Fields.   Standardization breaks the Key into components defined by the standardization rules.  Each component or field may contain a value which has been parsed from the Key.  You can view and alter the values of each field; this allows you to "correct" errors in standardization.  MatchKey fields are accessed using the aMatchKey.GetNthField request.

Alias Table.   An alias table allows you to associate a place name with an address.  For example, the alias "General Hospital" is the common name for "411 Gaylord Street".  The alias table contains at least two fields: the first field contains the alias names and the second field contains the addresses.  These fields may have any names.


MatchKey Example

'This example shows the function of address standardization using requests in

'MatchKey. This script reads addresses (one per line) in a file (address.txt)

'and standardizes it. After the standardized address is validated (possibly

'altered), the address and standardized values, comma delimited, will be

'written to a file (stanout.txt). You can add the file to ArcView as a table

'and see how addresses are standardized.

aMatchKey = MatchKey.Make( "us_addr.stn" )

addFile = LineFile.Make( "c:\temp\address.txt".AsFileName, #FILE_PERM_READ)

outFile = LineFile.Make("c:\temp\stanout.txt".AsFileName, #FILE_PERM_WRITE)

'write the field names to the file, comma delimited.

  outFields = "Address"

  ' Get the list of fields

  fields = {}  'a list for the Matchkey fields

  labels = {}  'a list for the MatchKey field labels. A label is a long name of the MatchKey field.

  for each i in 0..(aMatchKey.GetNumFields - 1)

    fields.Add( aMatchKey.GetNthField( i ))

    aLabel = aMatchKey.GetFieldLabel(aMatchKey.GetNthField( i ))

    labels.Add( aLabel )

    outFields = outFields ++ " ," ++ aLabel

  end

  outFile.WriteElt(outFields)

'read next address

addr = addFile.ReadElt

  while (addr <> nil)

    aMatchKey.SetKey( addr )

    out=addr.quote

   ' Get standardized values

    values = {}

    for each j in fields

      if (aMatchKey.GetValue (j) = "") then

        values.add (" ")

      else

        values.Add( aMatchKey.GetValue (j))

      end

    end

    ' changes any values in standardization if necessary

    ' displays a dialog box showing the standardization result and allows you to change any value.

    updates = MsgBox.MultiInput( "If correct, hit OK, otherwise edit.",

     "Standardization: "++aMatchKey.GetKey, labels, values )

    ' write the final standardized result to the file

      if (updates.count <> 0) then

      i = 0

      for each k in fields

        aMatchKey.SetValue( k, updates.Get(i))

        out = out++","++aMatchKey.GetValue(aMatchKey.GetNthField(i))

        i = i + 1

      end

      outFile.WriteElt(out)

    end

    'read next address

    addr = addFile.ReadElt

  end

  outFile.close


MatchKey.GetFieldLabel Discussion

Gets the field label of a MatchKey field for aMKeyFieldName.  The field label is an expanded version of the field name. For example, "HouseNum" is the expanded name for the MatchKey field "HN". These labels, if exist, are used as the label fields in the StanEditDialog (Edit Standardization dialog box).  If the field labels or the files storing the labels do not exist, the StanEditDialog will display the actual field name in the label field.

The field labels are stored in a .key file residing in $AVHOME/geocode. For example, "us_addr.key" is the field label file for the "us_addr.stn" rule. The .key file is an ODB file. If you want to change the labels, you can either edit the file using a text editor or write a new ODB file using Avenue. Here is the Avenue script for creating "us_addr.key":

MKey_List = { "ZN",      "Zone",

              "SN",      "StreetName",

              "HN",      "HouseNum",

              "PD",      "PreDir",

              "PT",      "PreType",

              "ST",      "StreetType",

              "SD",      "SufDir" }

' Save the field list to the ODB file.

'

MKey_ODB = ODB.Make("us_addr.key".AsFileName)

MKey_ODB.Add(MKey_List)

MKey_ODB.Commit

Note:  These labels cannot be used to access MatchField fields values.


MatchKey.GetFieldLabel Example

'This example shows you how to get and display the expanded names, i.e., the

'field labels of the MatchKey fields.

aMatchKey = MatchKey.Make( "us_addr.stn" )

'Get the list of fields

labels = {}  'a list for the MatchKey field labels.

for each i in 0..(aMatchKey.GetNumFields - 1)

  aLabel = aMatchKey.GetFieldLabel(aMatchKey.GetNthField( i ))

  labels.Add( aLabel )

end

MsgBox.ListAsString (labels, "MatchKey Field Labels", "US_ADDR.STN")


MatchKey.Make Example

'After making a MatchKey, you can set an address to the key using the SetKey

'request. The GetValue request will show the standardized values of each

'address component. Use the GetNthFields request in MatchKey to get the

'MatchKey field names. Typically, "HN" is a field name for house number and

'"SN" is the name for street name.

aMatchKey = MatchKey.Make("us_addr.stn")

aMatchKey.SetKey("380 New York St")

MsgBox.Info ((aMatchKey.GetValue ("HN")), "House Number")

MsgBox.Info ((aMatchKey.GetValue ("SN")), "Street Name")

MsgBox.Info ((aMatchKey.GetValue ("ST")), "Street Type")


MatchSource.BatchMatch Example

'Here is an example of creating a geocoded theme from Avenue using BatchMatch. The theme "Streets.shp" in "View1" is a matchable theme using US Street with Zone address style.

'Get the match source.

theView = av.GetProject.FindDoc( "View1" )

aMatchSource = theView.FindTheme( "Streets.shp" ).GetMatchSource

' Get the address event table.

addressVTab = av.GetProject.FindDoc( "Customer.dbf" ).GetVTab

addressField = addressVTab.FindField("Address")

zipField = addressVTab.FindField("Zip")    ' this field is required if the address style requires a zone

' Specify the output point shapefile for the geocoding result...

aGeoName = GeoName.Make(aMatchSource, addressVTab, addressField, zipField)

fnOutFile = "c:\temp\match.shp".AsFileName

aGeoName.SetFileName(fnOutFile)

'Initialize the geotheme. For every address record there will be a record in

'the FTab.  These are currently unmatched, i.e., the status is 'U' for

'unmatched records.  We must match an address to populate the shape field and

'toggle the status to 'M' for matched records.

aGeoVTab = aMatchSource.InitGeoTheme(aGeoName)

'Perform the batch mode geocoding

aMatchSource.BatchMatch (aGeoName, aGeoVTab)

' Add the new theme to the view and draw it.

newTheme = Theme.Make(aGeoName)

theView.AddTheme(newTheme)

newTheme.SetVisible(true)


MatchSource Discussion

A MatchSource provides matching services to a Feature Theme. The MatchSource carries the information necessary for locating an event on that associated feature theme.  A Theme is made matchable by setting its match source attribute to the MatchSource object created from the theme through the Theme request SetMatchSource. A theme can also be made matchable using the Geocoding panel from the Theme Properties dialog box.

From the ArcView user interface, a matchable theme may be used for finding the location of an address interactively or for creating geocoded themes. When geocoding from Avenue, you do not need to geocode against the theme. You can geocode directly against the MatchSource object. See MatchSource.Make Example for learning how to create a MatchSource and make a theme matchable.

If you want to geocode addresses from a table, you can create geocoded themes for storing the geocoding results. You can create geocoded themes from Avenue in three different ways: interactive, batch and Avenue-based.  Interactive geocoding is performed using the Geocoding Editor interface.  To do interactive geocoding, issue the request InitGeoTheme followed by the EditMatch request. See MatchSource.EditMatch Example.

Batch geocoding processes all or the selected records in an event table. To do batch geocoding, issue the request InitGeoTheme followed by the BatchMatch request. You don't need to create MatchKey and MatchCase objects for geocoding. See MatchSource.BatchMatch Example.

To do Avenue-based geocoding, use InitGeoTheme to initialize the new theme and find candidates through MatchKey and MatchCase objects. Write the results to the geocoded theme with requests WriteMatch or WriteUnMatch. Always end matching with the EndMatch request. See MatchSource Example.

You can geocode and NOT write the results to a geocoded theme. You can use the ArcView geocoding tools to find address locations and write the locations to a file. In this case, you use the OpenIndex request before you start geocoding instead of InitGeoTheme.  You must end matching with the EndMatch request. See MatchSource.Search Example.

A MatchSource can also be used to find a single address.  Use the SingleMatch request to geocode an address or an address with zone, if  zone is required by the MatchSource.  The SingleMatch request is useful when a single geocoded location is needed; larger matching operations should be done by interacting with the MatchKey and MatchCase objects directly. See MatchSource.SingleMatch Example.

Attributes

MaxScore.   The maximum score a candidate may have for this particular address style.

MaxXScore.   The maximum score a candidate may have for intersection matching.

MFields.   MFields is the list of MatchFields defined by the address style.

XMFields.   XMFields is the list of Intersection MatchFields defined by the address style.

XDelimiter.   The intersection delimiter which defines the left and right halves of an intersection address.

Offset.   The offset distance from the linear segment where the point representing the location of the event is placed. The distance is specified in map units. The point will be placed on the line if the offset distance is 0. This option is used only when the matchable theme is a line theme with left and right address range attributes. The offset distance is ignored if the theme features are polygons, points, or lines with single address range attributes.

Squeeze.   The distance, given in percentage of street length, used to place addresses inward from an intersection. For example, a squeeze factor 5 indicates that the computed location for an address shifts 2.5 percent distance from each end inward of a street segment defined by its two ending intersections. Use this option to prevent addresses at the end of a block from being placed on top of an intersection.

Alias Table.   An alias table allows you to associate a place name with an address.  For example, the alias General Hospital is the common name for 411 Gaylord Street.  The alias table contains at least two fields: the first field contains the alias names and the second field contains the addresses.  The fields may have any name.

Zone.   The name of the MatchKey zone field, if a zone field is present for the AddressStyle.

Intersections.   Intersection has the value TRUE if the AddressStyle defines intersections.


MatchSource.EditMatch Example

'Here is an example of creating a geocoded theme from Avenue using EditMatch. EditMatch will display the Geocoding Editor for you to interactively match each address. The theme "Streets.shp" in "View1" is a matchable theme using US Street with Zone address style.

'Get the match source.

theView = av.GetProject.FindDoc( "View1" )

aMatchSource = theView.FindTheme( "Streets.shp" ).GetMatchSource

' Get the address event table.

addressVTab = av.GetProject.FindDoc( "Customer.dbf" ).GetVTab

addressField = addressVTab.FindField("Address")

zipField = addressVTab.FindField("Zip")    ' this field is required if the address style requires a zone

' Specify the output point shapefile for the geocoding result...

aGeoName = GeoName.Make(aMatchSource, addressVTab, addressField, zipField)

fnOutFile = "c:\temp\match.shp".AsFileName

aGeoName.SetFileName(fnOutFile)

'Initialize the geotheme. For every address record there will be a record in

'the FTab.  These are currently unmatched, i.e., the status is 'U' for

'unmatched records.  We must match an address to populate the shape field and

'toggle the status to 'M' for matched records.

aGeoVTab = aMatchSource.InitGeoTheme(aGeoName)

Open the Geocoding Editor for matching

aMatchSource.EditMatch (aGeoName, aGeoVTab)

' Add the new theme to the view and draw it.

newTheme = Theme.Make(aGeoName)

theView.AddTheme(newTheme)

newTheme.SetVisible(true)


MatchSource Example

'Here is an example of creating a geocoded theme from Avenue. This example

'shows you how to get the MatchSource of a theme and geocode against the

'MatchSource through the MatchKey and MatchCase objects.

The theme "Streets.shp" in "View1" is a matchable theme using US Street with Zone address style.

'Get the match source.

theView = av.GetProject.FindDoc( "View1" )

aMatchSource = theView.FindTheme( "Streets.shp" ).GetMatchSource

' Get the address event table.

addressVTab = av.GetProject.FindDoc( "Customer.dbf" ).GetVTab

addressField = addressVTab.FindField("Address")

zipField = addressVTab.FindField("Zip")    ' this field is required if the address style requires a zone

' Create a match key based on the standardization rules for the match source.

aMatchKey  = MatchKey.Make(aMatchSource.GetStanRules)

aMatchKey.AllowIntersections(aMatchSource.GetXStanRules, aMatchSource.GetXDelimiter)

'Create a new match case.  A match case is comprised of a list of candidate

'records and information describing how well the candidates match the key.

'The MatchCase will be populated with candidates later...

aMatchCase = MatchCase.Make(aMatchSource, aMatchKey)

aMatchCase.AllowIntersections(aMatchSource, aMatchKey)

' Create the match preferences

aMatchPref = MatchPref.Make        ' Use default values.

' Specify the output point shapefile for the geocoding result...

aGeoName = GeoName.Make(aMatchSource, addressVTab, addressField, zipField)

fnOutFile = "c:\temp\match.shp".AsFileName

aGeoName.SetFileName(fnOutFile)

'Initialize the geotheme. For every address record there will be a record in

'the FTab.  These are currently unmatched, i.e., the status is 'U' for

'unmatched records.  We must match an address to populate the shape field and

'toggle the status to 'M' for matched records.

aGeoVTab = aMatchSource.InitGeoTheme(aGeoName)

numRecs = addressVTab.GetNumRecords

numMatched = 0

for each i in addressVTab

  ' Get an address...

  aMatchKey.SetKey(addressVTab.ReturnValueString(addressField, i))

  aMatchKey.SetZoneKey(addressVTab.ReturnValueString(zipField, i))

  ' Find candidates for the address...

  numCand = aMatchSource.Search(aMatchKey, aMatchPref.GetPrefVal(#MATCHPREF_SPELLWEIGHT), aMatchCase)

  ' If there are no candidates, WriteUnMatch and continue to the next addresss.

  if (numCand = 0) then   ' No candidates

    aMatchSource.WriteUnMatch(i, aMatchKey)

  else          ' Have at least one candidate...

    aMatchCase.ScoreCandidates

    bestcand  = aMatchCase.GetBestCand

    candScore = bestcand.GetScore

    minScore = aMatchPref.GetPrefVal(#MATCHPREF_MINMATCHSCORE)

    ' If the min required match score is exceeded - write it!

    ' If the min is not met then the cand is not written and the record

    ' will remain unmatched...

    if (candScore >= minScore) then

      aMatchSource.WriteMatch(i, aMatchKey, bestcand)

      numMatched = numMatched + 1

    else

      aMatchSource.WriteUnMatch(i, aMatchKey)

    end

  end

end

aMatchSource.EndMatch

' Report the results of the geocoding...

MsgBox.Info("Done."++numMatched.asString++"of"++numRecs.asString++"addresses are matched", "Result")

' Add the new theme to the view and draw it.

newTheme = Theme.Make(aGeoName)

theView.AddTheme(newTheme)

newTheme.SetVisible(true)


MatchSource.GetStanRules Example

' Get the MatchSource

aView = av.GetProject.FindDoc( "View1" )

aMatchSource = aView.FindTheme( "Streets.shp" ).GetMatchSource

' Get the standardization rules

aStanRule = aMatchSource.GetStanRules

msgBox.Info (aStanRule, "Standardization Rule")


MatchSource.GetXStanRules Example

' Get the MatchSource

aView = av.GetProject.FindDoc( "View1" )

aMatchSource = aView.FindTheme( "Streets.shp" ).GetMatchSource

' Get the standardization rules

aStanRule = aMatchSource.GetXStanRules

msgBox.Info (aStanRule, "Intersection Standardization Rule")


MatchSource.Make Example

'Here is an example of making a theme matchable. You must ensure that the list

'of fields from the Theme's FTab associate correctly with the MatchFields

'defined in the selected address style. If some address style fields do not

'have corresponding fields in the Theme's FTab, use NIL to hold the place. If

'the MatchField is required, you must provide a field.

' Select the theme that will be made matchable

aTheme = av.GetProject.FindDoc( "View1" ).FindTheme( "Streets.shp" )

' Select an address style. In this example, US Streets with Zone

StyleList = AddressStyle.GetStyles( AddressStyle.GetDefStylesODB )

anAddStyle = AddressStyle.FindStyle("US Streets with Zone")

'Note: If you want to make more than one theme matchable in a loop, you need

'to rerun the FindStyle request for each MatchSource you want to make.

'Specifies the field names for the style. Search for Help on "Address Styles"

'in the on-line help for information about which fields are required. Use NIL

'if the non-required field is not used.

matchThemeFTab = aTheme.GetFTab

flds = {matchThemeFTab.FindField("L_f_add"),

        matchThemeFTab.FindField("L_t_add"),

        matchThemeFTab.FindField("R_f_add"),

        matchThemeFTab.FindField("R_t_add"),

        matchThemeFTab.FindField("Fdpre"),

        NIL,

        matchThemeFTab.FindField("Fname"),

        matchThemeFTab.FindField("Ftype"),

        matchThemeFTab.FindField("Fdsuf"),

        matchThemeFTab.FindField("Zipl"),

        matchThemeFTab.FindField("Zipr")}

' Just do it... Make aTheme matchable

aMatchSource = MatchSource.Make( anAddStyle, aTheme, flds )

aTheme.SetMatchSource( aMatchSource )

' Did it work?

MsgBox.Info( aTheme.IsMatchable.AsString, "Is"++aTheme.GetName++"Matchable" )


MatchSource.Search Example

'Here is an example of finding the locations of addresses in a text file and

'writing the locations to another text file. It does NOT create a geocoded

'theme.

'This example also demonstrates how to use aMatchSource.OpenIndex to start

'geocoding if the process doesn't create a geocoded theme, and how to use

'aMatchSource.Search to search for possible matching candidates.

' Get a matchable theme

theView = av.GetProject.FindDoc( "View1" )

mTheme = theView.FindTheme( "Streets.shp" )

' Set up matching objects

aMatchSource = mTheme.GetMatchSource

aMatchKey = MatchKey.Make("us_addr.stn")

aMatchKey.AllowIntersections( aMatchSource.GetXStanRules, aMatchSource.GetXDelimiter )

aMatchCase = MatchCase.Make( aMatchSource, aMatchKey )

aMatchCase.AllowIntersections( aMatchSource, aMatchKey )

aMatchPref = MatchPref.Make   ' use default preferences

' Open the Match index

aMatchSource.OpenIndex

' Open the address file - one address per line

addrFile = LineFile.Make( "address.txt".AsFileName, #FILE_PERM_READ )

' Open the output file - one address per line

outFile = LineFile.Make( "location.txt".AsFileName, #FILE_PERM_WRITE )

address = addrFile.ReadElt

while ( address <> nil )

' Standardize and match address

  aMatchKey.SetKey( address )

  numCand = aMatchSource.Search( aMatchKey, 80, aMatchCase )

  if (numCand = 0) then

    MsgBox.Info( "No match for"++address, "No Match ")

    address = addrFile.ReadElt

    continue

  end

 ' Find the best candidate

 aMatchCase.ScoreCandidates

 bestCand = aMatchCase.GetBestCand

' Get location and write to the output file

location = aMatchSource.GetPoint( bestCand )

outFile.WriteElt( address++location.AsString )

address = addrFile.ReadElt  ' Next!

end

' Close up

aMatchSource.EndMatch

addrFile.Close

outFile.Close


MatchSource.SetDefAliasTable Example

'This example shows you how to associate a place name alias table with the MatchSource.

alisVTab = av.GetProject.FindDoc("alias.dbf").GetVTab

aMatchSource.SetDefAliasTable (aliasVTab)


MatchSource.SingleMatch Example

'Here is an example of using SingleMatch to locate a single address using the

'default matching preferences.  The returned point is tested to determine if

'the address was matched.

' Get the MatchSource.

aView = av.GetProject.FindDoc( "View1" )

aMatchSource = aView.FindTheme( "Streets.shp" ).GetMatchSource

address = "455 BEVERLY RD NE"

zone = "30309"

aPoint = aMatchSource.SingleMatch(MatchPref.Make, address, zone)

if (aPoint.IsNull) then

  MsgBox.Info("Cannot geocode address: "++address++zone, "Cannot Geocode")

else

  MsgBox.Info("Geocoded location: "++aPoint.AsString, "Geocode OK")

end


Mercator Projection (Avenue example)
Mercator Projection Example

theView = av.GetActiveDoc

' set the parameters of the projection

p = Mercator.Make(Rect.MakeXY(-100,-5,-80,5))

p.SetCentralMeridian(-90.1)

p.SetLatitudeOfTrueScale(3)

' set Map Units to feet and Distance Units to meters

theView.SetUnits(#UNITS_LINEAR_FEET)

theView.GetDisplay.SetDistanceUnits(#UNITS_LINEAR_METERS)

' apply the projection to the view

theView.SetProjection(p)


Miller Cylindrical Projection (Avenue example)
Miller Projection Example

theView = av.GetActiveDoc

' set the parameters of the projection

r = Rect.MakeXY(-180,-90,180,90)

p = Miller.Make(r)

p.SetCentralMeridian(135.97321)

' set Map Units to meters and Distance Units to miles

theView.SetUnits(#UNITS_LINEAR_METERS)

theView.GetDisplay.SetDistanceUnits(#UNITS_LINEAR_MILES)

' apply the projection to the view

theView.SetProjection(p)


Mollweide Projection (Avenue example)
Mollweide Projection Example

theView = av.GetActiveDoc

' set the parameters of the projection

p = Mollweide.Make(Rect.MakeXY(-180,-90,180,90))

p.SetCentralMeridian(175.43241)

' set Map Units to feet and Distance Units to meters

theView.SetUnits(#UNITS_LINEAR_FEET)

theView.GetDisplay.SetDistanceUnits(#UNITS_LINEAR_METERS)

' apply the projection to the view

theView.SetProjection(p)


HasZ (MultiPoint)
HasZ

Returns FALSE because aMultiPoint does not have Z coordinates.

Syntax

aMultiPoint.HasZ

Returns

Boolean


AsMultiPointM (Multipoint)
AsMultiPointM

Returns a MultiPointM by preserving all of the xy coordinates from aMultiPoint and setting the measures to Null Numbers.

Syntax

aMultiPoint.AsMultiPointM

Returns

MultiPointM


@ (Multipoint)
@

Returns a MultipointZ by preserving all xy coordinates from aMultipoint and setting all heights to zValue.

Syntax

aMultipoint&zValue

Returns

MultipointZ


Natural Breaks Example

theView = av.GetProject.FindDoc("View1")

theTheme = theView.GetActiveThemes.Get(0)

theLegend = theTheme.GetLegend

theLegend.SetLegendType(#LEGEND_TYPE_COLOR)

theLegend.Natural(theTheme,"Value",7)

theColorRamp = SymbolList.GetPreDefined(#SYMLIST_TYPE_COLORRAMP).Get(4)

theLegend.GetSymbols.RampSavedColors(theColorRamp)

theTheme.UpdateLegend


New Zealand Projection (Avenue example)
New Zealand Projection Example

theView = av.GetActiveDoc

' set the parameters of the projection

r = Rect.MakeXY(160,-60,179,-30)

p = NewZealand.Make(r)

' set Map Units to meters and Distance Units to kilometers

theView.SetUnits(#UNITS_LINEAR_FEET)

theView.GetDisplay.SetDistanceUnits(#UNITS_LINEAR_KILOMETERS)

' apply the projection to the view

theView.SetProjection(p)


Oblique Mercator Projection (Avenue example)
Oblique Mercator Projection Example

theView = av.GetActiveDoc

' set the parameters of the projection

p = ObliqueMercator.Make(Rect.MakeXY(40,-30,50,-10))

p.SetCentralLongitude(45)

p.SetCentralLatitude(-25)

p.SetAzimuthOfCentralLine(0)

p.SetScale(1.0000)

p.SetFalseNorthing(0)

p.SetFalseEasting(0)

' set Map Units to feet and Distance Units to meters

theView.SetUnits(#UNITS_LINEAR_FEET)

theView.GetDisplay.SetDistanceUnits(#UNITS_LINEAR_METERS)

' apply the projection to the view

theView.SetProjection(p)


Orthographic Projection (Avenue example)
Orthographic Projection Example

theView = av.GetActiveDoc

' set the parameters of the projection

p = Orthographic.Make(theView.ReturnExtent)

p.SetCentralMeridian(125.88)

p.SetReferenceLatitude(0)

' set Map Units to feet and Distance Units to meters

theView.SetUnits(#UNITS_LINEAR_FEET)

theView.GetDisplay.SetDistanceUnits(#UNITS_LINEAR_METERS)

' apply the projection to the view

theView.SetProjection(p)


PieChart Legend Example

' To Create a PieChart Legend, get the legend Object of the active theme.

theView = av.GetActiveDoc

theTheme = theView.GetActiveThemes.Get(0)

theLegend = theTheme.GetLegend

' Decide what fieldNames you want to use and place them in a list.

theFieldNames = {"Field1", "Field2","Field3"}

'Create as many fill symbols as you have fieldNames and place them in a list.

sym1 = RasterFill.Make

sym1.SetStyle(#RASTERFILL_STYLE_SOLID)

sym1.SetColor(Color.GetRed)

sym2 = RasterFill.Make

sym2.SetStyle(#RASTERFILL_STYLE_SOLID)

sym2.SetColor(Color.GetGreen)

sym3 = RasterFill.Make

sym3.SetStyle(#RASTERFILL_STYLE_SOLID)

sym3.SetColor(Color.GetYellow)

theSyms = {sym1, sym2, sym3}

' Make a background fill Symbol

BGsym = RasterFill.Make

BGsym.SetStyle(#RASTERFILL_STYLE_SOLID)

BGsym.SetColor(Color.GetWhite)

' Create the New Legend

theLegend.PieChart(theTheme,theFieldNames,theSyms,BgSym,"Sq_feet")

' To set a size field:

theSym = theLegend.GetSymbol(theLegend.ReturnFieldNames, false)

theSym.SetMinSize(8)

theSym.SetMaxSize(24)

' Redraw the theme using the PieChart legend.

theTheme.UpdateLegend


HasZ (Point)
HasZ

Returns FALSE because aPoint does not have Z coordinates.

Syntax

aPoint.HasZ

Returns

Boolean


& (Point)
&

Returns a PointM by preserving the xy coordinates from aPoint and setting the measure to aMeasure.

Syntax

aPoint&aMeasure

Returns

PointM


@ (Point)
@

Returns a PointZ by preserving xy coordinates from aPoint and setting the height to zValue.

Syntax

aPoint&zValue

Returns

PointZ


HasZ (Polygon)
HasZ

Returns FALSE because aPolygon does not have Z coordinates.

Syntax

aPolygon.HasZ

Returns

Boolean


AsPolygonM (Polygon)
AsPolygonM

Returns a PolygonM by preserving all of the xy coordinates from aPolygon and setting the measure values to Null Numbers.

Syntax

aPolygon.AsPolygonM

Returns

PolygonM


@ (Polygon)
@

Returns a PolygonZ by preserving all xy coordinates from aPolygon and setting all heights to zValue.

Syntax

aPolygon&zValue

Returns

PolygonZ


PolyLineM Example

'This is a simple script that will convert a PolyLine theme to a PolyLineM

'theme. The measures will not be explicitly set and will, therefore, all be

'Null Numbers. You can use the field calculator along with requests such as

'SetMAsLength to add measure values.

'You can add this script to a button in the View as a CLICK script. Only

'the first active theme will be processed. The active theme must be PolyLine.

'Any selected set will be ignored by this script.

'Get the active theme ...

theView = av.GetActiveDoc

theCount = theView.GetActiveThemes.Count

If (theCount = 0) then

  msgbox.info("There is no active theme to process.","No active theme...")

  exit

End

theTheme = theView.GetActiveThemes.Get(0)

theFtab = theTheme.GetFtab

theClassName = theFtab.GetShapeClass.GetClassName.AsString

'Only proceed with the active theme if it is PolyLine ...

If (theClassName = "PolyLine") then

  theFieldList = theFtab.GetFields.Clone

  theShapeField = theFtab.FindField("shape")

  'Create a new shapefile with fields ...

  theNewShapefile = Filedialog.Put("*.shp".AsFilename,"*.shp",

    "Enter new shapefile name for "+theTheme.GetName)

  If (theNewShapefile = nil)  then

    exit

  End

  theNewFtab = Ftab.MakeNew(theNewShapefile,PolyLineM)

  theNewFtab.StartEditingWithRecovery

  'Populate the new shapefile with Fields ..

  theFieldList.RemoveObj(theShapeField) 'ignore the shape field

  theFieldCount = theFieldList.Count - 1

  theNewShapeField = theNewFtab.FindField("shape")

  theNewFieldList = theFieldList.DeepClone

  theNewFtab.AddFields(theNewFieldList)

  'Convert the PolyLines to PolyLineMs and add the measures ...

  For each rec in theFtab

    theShape = theFtab.ReturnValue(theShapeField,rec)

    theShapeM = theShape.AsPolyLineM

    'Get the attributes back ...

    theNewRecnum = theNewFtab.AddRecord

    theNewFtab.SetValue(theNewShapeField,theNewRecnum,theShapeM)

    For each fld in (0..theFieldCount)

      theVal = theFtab.ReturnValue(theFieldList.Get(fld),rec)

      theNewFtab.SetValue(theNewFieldList.Get(fld),theNewRecnum,theVal)

    End

  End 'For each rec...

Else   'If the current theme is not a PolyLine theme ...

  msgbox.info (theTheme.GetName+" is a "+theClassName.AsString+" theme,

        not a PolyLine theme.",  theTheme.GetName+" is not a PolyLine theme")

  exit

End   'If (theClassName = "PolyLine") ...

theNewFtab.StopEditingWithRecovery(true)

'Add the new shapefile to the view if the user wants...

If (MsgBox.YesNo("Add shapefile as theme to the view?",

    "Convert to Shapefile",true)) then

  newFtheme = Ftheme.Make(theNewFtab)

  theView.Addtheme(newFtheme)

  newFtheme.Setvisible(true)

End


HasZ (PolyLine)
HasZ

Returns FALSE because aPolyLine does not have Z coordinates.

Syntax

aPolyLine.HasZ

Returns

Boolean


AsPolyLineM (Polyline)
AsPolyLineM

Returns a PolylineM by preserving all of the xy coordinates from aPolyline and setting the measures to Null Numbers.

Syntax

aPolyline.AsPolyLineM

Returns

PolylineM


@ (Polyline)
@

Returns a PolylineZ by preserving the xy coordinates from aPolyline and setting all vertex z values to the constant zValue.

Syntax

aPolyline@zValue

Returns

PolylineZ


Prj Class (Avenue example)
Prj Class Example

Create a Prj object from the projection settings on a view

1	Open a new script, add the following code to it, then compile it.

' Assume that the new view was the last active document
aView = av.GetActiveDoc
' Store the view’s projection setting in a global variable
_aPrj = aView.GetProjection
MsgBox.Info(“The projection is”++_aPrj.AsString+”.”,
  “View Projection Information”)

2	Open a new view.

3	From the View menu choose Properties.

4	From the View Properties dialog box, press the Projection button.

5	Set the desired projection, then press OK.

6	Press OK on the View Properties dialog box.

7	Click on your script to make it active, then run it. The Prj object is now contained in the global variable _aPrj.

Create a Prj object and use it to set the view’s projection

Write, compile and run this script to set the view’s projection using Avenue.

' Using decimal degree coordinates, create a rectangle around the area

' you are interested in. The data in the view must be in decimal degrees.

' For this example, we will set the view’s projection to the State Plane,

' NAD 1983 setting for Georgia, West.

' This script assumes the view is called “View1”.

aRect = Rect.MakeXY(-85.45,32,83,35) 'a rectangle surrounding Atlanta, Georgia

'aRect = Rect.MakeXY(-180,-90,180,90) 'a rectangle for the entire world

' Creates the projection object

aPrj = TransverseMercator.Make(aRect)

aPrj.SetCentralMeridian(-84.16667)

aPrj.SetReferenceLatitude(30)

aPrj.SetScale(0.9999)

' Enter the False Easting in meters

aPrj.SetFalseEasting(700000)

aPrj.SetFalseNorthing(0)

aPrj.SetSpheroid(#SPHEROID_GRS80)

' Apply the projection to View1

aView = av.GetProject.FindDoc(“View1”)

aView.SetProjection(aPrj)

' Set the units of the projection to feet (the Map units)

aDisp = aView.GetDisplay

aDisp.SetUnits(#UNITS_LINEAR_FEET)

' Set the Distance units to miles

aDisp.SetDistanceUnits(#UNITS_LINEAR_MILES)

aView.Invalidate

' Open Projection Properties from the View Properties dialog box and

' confirm the projection settings. Note that since the view is now

' projected to feet that the False Easting has been converted from

' meters to feet.


Project a Point (Avenue example)
Project a Point Example

theView = av.GetActiveDoc

thePrj = theView.GetProjection

thePoint = Point.Make(-65,7.5)

if (thePrj.ProjectPt(thePoint)) then

  msgbox.info ("The point can be projected.", "Answer")

end


Quantile Example

theView = av.GetProject.FindDoc("View1")

theTheme = theView.GetActiveThemes.Get(0)

theLegend = theTheme.GetLegend

theLegend.SetLegendType(#LEGEND_TYPE_COLOR)

theLegend.Quantile(theTheme,"Value",7)

theColorRamp = SymbolList.GetPreDefined(#SYMLIST_TYPE_COLORRAMP).Get(0)

theLegend.GetSymbols.RampSavedColors(theColorRamp)

theTheme.UpdateLegend


AsRectM (Rect)
AsRectM

Returns a RectM by preserving all of the xy coordinates from aRect and setting the measures to Null Numbers.

Syntax

aRect.AsRectM

Returns

RectM


RefreshPalette Example
Changing a Symbol Palette Example

' This example shows several operations that are commonly done in the

' symbolwindow.

' Required to work with the symbolwin

av.GetSymbolWin.Open

av.GetSymbolWin.SetPanel(#SYMBOLWIN_PANEL_MARKER)

thePalette = av.GetSymbolWindow.GetPalette

' A file containing some custom marker symbols

mymarkers = "c:\temp\markers.avp".AsFileName

' Clear the current marker palette

thePalette.Clear(#PALETTE_LIST_MARKER)

' Load the custom marker symbols

thePalette.LoadFromFile(#PALETTE_LIST_MARKER, mymarkers)

' Make one other marker to add to the marker palette

m1 = Basicmarker.Make

m1.SetStyle(#BASICMARKER_STYLE_PATTERN)

m1.SetFont(Font.Make("ESRI Cartography","normal"))

m1.SetCharacter(45)

m1.SetSize(24)

m1.SetColor(Color.GetBlack)

' Add m1 to the marker palette

thePalette.GetList(#PALETTE_LIST_MARKER).Add(m1)

' Update changes to the palette by refreshing it

' Only use #PALETTE_LIST_ALL if you changed all the palettes

av.GetSymbolwin.RefreshPalette(#PALETTE_LIST_MARKER)


Robinson Projection (Avenue example)
Robinson Projection Example

theView = av.GetActiveDoc

' set the parameters of the projection

p = Robinson.Make(theView.ReturnExtent)

p.SetCentralMeridian(0)

' set Map Units to feet and Distance Units to miles

theView.SetUnits(#UNITS_LINEAR_FEET)

theView.GetDisplay.SetDistanceUnits(#UNITS_LINEAR_MILES)

' apply the projection to the view

theView.SetProjection(p)


Shapes OMD Discussion
Shapes

A shape encapsulates the behavior and data associated with traditional Euclidean geometric figures (points, lines, polygons, etc.). Displaying Shapes and Graphics tells you how to render shapes on a display. This section discusses what a shape is, how to create shapes and add them to a feature table, and how to manipulate shapes.

Below are some examples of creating shapes in Avenue. The '@' binary operator creates a point from an X and a Y value.

aPoint = 1@5 'Make a point with x-coord 1 and y-coord 5
aRect = Rect.Make(0@0, 10@15)   ' origin and extent points
aCircle = Circle.Make(5@5, 3)  ' point and radius
aLine = Line.Make(3@3, 3@10)  ' begin and end points

In ArcView, a polygon is comprised of one or more closed loops. The following example creates one polygon comprised of two squares. Notice that a loop is identified by a list of points.

aPolygon = Polygon.Make({ {0@0, 10@0, 10@10, 0@10},
             {20@0,30@0, 30@10, 20@10} })

A PolyLine is similar to a polygon. It is a collection of lists of points. In fact, the polygon class is a subclass of PolyLine.

Feature Tables

Feature tables (FTabs) are unique because they have a special field named Shape. The Shape field is part of the FTab when it is created. By creating shapes and inserting them into the shape field of an editable feature table, you can define a feature theme through a script. This example creates a point feature theme. There are 10 points. The points fall on the line x = y over the interval [1,10].

anFTab = FTab.MakeNew("newftab".AsFileName, Point)
fld = Field.Make("ID", #FIELD_DECIMAL, 8, 0)
fld.SetVisible(FALSE)
anFTab.AddFields({fld})
shapeField = anFTab.FindField("Shape")
for each i in 1..10
  newRecNum = anFTab.AddRecord
  anFTab.SetValue(shapeField, newRecNum, i@i)
end
v = av.GetProject.FindDoc("View1")
v.AddTheme(FTheme.Make(anFTab))

The following example lets an end-user add a polyline to an editable polyline feature table interactively.  It is a simplified version of the ArcView system script View.PolyLineTool. To test this script, attach it to an Apply event on a new tool in the View document and test on a view with an editable theme.

theView  = av.GetActiveDoc
pline = theView.ReturnUserPolyLine
theFTab = theView.GetEditableTheme.GetFTab
theField = theFTab.FindField("Shape")
rec = theFTab.AddRecord
theFTab.SetValue(theField, rec, pline)
theFTab.GetSelection.ClearAll
theFTab.GetSelection.Set(rec)
theFTab.UpdateSelection


Single Symbol Legend Example

' Get the view, theme, and finally the legend for the theme.

theView = av.GetProject.FindDoc(“View1”)

theTheme = theView.getActiveThemes.Get(0)

theLegend = theTheme.GetLegend

theLegend.SingleSymbol

' Change the legend's color

' by first getting the symbols, which returns a symbollist,

' and then changing color of the first (only) element in

' that list to green.

theLegend.GetSymbols.Get(0).SetColor(Color.GetGreen)

' Update the theme with the changes made to its legend.

' This is analogous to clicking the Apply button.

theTheme.UpdateLegend


Sinusoidal Projection (Avenue example)
Sinusoidal Projection Example

theView = av.GetActiveDoc

' set the parameters of the projection

p = Sinusoid.Make(theView.ReturnExtent)

p.SetCentralMeridian(123.9873)

' set Map Units to feet and Distance Units to meters

theView.SetUnits(#UNITS_LINEAR_FEET)

theView.GetDisplay.SetDistanceUnits(#UNITS_LINEAR_METERS)

' apply the projection to the view

theView.SetProjection(p)


Standard Deviations Example

theView = av.GetProject.FindDoc("View1")

theTheme = theView.GetActiveThemes.Get(0)

theLegend = theTheme.GetLegend

theLegend.SetLegendType(#LEGEND_TYPE_COLOR)

theLegend.StdDev(theTheme,"Value",0.5)

theColorRamp = SymbolList.GetPreDefined(#SYMLIST_TYPE_COLORRAMP).Get(0)

theLegend.GetSymbols.RampSavedColors(theColorRamp)

theTheme.UpdateLegend


Stereographic Projection (Avenue example)
Stereographic Projection Example

theView = av.GetActiveDoc

r = Rect.MakeXY(-180,-90,180,90)

' set the parameters of the projection

p = Stereographic.Make(r)

p.SetCentralMeridian(-23.9628)

p.SetReferenceLatitude(19)

' set Map Units to meters and Distance Units to miles

theView.SetUnits(#UNITS_LINEAR_METERS)

theView.GetDisplay.SetDistanceUnits(#UNITS_LINEAR_MILES)

' apply the projection to the view

theView.SetProjection(p)


Symbols OMD Discussion
Symbols

A symbol is the graphic symbology used to draw features and graphics on the screen. The generic ArcView class supporting symbols is Symbol. Every ArcView symbol exists as a subclass of the Symbol class. The four subclasses of Symbol are:

Fill - Used for filling rectangles, circles, polygons, etc.
Pen  - Used for drawing lines.
Marker - Used for drawing points.
TextSymbol - Used for drawing text.
ChartSymbol - Used for drawing a chart on the display

The Symbol subclasses may also have subclasses. These subclasses support the different kinds of fill, pen, marker, or text symbols you can create or use. You can change the color of symbols or their outline, size, and other properties. Various styles are also be supported which distinguish symbols further. For example, VectorFill is a subclass of Fill, and supports different styles of vector fills such as dots, hatches, and crosshatches, among others. Styles are specified as enumerations.

Fill Subclasses

RasterFill - A RasterFill uses a raster template for polygon filling. You can create your own template and use it for a RasterFill. RasterFill supports the following styles:

RASTERFILL_STYLE_EMPTY
RASTERFILL_STYLE_SOLID
RASTERFILL_STYLE_STIPPLE
RASTERFILL_STYLE_OPAQUESTIPPLE

VectorFill - A VectorFill uses pen strokes to fill a polygon. Although this is slower than working with raster fills, it may provide more satisfactory results when creating output for pen plotters. You can specify the X and Y offsets and separations. VectorFill supports the following styles:

VECTORFILL_STYLE_CROSSHATCH
VECTORFILL_STYLE_DOT
VECTORFILL_STYLE_HATCH
VECTORFILL_STYLE_RANDOMDOT
VECTORFILL_STYLE_RECTANGLE

CompositeFill - Defines a layered fill symbol from a list of Fill symbols.

Pen Subclasses

BasicPen - A BasicPen is used to draw solid, dashed or dotted lines on the screen. The dots and dashes are controlled through a pattern.

VectorPen - VectorPen is an abstract class whose subclasses provide support for various kinds of pen styles. The following VectorPen subclasses are implemented:

VectorPenDiamond - Line symbols using diamonds.
VectorPenDot   - Dotted line symbol.
VectorPenHollow - Hollow line symbol.
VectorPenHash  - Hashed line symbol.
VectorPenScallop - Scalloped line symbol.
VectorPenScrub  - Scrub line symbol.
VectorPenSlant  - Slanted line symbol.
VectorPenZigZag - Zigzag line symbol.

CompositePen - Defines a layered line symbol from a list of Pen symbols.

Marker Subclasses

BasicMarker - Provides support for the specification of a non-layered marker. The marker may use an icon or a pattern. Use one of the following styles:

BASICMARKER_STYLE_ICON
BASICMARKER_STYLE_OPAQUESTIPPLE
BASICMARKER_STYLE_PATTERN
BASICMARKER_STYLE_STIPPLE

CompositeMarker - Defines a layered marker symbol from a list of Marker symbols.

TextSymbol

A TextSymbol is used to draw text on the screen. The TextSymbol uses a size and a font. The font for the TextSymbol can be the default system font (Helvetica for UNIX, Arial for Windows), one of 12 standard fonts available on any platform, or a font created from the available font families and style names. Refer to the documentation for the Font class for more information.

ChartSymbol

A ChartSymbol is graphic symbology used to draw a chart on the screen. There are pie and column chart symbols. ChartSymbols do not scale when in a view document, but do scale in layout documents.

Creating new Symbols

You can create a new Symbol by using Symbol.Make or using Make with one of the Symbol subclasses. When you use Symbol.Make you specify the kind of symbol to create (fill, pen, marker, text) with an enumeration. Only one of the kinds of symbols these Symbol subclasses support can be made directly from the Symbol class, other kinds of symbols must be made via one of the Symbol subclasses:

' create a BasicPen symbol.
aSym = Symbol.Make(#SYMBOL_PEN)

' create a BasicMarker symbol of the
' style #BASICMARKER_STYLE_PATTERN.
aSym = Symbol.Make(#SYMBOL_MARKER)

' create a RasterFill symbol of the style
' #RASTERFILL_STYLE_SOLID.
aSym = Symbol.Make(#SYMBOL_FILL)

' create a TextSymbol using the default font.
aSym = Symbol.Make(#SYMBOL_TEXT)

Once you create a Symbol you can specify colors and other properties appropriate for that particular kind of symbol.

You can create specific kinds of symbols by working with the appropriate Symbol subclass. For example, if you want to create a fill symbol that has yellow hatches with a red outline you work directly with the VectorFill class:

aSym = VectorFill.Make
aSym.SetStyle(#VECTORFILL_STYLE_HATCH)
aSym.SetColor(Color.GetYellow)
aSym.SetOLColor(Color.GetRed)

The Symbol Palette

The SymbolWin class provides support for the selection of symbols from a Symbol Palette. You can choose symbol patterns, styles, and colors by choosing from the displayed list box. The symbol specified in the Symbol Palette becomes the default symbol when you create new pen, marker, fill, and text symbols using Symbol.Make. You can return the current symbol for any kind of symbol using aSymbolWin.ReturnCurrentSymbol. The Palette class contains lists of symbols; one list for each symbol type. These lists of symbols are contained in SymbolList objects.


Symbol Class Example

' Use Symbol.Make to create a new Symbol or use Make for the desired

' Symbol subclass, for example BasicMarker.Make.  When you use

' Symbol.Make you specify the kind of symbols to create (fill, pen,

' marker, text) with an enumeration.  Only one of the kinds of symbols

' these Symbol subclasses support can be made directly from the Symbol

' class, other varieties of symbols must be made via one of the Symbol

' subclasses.

' Create a BasicPen symbol

aPen = Symbol.Make(#SYMBOL_PEN)

' Create a BasicMarker symbols of style #BASICMARKER_STYLE_PATTERN

aMrk = Symbol.Make(#SYMBOL_MARKER)

' Create a RasterFill symbol of style #RASTERFILL_STYLE_SOLID

aFill = Symbol.Make(#SYMBOL_FILL)

' Create a TextSymbol using the default font

aTxtSym = Symbol.Make(#SYMBOL_TEXT)

' To create other kinds of symbols you must work with the desired subclass

' of symbol.  For example, to create a yellow hatched fill Symbol with a

' green background and red outline, use the subclass VectorFill.

aVFill = VectorFill.Make

aVFill.SetStyle(#VECTORFILL_STYLE_HATCH)

aVFill.SetColor(Color.GetYellow)

aVFill.SetBgColor(Color.GetGreen)

aVFill.SetOLColor(Color.GetRed)


Theme Discussion

Theme is the abstract base class for Feature Themes and Image Themes. A Theme is a collection of features drawn on a view. A Theme has an associated legend that defines the symbolization of the features. A theme may have associated graphics; these graphics are visible only when the theme is visible.

Attributes

ObjectTag.    The object tag is any programmer specified object. The object tag allows the Avenue developer to associate another object with the theme.

Active.    Active determines whether the Theme is used for various operations on the View. If a theme is active, it appears in a "raised box" in the TOC.

Comments.    Comments are arbitrary text associated with the Theme.

Extent.    The Extent is a rectangle surrounding all features in the Theme.

Graphics.    A Theme has a list of associated graphics. These graphic objects MUST be in the View's GraphicList, but can also be tied to one or more Themes in the View by their inclusion on a Theme's graphic list. The Theme's graphics adopt the Theme's visibility.

Legend.    A Legend is associated with each Theme in a View. The Legend can be made "hidden" on the Table of Contents of the view.

Locked.    Locked determines whether the user can change the theme using the Theme Properties dialog box or not.

Password.    The Password is the password the user must type to "unlock" the theme.

SuffixUsed.    SuffixUsed determines whether the phrase "by" and the classified field is added to the end of the theme name in the table of contents. For example, a theme called Tract which has been classified on the field Income will be renamed "Tract by Income".

Threshold.    The Threshold defines the minimum and maximum scales at which the Theme is drawn.

Visible.    Visible determines whether the theme is drawn if within its scale threshold. A theme may be visible but out of its scale threshold and therefore still not drawn.

Extensions.    The list of extension objects for the theme. An extension object stores a set of properties for the theme that apply only in the context of a specific extension.


Theme Example

Here is an example of creating a new theme and adding it to a View. See SrcName for other examples of specifying data sources.

theView = av.GetActiveDoc

' identify the data and create the new theme

'

theSrcName = SrcName.Make( "C:\data\world polygon" )

if (theSrcName = nil) then

  msgbox.Error( "Invalid SrcName", "")

  exit

end

theTheme = Theme.Make( theSrcName )

' make the theme visible and add it to a view

'

theTheme.SetVisible( true )

theView.AddTheme( theTheme )


Transportation Palette Make Example

'**************************************************

'* Transportation Palette Creator                 *

'*                                                *

'* The purpose of this script is to create a new  *

'* pen palette for the transp.avp file that       *

'* supports a full complement of railroad symbols.*

'**************************************************

transp = "$AVHOME/symbols/transp.avp".AsFileName

p = Palette.Make

p.LoadFromFile(#PALETTE_LIST_MARKER,transp)

pens = p.GetList(#PALETTE_LIST_PEN)

'**Railroad 1***

mrk0 = BasicMarker.Make

mrk0.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk0.SetFont(Font.Make("ESRI Geology","Normal"))

mrk0.SetCharacter(37)

vpm0 = VectorPenMarker.Make(mrk0)

vpm0.SetTemplate("041")

vpm0.SetInterval(8)

vpm0.SetAltSize(0)

vpm0.SetSize(32)

bln0 = BasicPen.Make

bln0.SetWidth(0.5)

syl0 = SymbolList.FromList({vpm0,bln0})

p0 = CompositeArcInfoPen.Make(syl0)

pens.Add(p0)

'**Railroad 2***

mrk1 = BasicMarker.Make

mrk1.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk1.SetFont(Font.Make("ESRI Geology","Normal"))

mrk1.SetCharacter(35)

vpm1 = VectorPenMarker.Make(mrk1)

vpm1.SetTemplate("0212")

vpm1.SetInterval(8)

vpm1.SetAltSize(2.8)

vpm1.SetSize(32)

mrk1a = BasicMarker.Make

mrk1a.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk1a.SetFont(Font.Make("ESRI Geology","Normal"))

mrk1a.SetCharacter(35)

vpm1a = VectorPenMarker.Make(mrk1a)

vpm1a.SetTemplate("15")

vpm1a.SetInterval(8)

vpm1a.SetAltSize(-3)

vpm1a.SetSize(32)

bln1 = BasicPen.Make

bln1.SetWidth(0.5)

syl1 = SymbolList.FromList({vpm1,vpm1a,bln1})

p1 = CompositeArcInfoPen.Make(syl1)

pens.Add(p1)

'**Railroad 3***

mrk2 = BasicMarker.Make

mrk2.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk2.SetFont(Font.Make("ESRI Geology","Normal"))

mrk2.SetCharacter(37)

vpm2 = VectorPenMarker.Make(mrk2)

vpm2.SetTemplate("041")

vpm2.SetInterval(8)

vpm2.SetAltSize(0)

vpm2.SetSize(32)

vph2 = VectorPenHollow.Make

vph2.SetSize(3)

vph2.SetAltSize(2)

syl2 = SymbolList.FromList({vpm2,vph2})

p2 = CompositeArcInfoPen.Make(syl2)

pens.Add(p2)

'**Railroad 4***

mrk3 = BasicMarker.Make

mrk3.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk3.SetFont(Font.Make("ESRI Geology","Normal"))

mrk3.SetCharacter(35)

vpm3 = VectorPenMarker.Make(mrk3)

vpm3.SetTemplate("0212")

vpm3.SetInterval(8)

vpm3.SetAltSize(2.4)

vpm3.SetSize(32)

mrk3a = BasicMarker.Make

mrk3a.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk3a.SetFont(Font.Make("ESRI Geology","Normal"))

mrk3a.SetCharacter(35)

vpm3a = VectorPenMarker.Make(mrk3a)

vpm3a.SetTemplate("15")

vpm3a.SetInterval(8)

vpm3a.SetAltSize(-3)

vpm3a.SetSize(32)

vph3 = VectorPenHollow.Make

vph3.SetSize(3.75)

vph3.SetAltSize(2.75)

syl3 = SymbolList.FromList({vpm3,vpm3a,vph3})

p3 = CompositeArcInfoPen.Make(syl3)

pens.Add(p3)

'**Railroad 5***

mrk4 = BasicMarker.Make

mrk4.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk4.SetFont(Font.Make("ESRI Geology","Normal"))

mrk4.SetCharacter(35)

vpm4 = VectorPenMarker.Make(mrk4)

vpm4.SetTemplate("0313")

vpm4.SetInterval(8)

vpm4.SetAltSize(6.7)

vpm4.SetSize(16)

mrk4a = BasicMarker.Make

mrk4a.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk4a.SetFont(Font.Make("ESRI Geology","Normal"))

mrk4a.SetCharacter(35)

vpm4a = VectorPenMarker.Make(mrk4a)

vpm4a.SetTemplate("17")

vpm4a.SetInterval(8)

vpm4a.SetAltSize(-7.7)

vpm4a.SetSize(16)

vph4 = VectorPenHollow.Make

vph4.SetSize(3)

vph4.SetAltSize(2.4)

syl4 = SymbolList.FromList({vpm4,vpm4a,vph4})

p4 = CompositeArcInfoPen.Make(syl4)

pens.Add(p4)

'**Railroad 6***

mrk5 = BasicMarker.Make

mrk5.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk5.SetFont(Font.Make("ESRI Geology","Normal"))

mrk5.SetCharacter(35)

vpm5 = VectorPenMarker.Make(mrk5)

vpm5.SetTemplate("17")

vpm5.SetInterval(8)

vpm5.SetAltSize(6.7)

vpm5.SetSize(16)

mrk5a = BasicMarker.Make

mrk5a.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk5a.SetFont(Font.Make("ESRI Geology","Normal"))

mrk5a.SetCharacter(35)

vpm5a = VectorPenMarker.Make(mrk5a)

vpm5a.SetTemplate("17")

vpm5a.SetInterval(8)

vpm5a.SetAltSize(-7.7)

vpm5a.SetSize(16)

vph5 = VectorPenHollow.Make

vph5.SetSize(3)

vph5.SetAltSize(2.4)

syl5 = SymbolList.FromList({vpm5,vpm5a,vph5})

p5 = CompositeArcInfoPen.Make(syl5)

pens.Add(p5)

'**Railroad 7***

mrk6 = BasicMarker.Make

mrk6.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk6.SetFont(Font.Make("ESRI Geology","Normal"))

mrk6.SetCharacter(35)

vpm6 = VectorPenMarker.Make(mrk6)

vpm6.SetTemplate("0424")

vpm6.SetInterval(8)

vpm6.SetAltSize(2.8)

vpm6.SetSize(32)

mrk6a = BasicMarker.Make

mrk6a.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk6a.SetFont(Font.Make("ESRI Geology","Normal"))

mrk6a.SetCharacter(35)

vpm6a = VectorPenMarker.Make(mrk6a)

vpm6a.SetTemplate("29")

vpm6a.SetInterval(8)

vpm6a.SetAltSize(-3)

vpm6a.SetSize(32)

bln6 = BasicPen.Make

bln6.SetWidth(0.5)

syl6 = SymbolList.FromList({vpm6,vpm6a,bln6})

p6 = CompositeArcInfoPen.Make(syl6)

pens.Add(p6)

'**Railroad 8***

mrk7 = BasicMarker.Make

mrk7.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk7.SetFont(Font.Make("ESRI Geology","Normal"))

mrk7.SetCharacter(118)

vpm7 = VectorPenMarker.Make(mrk7)

vpm7.SetInterval(0.2)

vpm7.SetAltSize(0)

vpm7.SetSize(32)

pens.Add(vpm7)

'**Railroad 9***

mrk8 = BasicMarker.Make

mrk8.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk8.SetFont(Font.Make("ESRI Geology","Normal"))

mrk8.SetCharacter(118)

vpm8 = VectorPenMarker.Make(mrk8)

vpm8.SetTemplate("21")

vpm8.SetInterval(-0.4)

vpm8.SetAltSize(0)

vpm8.SetSize(32)

pens.Add(vpm8)

p.SaveToFile(#PALETTE_LIST_ALL,transp)


Transverse Mercator Projection (Avenue example)
Transverse Mercator Projection Example

theView = av.GetActiveDoc

' set the parameters of the projection

p = TransverseMercator.Make(theView.ReturnExtent)

p.SetCentralMeridian(-117)

p.SetReferenceLatitude(0)

p.SetScale(0.9996)

p.SetFalseEasting(500000)

p.SetFalseNorthing(0)

' set Map Units to feet and Distance Units to meters

theView.SetUnits(#UNITS_LINEAR_FEET)

theView.GetDisplay.SetDistanceUnits(#UNITS_LINEAR_METERS)

' apply the projection to the view

theView.SetProjection(p)


Unique Value Legend Example

' This script creates a Unique Values Legend and symbolizes the classes.

theView = av.GetProject.FindDoc("View1")

theTheme = theView.GetActiveThemes.Get(0)

theLegend = theTheme.GetLegend

' First Set the LegendType

theLegend.SetLegendType(#LEGEND_TYPE_UNIQUE)

' Make the Unique Legend

theLegend.Unique(theTheme,"Style")

' Avoid using an unwanted value, by making it null

theLegend.SetNullValue("Style","long")

' Load and Set the Color Scheme

theColorSchemes = SymbolList.GetPreDefined(#SYMLIST_TYPE_COLORSCHEME)

for each scheme in theColorSchemes

  if (scheme.GetName = "Cool Tones") then

    theColorScheme = scheme

  end

end

theLegend.GetSymbols.RandomSavedSymbols(theColorScheme)

' Change the TOC and redraw the theme.

theTheme.UpdateLegend


Unproject a Point (Avenue example)
Unproject a Point  Example

theView = av.GetActiveDoc

thePrj = theView.GetProjection

thePoint = Point.Make(-65,7.5)

if (thePrj.UnProjectPt(thePoint)) then

  msgbox.info ("The point can be unprojected.", "Answer")

end


VectorPenMarker Example

'****************************************

'* VectorPenMarker Example Script       *

'*                                      *

'* Creates a VectorPenMarker symbol     *

'* and a new palette file for it so you *

'* can use it in the Symbol Window.     *

'****************************************

'** Make a New Palette and get its Pen List

pal = Palette.Make

pens = pal.GetList(#PALETTE_LIST_PEN)

'** Make a new VectorPenMarker

mrk = BasicMarker.Make

mrk.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk.SetFont(Font.Make("ESRI Geology","Normal"))

mrk.SetCharacter(34)

vpm = VectorPenMarker.Make(mrk)

'** Set the Offset of the line so that when

'** it draws, it will properly position the

'** marker symbol with respect to the geographic

'** position of the feature.

vpm.SetAltSize(-0.09)

'** Set the Interval to include an additional

'** distance so we can put a lot of space

'** between each marker symbol.

vpm.SetInterval(8)

'** Set theTemplate of the line so that it

'** has the proper draw and skip sequence

'** This example skips 8 intervals and then

'** draws one.

vpm.SetTemplate("081")

'** Set the overall width of the symbol.

vpm.SetSize(24)

'** Add it to the Pen List of the new palette

pens.Add(vpm)

'** Write the new palette out to the file system for later use

mypal = "$AVHOME/symbols/myLine.avp".AsFileName

pal.SaveToFile(#PALETTE_LIST_ALL,mypal)


VectorPenVertexMarker Example

'*********************************************

'* VectorPenVertexMarker Example Script      *

'*                                           *

'* Creates two VectorPenVertexMarker symbols *

'* and a new palette file for it so you can  *

'* use them in the Symbol Window.            *

'*********************************************

'** Make a New Palette and get its Pen List

pal = Palette.Make

pens = pal.GetList(#PALETTE_LIST_PEN)

'** Make a new VectorPenVertexMarker

mrk = BasicMarker.Make

mrk.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk.SetFont(Font.Make("ESRI Geometric Symbols","Normal"))

mrk.SetCharacter(37)

vpvm = VectorPenVertexMarker.Make(mrk)

'** Set the overall size of the symbol.

vpvm.SetSize(8)

'** Add it to the Pen List of the new palette

pens.Add(vpvm)

'** Now let's make a more complicated symbol.

'** This will have a wide red basicPen on the

'** bottom, then a black vectorPenHollow will

'** come next.  Then two vectorPenVertexMarkers

'** will complete the symbol

'** Make the BasicPen

bln1 = BasicPen.Make

bln1.SetColor(Color.GetRed)

bln1.SetColorLock(true)

bln1.SetSize(5)

'** Make the VectorPenHollow

vph1 = VectorPenHollow.Make

vph1.SetSize(5)

vph1.SetAltSize(4)

vph1.SetColor(Color.GetBlack)

vph1.SetColorLock(true)

'** Make the first Marker and VectorPenVertexMarker

'** This one will be a solid yellow square

mrk1 = BasicMarker.Make

mrk1.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk1.SetFont(Font.Make("ESRI Geometric Symbols","Normal"))

mrk1.SetCharacter(37)

mrk1.SetColor(Color.GetYellow)

mrk1.SetColorLock(true)

vpv1 = VectorPenVertexMarker.Make(mrk1)

vpv1.SetSize(7)

'** Make the first Marker and VectorPenVertexMarker

'** This one will be a hollow black square

mrk2 = BasicMarker.Make

mrk2.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk2.SetFont(Font.Make("ESRI Geometric Symbols","Normal"))

mrk2.SetCharacter(67)

mrk2.SetColor(Color.GetBlack)

mrk2.SetColorLock(true)

vpv2 = VectorPenVertexMarker.make(mrk2)

vpv2.SetSize(7)

'** Make a CompositeArcInfoPen which contains

'** each of the symbols we just made.

aSymList = SymbolList.FromList({bln1,vph1,vpv1,vpv2})

aCAIP = CompositeArcInfoPen.Make(aSymList)

'** Add it to the Pen List of the new palette

pens.Add(aCAIP)

'** Write the new palette out to the file system for later use

mypal = "$AVHOME/symbols/myLine.avp".AsFileName

pal.SaveToFile(#PALETTE_LIST_ALL,mypal)


Vertical Near Side Projection (Avenue example)
Vertical Near Side Projection Example

theView = av.GetActiveDoc

r = Rect.MakeXY(-180,-90,180,90)

‘ set the parameters of the projection

p = Nearside.Make(r)

p.SetCentralMeridian(27.43218)

p.SetReferenceLatitude(-21.3419)

p.SetHeight(25000000)

‘ set Map Units to feet and Distance Units to meters

theView.SetUnits(#UNITS_LINEAR_FEET)

theView.GetDisplay.SetDistanceUnits(#UNITS_LINEAR_METERS)

‘ apply the projection to the view

theView.SetProjection(p)


Weather Palette Make Example

'**************************************************

'* Weather Palette Creator                        *

'*                                                *

'* The purpose of this script is to create a new  *

'* palette list for pens and add it to the        *

'* existing weather.avp file.                     *

'**************************************************

weatherp = "$AVHOME/symbols/weather.avp".AsFileName

p = Palette.Make

p.LoadFromFile(#PALETTE_LIST_MARKER, weatherp)

pens = p.GetList(#PALETTE_LIST_PEN)

'**Cold Front 1***

mrk0 = BasicMarker.Make

mrk0.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk0.SetFont(Font.Make("ESRI Geology","Normal"))

mrk0.SetCharacter(40)

vpm0 = VectorPenMarker.Make(mrk0)

vpm0.SetAltSize(0.42)

vpm0.SetSize(32)

bln0 = BasicPen.Make

bln0.SetSize(0.01)

syl0 = SymbolList.FromList({vpm0,bln0})

p0 = CompositeArcInfoPen.Make(syl0)

pens.Add(p0)

'**Cold Front 2***

mrk1 = BasicMarker.Make

mrk1.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk1.SetFont(Font.Make("ESRI Geology","Normal"))

mrk1.SetCharacter(43)

vpm1 = VectorPenMarker.Make(mrk1)

vpm1.SetAltSize(-0.45)

vpm1.SetSize(32)

bln1 = BasicPen.Make

bln1.SetSize(0.01)

syl1 = SymbolList.FromList({vpm1,bln1})

p1 = CompositeArcInfoPen.Make(syl1)

pens.Add(p1)

'**Warm Front 1***

mrk2 = BasicMarker.Make

mrk2.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk2.SetFont(Font.Make("ESRI Geology","Normal"))

mrk2.SetCharacter(52)

vpm2 = VectorPenMarker.Make(mrk2)

vpm2.SetAltSize(0.25)

vpm2.SetSize(32)

bln2 = BasicPen.Make

bln2.SetSize(0.01)

syl2 = SymbolList.FromList({vpm2,bln2})

p2 = CompositeArcInfoPen.Make(syl2)

pens.Add(p2)

'**Warm Front 2***

mrk3 = BasicMarker.Make

mrk3.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk3.SetFont(Font.Make("ESRI Geology","Normal"))

mrk3.SetCharacter(55)

vpm3 = VectorPenMarker.Make(mrk3)

vpm3.SetAltSize(-0.235)

vpm3.SetSize(32)

bln3 = BasicPen.Make

bln3.SetSize(0.01)

syl3 = SymbolList.FromList({vpm3,bln3})

p3 = CompositeArcInfoPen.Make(syl3)

pens.Add(p3)

'**Stationary 1***

mrk5 = BasicMarker.Make

mrk5.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk5.SetFont(Font.Make("ESRI Geology","Normal"))

mrk5.SetCharacter(40)

vpm5 = VectorPenMarker.Make(mrk5)

vpm5.SetTemplate("11")

vpm5.SetMarkLayer(1,0.4)

vpm5.SetSize(32)

mrk5a = BasicMarker.Make

mrk5a.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk5a.SetFont(Font.Make("ESRI Geology","Normal"))

mrk5a.SetCharacter(55)

vpm5a = VectorPenMarker.Make(mrk5a)

vpm5a.SetTemplate("11")

vpm5a.SetMarkLayer(0,-0.26)

vpm5a.SetSize(32)

bln5 = BasicPen.Make

bln5.SetSize(0.5)

syl5 = SymbolList.FromList({vpm5,vpm5a,bln5})

p5 = CompositeArcInfoPen.Make(syl5)

pens.Add(p5)

'**Stationary 2***

mrk6 = BasicMarker.Make

mrk6.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk6.SetFont(Font.Make("ESRI Geology","Normal"))

mrk6.SetCharacter(43)

vpm6 = VectorPenMarker.Make(mrk6)

vpm6.SetTemplate("11")

vpm6.SetMarkLayer(1,-0.43)

vpm6.SetSize(32)

mrk6a = BasicMarker.Make

mrk6a.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk6a.SetFont(Font.Make("ESRI Geology","Normal"))

mrk6a.SetCharacter(52)

vpm6a = VectorPenMarker.Make(mrk6a)

vpm6a.SetMarkLayer(0,0.24)

vpm6a.SetTemplate("11")

vpm6a.SetSize(32)

bln6 = BasicPen.Make

bln6.SetSize(0.5)

syl6 = SymbolList.FromList({vpm6,vpm6a,bln6})

p6 = CompositeArcInfoPen.Make(syl6)

pens.Add(p6)

'**Occluded 1***

mrk7 = BasicMarker.Make

mrk7.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk7.SetFont(Font.Make("ESRI Geology","Normal"))

mrk7.SetCharacter(40)

vpm7 = VectorPenMarker.Make(mrk7)

vpm7.SetTemplate("11")

vpm7.SetMarkLayer(0,0.4)

vpm7.SetSize(32)

mrk7a = BasicMarker.Make

mrk7a.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk7a.SetFont(Font.Make("ESRI Geology","Normal"))

mrk7a.SetCharacter(52)

vpm7a = VectorPenMarker.Make(mrk7a)

vpm7a.SetMarkLayer(1,0.24)

vpm7a.SetTemplate("11")

vpm7a.SetSize(32)

bln7 = BasicPen.Make

bln7.SetSize(0.5)

syl7 = SymbolList.FromList({vpm7,vpm7a,bln7})

p7 = CompositeArcInfoPen.Make(syl7)

pens.Add(p7)

'**Occluded 2***

mrk4 = BasicMarker.Make

mrk4.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk4.SetFont(Font.Make("ESRI Geology","Normal"))

mrk4.SetCharacter(43)

vpm4 = VectorPenMarker.Make(mrk4)

vpm4.SetTemplate("11")

vpm4.SetMarkLayer(0,-0.43)

vpm4.SetSize(32)

mrk4a = BasicMarker.Make

mrk4a.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk4a.SetFont(Font.Make("ESRI Geology","Normal"))

mrk4a.SetCharacter(55)

vpm4a = VectorPenMarker.Make(mrk4a)

vpm4a.SetMarkLayer(1,-0.26)

vpm4a.SetTemplate("11")

vpm4a.SetSize(32)

bln4 = BasicPen.Make

bln4.SetSize(0.5)

syl4 = SymbolList.FromList({vpm4,vpm4a,bln4})

p4 = CompositeArcInfoPen.Make(syl4)

pens.Add(p4)

'**Cold Front 3***

mrk8 = BasicMarker.Make

mrk8.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk8.SetFont(Font.Make("ESRI Geology","Normal"))

mrk8.SetCharacter(40)

vpm8 = VectorPenMarker.Make(mrk8)

vpm8.SetTemplate("041")

vpm8.SetAltSize(0.37)

vpm8.SetSize(32)

bln8 = BasicPen.Make

bln8.SetSize(0.01)

syl8 = SymbolList.FromList({vpm8,bln8})

p8 = CompositeArcInfoPen.Make(syl8)

pens.Add(p8)

'**Cold Front 4***

mrk9 = BasicMarker.Make

mrk9.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk9.SetFont(Font.Make("ESRI Geology","Normal"))

mrk9.SetCharacter(43)

vpm9 = VectorPenMarker.Make(mrk9)

vpm9.SetTemplate("041")

vpm9.SetAltSize(-0.45)

vpm9.SetSize(32)

bln9 = BasicPen.Make

bln9.SetSize(0.01)

syl9 = SymbolList.FromList({vpm9,bln9})

p9 = CompositeArcInfoPen.Make(syl9)

pens.Add(p9)

'**Warm Front 3***

mrk10 = BasicMarker.Make

mrk10.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk10.SetFont(Font.Make("ESRI Geology","Normal"))

mrk10.SetCharacter(52)

vpm10 = VectorPenMarker.Make(mrk10)

vpm10.SetTemplate("041")

vpm10.SetAltSize(0.25)

vpm10.SetSize(32)

bln10 = BasicPen.Make

bln10.SetSize(0.01)

syl10 = SymbolList.FromList({vpm10,bln10})

p10 = CompositeArcInfoPen.Make(syl10)

pens.Add(p10)

'**Warm Front 4***

mrk11 = BasicMarker.Make

mrk11.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk11.SetFont(Font.Make("ESRI Geology","Normal"))

mrk11.SetCharacter(55)

vpm11 = VectorPenMarker.Make(mrk11)

vpm11.SetTemplate("041")

vpm11.SetAltSize(-0.235)

vpm11.SetSize(32)

bln11 = BasicPen.Make

bln11.SetSize(0.01)

syl11 = SymbolList.FromList({vpm11,bln11})

p11 = CompositeArcInfoPen.Make(syl11)

pens.Add(p11)

'**Stationary 3***

mrk12 = BasicMarker.Make

mrk12.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk12.SetFont(Font.Make("ESRI Geology","Normal"))

mrk12.SetCharacter(40)

vpm12 = VectorPenMarker.Make(mrk12)

vpm12.SetTemplate("021")

vpm12.SetInterval(1)

vpm12.SetMarkLayer(2,0)

vpm12.SetAltSize(0.4)

vpm12.SetSize(32)

mrk12a = BasicMarker.Make

mrk12a.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk12a.SetFont(Font.Make("ESRI Geology","Normal"))

mrk12a.SetCharacter(55)

vpm12a = VectorPenMarker.Make(mrk12a)

vpm12a.SetInterval(1)

vpm12a.SetMarkLayer(-2,0)

vpm12a.SetTemplate("021")

vpm12a.SetAltSize(-0.26)

vpm12a.SetSize(32)

bln12 = BasicPen.Make

bln12.SetSize(0.5)

syl12 = SymbolList.FromList({vpm12,vpm12a,bln12})

p12 = CompositeArcInfoPen.Make(syl12)

pens.Add(p12)

'**Stationary 4***

mrk13 = BasicMarker.Make

mrk13.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk13.SetFont(Font.Make("ESRI Geology","Normal"))

mrk13.SetCharacter(43)

vpm13 = VectorPenMarker.Make(mrk13)

vpm13.SetTemplate("021")

vpm13.SetInterval(1)

vpm13.SetMarkLayer(2,0)

vpm13.SetAltSize(-0.43)

vpm13.SetSize(32)

mrk13a = BasicMarker.Make

mrk13a.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk13a.SetFont(Font.Make("ESRI Geology","Normal"))

mrk13a.SetCharacter(52)

vpm13a = VectorPenMarker.Make(mrk13a)

vpm13a.SetInterval(1)

vpm13a.SetMarkLayer(-2,0)

vpm13a.SetTemplate("021")

vpm13a.SetAltSize(0.24)

vpm13a.SetSize(32)

bln13 = BasicPen.Make

bln13.SetSize(0.5)

syl13 = SymbolList.FromList({vpm13,vpm13a,bln13})

p13 = CompositeArcInfoPen.Make(syl13)

pens.Add(p13)

'**Occluded 3***

mrk12 = BasicMarker.Make

mrk12.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk12.SetFont(Font.Make("ESRI Geology","Normal"))

mrk12.SetCharacter(40)

vpm12 = VectorPenMarker.Make(mrk12)

vpm12.SetTemplate("021")

vpm12.SetInterval(1)

vpm12.SetMarkLayer(2,0)

vpm12.SetAltSize(0.4)

vpm12.SetSize(32)

mrk12a = BasicMarker.Make

mrk12a.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk12a.SetFont(Font.Make("ESRI Geology","Normal"))

mrk12a.SetCharacter(52)

vpm12a = VectorPenMarker.Make(mrk12a)

vpm12a.SetInterval(1)

vpm12a.SetMarkLayer(-2,0)

vpm12a.SetTemplate("021")

vpm12a.SetAltSize(0.24)

vpm12a.SetSize(32)

bln12 = BasicPen.Make

bln12.SetSize(0.5)

syl12 = SymbolList.FromList({vpm12,vpm12a,bln12})

p12 = CompositeArcInfoPen.Make(syl12)

pens.Add(p12)

'**Occluded 4***

mrk12 = BasicMarker.Make

mrk12.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk12.SetFont(Font.Make("ESRI Geology","Normal"))

mrk12.SetCharacter(43)

vpm12 = VectorPenMarker.Make(mrk12)

vpm12.SetTemplate("021")

vpm12.SetInterval(1)

vpm12.SetMarkLayer(2,0)

vpm12.SetAltSize(-0.43)

vpm12.SetSize(32)

mrk12a = BasicMarker.Make

mrk12a.SetStyle(#BASICMARKER_STYLE_PATTERN)

mrk12a.SetFont(Font.Make("ESRI Geology","Normal"))

mrk12a.SetCharacter(55)

vpm12a = VectorPenMarker.Make(mrk12a)

vpm12a.SetInterval(1)

vpm12a.SetMarkLayer(-2,0)

vpm12a.SetTemplate("021")

vpm12a.SetAltSize(-0.26)

vpm12a.SetSize(32)

bln12 = BasicPen.Make

bln12.SetSize(0.5)

syl12 = SymbolList.FromList({vpm12,vpm12a,bln12})

p12 = CompositeArcInfoPen.Make(syl12)

pens.Add(p12)

p.SaveToFile(#PALETTE_LIST_ALL, weatherp)