/3.2
(Extension.1
	Name:	"Compiled Theme Tools"
	Dependencies:	"$AVBIN/avdlog.dll\n"
	FirstRootClassName:	"List"
	Roots:	2
	Roots:	3
	Roots:	902
	Roots:	911
	Roots:	1103
	Roots:	1104
	Roots:	1105
	Roots:	1106
	Roots:	1107
	Roots:	1108
	Roots:	1109
	Roots:	1110
	Roots:	1111
	Roots:	1112
	Roots:	1113
	Roots:	1114
	Roots:	1115
	Roots:	1116
	Roots:	1117
	Roots:	1118
	Roots:	1119
	Roots:	1120
	Roots:	1121
	Roots:	1122
	Roots:	1123
	Roots:	1124
	Roots:	1125
	Roots:	1126
	Roots:	1127
	Roots:	1128
	Roots:	1129
	Roots:	1130
	Roots:	1131
	Roots:	1132
	Roots:	1133
	Roots:	1134
	Roots:	1135
	Roots:	1136
	Roots:	1137
	Roots:	1138
	Roots:	1139
	Roots:	1140
	Roots:	1141
	Roots:	1142
	Roots:	1143
	Roots:	1144
	Roots:	1145
	Roots:	1146
	Roots:	1147
	Roots:	1148
	Roots:	1149
	Roots:	1150
	Roots:	1151
	Roots:	1152
	Roots:	1153
	Roots:	1154
	Roots:	1155
	Roots:	1156
	Roots:	1157
	Roots:	1158
	Roots:	1159
	Roots:	1160
	Roots:	1161
	Roots:	1162
	Roots:	1163
	Roots:	1164
	Roots:	1165
	Roots:	1166
	Roots:	1167
	Roots:	1168
	Roots:	1169
	Roots:	1170
	Roots:	1171
	Roots:	1172
	Roots:	1173
	Roots:	1174
	Roots:	1175
	Roots:	1176
	Roots:	1177
	Roots:	1178
	Roots:	1179
	Roots:	1180
	Roots:	1181
	Roots:	1182
	Roots:	1183
	Roots:	1184
	Roots:	1185
	Roots:	1186
	Roots:	1187
	Roots:	1188
	Roots:	1189
	Roots:	1190
	Roots:	1191
	Roots:	1192
	Roots:	1193
	Roots:	1194
	Roots:	1195
	Roots:	1196
	Roots:	1197
	Roots:	1198
	Roots:	1199
	Roots:	1200
	Roots:	1201
	Roots:	1202
	Roots:	1203
	Roots:	1204
	Roots:	1205
	Roots:	1206
	Roots:	1207
	Roots:	1208
	Roots:	1209
	Roots:	1210
	Roots:	1211
	Roots:	1212
	Roots:	1213
	Roots:	1214
	Roots:	1215
	Roots:	1216
	Roots:	1217
	Roots:	1218
	Roots:	1219
	Roots:	1220
	Roots:	1221
	Roots:	1222
	Roots:	1223
	Roots:	1224
	Roots:	1225
	Roots:	1226
	Roots:	1227
	Roots:	1228
	Roots:	1229
	Roots:	1230
	Roots:	1231
	Roots:	1232
	Roots:	1233
	Roots:	1234
	Roots:	1235
	Roots:	1236
	Roots:	1237
	Roots:	1238
	Roots:	1239
	Roots:	1240
	Roots:	1241
	Roots:	1242
	Roots:	1243
	Roots:	1244
	Roots:	1245
	Roots:	1246
	Roots:	1247
	Roots:	1248
	Roots:	1249
	Roots:	1250
	Roots:	1251
	Roots:	1252
	Roots:	1253
	Roots:	1254
	Roots:	1255
	Roots:	1256
	Roots:	1257
	Roots:	1258
	Roots:	1259
	Roots:	1260
	Roots:	1261
	Roots:	1262
	Roots:	1263
	Roots:	1264
	Roots:	1265
	Roots:	1266
	Roots:	1267
	Roots:	1268
	Roots:	1269
	Roots:	1270
	Roots:	1271
	Roots:	1272
	Roots:	1273
	Roots:	1274
	Roots:	1275
	Roots:	1276
	Roots:	1277
	Roots:	1278
	Roots:	1279
	Roots:	1280
	Roots:	1281
	Roots:	1282
	Roots:	1283
	Roots:	1284
	Roots:	1285
	Roots:	1286
	Roots:	1287
	Roots:	1288
	Roots:	1289
	Roots:	1290
	Roots:	1291
	Roots:	1292
	Roots:	1293
	Roots:	1294
	Roots:	1295
	Roots:	1296
	Roots:	1297
	Roots:	1298
	Roots:	1299
	Roots:	1300
	Roots:	1301
	Roots:	1302
	Roots:	1303
	Roots:	1304
	Roots:	1305
	Roots:	1306
	Roots:	1307
	Roots:	1308
	Roots:	1309
	Roots:	1310
	Roots:	1311
	Roots:	1312
	Roots:	1313
	Roots:	1314
	Roots:	1315
	Roots:	1316
	Roots:	1317
	Roots:	1318
	Roots:	1319
	Roots:	1320
	Roots:	1321
	Roots:	1322
	Roots:	1323
	Roots:	1324
	Roots:	1325
	Roots:	1326
	Roots:	1327
	Roots:	1328
	Roots:	1329
	Roots:	1330
	Roots:	1331
	Roots:	1332
	Roots:	1333
	Roots:	1334
	Roots:	1335
	Roots:	1336
	Roots:	1337
	Roots:	1338
	Roots:	1339
	Roots:	1340
	Roots:	1341
	Roots:	1342
	Version:	32
	About:	"Compiled Theme Tools - Creation Date 06/04/07\nThis Extension will add many Usefull Tools to Your Project\n  ;-) Hmanfl@Lycos.com\n"
	InstallScript:	1343
	UninstallScript:	1344
	ExtVersion:	1
)

(List.2
)

(List.3
	Child:	4
	Child:	40
	Child:	68
	Child:	127
	Child:	314
	Child:	375
	Child:	488
	Child:	538
	Child:	543
	Child:	548
	Child:	616
	Child:	644
	Child:	649
	Child:	659
	Child:	708
)

(AVDLog.4
	Name:	"ImportLabel"
	X:	27
	Y:	68
	W:	272
	H:	306
	ConstrainedControlNames:	5
	ConstrainedControlNames:	6
	ConstrainedControlNames:	7
	Constraints:	8
	Constraints:	9
	Constraints:	10
	Server:	11
	ControlPanel:	12
	ObjectTag:	39
	Title:	"Import Labels from a Point Theme"
	EscapeEnabled:	1
	Modal:	1
	Resizable:	1
	AlwaysOnTop:	1
	HasTitleBar:	1
	Open:	"LabelTheme.ImportLabel.Open"
	DefaultButton:	39
)

(AVStr.5
	S:	"lbt_GO.I"
)

(AVStr.6
	S:	"lbt_Cancel.I"
)

(AVStr.7
	S:	"aLabelButton4"
)

(Numb.8
	N:	85.00000000000000
)

(Numb.9
	N:	85.00000000000000
)

(Numb.10
	N:	85.00000000000000
)

(Nil.11
)

(CPanel.12
	Child:	13
	Child:	14
	Child:	15
	Child:	16
	Child:	17
	Child:	18
	Child:	19
	Child:	20
	Child:	21
	Child:	22
	Child:	23
	Child:	24
	Child:	25
	ResBox:	26
	ResBox:	27
	ResBox:	28
	ResBox:	29
	ResBox:	30
	ResBox:	31
	ResBox:	32
	ResBox:	33
	ResBox:	34
	ResBox:	35
	ResBox:	36
	ResBox:	37
	ResBox:	38
	Listening:	1
)

(AVCBBox.13
	InternalName:	"cbx_Theme.I"
	Update:	"LabelTheme.cbx_Theme.I.Update"
	NextControl:	11
	ContentKind:	4
	Constraints:	0x55
	Listening:	1
	Select:	"LabelTheme.cbx_Theme.I.Select"
)

(TextLabel.14
	InternalName:	"aTextLabel14"
	Constraints:	0x55
	Label:	"Which point theme do you want to import labels from?"
	Listening:	1
)

(AVCBox.15
	InternalName:	"chk_Selected.I"
	Disabled:	1
	Update:	"LabelTheme.chk_Selected.I.Update"
	Listening:	1
	Label:	"Only selected points"
	Constraints:	0x55
)

(AVCBox.16
	InternalName:	"chk_Scale.I"
	Listening:	1
	Selected:	1
	Label:	"Labels should scale with the view"
	Constraints:	0x55
)

(AVCBox.17
	InternalName:	"chk_Attach.I"
	Listening:	1
	Label:	"Attach labels to a theme"
	Click:	"LabelTheme.chk_Attach.I.Click"
	Constraints:	0x55
)

(AVCBBox.18
	InternalName:	"cbx_AttachTheme.I"
	Disabled:	1
	Invisible:	1
	Update:	"LabelTheme.cbx_AttachTheme.I.Update"
	NextControl:	11
	ContentKind:	4
	Constraints:	0x55
	Listening:	1
	Label:	"Attach to:"
)

(LButn.19
	InternalName:	"lbt_GO.I"
	Label:	"GO!"
	Click:	"LabelTheme.lbt_GO.I.Click"
)

(LButn.20
	InternalName:	"lbt_Cancel.I"
	Label:	"Cancel"
	Click:	"LabelTheme.lbt_Cancel.I.Click"
)

(TextLabel.21
	InternalName:	"aTextLabel21"
	Constraints:	0x55
	Label:	"How do you want to import them?"
	Listening:	1
)

(AVCBox.22
	InternalName:	"chk_Extent.I"
	Listening:	1
	Label:	"Only points within the current view frame"
	Constraints:	0x55
)

(TextLabel.23
	InternalName:	"aTextLabel2"
	Constraints:	0x55
	Label:	"(Check all that apply)"
	Listening:	1
)

(AVCBox.24
	InternalName:	"chk_FinSelect.I"
	Listening:	1
	Selected:	1
	Label:	"When finished, select the labels"
	Constraints:	0x55
)

(LButn.25
	InternalName:	"aLabelButton4"
	Label:	"Help"
	Click:	"LabelTheme.Instructions"
)

(RectD.26
	Left:	41.00000000000000
	Top:	131.00000000000000
	Right:	232.00000000000000
	Bottom:	36.00000000000000
)

(RectD.27
	Left:	8.00000000000000
	Top:	43.00000000000000
	Right:	279.00000000000000
	Bottom:	17.00000000000000
)

(RectD.28
	Left:	32.00000000000000
	Top:	116.00000000000000
	Right:	160.00000000000000
	Bottom:	98.00000000000000
)

(RectD.29
	Left:	32.00000000000000
	Top:	163.00000000000000
	Right:	222.00000000000000
	Bottom:	145.00000000000000
)

(RectD.30
	Left:	32.00000000000000
	Top:	189.00000000000000
	Right:	178.00000000000000
	Bottom:	171.00000000000000
)

(RectD.31
	Left:	58.00000000000000
	Top:	276.00000000000000
	Right:	265.00000000000000
	Bottom:	196.00000000000000
)

(RectD.32
	Left:	22.00000000000000
	Top:	287.00000000000000
	Right:	86.00000000000000
	Bottom:	260.00000000000000
)

(RectD.33
	Left:	104.00000000000000
	Top:	283.00000000000000
	Right:	157.00000000000000
	Bottom:	262.00000000000000
)

(RectD.34
	Left:	8.00000000000000
	Top:	86.00000000000000
	Right:	184.00000000000000
	Bottom:	63.00000000000000
)

(RectD.35
	Left:	32.00000000000000
	Top:	139.00000000000000
	Right:	254.00000000000000
	Bottom:	121.00000000000000
)

(RectD.36
	Left:	33.00000000000000
	Top:	95.00000000000000
	Right:	181.00000000000000
	Bottom:	77.00000000000000
)

(RectD.37
	Left:	32.00000000000000
	Top:	240.00000000000000
	Right:	251.00000000000000
	Bottom:	224.00000000000000
)

(RectD.38
	Left:	176.00000000000000
	Top:	282.00000000000000
	Right:	245.00000000000000
	Bottom:	262.00000000000000
)

(Nil.39
)

(AVDLog.40
	Name:	"ExportLabel"
	X:	26
	Y:	68
	W:	289
	H:	217
	ConstrainedControlNames:	41
	ConstrainedControlNames:	42
	ConstrainedControlNames:	43
	Constraints:	44
	Constraints:	45
	Constraints:	46
	Server:	11
	ControlPanel:	47
	ObjectTag:	39
	Title:	"Export Labels to a Point Theme"
	EscapeEnabled:	1
	Modal:	1
	Resizable:	1
	AlwaysOnTop:	1
	HasTitleBar:	1
	Open:	"LabelTheme.ExportLabel.Open"
	DefaultButton:	39
)

(AVStr.41
	S:	"lbt_GO.E"
)

(AVStr.42
	S:	"lbt_Cancel.E"
)

(AVStr.43
	S:	"aLabelButton1"
)

(Numb.44
	N:	85.00000000000000
)

(Numb.45
	N:	85.00000000000000
)

(Numb.46
	N:	85.00000000000000
)

(CPanel.47
	Child:	48
	Child:	57
	Child:	58
	Child:	59
	Child:	60
	Child:	61
	ResBox:	62
	ResBox:	63
	ResBox:	64
	ResBox:	65
	ResBox:	66
	ResBox:	67
	Listening:	1
)

(CPanel.48
	InternalName:	"aControlPanel4"
	Child:	49
	Child:	50
	Child:	51
	Child:	52
	Constraints:	0x55
	ResBox:	53
	ResBox:	54
	ResBox:	55
	ResBox:	56
	Label:	" "
	Listening:	1
)

(RButn.49
	InternalName:	"rad_AllLabels.E"
	Constraints:	0x55
	Listening:	1
	Label:	"All labels in the view"
	Click:	"LabelTheme.rad_All-Theme.E.Click"
)

(RButn.50
	InternalName:	"rad_theme.E"
	Constraints:	0x55
	Listening:	1
	Label:	"Only labels attached to the following theme:"
	Click:	"LabelTheme.rad_All-Theme.E.Click"
)

(AVCBBox.51
	InternalName:	"cbx_Theme.E"
	Disabled:	1
	Update:	"LabelTheme.cbx_Theme.E.Update"
	NextControl:	11
	ContentKind:	4
	Constraints:	0x55
	Listening:	1
	Select:	"LabelTheme.cbx_Theme.E.Select"
)

(RButn.52
	InternalName:	"rad_Visible.E"
	Constraints:	0x55
	Listening:	1
	Label:	"Only labels that are turned-on"
	Click:	"LabelTheme.rad_Visible.E.Click"
)

(RectD.53
	Left:	16.00000000000000
	Top:	24.00000000000000
	Right:	212.00000000000000
	Bottom:	10.00000000000000
)

(RectD.54
	Left:	16.00000000000000
	Top:	71.00000000000000
	Right:	260.00000000000000
	Bottom:	51.00000000000000
)

(RectD.55
	Left:	46.00000000000000
	Top:	154.00000000000000
	Right:	229.00000000000000
	Bottom:	76.00000000000000
)

(RectD.56
	Left:	16.00000000000000
	Top:	48.00000000000000
	Right:	232.00000000000000
	Bottom:	29.00000000000000
)

(TextLabel.57
	InternalName:	"aTextLabel1"
	Constraints:	0x55
	Label:	"Which labels in the view do you want to export?"
	Listening:	1
)

(AVCBox.58
	InternalName:	"chk_OnlySelected.E"
	Disabled:	1
	Update:	"LabelTheme.chk_OnlySelected.E.Update"
	Listening:	1
	Label:	"Export only those that are selected"
	Constraints:	0x55
)

(LButn.59
	InternalName:	"lbt_GO.E"
	Label:	"GO!"
	Click:	"LabelTheme.lbt_GO.E.Click"
)

(LButn.60
	InternalName:	"lbt_Cancel.E"
	Label:	"Cancel"
	Click:	"LabelTheme.lbt_Cancel.E.Click"
)

(LButn.61
	InternalName:	"aLabelButton1"
	Label:	"Help"
	Click:	"LabelTheme.Instructions"
)

(RectD.62
	Left:	19.00000000000000
	Top:	132.00000000000000
	Right:	279.00000000000000
	Bottom:	30.00000000000000
)

(RectD.63
	Left:	20.00000000000000
	Top:	30.00000000000000
	Right:	271.00000000000000
	Bottom:	12.00000000000000
)

(RectD.64
	Left:	34.00000000000000
	Top:	161.00000000000000
	Right:	253.00000000000000
	Bottom:	140.00000000000000
)

(RectD.65
	Left:	22.00000000000000
	Top:	204.00000000000000
	Right:	90.00000000000000
	Bottom:	174.00000000000000
)

(RectD.66
	Left:	112.00000000000000
	Top:	199.00000000000000
	Right:	169.00000000000000
	Bottom:	179.00000000000000
)

(RectD.67
	Left:	185.00000000000000
	Top:	200.00000000000000
	Right:	261.00000000000000
	Bottom:	178.00000000000000
)

(AVDLog.68
	Name:	"zMover"
	X:	27
	Y:	69
	W:	233
	H:	243
	ConstrainedControlNames:	69
	ConstrainedControlNames:	70
	ConstrainedControlNames:	71
	ConstrainedControlNames:	72
	ConstrainedControlNames:	73
	ConstrainedControlNames:	74
	ConstrainedControlNames:	75
	ConstrainedControlNames:	76
	Constraints:	77
	Constraints:	78
	Constraints:	79
	Constraints:	80
	Constraints:	81
	Constraints:	82
	Constraints:	83
	Constraints:	84
	Server:	11
	ControlPanel:	85
	ObjectTag:	125
	Title:	"Lable Mover "
	EscapeEnabled:	1
	AlwaysOnTop:	1
	HasTitleBar:	1
	Closeable:	1
	Activate:	"zLabMove.MoverDocActivate"
	Close:	"zLabMove.MoverDocClose"
	Open:	"zLabMove.MoverDocOpen"
	DefaultButton:	126
)

(AVStr.69
	S:	"btn_In"
)

(AVStr.70
	S:	"btn_Out"
)

(AVStr.71
	S:	"btn_Left"
)

(AVStr.72
	S:	"btn_Right"
)

(AVStr.73
	S:	"btn_Down"
)

(AVStr.74
	S:	"btn_Up"
)

(AVStr.75
	S:	"aButton16"
)

(AVStr.76
	S:	"btn_OffsetTool"
)

(Numb.77
	N:	85.00000000000000
)

(Numb.78
	N:	85.00000000000000
)

(Numb.79
	N:	85.00000000000000
)

(Numb.80
	N:	85.00000000000000
)

(Numb.81
	N:	85.00000000000000
)

(Numb.82
	N:	85.00000000000000
)

(Numb.83
	N:	85.00000000000000
)

(Numb.84
	N:	85.00000000000000
)

(CPanel.85
	Child:	86
	Child:	88
	Child:	90
	Child:	92
	Child:	94
	Child:	96
	Child:	98
	Child:	100
	Child:	102
	Child:	107
	Child:	108
	Child:	109
	Child:	110
	ResBox:	112
	ResBox:	113
	ResBox:	114
	ResBox:	115
	ResBox:	116
	ResBox:	117
	ResBox:	118
	ResBox:	119
	ResBox:	120
	ResBox:	121
	ResBox:	122
	ResBox:	123
	ResBox:	124
	Listening:	1
)

(TextLine.86
	InternalName:	"txl_Offset"
	Label:	"Label Offset:"
	Constraints:	0x55
	Listening:	1
	TextType:	87
	NextControl:	11
)

(AVEnum.87
	Name:	"TEXTLINE_TYPE_REAL"
)

(Tool.88
	InternalName:	"btn_OffsetTool"
	Help:	"Set Label Offset //Drag a circle whose radius is sets the Label Offset distance"
	Icon:	89
	Cursor:	"Cursors.Default"
	Apply:	"zLabMove.Mover.tol_Offset.Apply"
)

(AVIcon.89
	Name:	"Empty"
	Res:	"AVIcon.Empty"

)

(Butn.90
	InternalName:	"btn_In"
	Help:	"Move In//Moves Labels In from their current position based on the Label's Rotation Angle and Label Offset distance"
	Tag:	"In"
	Icon:	91
	Click:	"zLabMove.Mover.btn_InOut.Click"
)

(AVIcon.91
	Name:	"Empty"
	Res:	"AVIcon.Empty"

)

(Butn.92
	InternalName:	"btn_Out"
	Help:	"Move Out//Moves Labels Away from their current position based on the Label's Rotation Angle and Label Offset distance"
	Tag:	"Out"
	Icon:	93
	Click:	"zLabMove.Mover.btn_InOut.Click"
)

(AVIcon.93
	Name:	"Empty"
	Res:	"AVIcon.Empty"

)

(Butn.94
	InternalName:	"btn_Left"
	Help:	"Move Left//Moves Labels to the Left of their current position using the Label Offset distance"
	Tag:	"Left"
	Icon:	95
	Click:	"zLabMove.Mover.btn_Move.Click"
)

(AVIcon.95
	Name:	"Empty"
	Res:	"AVIcon.Empty"

)

(Butn.96
	InternalName:	"btn_Right"
	Help:	"Move Right//Moves Labels to the Right of their current postion using the Label Offset distance"
	Tag:	"Right"
	Icon:	97
	Click:	"zLabMove.Mover.btn_Move.Click"
)

(AVIcon.97
	Name:	"Empty"
	Res:	"AVIcon.Empty"

)

(Butn.98
	InternalName:	"btn_Down"
	Help:	"Move Down//Moves Labels Downward from their current position using the Label Offset distance"
	Tag:	"Down"
	Icon:	99
	Click:	"zLabMove.Mover.btn_Move.Click"
)

(AVIcon.99
	Name:	"Empty"
	Res:	"AVIcon.Empty"

)

(Butn.100
	InternalName:	"btn_Up"
	Help:	"Move Up//Moves Labels Upward from their current position using the Label Offset distance"
	Tag:	"Up"
	Icon:	101
	Click:	"zLabMove.Mover.btn_Move.Click"
)

(AVIcon.101
	Name:	"Empty"
	Res:	"AVIcon.Empty"

)

(CPanel.102
	InternalName:	"cpa_Options"
	Child:	103
	Child:	104
	Constraints:	0x55
	ResBox:	105
	ResBox:	106
	Label:	"Options"
	VisibleBorder:	1
	Listening:	1
)

(AVCBox.103
	InternalName:	"chk_Selected"
	Listening:	1
	Label:	"Move Selected Labels"
	Constraints:	0x55
)

(AVCBox.104
	InternalName:	"chk_Extent"
	Listening:	1
	Label:	"Move Labels in View Extent"
	Constraints:	0x55
)

(RectD.105
	Left:	15.00000000000000
	Top:	38.00000000000000
	Right:	205.00000000000000
	Bottom:	18.00000000000000
)

(RectD.106
	Left:	15.00000000000000
	Top:	64.00000000000000
	Right:	205.00000000000000
	Bottom:	44.00000000000000
)

(TextLabel.107
	InternalName:	"txt_Msg"
	Constraints:	0x55
	Label:	" "
	Listening:	1
)

(TextLabel.108
	InternalName:	"txl_Theme"
	Constraints:	0x55
	Label:	"Theme:"
	Listening:	1
)

(TextLabel.109
	InternalName:	"txl_ThemeName"
	Constraints:	0x55
	Label:	" "
	Listening:	1
)

(Butn.110
	InternalName:	"aButton16"
	Icon:	111
	Click:	"zLabMove.Help"
)

(AVIcon.111
	Name:	"Help"
	Res:	"Icons.Help"

)

(RectD.112
	Left:	8.00000000000000
	Top:	53.00000000000000
	Right:	165.00000000000000
	Bottom:	33.00000000000000
)

(RectD.113
	Left:	181.00000000000000
	Top:	52.00000000000000
	Right:	204.00000000000000
	Bottom:	32.00000000000000
)

(RectD.114
	Left:	48.00000000000000
	Top:	99.00000000000000
	Right:	105.00000000000000
	Bottom:	67.00000000000000
)

(RectD.115
	Left:	130.00000000000000
	Top:	99.00000000000000
	Right:	187.00000000000000
	Bottom:	67.00000000000000
)

(RectD.116
	Left:	49.00000000000000
	Top:	132.00000000000000
	Right:	71.00000000000000
	Bottom:	111.00000000000000
)

(RectD.117
	Left:	84.00000000000000
	Top:	132.00000000000000
	Right:	106.00000000000000
	Bottom:	111.00000000000000
)

(RectD.118
	Left:	165.00000000000000
	Top:	132.00000000000000
	Right:	187.00000000000000
	Bottom:	111.00000000000000
)

(RectD.119
	Left:	130.00000000000000
	Top:	132.00000000000000
	Right:	152.00000000000000
	Bottom:	111.00000000000000
)

(RectD.120
	Left:	12.00000000000000
	Top:	215.00000000000000
	Right:	224.00000000000000
	Bottom:	142.00000000000000
)

(RectD.121
	Left:	84.00000000000000
	Top:	236.00000000000000
	Right:	174.00000000000000
	Bottom:	221.00000000000000
)

(RectD.122
	Left:	9.00000000000000
	Top:	24.00000000000000
	Right:	50.00000000000000
	Bottom:	8.00000000000000
)

(RectD.123
	Left:	75.00000000000000
	Top:	24.00000000000000
	Right:	224.00000000000000
	Bottom:	8.00000000000000
)

(RectD.124
	Left:	202.00000000000000
	Top:	238.00000000000000
	Right:	229.00000000000000
	Bottom:	218.00000000000000
)

(Nil.125
)

(Nil.126
)

(AVDLog.127
	Name:	"Z-Select Tools"
	X:	207
	Y:	77
	W:	176
	H:	104
	DocActivate:	"View.Theme.Tool.Update.C"
	ConstrainedControlNames:	128
	ConstrainedControlNames:	129
	ConstrainedControlNames:	130
	ConstrainedControlNames:	131
	ConstrainedControlNames:	132
	ConstrainedControlNames:	133
	ConstrainedControlNames:	134
	ConstrainedControlNames:	135
	ConstrainedControlNames:	136
	ConstrainedControlNames:	137
	ConstrainedControlNames:	138
	ConstrainedControlNames:	139
	ConstrainedControlNames:	140
	ConstrainedControlNames:	141
	ConstrainedControlNames:	142
	ConstrainedControlNames:	143
	ConstrainedControlNames:	144
	ConstrainedControlNames:	145
	ConstrainedControlNames:	146
	ConstrainedControlNames:	147
	ConstrainedControlNames:	148
	ConstrainedControlNames:	149
	ConstrainedControlNames:	150
	ConstrainedControlNames:	151
	ConstrainedControlNames:	152
	ConstrainedControlNames:	153
	ConstrainedControlNames:	154
	ConstrainedControlNames:	155
	ConstrainedControlNames:	156
	ConstrainedControlNames:	157
	ConstrainedControlNames:	158
	ConstrainedControlNames:	159
	ConstrainedControlNames:	160
	ConstrainedControlNames:	161
	ConstrainedControlNames:	162
	ConstrainedControlNames:	163
	ConstrainedControlNames:	164
	ConstrainedControlNames:	165
	Constraints:	166
	Constraints:	167
	Constraints:	168
	Constraints:	169
	Constraints:	170
	Constraints:	171
	Constraints:	172
	Constraints:	173
	Constraints:	174
	Constraints:	175
	Constraints:	176
	Constraints:	177
	Constraints:	178
	Constraints:	179
	Constraints:	180
	Constraints:	181
	Constraints:	182
	Constraints:	183
	Constraints:	184
	Constraints:	185
	Constraints:	186
	Constraints:	187
	Constraints:	188
	Constraints:	189
	Constraints:	190
	Constraints:	191
	Constraints:	192
	Constraints:	193
	Constraints:	194
	Constraints:	195
	Constraints:	196
	Constraints:	197
	Constraints:	198
	Constraints:	199
	Constraints:	200
	Constraints:	201
	Constraints:	202
	Constraints:	203
	Server:	11
	ControlPanel:	204
	Title:	"    Z - Select Tools"
	EscapeEnabled:	1
	AlwaysOnTop:	1
	HasTitleBar:	1
	Closeable:	1
	DefaultButton:	313
)

(AVStr.128
	S:	"aLabelButton17"
)

(AVStr.129
	S:	"aLabelButton18"
)

(AVStr.130
	S:	"aLabelButton19"
)

(AVStr.131
	S:	"aLabelButton36"
)

(AVStr.132
	S:	"aLabelButton37"
)

(AVStr.133
	S:	"aLabelButton38"
)

(AVStr.134
	S:	"aTool1"
)

(AVStr.135
	S:	"aTool2"
)

(AVStr.136
	S:	"aTool3"
)

(AVStr.137
	S:	"aTool4"
)

(AVStr.138
	S:	"aTool5"
)

(AVStr.139
	S:	"aTool6"
)

(AVStr.140
	S:	"aTool7"
)

(AVStr.141
	S:	"aTool8"
)

(AVStr.142
	S:	"aTool9"
)

(AVStr.143
	S:	"aTool10"
)

(AVStr.144
	S:	"aTool11"
)

(AVStr.145
	S:	"aTool12"
)

(AVStr.146
	S:	"aTool13"
)

(AVStr.147
	S:	"aTool14"
)

(AVStr.148
	S:	"aTool15"
)

(AVStr.149
	S:	"aTool16"
)

(AVStr.150
	S:	"aTool20"
)

(AVStr.151
	S:	"aTool21"
)

(AVStr.152
	S:	"aTool22"
)

(AVStr.153
	S:	"aTool23"
)

(AVStr.154
	S:	"aTool24"
)

(AVStr.155
	S:	"aTool25"
)

(AVStr.156
	S:	"aTool26"
)

(AVStr.157
	S:	"aTool27"
)

(AVStr.158
	S:	"aTool28"
)

(AVStr.159
	S:	"aTool29"
)

(AVStr.160
	S:	"aTool30"
)

(AVStr.161
	S:	"aTool31"
)

(AVStr.162
	S:	"aTool32"
)

(AVStr.163
	S:	"aTool33"
)

(AVStr.164
	S:	"aTool34"
)

(AVStr.165
	S:	"aTool35"
)

(Numb.166
	N:	85.00000000000000
)

(Numb.167
	N:	85.00000000000000
)

(Numb.168
	N:	85.00000000000000
)

(Numb.169
	N:	85.00000000000000
)

(Numb.170
	N:	85.00000000000000
)

(Numb.171
	N:	85.00000000000000
)

(Numb.172
	N:	85.00000000000000
)

(Numb.173
	N:	85.00000000000000
)

(Numb.174
	N:	85.00000000000000
)

(Numb.175
	N:	85.00000000000000
)

(Numb.176
	N:	85.00000000000000
)

(Numb.177
	N:	85.00000000000000
)

(Numb.178
	N:	85.00000000000000
)

(Numb.179
	N:	85.00000000000000
)

(Numb.180
	N:	85.00000000000000
)

(Numb.181
	N:	85.00000000000000
)

(Numb.182
	N:	85.00000000000000
)

(Numb.183
	N:	85.00000000000000
)

(Numb.184
	N:	85.00000000000000
)

(Numb.185
	N:	85.00000000000000
)

(Numb.186
	N:	85.00000000000000
)

(Numb.187
	N:	85.00000000000000
)

(Numb.188
	N:	85.00000000000000
)

(Numb.189
	N:	85.00000000000000
)

(Numb.190
	N:	85.00000000000000
)

(Numb.191
	N:	85.00000000000000
)

(Numb.192
	N:	85.00000000000000
)

(Numb.193
	N:	85.00000000000000
)

(Numb.194
	N:	85.00000000000000
)

(Numb.195
	N:	85.00000000000000
)

(Numb.196
	N:	85.00000000000000
)

(Numb.197
	N:	85.00000000000000
)

(Numb.198
	N:	85.00000000000000
)

(Numb.199
	N:	85.00000000000000
)

(Numb.200
	N:	85.00000000000000
)

(Numb.201
	N:	85.00000000000000
)

(Numb.202
	N:	85.00000000000000
)

(Numb.203
	N:	85.00000000000000
)

(CPanel.204
	Child:	205
	Child:	207
	Child:	209
	Child:	211
	Child:	213
	Child:	215
	Child:	217
	Child:	219
	Child:	221
	Child:	223
	Child:	225
	Child:	227
	Child:	229
	Child:	231
	Child:	233
	Child:	235
	Child:	237
	Child:	238
	Child:	239
	Child:	240
	Child:	242
	Child:	244
	Child:	246
	Child:	248
	Child:	250
	Child:	252
	Child:	254
	Child:	256
	Child:	258
	Child:	260
	Child:	262
	Child:	264
	Child:	266
	Child:	268
	Child:	270
	Child:	272
	Child:	273
	Child:	274
	ResBox:	275
	ResBox:	276
	ResBox:	277
	ResBox:	278
	ResBox:	279
	ResBox:	280
	ResBox:	281
	ResBox:	282
	ResBox:	283
	ResBox:	284
	ResBox:	285
	ResBox:	286
	ResBox:	287
	ResBox:	288
	ResBox:	289
	ResBox:	290
	ResBox:	291
	ResBox:	292
	ResBox:	293
	ResBox:	294
	ResBox:	295
	ResBox:	296
	ResBox:	297
	ResBox:	298
	ResBox:	299
	ResBox:	300
	ResBox:	301
	ResBox:	302
	ResBox:	303
	ResBox:	304
	ResBox:	305
	ResBox:	306
	ResBox:	307
	ResBox:	308
	ResBox:	309
	ResBox:	310
	ResBox:	311
	ResBox:	312
	Listening:	1
)

(Tool.205
	InternalName:	"aTool1"
	Help:	"Circle Select Inside // "
	Icon:	206
	Cursor:	"Cursors.Default"
	Apply:	"Z.SelectDeluxe.CircleTool"
)

(AVIcon.206
	Name:	"selring.bmp"
	Data:	4e442049 6d616765 00010010 00100000 
	Data:	00807777 77777777 77777777 77777777 
	Data:	77777777 77770777 77777777 77000007 
	Data:	77777777 00077700 07777777 07777777 
	Data:	07777770 07777777 00777770 77777777 
	Data:	70777700 77777777 70077770 77777777 
	Data:	70777770 07777777 00777777 07777777 
	Data:	07777777 00077700 07777777 77000007 
	Data:	77777777 77770777 77777777 77777777 
	Data:	77770000 00400000 00000000 80000080 
	Data:	00000080 80008000 00008000 80008080 
	Data:	0000c0c0 c0008080 80000000 ff0000ff 
	Data:	000000ff ff00ff00 0000ff00 ff00ffff 
	Data:	0000ffff ff000002 00040007 00200001 
	Data:	00020000 00000000 0000
)

(Tool.207
	InternalName:	"aTool2"
	Help:	"Line Select  // "
	Icon:	208
	Cursor:	"Cursors.Default"
	Apply:	"Z.SelectDeluxe.LineTool"
)

(AVIcon.208
	Name:	"selln.bmp"
	Data:	4e442049 6d616765 00010010 00100000 
	Data:	00807777 77777777 77777777 77777777 
	Data:	77777777 77777777 77777777 77777777 
	Data:	77777777 77777777 77777777 77777777 
	Data:	77777777 77777777 77777777 77777777 
	Data:	77777777 00000000 77777777 77777777 
	Data:	77777777 77777777 77777777 77777777 
	Data:	77777777 77777777 77777777 77777777 
	Data:	77777777 77777777 77777777 77777777 
	Data:	77770000 00400000 00000000 80000080 
	Data:	00000080 80008000 00008000 80008080 
	Data:	0000c0c0 c0008080 80000000 ff0000ff 
	Data:	000000ff ff00ff00 0000ff00 ff00ffff 
	Data:	0000ffff ff000002 00040007 00200001 
	Data:	00020000 00000000 0000
)

(Tool.209
	InternalName:	"aTool3"
	Help:	"Point Select  //"
	Icon:	210
	Cursor:	"Cursors.Default"
	Apply:	"Z.SelectDeluxe.PointTool"
)

(AVIcon.210
	Name:	"selpnt.bmp"
	Data:	4e442049 6d616765 00010010 00100000 
	Data:	00807777 77777777 77777777 77777777 
	Data:	77777777 77777777 77777777 77777777 
	Data:	77777777 77777777 77777777 77777777 
	Data:	77777777 77777777 77777777 77000077 
	Data:	77777777 77000077 77777777 77000077 
	Data:	77777777 77000077 77777777 77777777 
	Data:	77777777 77777777 77777777 77777777 
	Data:	77777777 77777777 77777777 77777777 
	Data:	77770000 00400000 00000000 80000080 
	Data:	00000080 80008000 00008000 80008080 
	Data:	0000c0c0 c0008080 80000000 ff0000ff 
	Data:	000000ff ff00ff00 0000ff00 ff00ffff 
	Data:	0000ffff ff000002 00040007 00200001 
	Data:	00020000 00000000 0000
)

(Tool.211
	InternalName:	"aTool4"
	Help:	"Polygon Select  // "
	Icon:	212
	Cursor:	"Cursors.Default"
	Apply:	"Z.SelectDeluxe.PolygonTool"
)

(AVIcon.212
	Name:	"selchain.bmp"
	Data:	4e442049 6d616765 00010010 00100000 
	Data:	00807777 77777777 77777777 77777777 
	Data:	77777777 77777777 77777777 77777777 
	Data:	77777770 00000000 07777770 77777777 
	Data:	07777770 77777770 77777770 77777707 
	Data:	77777770 77777077 77777777 07777707 
	Data:	77777777 70777770 77777777 77077777 
	Data:	07777777 77700000 07777777 77777777 
	Data:	77777777 77777777 77777777 77777777 
	Data:	77770000 00400000 00000000 80000080 
	Data:	00000080 80008000 00008000 80008080 
	Data:	0000c0c0 c0008080 80000000 ff0000ff 
	Data:	000000ff ff00ff00 0000ff00 ff00ffff 
	Data:	0000ffff ff000002 00040007 00200001 
	Data:	00020000 00000000 0000
)

(Tool.213
	InternalName:	"aTool5"
	Help:	"PolyLine Select //"
	Icon:	214
	Cursor:	"Cursors.Default"
	Apply:	"Z.SelectDeluxe.PolylineTool"
)

(AVIcon.214
	Name:	"selpl.bmp"
	Data:	4e442049 6d616765 00010010 00100000 
	Data:	00807777 77777777 77777777 77777777 
	Data:	77777777 77777777 77777777 77777777 
	Data:	77777777 77777770 77777777 77777770 
	Data:	77777777 77777770 77777777 77777770 
	Data:	77777777 00000000 77777777 07777777 
	Data:	77777777 07777777 77777777 07777777 
	Data:	77777777 07777777 77777777 77777777 
	Data:	77777777 77777777 77777777 77777777 
	Data:	77770000 00400000 00000000 80000080 
	Data:	00000080 80008000 00008000 80008080 
	Data:	0000c0c0 c0008080 80000000 ff0000ff 
	Data:	000000ff ff00ff00 0000ff00 ff00ffff 
	Data:	0000ffff ff000002 00040007 00200001 
	Data:	00020000 00000000 0000
)

(Tool.215
	InternalName:	"aTool6"
	Help:	"Rectangle Select //"
	Icon:	216
	Cursor:	"Cursors.Default"
	Apply:	"Z.SelectDeluxe.RectTool"
)

(AVIcon.216
	Name:	"selframe.bmp"
	Data:	4e442049 6d616765 00010010 00100000 
	Data:	00807777 77777777 77777777 77777777 
	Data:	77777777 77777777 77777777 77777777 
	Data:	77777777 77777777 77777770 00000000 
	Data:	07777770 77777777 07777770 77777777 
	Data:	07777770 77777777 07777770 77777777 
	Data:	07777770 77777777 07777770 77777777 
	Data:	07777770 00000000 07777777 77777777 
	Data:	77777777 77777777 77777777 77777777 
	Data:	77770000 00400000 00000000 80000080 
	Data:	00000080 80008000 00008000 80008080 
	Data:	0000c0c0 c0008080 80000000 ff0000ff 
	Data:	000000ff ff00ff00 0000ff00 ff00ffff 
	Data:	0000ffff ff000002 00040007 00200001 
	Data:	00020000 00000000 0000
)

(Tool.217
	InternalName:	"aTool7"
	Help:	"Circle Select Donut // "
	Icon:	218
	Cursor:	"Cursors.Default"
	Apply:	"Z.SelectDeluxe.CircleDonutTool"
)

(AVIcon.218
	Name:	"seldonut.bmp"
	Data:	4e442049 6d616765 00010010 00100000 
	Data:	00807777 77777777 77777777 77777777 
	Data:	77777777 77770777 77777777 77000007 
	Data:	77777777 000fff00 07777777 0fffffff 
	Data:	07777770 0ff000ff 00777770 ff00700f 
	Data:	f0777700 ff07770f f0077770 ff00700f 
	Data:	f0777770 0ff000ff 00777777 0fffffff 
	Data:	07777777 000fff00 07777777 77000007 
	Data:	77777777 77770777 77777777 77777777 
	Data:	77770000 00400000 00000000 80000080 
	Data:	00000080 80008000 00008000 80008080 
	Data:	0000c0c0 c0008080 80000000 ff0000ff 
	Data:	000000ff ff00ff00 0000ff00 ff00ffff 
	Data:	0000ffff ff000002 00040007 00200001 
	Data:	00020000 00000000 0000
)

(Tool.219
	InternalName:	"aTool8"
	Help:	"Circle Select Boundary // "
	Icon:	220
	Cursor:	"Cursors.Default"
	Apply:	"Z.SelectDeluxe.CircleBoundaryTool"
)

(AVIcon.220
	Name:	"selcircl.bmp"
	Data:	4e442049 6d616765 00010010 00100000 
	Data:	00807777 77777777 77777777 77777777 
	Data:	77777777 77770777 77777777 77000007 
	Data:	77777777 000fff00 07777777 0fffffff 
	Data:	07777770 0fffffff 00777770 ffffffff 
	Data:	f0777700 ffffffff f0077770 ffffffff 
	Data:	f0777770 0fffffff 00777777 0fffffff 
	Data:	07777777 000fff00 07777777 77000007 
	Data:	77777777 77770777 77777777 77777777 
	Data:	77770000 00400000 00000000 80000080 
	Data:	00000080 80008000 00008000 80008080 
	Data:	0000c0c0 c0008080 80000000 ff0000ff 
	Data:	000000ff ff00ff00 0000ff00 ff00ffff 
	Data:	0000ffff ff000002 00040007 00200001 
	Data:	00020000 00000000 0000
)

(Tool.221
	InternalName:	"aTool9"
	Help:	"Line Select Inside  // "
	Icon:	222
	Cursor:	"Cursors.Default"
	Apply:	"Z.SelectDeluxe.LineBufferTool"
)

(AVIcon.222
	Name:	"sellnln.bmp"
	Data:	4e442049 6d616765 00010010 00100000 
	Data:	00807777 77777777 77777777 77777777 
	Data:	77777777 77777777 77777777 77777777 
	Data:	77777777 77777777 77777777 77777777 
	Data:	77777700 00000000 00777707 77777777 
	Data:	70777707 00000000 70777707 77777777 
	Data:	70777700 00000000 00777777 77777777 
	Data:	77777777 77777777 77777777 77777777 
	Data:	77777777 77777777 77777777 77777777 
	Data:	77770000 00400000 00000000 80000080 
	Data:	00000080 80008000 00008000 80008080 
	Data:	0000c0c0 c0008080 80000000 ff0000ff 
	Data:	000000ff ff00ff00 0000ff00 ff00ffff 
	Data:	0000ffff ff000002 00040007 00200001 
	Data:	00020000 00000000 0000
)

(Tool.223
	InternalName:	"aTool10"
	Help:	"Polygon Select Inside //"
	Icon:	224
	Cursor:	"Cursors.Default"
	Apply:	"Z.SelectDeluxe.PolygonBoundaryTool"
)

(AVIcon.224
	Name:	"selchn3.bmp"
	Data:	4e442049 6d616765 00010010 00100000 
	Data:	00807777 77777777 77777777 77777777 
	Data:	77777000 00000000 00077077 77777777 
	Data:	77077070 00000000 07077070 77777777 
	Data:	07077070 70000770 77077070 70707707 
	Data:	70777070 77007077 07777077 07707707 
	Data:	70777707 70770770 77077770 77077777 
	Data:	07077777 07700000 07077777 70777777 
	Data:	77077777 77000000 00077777 77777777 
	Data:	77770000 00400000 00000000 80000080 
	Data:	00000080 80008000 00008000 80008080 
	Data:	0000c0c0 c0008080 80000000 ff0000ff 
	Data:	000000ff ff00ff00 0000ff00 ff00ffff 
	Data:	0000ffff ff000002 00040007 00200001 
	Data:	00020000 00000000 0000
)

(Tool.225
	InternalName:	"aTool11"
	Help:	"Polyline Select Inside //"
	Icon:	226
	Cursor:	"Cursors.Default"
	Apply:	"Z.SelectDeluxe.PolylineBufferBoundaryTool"
)

(AVIcon.226
	Name:	"selplln.bmp"
	Data:	4e442049 6d616765 00010010 00100000 
	Data:	00807777 77777777 77777777 77777777 
	Data:	77777777 77777000 00777777 77777077 
	Data:	70777777 77777070 70777777 77777070 
	Data:	70777700 00000070 70777707 77777770 
	Data:	70777707 00000000 70777707 07777777 
	Data:	70777707 07000000 00777707 07077777 
	Data:	77777707 07077777 77777707 77077777 
	Data:	77777700 00077777 77777777 77777777 
	Data:	77770000 00400000 00000000 80000080 
	Data:	00000080 80008000 00008000 80008080 
	Data:	0000c0c0 c0008080 80000000 ff0000ff 
	Data:	000000ff ff00ff00 0000ff00 ff00ffff 
	Data:	0000ffff ff000002 00040007 00200001 
	Data:	00020000 00000000 0000
)

(Tool.227
	InternalName:	"aTool12"
	Help:	"Rectangle Select Inside //"
	Icon:	228
	Cursor:	"Cursors.Default"
	Apply:	"Z.SelectDeluxe.RectBoundaryTool"
)

(AVIcon.228
	Name:	"selrect3.bmp"
	Data:	4e442049 6d616765 00010010 00100000 
	Data:	00807777 77777777 77777777 77777777 
	Data:	77777777 77777777 77777000 00000000 
	Data:	00077077 77777777 77077070 00000000 
	Data:	07077070 77777777 07077070 70000007 
	Data:	07077070 70777707 07077070 70777707 
	Data:	07077070 70000007 07077070 77777777 
	Data:	07077070 00000000 07077077 77777777 
	Data:	77077000 00000000 00077777 77777777 
	Data:	77770000 00400000 00000000 80000080 
	Data:	00000080 80008000 00008000 80008080 
	Data:	0000c0c0 c0008080 80000000 ff0000ff 
	Data:	000000ff ff00ff00 0000ff00 ff00ffff 
	Data:	0000ffff ff000002 00040007 00200001 
	Data:	00020000 00000000 0000
)

(Tool.229
	InternalName:	"aTool13"
	Help:	"Rectangle Select Outside //"
	Icon:	230
	Cursor:	"Cursors.Default"
	Apply:	"Z.SelectDeluxe.RectBufferBoundaryTool"
)

(AVIcon.230
	Name:	"selrect2.bmp"
	Data:	4e442049 6d616765 00010010 00100000 
	Data:	00807777 77777777 77777777 77777777 
	Data:	77777777 77777777 77777000 00000000 
	Data:	000770ff ffffffff ff0770f0 00000000 
	Data:	0f0770f0 ffffffff 0f0770f0 f000000f 
	Data:	0f0770f0 f077770f 0f0770f0 f077770f 
	Data:	0f0770f0 f000000f 0f0770f0 ffffffff 
	Data:	0f0770f0 00000000 0f0770ff ffffffff 
	Data:	ff077000 00000000 00077777 77777777 
	Data:	77770000 00400000 00000000 80000080 
	Data:	00000080 80008000 00008000 80008080 
	Data:	0000c0c0 c0008080 80000000 ff0000ff 
	Data:	000000ff ff00ff00 0000ff00 ff00ffff 
	Data:	0000ffff ff000002 00040007 00200001 
	Data:	00020000 00000000 0000
)

(Tool.231
	InternalName:	"aTool14"
	Help:	"Polyline Select Outside //"
	Icon:	232
	Cursor:	"Cursors.Default"
	Apply:	"Z.SelectDeluxe.PolylineBufferTool"
)

(AVIcon.232
	Name:	"selplbuf.bmp"
	Data:	4e442049 6d616765 00010010 00100000 
	Data:	00807777 77777777 77777777 77777777 
	Data:	77777777 77777000 00777777 777770ff 
	Data:	f0777777 777770f0 f0777777 777770f0 
	Data:	f0777700 000000f0 f077770f fffffff0 
	Data:	f077770f 00000000 f077770f 0fffffff 
	Data:	f077770f 0f000000 0077770f 0f077777 
	Data:	7777770f 0f077777 7777770f ff077777 
	Data:	77777700 00077777 77777777 77777777 
	Data:	77770000 00400000 00000000 80000080 
	Data:	00000080 80008000 00008000 80008080 
	Data:	0000c0c0 c0008080 80000000 ff0000ff 
	Data:	000000ff ff00ff00 0000ff00 ff00ffff 
	Data:	0000ffff ff000002 00040007 00200001 
	Data:	00020000 00000000 0000
)

(Tool.233
	InternalName:	"aTool15"
	Help:	"Polygon Select Outside //"
	Icon:	234
	Cursor:	"Cursors.Default"
	Apply:	"Z.SelectDeluxe.PolygonBufferBoundaryTool"
)

(AVIcon.234
	Name:	"selchn2.bmp"
	Data:	4e442049 6d616765 00010010 00100000 
	Data:	00807777 77777777 77777777 77777777 
	Data:	77777000 00000000 000770ff ffffffff 
	Data:	ff0770f0 00000000 0f0770f0 ffffffff 
	Data:	0f0770f0 f0000ff0 ff0770f0 f070ff0f 
	Data:	f07770f0 ff00f0ff 077770ff 0ff0ff0f 
	Data:	f077770f f0ff0ff0 ff077770 ff0fffff 
	Data:	0f077777 0ff00000 0f077777 70ffffff 
	Data:	ff077777 77000000 00077777 77777777 
	Data:	77770000 00400000 00000000 80000080 
	Data:	00000080 80008000 00008000 80008080 
	Data:	0000c0c0 c0008080 80000000 ff0000ff 
	Data:	000000ff ff00ff00 0000ff00 ff00ffff 
	Data:	0000ffff ff000002 00040007 00200001 
	Data:	00020000 00000000 0000
)

(Tool.235
	InternalName:	"aTool16"
	Help:	"Line Select  OutSide // "
	Icon:	236
	Cursor:	"Cursors.Default"
	Apply:	"Z.SelectDeluxe.LineBufferBoundaryTool"
)

(AVIcon.236
	Name:	"sellnbuf.bmp"
	Data:	4e442049 6d616765 00010010 00100000 
	Data:	00807777 77777777 77777777 77777777 
	Data:	77777777 77777777 77777777 77777777 
	Data:	77777777 77777777 77777777 77777777 
	Data:	77777700 00000000 0077770f ffffffff 
	Data:	f077770f 00000000 f077770f ffffffff 
	Data:	f0777700 00000000 00777777 77777777 
	Data:	77777777 77777777 77777777 77777777 
	Data:	77777777 77777777 77777777 77777777 
	Data:	77770000 00400000 00000000 80000080 
	Data:	00000080 80008000 00008000 80008080 
	Data:	0000c0c0 c0008080 80000000 ff0000ff 
	Data:	000000ff ff00ff00 0000ff00 ff00ffff 
	Data:	0000ffff ff000002 00040007 00200001 
	Data:	00020000 00000000 0000
)

(LButn.237
	InternalName:	"aLabelButton17"
	Help:	"Clear Selected //"
	Label:	"Clear Selected"
	Click:	"Z.View.Clear.Selected"
)

(LButn.238
	InternalName:	"aLabelButton18"
	Help:	"Clear All Selected in Current View // "
	Label:	"Clear All in View"
	Click:	"Z.View.Clear.All"
)

(LButn.239
	InternalName:	"aLabelButton19"
	Help:	"Help //"
	Label:	"Help"
	Click:	"Z.View.Tool.Help"
)

(Tool.240
	InternalName:	"aTool20"
	Help:	"Circle Select Tool // "
	Icon:	241
	Cursor:	"Cursors.Default"
	Apply:	"Z.SelectDeluxe.CircleTool"
)

(AVIcon.241
	Name:	"selring.bmp"
	Data:	4e442049 6d616765 00010010 00100000 
	Data:	00807777 77777777 77777777 77777777 
	Data:	77777777 77770777 77777777 77000007 
	Data:	77777777 00077700 07777777 07777777 
	Data:	07777770 07777777 00777770 77777777 
	Data:	70777700 77777777 70077770 77777777 
	Data:	70777770 07777777 00777777 07777777 
	Data:	07777777 00077700 07777777 77000007 
	Data:	77777777 77770777 77777777 77777777 
	Data:	77770000 00400000 00000000 80000080 
	Data:	00000080 80008000 00008000 80008080 
	Data:	0000c0c0 c0008080 80000000 ff0000ff 
	Data:	000000ff ff00ff00 0000ff00 ff00ffff 
	Data:	0000ffff ff000002 00040007 00200001 
	Data:	00020000 00000000 0000
)

(Tool.242
	InternalName:	"aTool21"
	Icon:	243
	Cursor:	"Cursors.Default"
	Apply:	"Z.SelectDeluxe.LineTool"
)

(AVIcon.243
	Name:	"selln.bmp"
	Data:	4e442049 6d616765 00010010 00100000 
	Data:	00807777 77777777 77777777 77777777 
	Data:	77777777 77777777 77777777 77777777 
	Data:	77777777 77777777 77777777 77777777 
	Data:	77777777 77777777 77777777 77777777 
	Data:	77777777 00000000 77777777 77777777 
	Data:	77777777 77777777 77777777 77777777 
	Data:	77777777 77777777 77777777 77777777 
	Data:	77777777 77777777 77777777 77777777 
	Data:	77770000 00400000 00000000 80000080 
	Data:	00000080 80008000 00008000 80008080 
	Data:	0000c0c0 c0008080 80000000 ff0000ff 
	Data:	000000ff ff00ff00 0000ff00 ff00ffff 
	Data:	0000ffff ff000002 00040007 00200001 
	Data:	00020000 00000000 0000
)

(Tool.244
	InternalName:	"aTool22"
	Icon:	245
	Cursor:	"Cursors.Default"
	Apply:	"Z.SelectDeluxe.PointTool"
)

(AVIcon.245
	Name:	"selpnt.bmp"
	Data:	4e442049 6d616765 00010010 00100000 
	Data:	00807777 77777777 77777777 77777777 
	Data:	77777777 77777777 77777777 77777777 
	Data:	77777777 77777777 77777777 77777777 
	Data:	77777777 77777777 77777777 77000077 
	Data:	77777777 77000077 77777777 77000077 
	Data:	77777777 77000077 77777777 77777777 
	Data:	77777777 77777777 77777777 77777777 
	Data:	77777777 77777777 77777777 77777777 
	Data:	77770000 00400000 00000000 80000080 
	Data:	00000080 80008000 00008000 80008080 
	Data:	0000c0c0 c0008080 80000000 ff0000ff 
	Data:	000000ff ff00ff00 0000ff00 ff00ffff 
	Data:	0000ffff ff000002 00040007 00200001 
	Data:	00020000 00000000 0000
)

(Tool.246
	InternalName:	"aTool23"
	Icon:	247
	Cursor:	"Cursors.Default"
	Apply:	"Z.SelectDeluxe.PolygonTool"
)

(AVIcon.247
	Name:	"selchain.bmp"
	Data:	4e442049 6d616765 00010010 00100000 
	Data:	00807777 77777777 77777777 77777777 
	Data:	77777777 77777777 77777777 77777777 
	Data:	77777770 00000000 07777770 77777777 
	Data:	07777770 77777770 77777770 77777707 
	Data:	77777770 77777077 77777777 07777707 
	Data:	77777777 70777770 77777777 77077777 
	Data:	07777777 77700000 07777777 77777777 
	Data:	77777777 77777777 77777777 77777777 
	Data:	77770000 00400000 00000000 80000080 
	Data:	00000080 80008000 00008000 80008080 
	Data:	0000c0c0 c0008080 80000000 ff0000ff 
	Data:	000000ff ff00ff00 0000ff00 ff00ffff 
	Data:	0000ffff ff000002 00040007 00200001 
	Data:	00020000 00000000 0000
)

(Tool.248
	InternalName:	"aTool24"
	Icon:	249
	Cursor:	"Cursors.Default"
	Apply:	"Z.SelectDeluxe.PolylineTool"
)

(AVIcon.249
	Name:	"selpl.bmp"
	Data:	4e442049 6d616765 00010010 00100000 
	Data:	00807777 77777777 77777777 77777777 
	Data:	77777777 77777777 77777777 77777777 
	Data:	77777777 77777770 77777777 77777770 
	Data:	77777777 77777770 77777777 77777770 
	Data:	77777777 00000000 77777777 07777777 
	Data:	77777777 07777777 77777777 07777777 
	Data:	77777777 07777777 77777777 77777777 
	Data:	77777777 77777777 77777777 77777777 
	Data:	77770000 00400000 00000000 80000080 
	Data:	00000080 80008000 00008000 80008080 
	Data:	0000c0c0 c0008080 80000000 ff0000ff 
	Data:	000000ff ff00ff00 0000ff00 ff00ffff 
	Data:	0000ffff ff000002 00040007 00200001 
	Data:	00020000 00000000 0000
)

(Tool.250
	InternalName:	"aTool25"
	Icon:	251
	Cursor:	"Cursors.Default"
	Apply:	"Z.SelectDeluxe.RectTool"
)

(AVIcon.251
	Name:	"selframe.bmp"
	Data:	4e442049 6d616765 00010010 00100000 
	Data:	00807777 77777777 77777777 77777777 
	Data:	77777777 77777777 77777777 77777777 
	Data:	77777777 77777777 77777770 00000000 
	Data:	07777770 77777777 07777770 77777777 
	Data:	07777770 77777777 07777770 77777777 
	Data:	07777770 77777777 07777770 77777777 
	Data:	07777770 00000000 07777777 77777777 
	Data:	77777777 77777777 77777777 77777777 
	Data:	77770000 00400000 00000000 80000080 
	Data:	00000080 80008000 00008000 80008080 
	Data:	0000c0c0 c0008080 80000000 ff0000ff 
	Data:	000000ff ff00ff00 0000ff00 ff00ffff 
	Data:	0000ffff ff000002 00040007 00200001 
	Data:	00020000 00000000 0000
)

(Tool.252
	InternalName:	"aTool26"
	Icon:	253
	Cursor:	"Cursors.Default"
	Apply:	"Z.SelectDeluxe.CircleDonutTool"
)

(AVIcon.253
	Name:	"seldonut.bmp"
	Data:	4e442049 6d616765 00010010 00100000 
	Data:	00807777 77777777 77777777 77777777 
	Data:	77777777 77770777 77777777 77000007 
	Data:	77777777 000fff00 07777777 0fffffff 
	Data:	07777770 0ff000ff 00777770 ff00700f 
	Data:	f0777700 ff07770f f0077770 ff00700f 
	Data:	f0777770 0ff000ff 00777777 0fffffff 
	Data:	07777777 000fff00 07777777 77000007 
	Data:	77777777 77770777 77777777 77777777 
	Data:	77770000 00400000 00000000 80000080 
	Data:	00000080 80008000 00008000 80008080 
	Data:	0000c0c0 c0008080 80000000 ff0000ff 
	Data:	000000ff ff00ff00 0000ff00 ff00ffff 
	Data:	0000ffff ff000002 00040007 00200001 
	Data:	00020000 00000000 0000
)

(Tool.254
	InternalName:	"aTool27"
	Icon:	255
	Cursor:	"Cursors.Default"
	Apply:	"Z.SelectDeluxe.CircleBoundaryTool"
)

(AVIcon.255
	Name:	"selcircl.bmp"
	Data:	4e442049 6d616765 00010010 00100000 
	Data:	00807777 77777777 77777777 77777777 
	Data:	77777777 77770777 77777777 77000007 
	Data:	77777777 000fff00 07777777 0fffffff 
	Data:	07777770 0fffffff 00777770 ffffffff 
	Data:	f0777700 ffffffff f0077770 ffffffff 
	Data:	f0777770 0fffffff 00777777 0fffffff 
	Data:	07777777 000fff00 07777777 77000007 
	Data:	77777777 77770777 77777777 77777777 
	Data:	77770000 00400000 00000000 80000080 
	Data:	00000080 80008000 00008000 80008080 
	Data:	0000c0c0 c0008080 80000000 ff0000ff 
	Data:	000000ff ff00ff00 0000ff00 ff00ffff 
	Data:	0000ffff ff000002 00040007 00200001 
	Data:	00020000 00000000 0000
)

(Tool.256
	InternalName:	"aTool28"
	Icon:	257
	Cursor:	"Cursors.Default"
	Apply:	"Z.SelectDeluxe.LineBufferTool"
)

(AVIcon.257
	Name:	"sellnln.bmp"
	Data:	4e442049 6d616765 00010010 00100000 
	Data:	00807777 77777777 77777777 77777777 
	Data:	77777777 77777777 77777777 77777777 
	Data:	77777777 77777777 77777777 77777777 
	Data:	77777700 00000000 00777707 77777777 
	Data:	70777707 00000000 70777707 77777777 
	Data:	70777700 00000000 00777777 77777777 
	Data:	77777777 77777777 77777777 77777777 
	Data:	77777777 77777777 77777777 77777777 
	Data:	77770000 00400000 00000000 80000080 
	Data:	00000080 80008000 00008000 80008080 
	Data:	0000c0c0 c0008080 80000000 ff0000ff 
	Data:	000000ff ff00ff00 0000ff00 ff00ffff 
	Data:	0000ffff ff000002 00040007 00200001 
	Data:	00020000 00000000 0000
)

(Tool.258
	InternalName:	"aTool29"
	Icon:	259
	Cursor:	"Cursors.Default"
	Apply:	"Z.SelectDeluxe.PolygonBoundaryTool"
)

(AVIcon.259
	Name:	"selchn3.bmp"
	Data:	4e442049 6d616765 00010010 00100000 
	Data:	00807777 77777777 77777777 77777777 
	Data:	77777000 00000000 00077077 77777777 
	Data:	77077070 00000000 07077070 77777777 
	Data:	07077070 70000770 77077070 70707707 
	Data:	70777070 77007077 07777077 07707707 
	Data:	70777707 70770770 77077770 77077777 
	Data:	07077777 07700000 07077777 70777777 
	Data:	77077777 77000000 00077777 77777777 
	Data:	77770000 00400000 00000000 80000080 
	Data:	00000080 80008000 00008000 80008080 
	Data:	0000c0c0 c0008080 80000000 ff0000ff 
	Data:	000000ff ff00ff00 0000ff00 ff00ffff 
	Data:	0000ffff ff000002 00040007 00200001 
	Data:	00020000 00000000 0000
)

(Tool.260
	InternalName:	"aTool30"
	Icon:	261
	Cursor:	"Cursors.Default"
	Apply:	"Z.SelectDeluxe.PolylineBufferBoundaryTool"
)

(AVIcon.261
	Name:	"selplln.bmp"
	Data:	4e442049 6d616765 00010010 00100000 
	Data:	00807777 77777777 77777777 77777777 
	Data:	77777777 77777000 00777777 77777077 
	Data:	70777777 77777070 70777777 77777070 
	Data:	70777700 00000070 70777707 77777770 
	Data:	70777707 00000000 70777707 07777777 
	Data:	70777707 07000000 00777707 07077777 
	Data:	77777707 07077777 77777707 77077777 
	Data:	77777700 00077777 77777777 77777777 
	Data:	77770000 00400000 00000000 80000080 
	Data:	00000080 80008000 00008000 80008080 
	Data:	0000c0c0 c0008080 80000000 ff0000ff 
	Data:	000000ff ff00ff00 0000ff00 ff00ffff 
	Data:	0000ffff ff000002 00040007 00200001 
	Data:	00020000 00000000 0000
)

(Tool.262
	InternalName:	"aTool31"
	Icon:	263
	Cursor:	"Cursors.Default"
	Apply:	"Z.SelectDeluxe.RectBoundaryTool"
)

(AVIcon.263
	Name:	"selrect3.bmp"
	Data:	4e442049 6d616765 00010010 00100000 
	Data:	00807777 77777777 77777777 77777777 
	Data:	77777777 77777777 77777000 00000000 
	Data:	00077077 77777777 77077070 00000000 
	Data:	07077070 77777777 07077070 70000007 
	Data:	07077070 70777707 07077070 70777707 
	Data:	07077070 70000007 07077070 77777777 
	Data:	07077070 00000000 07077077 77777777 
	Data:	77077000 00000000 00077777 77777777 
	Data:	77770000 00400000 00000000 80000080 
	Data:	00000080 80008000 00008000 80008080 
	Data:	0000c0c0 c0008080 80000000 ff0000ff 
	Data:	000000ff ff00ff00 0000ff00 ff00ffff 
	Data:	0000ffff ff000002 00040007 00200001 
	Data:	00020000 00000000 0000
)

(Tool.264
	InternalName:	"aTool32"
	Icon:	265
	Cursor:	"Cursors.Default"
	Apply:	"Z.SelectDeluxe.RectBufferBoundaryTool"
)

(AVIcon.265
	Name:	"selrect2.bmp"
	Data:	4e442049 6d616765 00010010 00100000 
	Data:	00807777 77777777 77777777 77777777 
	Data:	77777777 77777777 77777000 00000000 
	Data:	000770ff ffffffff ff0770f0 00000000 
	Data:	0f0770f0 ffffffff 0f0770f0 f000000f 
	Data:	0f0770f0 f077770f 0f0770f0 f077770f 
	Data:	0f0770f0 f000000f 0f0770f0 ffffffff 
	Data:	0f0770f0 00000000 0f0770ff ffffffff 
	Data:	ff077000 00000000 00077777 77777777 
	Data:	77770000 00400000 00000000 80000080 
	Data:	00000080 80008000 00008000 80008080 
	Data:	0000c0c0 c0008080 80000000 ff0000ff 
	Data:	000000ff ff00ff00 0000ff00 ff00ffff 
	Data:	0000ffff ff000002 00040007 00200001 
	Data:	00020000 00000000 0000
)

(Tool.266
	InternalName:	"aTool33"
	Icon:	267
	Cursor:	"Cursors.Default"
	Apply:	"Z.SelectDeluxe.PolylineBufferTool"
)

(AVIcon.267
	Name:	"selplbuf.bmp"
	Data:	4e442049 6d616765 00010010 00100000 
	Data:	00807777 77777777 77777777 77777777 
	Data:	77777777 77777000 00777777 777770ff 
	Data:	f0777777 777770f0 f0777777 777770f0 
	Data:	f0777700 000000f0 f077770f fffffff0 
	Data:	f077770f 00000000 f077770f 0fffffff 
	Data:	f077770f 0f000000 0077770f 0f077777 
	Data:	7777770f 0f077777 7777770f ff077777 
	Data:	77777700 00077777 77777777 77777777 
	Data:	77770000 00400000 00000000 80000080 
	Data:	00000080 80008000 00008000 80008080 
	Data:	0000c0c0 c0008080 80000000 ff0000ff 
	Data:	000000ff ff00ff00 0000ff00 ff00ffff 
	Data:	0000ffff ff000002 00040007 00200001 
	Data:	00020000 00000000 0000
)

(Tool.268
	InternalName:	"aTool34"
	Icon:	269
	Cursor:	"Cursors.Default"
	Apply:	"Z.SelectDeluxe.PolygonBufferBoundaryTool"
)

(AVIcon.269
	Name:	"selchn2.bmp"
	Data:	4e442049 6d616765 00010010 00100000 
	Data:	00807777 77777777 77777777 77777777 
	Data:	77777000 00000000 000770ff ffffffff 
	Data:	ff0770f0 00000000 0f0770f0 ffffffff 
	Data:	0f0770f0 f0000ff0 ff0770f0 f070ff0f 
	Data:	f07770f0 ff00f0ff 077770ff 0ff0ff0f 
	Data:	f077770f f0ff0ff0 ff077770 ff0fffff 
	Data:	0f077777 0ff00000 0f077777 70ffffff 
	Data:	ff077777 77000000 00077777 77777777 
	Data:	77770000 00400000 00000000 80000080 
	Data:	00000080 80008000 00008000 80008080 
	Data:	0000c0c0 c0008080 80000000 ff0000ff 
	Data:	000000ff ff00ff00 0000ff00 ff00ffff 
	Data:	0000ffff ff000002 00040007 00200001 
	Data:	00020000 00000000 0000
)

(Tool.270
	InternalName:	"aTool35"
	Icon:	271
	Cursor:	"Cursors.Default"
	Apply:	"Z.SelectDeluxe.LineBufferBoundaryTool"
)

(AVIcon.271
	Name:	"sellnbuf.bmp"
	Data:	4e442049 6d616765 00010010 00100000 
	Data:	00807777 77777777 77777777 77777777 
	Data:	77777777 77777777 77777777 77777777 
	Data:	77777777 77777777 77777777 77777777 
	Data:	77777700 00000000 0077770f ffffffff 
	Data:	f077770f 00000000 f077770f ffffffff 
	Data:	f0777700 00000000 00777777 77777777 
	Data:	77777777 77777777 77777777 77777777 
	Data:	77777777 77777777 77777777 77777777 
	Data:	77770000 00400000 00000000 80000080 
	Data:	00000080 80008000 00008000 80008080 
	Data:	0000c0c0 c0008080 80000000 ff0000ff 
	Data:	000000ff ff00ff00 0000ff00 ff00ffff 
	Data:	0000ffff ff000002 00040007 00200001 
	Data:	00020000 00000000 0000
)

(LButn.272
	InternalName:	"aLabelButton36"
	Label:	"Clear Selected"
	Click:	"Z.View.Clear.Selected"
)

(LButn.273
	InternalName:	"aLabelButton37"
	Label:	"Clear All in View"
	Click:	"Z.View.Clear.All"
)

(LButn.274
	InternalName:	"aLabelButton38"
	Label:	"Help"
)

(RectD.275
	Left:	5.00000000000000
	Top:	26.00000000000000
	Right:	29.00000000000000
	Bottom:	5.00000000000000
)

(RectD.276
	Left:	34.00000000000000
	Top:	26.00000000000000
	Right:	58.00000000000000
	Bottom:	5.00000000000000
)

(RectD.277
	Left:	149.00000000000000
	Top:	26.00000000000000
	Right:	173.00000000000000
	Bottom:	5.00000000000000
)

(RectD.278
	Left:	63.00000000000000
	Top:	26.00000000000000
	Right:	87.00000000000000
	Bottom:	5.00000000000000
)

(RectD.279
	Left:	91.00000000000000
	Top:	26.00000000000000
	Right:	115.00000000000000
	Bottom:	5.00000000000000
)

(RectD.280
	Left:	120.00000000000000
	Top:	26.00000000000000
	Right:	144.00000000000000
	Bottom:	5.00000000000000
)

(RectD.281
	Left:	4.00000000000000
	Top:	80.00000000000000
	Right:	28.00000000000000
	Bottom:	59.00000000000000
)

(RectD.282
	Left:	4.00000000000000
	Top:	53.00000000000000
	Right:	29.00000000000000
	Bottom:	32.00000000000000
)

(RectD.283
	Left:	33.00000000000000
	Top:	53.00000000000000
	Right:	58.00000000000000
	Bottom:	32.00000000000000
)

(RectD.284
	Left:	62.00000000000000
	Top:	53.00000000000000
	Right:	87.00000000000000
	Bottom:	32.00000000000000
)

(RectD.285
	Left:	90.00000000000000
	Top:	53.00000000000000
	Right:	115.00000000000000
	Bottom:	32.00000000000000
)

(RectD.286
	Left:	119.00000000000000
	Top:	53.00000000000000
	Right:	144.00000000000000
	Bottom:	32.00000000000000
)

(RectD.287
	Left:	119.00000000000000
	Top:	80.00000000000000
	Right:	143.00000000000000
	Bottom:	59.00000000000000
)

(RectD.288
	Left:	90.00000000000000
	Top:	80.00000000000000
	Right:	114.00000000000000
	Bottom:	59.00000000000000
)

(RectD.289
	Left:	62.00000000000000
	Top:	80.00000000000000
	Right:	86.00000000000000
	Bottom:	59.00000000000000
)

(RectD.290
	Left:	33.00000000000000
	Top:	80.00000000000000
	Right:	57.00000000000000
	Bottom:	59.00000000000000
)

(RectD.291
	Left:	3.00000000000000
	Top:	102.00000000000000
	Right:	84.00000000000000
	Bottom:	83.00000000000000
)

(RectD.292
	Left:	87.00000000000000
	Top:	102.00000000000000
	Right:	172.00000000000000
	Bottom:	83.00000000000000
)

(RectD.293
	Left:	146.00000000000000
	Top:	81.00000000000000
	Right:	173.00000000000000
	Bottom:	31.00000000000000
)

(RectD.294
	Left:	169.00000000000000
	Top:	-291.00000000000000
	Right:	193.00000000000000
	Bottom:	-312.00000000000000
)

(RectD.295
	Left:	198.00000000000000
	Top:	-291.00000000000000
	Right:	222.00000000000000
	Bottom:	-312.00000000000000
)

(RectD.296
	Left:	313.00000000000000
	Top:	-291.00000000000000
	Right:	337.00000000000000
	Bottom:	-312.00000000000000
)

(RectD.297
	Left:	227.00000000000000
	Top:	-291.00000000000000
	Right:	251.00000000000000
	Bottom:	-312.00000000000000
)

(RectD.298
	Left:	255.00000000000000
	Top:	-291.00000000000000
	Right:	279.00000000000000
	Bottom:	-312.00000000000000
)

(RectD.299
	Left:	284.00000000000000
	Top:	-291.00000000000000
	Right:	308.00000000000000
	Bottom:	-312.00000000000000
)

(RectD.300
	Left:	170.00000000000000
	Top:	-237.00000000000000
	Right:	194.00000000000000
	Bottom:	-258.00000000000000
)

(RectD.301
	Left:	170.00000000000000
	Top:	-264.00000000000000
	Right:	195.00000000000000
	Bottom:	-285.00000000000000
)

(RectD.302
	Left:	199.00000000000000
	Top:	-264.00000000000000
	Right:	224.00000000000000
	Bottom:	-285.00000000000000
)

(RectD.303
	Left:	228.00000000000000
	Top:	-264.00000000000000
	Right:	253.00000000000000
	Bottom:	-285.00000000000000
)

(RectD.304
	Left:	256.00000000000000
	Top:	-264.00000000000000
	Right:	281.00000000000000
	Bottom:	-285.00000000000000
)

(RectD.305
	Left:	285.00000000000000
	Top:	-264.00000000000000
	Right:	310.00000000000000
	Bottom:	-285.00000000000000
)

(RectD.306
	Left:	285.00000000000000
	Top:	-237.00000000000000
	Right:	309.00000000000000
	Bottom:	-258.00000000000000
)

(RectD.307
	Left:	256.00000000000000
	Top:	-237.00000000000000
	Right:	280.00000000000000
	Bottom:	-258.00000000000000
)

(RectD.308
	Left:	228.00000000000000
	Top:	-237.00000000000000
	Right:	252.00000000000000
	Bottom:	-258.00000000000000
)

(RectD.309
	Left:	199.00000000000000
	Top:	-237.00000000000000
	Right:	223.00000000000000
	Bottom:	-258.00000000000000
)

(RectD.310
	Left:	170.00000000000000
	Top:	-215.00000000000000
	Right:	248.00000000000000
	Bottom:	-234.00000000000000
)

(RectD.311
	Left:	261.00000000000000
	Top:	-215.00000000000000
	Right:	339.00000000000000
	Bottom:	-234.00000000000000
)

(RectD.312
	Left:	313.00000000000000
	Top:	-237.00000000000000
	Right:	340.00000000000000
	Bottom:	-287.00000000000000
)

(Nil.313
)

(AVDLog.314
	Name:	"Change VectorFill Symbols"
	X:	387
	Y:	60
	W:	289
	H:	303
	ConstrainedControlNames:	315
	ConstrainedControlNames:	316
	ConstrainedControlNames:	317
	ConstrainedControlNames:	318
	ConstrainedControlNames:	319
	ConstrainedControlNames:	320
	Constraints:	321
	Constraints:	322
	Constraints:	323
	Constraints:	324
	Constraints:	325
	Constraints:	326
	Server:	11
	ControlPanel:	327
	ObjectTag:	373
	Title:	"Change VectorFill Symbols"
	EscapeEnabled:	1
	AlwaysOnTop:	1
	HasTitleBar:	1
	Closeable:	1
	Open:	"Fill.Open"
	DefaultButton:	374
)

(AVStr.315
	S:	"btn_OK"
)

(AVStr.316
	S:	"btn_Cancel"
)

(AVStr.317
	S:	"aLabelButton1"
)

(AVStr.318
	S:	"btn_new"
)

(AVStr.319
	S:	"btn_del"
)

(AVStr.320
	S:	"aLabelButton1"
)

(Numb.321
	N:	85.00000000000000
)

(Numb.322
	N:	85.00000000000000
)

(Numb.323
	N:	85.00000000000000
)

(Numb.324
	N:	85.00000000000000
)

(Numb.325
	N:	85.00000000000000
)

(Numb.326
	N:	85.00000000000000
)

(CPanel.327
	Child:	328
	Child:	330
	Child:	332
	Child:	334
	Child:	336
	Child:	338
	Child:	340
	Child:	342
	Child:	344
	Child:	346
	Child:	347
	Child:	348
	Child:	350
	Child:	351
	Child:	352
	Child:	353
	Child:	355
	ResBox:	356
	ResBox:	357
	ResBox:	358
	ResBox:	359
	ResBox:	360
	ResBox:	361
	ResBox:	362
	ResBox:	363
	ResBox:	364
	ResBox:	365
	ResBox:	366
	ResBox:	367
	ResBox:	368
	ResBox:	369
	ResBox:	370
	ResBox:	371
	ResBox:	372
	Listening:	1
)

(TextLine.328
	InternalName:	"txl_Style"
	Help:	"The Style is one of Hatch, Rectangle, Dot, RandDot, or CrossHatch."
	Text:	"VECTORFILL_STYLE_DOT"
	Label:	"Style:"
	LabelSize:	70
	Constraints:	0x55
	Listening:	1
	ReadOnly:	1
	TextType:	329
	NextControl:	11
)

(AVEnum.329
	Name:	"TEXTLINE_TYPE_ALL"
)

(TextLine.330
	InternalName:	"txl_Angle"
	Help:	"The Angle is the angle at which the lines are drawn."
	Text:	"25"
	Label:	"Angle:"
	LabelSize:	70
	Constraints:	0x55
	Listening:	1
	TextType:	331
	Apply:	"Fill.Apply"
	NextControl:	11
)

(AVEnum.331
	Name:	"TEXTLINE_TYPE_ALL"
)

(TextLine.332
	InternalName:	"txl_Height"
	Help:	"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."
	Text:	"1"
	Label:	"Height:"
	LabelSize:	70
	Constraints:	0x55
	Listening:	1
	TextType:	333
	Apply:	"Fill.Apply"
	NextControl:	11
)

(AVEnum.333
	Name:	"TEXTLINE_TYPE_ALL"
)

(TextLine.334
	InternalName:	"txl_Width"
	Help:	"The Width is the horizontal width of each line segment for a broken line."
	Text:	"0.5"
	Label:	"Width:"
	LabelSize:	70
	Constraints:	0x55
	Listening:	1
	TextType:	335
	Apply:	"Fill.Apply"
	NextControl:	11
)

(AVEnum.335
	Name:	"TEXTLINE_TYPE_ALL"
)

(TextLine.336
	InternalName:	"txl_PenSize"
	Help:	"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."
	Text:	"1"
	Label:	"Pen Size:"
	LabelSize:	70
	Constraints:	0x55
	Listening:	1
	TextType:	337
	Apply:	"Fill.Apply"
	NextControl:	11
)

(AVEnum.337
	Name:	"TEXTLINE_TYPE_ALL"
)

(TextLine.338
	InternalName:	"txl_XOffset"
	Help:	"The XOffset is the starting horizontal offset for the filling algorithm.\n\n"
	Text:	"4"
	Label:	"X Offset:"
	LabelSize:	70
	Constraints:	0x55
	Listening:	1
	TextType:	339
	Apply:	"Fill.Apply"
	NextControl:	11
)

(AVEnum.339
	Name:	"TEXTLINE_TYPE_ALL"
)

(TextLine.340
	InternalName:	"txl_XSeparation"
	Help:	"The XSeparation is the horizontal separation (spacing) between line segments for a broken line."
	Text:	"4"
	Label:	"X Separation:"
	LabelSize:	70
	Constraints:	0x55
	Listening:	1
	TextType:	341
	Apply:	"Fill.Apply"
	NextControl:	11
)

(AVEnum.341
	Name:	"TEXTLINE_TYPE_ALL"
)

(TextLine.342
	InternalName:	"txl_YOffset"
	Help:	"The YOffset is the starting vertical offset for the filling algorithm."
	Text:	"4"
	Label:	"Y Offset:"
	LabelSize:	70
	Constraints:	0x55
	Listening:	1
	TextType:	343
	Apply:	"Fill.Apply"
	NextControl:	11
)

(AVEnum.343
	Name:	"TEXTLINE_TYPE_ALL"
)

(TextLine.344
	InternalName:	"txl_YSeparation"
	Help:	"The YSeparation is the vertical separation (spacing) between line segments."
	Text:	"4"
	Label:	"Y Separation:"
	LabelSize:	70
	Constraints:	0x55
	Listening:	1
	TextType:	345
	Apply:	"Fill.Apply"
	NextControl:	11
)

(AVEnum.345
	Name:	"TEXTLINE_TYPE_ALL"
)

(LButn.346
	InternalName:	"btn_OK"
	Label:	"Apply"
	Click:	"Fill.Apply"
)

(LButn.347
	InternalName:	"btn_Cancel"
	Label:	"Cancel"
	Click:	"Fill.Cancel"
)

(TextLine.348
	InternalName:	"txl_Number"
	Text:	"50"
	Label:	"Number:"
	LabelSize:	70
	Constraints:	0x55
	Listening:	1
	TextType:	349
	Apply:	"Fill.NewNumber"
	NextControl:	11
)

(AVEnum.349
	Name:	"TEXTLINE_TYPE_INTEGER"
)

(LButn.350
	InternalName:	"aLabelButton1"
	Label:	"From Palette"
	Click:	"Fill.GetSymbol"
)

(LButn.351
	InternalName:	"btn_new"
	Label:	"NEW"
	Click:	"Fill.New"
)

(LButn.352
	InternalName:	"btn_del"
	Label:	"DEL"
	Click:	"Fill.Del"
)

(AVIBox.353
	InternalName:	"aIconBox2"
	Constraints:	0x55
	Icon:	354
	Listening:	1
)

(AVIcon.354
	Name:	"Color"
	Res:	"Icons.Color"

)

(LButn.355
	InternalName:	"aLabelButton1"
	Label:	"HELP"
	Click:	"Fill.Help"
)

(RectD.356
	Left:	7.00000000000000
	Top:	61.00000000000000
	Right:	275.00000000000000
	Bottom:	41.00000000000000
)

(RectD.357
	Left:	7.00000000000000
	Top:	84.00000000000000
	Right:	275.00000000000000
	Bottom:	64.00000000000000
)

(RectD.358
	Left:	7.00000000000000
	Top:	108.00000000000000
	Right:	275.00000000000000
	Bottom:	88.00000000000000
)

(RectD.359
	Left:	7.00000000000000
	Top:	131.00000000000000
	Right:	275.00000000000000
	Bottom:	111.00000000000000
)

(RectD.360
	Left:	7.00000000000000
	Top:	155.00000000000000
	Right:	275.00000000000000
	Bottom:	135.00000000000000
)

(RectD.361
	Left:	7.00000000000000
	Top:	178.00000000000000
	Right:	275.00000000000000
	Bottom:	158.00000000000000
)

(RectD.362
	Left:	7.00000000000000
	Top:	201.00000000000000
	Right:	275.00000000000000
	Bottom:	181.00000000000000
)

(RectD.363
	Left:	7.00000000000000
	Top:	225.00000000000000
	Right:	275.00000000000000
	Bottom:	205.00000000000000
)

(RectD.364
	Left:	7.00000000000000
	Top:	248.00000000000000
	Right:	275.00000000000000
	Bottom:	228.00000000000000
)

(RectD.365
	Left:	6.00000000000000
	Top:	291.00000000000000
	Right:	80.00000000000000
	Bottom:	259.00000000000000
)

(RectD.366
	Left:	104.00000000000000
	Top:	291.00000000000000
	Right:	178.00000000000000
	Bottom:	259.00000000000000
)

(RectD.367
	Left:	8.00000000000000
	Top:	32.00000000000000
	Right:	113.00000000000000
	Bottom:	12.00000000000000
)

(RectD.368
	Left:	202.00000000000000
	Top:	291.00000000000000
	Right:	276.00000000000000
	Bottom:	259.00000000000000
)

(RectD.369
	Left:	121.00000000000000
	Top:	30.00000000000000
	Right:	158.00000000000000
	Bottom:	10.00000000000000
)

(RectD.370
	Left:	166.00000000000000
	Top:	30.00000000000000
	Right:	203.00000000000000
	Bottom:	11.00000000000000
)

(RectD.371
	Left:	247.00000000000000
	Top:	34.00000000000000
	Right:	279.00000000000000
	Bottom:	5.00000000000000
)

(RectD.372
	Left:	210.00000000000000
	Top:	30.00000000000000
	Right:	247.00000000000000
	Bottom:	11.00000000000000
)

(Nil.373
)

(Nil.374
)

(AVDLog.375
	Name:	"DataOverLay"
	X:	11
	Y:	58
	W:	381
	H:	423
	ConstrainedControlNames:	376
	ConstrainedControlNames:	377
	ConstrainedControlNames:	378
	ConstrainedControlNames:	379
	Constraints:	380
	Constraints:	381
	Constraints:	382
	Constraints:	383
	Server:	384
	ControlPanel:	385
	Title:	"                   D A T A   O V E R L A Y   T O O L"
	EscapeEnabled:	1
	AlwaysOnTop:	1
	HasTitleBar:	1
	Closeable:	1
	Open:	"DO.OPEN"
	DefaultButton:	487
)

(AVStr.376
	S:	"lblCmd.Lock"
)

(AVStr.377
	S:	"lblCmdShowInfo"
)

(AVStr.378
	S:	"lblcmdGo"
)

(AVStr.379
	S:	"lblHelp"
)

(Numb.380
	N:	85.00000000000000
)

(Numb.381
	N:	85.00000000000000
)

(Numb.382
	N:	85.00000000000000
)

(Numb.383
	N:	85.00000000000000
)

(Nil.384
)

(CPanel.385
	Child:	386
	Child:	402
	Child:	463
	Child:	480
	Child:	481
	ResBox:	482
	ResBox:	483
	ResBox:	484
	ResBox:	485
	ResBox:	486
	Listening:	1
)

(CPanel.386
	InternalName:	"cpSetUp"
	Child:	387
	Child:	388
	Child:	389
	Child:	391
	Child:	393
	Child:	395
	Constraints:	0x55
	ResBox:	396
	ResBox:	397
	ResBox:	398
	ResBox:	399
	ResBox:	400
	ResBox:	401
	VisibleBorder:	1
	Listening:	1
)

(TextLabel.387
	InternalName:	"txtFT"
	Constraints:	0x55
	Label:	"From Theme"
	Listening:	1
)

(TextLabel.388
	InternalName:	"txtTT"
	Constraints:	0x55
	Label:	"To Theme"
	Listening:	1
)

(AVLBox.389
	InternalName:	"cbxFrom"
	NextControl:	384
	ContentKind:	4
	Constraints:	0x55
	ColumnCount:	1
	Listening:	1
	VerticalScroll:	1
	SelectionStyle:	390
)

(AVEnum.390
	Name:	"LISTBOX_SELECTION_SINGLECELL"
)

(AVLBox.391
	InternalName:	"cbxTo"
	NextControl:	384
	ContentKind:	4
	Constraints:	0x55
	ColumnCount:	1
	Listening:	1
	VerticalScroll:	1
	SelectionStyle:	392
)

(AVEnum.392
	Name:	"LISTBOX_SELECTION_SINGLECELL"
)

(AVLBox.393
	InternalName:	"LbxViews"
	NextControl:	384
	ContentKind:	4
	Constraints:	0x55
	ColumnCount:	1
	Listening:	1
	VerticalScroll:	1
	Select:	"DO.View.Select"
	SelectionStyle:	394
)

(AVEnum.394
	Name:	"LISTBOX_SELECTION_SINGLECELL"
)

(TextLabel.395
	InternalName:	"aTextLabel3"
	Constraints:	0x55
	Label:	"Views"
	Listening:	1
)

(RectD.396
	Left:	62.00000000000000
	Top:	65.00000000000000
	Right:	123.00000000000000
	Bottom:	51.00000000000000
)

(RectD.397
	Left:	254.00000000000000
	Top:	66.00000000000000
	Right:	303.00000000000000
	Bottom:	52.00000000000000
)

(RectD.398
	Left:	2.00000000000000
	Top:	110.00000000000000
	Right:	182.00000000000000
	Bottom:	65.00000000000000
)

(RectD.399
	Left:	187.00000000000000
	Top:	110.00000000000000
	Right:	370.00000000000000
	Bottom:	65.00000000000000
)

(RectD.400
	Left:	5.00000000000000
	Top:	52.00000000000000
	Right:	372.00000000000000
	Bottom:	13.00000000000000
)

(RectD.401
	Left:	170.00000000000000
	Top:	15.00000000000000
	Right:	203.00000000000000
	Bottom:	1.00000000000000
)

(CPanel.402
	InternalName:	"cpField"
	Child:	403
	Child:	404
	Child:	405
	Child:	406
	Child:	407
	Child:	408
	Child:	409
	Child:	410
	Child:	411
	Child:	412
	Child:	413
	Child:	414
	Child:	415
	Child:	416
	Child:	417
	Child:	418
	Child:	419
	Child:	420
	Child:	421
	Child:	422
	Child:	423
	Child:	424
	Child:	425
	Child:	426
	Child:	427
	Child:	428
	Child:	429
	Child:	430
	Child:	431
	Child:	432
	Constraints:	0x55
	ResBox:	433
	ResBox:	434
	ResBox:	435
	ResBox:	436
	ResBox:	437
	ResBox:	438
	ResBox:	439
	ResBox:	440
	ResBox:	441
	ResBox:	442
	ResBox:	443
	ResBox:	444
	ResBox:	445
	ResBox:	446
	ResBox:	447
	ResBox:	448
	ResBox:	449
	ResBox:	450
	ResBox:	451
	ResBox:	452
	ResBox:	453
	ResBox:	454
	ResBox:	455
	ResBox:	456
	ResBox:	457
	ResBox:	458
	ResBox:	459
	ResBox:	460
	ResBox:	461
	ResBox:	462
	VisibleBorder:	1
	Listening:	1
)

(AVCBBox.403
	InternalName:	"cbxTIF1"
	NextControl:	384
	ContentKind:	4
	Constraints:	0x55
	Listening:	1
)

(AVCBBox.404
	InternalName:	"cbxFIF1"
	NextControl:	384
	ContentKind:	4
	Constraints:	0x55
	Listening:	1
)

(AVCBBox.405
	InternalName:	"cbxFIF2"
	NextControl:	384
	ContentKind:	4
	Constraints:	0x55
	Listening:	1
)

(AVCBBox.406
	InternalName:	"cbxTIF2"
	NextControl:	384
	ContentKind:	4
	Constraints:	0x55
	Listening:	1
)

(AVCBBox.407
	InternalName:	"cbxTIF3"
	NextControl:	384
	ContentKind:	4
	Constraints:	0x55
	Listening:	1
)

(AVCBBox.408
	InternalName:	"cbxFIF3"
	NextControl:	384
	ContentKind:	4
	Constraints:	0x55
	Listening:	1
)

(AVCBBox.409
	InternalName:	"cbxFIF4"
	NextControl:	384
	ContentKind:	4
	Constraints:	0x55
	Listening:	1
)

(AVCBBox.410
	InternalName:	"cbxTIF4"
	NextControl:	384
	ContentKind:	4
	Constraints:	0x55
	Listening:	1
)

(AVCBBox.411
	InternalName:	"cbxTIF5"
	NextControl:	384
	ContentKind:	4
	Constraints:	0x55
	Listening:	1
)

(AVCBBox.412
	InternalName:	"cbxFIF5"
	NextControl:	384
	ContentKind:	4
	Constraints:	0x55
	Listening:	1
)

(AVCBBox.413
	InternalName:	"cbxFIF6"
	NextControl:	384
	ContentKind:	4
	Constraints:	0x55
	Listening:	1
)

(AVCBBox.414
	InternalName:	"cbxTIF6"
	NextControl:	384
	ContentKind:	4
	Constraints:	0x55
	Listening:	1
)

(AVCBBox.415
	InternalName:	"cbxTIF7"
	NextControl:	384
	ContentKind:	4
	Constraints:	0x55
	Listening:	1
)

(AVCBBox.416
	InternalName:	"cbxFIF7"
	NextControl:	384
	ContentKind:	4
	Constraints:	0x55
	Listening:	1
)

(AVCBBox.417
	InternalName:	"cbxFIF8"
	NextControl:	384
	ContentKind:	4
	Constraints:	0x55
	Listening:	1
)

(AVCBBox.418
	InternalName:	"cbxTIF8"
	NextControl:	384
	ContentKind:	4
	Constraints:	0x55
	Listening:	1
)

(AVCBBox.419
	InternalName:	"cbxTIF9"
	NextControl:	384
	ContentKind:	4
	Constraints:	0x55
	Listening:	1
)

(AVCBBox.420
	InternalName:	"cbxFIF9"
	NextControl:	384
	ContentKind:	4
	Constraints:	0x55
	Listening:	1
)

(AVCBBox.421
	InternalName:	"cbxFIF10"
	NextControl:	384
	ContentKind:	4
	Constraints:	0x55
	Listening:	1
)

(AVCBBox.422
	InternalName:	"cbxTIF10"
	NextControl:	384
	ContentKind:	4
	Constraints:	0x55
	Listening:	1
)

(AVCBBox.423
	InternalName:	"cbxTIF11"
	NextControl:	384
	ContentKind:	4
	Constraints:	0x55
	Listening:	1
)

(AVCBBox.424
	InternalName:	"cbxFIF11"
	NextControl:	384
	ContentKind:	4
	Constraints:	0x55
	Listening:	1
)

(AVCBBox.425
	InternalName:	"cbxFIF12"
	NextControl:	384
	ContentKind:	4
	Constraints:	0x55
	Listening:	1
)

(AVCBBox.426
	InternalName:	"cbxTIF12"
	NextControl:	384
	ContentKind:	4
	Constraints:	0x55
	Listening:	1
)

(AVCBBox.427
	InternalName:	"cbxTIF13"
	NextControl:	384
	ContentKind:	4
	Constraints:	0x55
	Listening:	1
)

(AVCBBox.428
	InternalName:	"cbxFIF13"
	NextControl:	384
	ContentKind:	4
	Constraints:	0x55
	Listening:	1
)

(AVCBBox.429
	InternalName:	"cbxFIF14"
	NextControl:	384
	ContentKind:	4
	Constraints:	0x55
	Listening:	1
)

(AVCBBox.430
	InternalName:	"cbxTIF14"
	NextControl:	384
	ContentKind:	4
	Constraints:	0x55
	Listening:	1
)

(AVCBBox.431
	InternalName:	"cbxTIF15"
	NextControl:	384
	ContentKind:	4
	Constraints:	0x55
	Listening:	1
)

(AVCBBox.432
	InternalName:	"cbxFIF15"
	NextControl:	384
	ContentKind:	4
	Constraints:	0x55
	Listening:	1
)

(RectD.433
	Left:	188.00000000000000
	Top:	193.00000000000000
	Right:	372.00000000000000
	Bottom:	5.00000000000000
)

(RectD.434
	Left:	2.00000000000000
	Top:	193.00000000000000
	Right:	186.00000000000000
	Bottom:	5.00000000000000
)

(RectD.435
	Left:	2.00000000000000
	Top:	209.00000000000000
	Right:	186.00000000000000
	Bottom:	21.00000000000000
)

(RectD.436
	Left:	188.00000000000000
	Top:	209.00000000000000
	Right:	372.00000000000000
	Bottom:	21.00000000000000
)

(RectD.437
	Left:	188.00000000000000
	Top:	225.00000000000000
	Right:	372.00000000000000
	Bottom:	37.00000000000000
)

(RectD.438
	Left:	2.00000000000000
	Top:	225.00000000000000
	Right:	186.00000000000000
	Bottom:	37.00000000000000
)

(RectD.439
	Left:	2.00000000000000
	Top:	241.00000000000000
	Right:	186.00000000000000
	Bottom:	53.00000000000000
)

(RectD.440
	Left:	188.00000000000000
	Top:	241.00000000000000
	Right:	372.00000000000000
	Bottom:	53.00000000000000
)

(RectD.441
	Left:	188.00000000000000
	Top:	257.00000000000000
	Right:	372.00000000000000
	Bottom:	69.00000000000000
)

(RectD.442
	Left:	2.00000000000000
	Top:	257.00000000000000
	Right:	186.00000000000000
	Bottom:	69.00000000000000
)

(RectD.443
	Left:	2.00000000000000
	Top:	273.00000000000000
	Right:	186.00000000000000
	Bottom:	85.00000000000000
)

(RectD.444
	Left:	188.00000000000000
	Top:	273.00000000000000
	Right:	372.00000000000000
	Bottom:	85.00000000000000
)

(RectD.445
	Left:	188.00000000000000
	Top:	289.00000000000000
	Right:	372.00000000000000
	Bottom:	101.00000000000000
)

(RectD.446
	Left:	2.00000000000000
	Top:	289.00000000000000
	Right:	186.00000000000000
	Bottom:	101.00000000000000
)

(RectD.447
	Left:	2.00000000000000
	Top:	306.00000000000000
	Right:	186.00000000000000
	Bottom:	118.00000000000000
)

(RectD.448
	Left:	188.00000000000000
	Top:	306.00000000000000
	Right:	372.00000000000000
	Bottom:	118.00000000000000
)

(RectD.449
	Left:	188.00000000000000
	Top:	322.00000000000000
	Right:	372.00000000000000
	Bottom:	134.00000000000000
)

(RectD.450
	Left:	2.00000000000000
	Top:	322.00000000000000
	Right:	186.00000000000000
	Bottom:	134.00000000000000
)

(RectD.451
	Left:	2.00000000000000
	Top:	338.00000000000000
	Right:	186.00000000000000
	Bottom:	150.00000000000000
)

(RectD.452
	Left:	188.00000000000000
	Top:	338.00000000000000
	Right:	372.00000000000000
	Bottom:	150.00000000000000
)

(RectD.453
	Left:	188.00000000000000
	Top:	354.00000000000000
	Right:	372.00000000000000
	Bottom:	166.00000000000000
)

(RectD.454
	Left:	2.00000000000000
	Top:	354.00000000000000
	Right:	186.00000000000000
	Bottom:	166.00000000000000
)

(RectD.455
	Left:	2.00000000000000
	Top:	370.00000000000000
	Right:	186.00000000000000
	Bottom:	182.00000000000000
)

(RectD.456
	Left:	188.00000000000000
	Top:	370.00000000000000
	Right:	372.00000000000000
	Bottom:	182.00000000000000
)

(RectD.457
	Left:	188.00000000000000
	Top:	386.00000000000000
	Right:	372.00000000000000
	Bottom:	198.00000000000000
)

(RectD.458
	Left:	2.00000000000000
	Top:	386.00000000000000
	Right:	186.00000000000000
	Bottom:	198.00000000000000
)

(RectD.459
	Left:	2.00000000000000
	Top:	402.00000000000000
	Right:	186.00000000000000
	Bottom:	214.00000000000000
)

(RectD.460
	Left:	188.00000000000000
	Top:	402.00000000000000
	Right:	372.00000000000000
	Bottom:	214.00000000000000
)

(RectD.461
	Left:	188.00000000000000
	Top:	418.00000000000000
	Right:	372.00000000000000
	Bottom:	230.00000000000000
)

(RectD.462
	Left:	2.00000000000000
	Top:	418.00000000000000
	Right:	186.00000000000000
	Bottom:	230.00000000000000
)

(CPanel.463
	InternalName:	"cpInfo"
	Child:	464
	Child:	465
	Child:	466
	Child:	467
	Child:	468
	Child:	469
	Child:	470
	Child:	471
	Constraints:	0x55
	ResBox:	472
	ResBox:	473
	ResBox:	474
	ResBox:	475
	ResBox:	476
	ResBox:	477
	ResBox:	478
	ResBox:	479
	VisibleBorder:	1
	Listening:	1
)

(LButn.464
	InternalName:	"lblCmd.Lock"
	Label:	"Lock"
	Click:	"DO.Lock"
)

(LButn.465
	InternalName:	"lblCmdShowInfo"
	Help:	"ClickThis Each Time You Select a Field To See Info on That Field  Just Move The Cursor Over The Field Name To See The Info// "
	Label:	"Show Field Info"
	Click:	"DO.Show.Info"
)

(AVCBox.466
	InternalName:	"ckMFields"
	Disabled:	1
	Invisible:	1
	Help:	"Check This If You Want New Fields Added To the To Table    Any Fields Left as <none> in the To Table Will be Created      From the Fields in the From Table // "
	Listening:	1
	Label:	"Create Fields"
	Constraints:	0x55
)

(LButn.467
	InternalName:	"lblcmdGo"
	Disabled:	1
	Label:	"GO"
	Click:	"DO.GO"
)

(LButn.468
	InternalName:	"lblHelp"
	Help:	"Help / Instructions //"
	Label:	"Help"
	Click:	"DO.Help.Go"
)

(TextLabel.469
	InternalName:	"TxlStart"
	Constraints:	0x55
	Listening:	1
)

(TextLabel.470
	InternalName:	"TxlEnd"
	Constraints:	0x55
	Listening:	1
)

(AVCBox.471
	InternalName:	"RB1Fix"
	Help:	"Lock Fields for Reuse //"
	Listening:	1
	Label:	"Lock Fields for Reuse"
	Constraints:	0x55
)

(RectD.472
	Left:	8.00000000000000
	Top:	19.00000000000000
	Right:	368.00000000000000
	Bottom:	5.00000000000000
)

(RectD.473
	Left:	10.00000000000000
	Top:	38.00000000000000
	Right:	101.00000000000000
	Bottom:	20.00000000000000
)

(RectD.474
	Left:	282.00000000000000
	Top:	37.00000000000000
	Right:	373.00000000000000
	Bottom:	21.00000000000000
)

(RectD.475
	Left:	135.00000000000000
	Top:	37.00000000000000
	Right:	168.00000000000000
	Bottom:	21.00000000000000
)

(RectD.476
	Left:	193.00000000000000
	Top:	37.00000000000000
	Right:	226.00000000000000
	Bottom:	21.00000000000000
)

(RectD.477
	Left:	235.00000000000000
	Top:	36.00000000000000
	Right:	300.00000000000000
	Bottom:	23.00000000000000
)

(RectD.478
	Left:	306.00000000000000
	Top:	36.00000000000000
	Right:	370.00000000000000
	Bottom:	23.00000000000000
)

(RectD.479
	Left:	109.00000000000000
	Top:	33.00000000000000
	Right:	127.00000000000000
	Bottom:	24.00000000000000
)

(TextLabel.480
	InternalName:	"txtRecordFrom"
	Constraints:	0x55
	Listening:	1
)

(TextLabel.481
	InternalName:	"txtRecordTo"
	Constraints:	0x55
	Listening:	1
)

(RectD.482
	Left:	3.00000000000000
	Top:	115.00000000000000
	Right:	379.00000000000000
	Bottom:	2.00000000000000
)

(RectD.483
	Left:	4.00000000000000
	Top:	408.00000000000000
	Right:	381.00000000000000
	Bottom:	153.00000000000000
)

(RectD.484
	Left:	3.00000000000000
	Top:	155.00000000000000
	Right:	380.00000000000000
	Bottom:	114.00000000000000
)

(RectD.485
	Left:	5.00000000000000
	Top:	428.00000000000000
	Right:	106.00000000000000
	Bottom:	410.00000000000000
)

(RectD.486
	Left:	196.00000000000000
	Top:	428.00000000000000
	Right:	297.00000000000000
	Bottom:	410.00000000000000
)

(Nil.487
)

(AVDLog.488
	Name:	"DO.ADDFields"
	X:	61
	Y:	51
	W:	204
	H:	221
	ConstrainedControlNames:	489
	ConstrainedControlNames:	490
	ConstrainedControlNames:	491
	Constraints:	492
	Constraints:	493
	Constraints:	494
	Server:	11
	ControlPanel:	495
	Title:	"New Field Definition"
	Modal:	1
	AlwaysOnTop:	1
	HasTitleBar:	1
	Open:	"DO.Add.Go"
	DefaultButton:	509
)

(AVStr.489
	S:	"lblOK"
)

(AVStr.490
	S:	"lblCancel"
)

(AVStr.491
	S:	"lblHelp"
)

(Numb.492
	N:	85.00000000000000
)

(Numb.493
	N:	85.00000000000000
)

(Numb.494
	N:	85.00000000000000
)

(CPanel.495
	Child:	496
	Child:	501
	Child:	503
	Child:	505
	Child:	507
	Child:	508
	Child:	509
	Child:	510
	Child:	511
	Child:	520
	Child:	521
	Child:	523
	Child:	524
	ResBox:	525
	ResBox:	526
	ResBox:	527
	ResBox:	528
	ResBox:	529
	ResBox:	530
	ResBox:	531
	ResBox:	532
	ResBox:	533
	ResBox:	534
	ResBox:	535
	ResBox:	536
	ResBox:	537
	Listening:	1
)

(CPanel.496
	InternalName:	"aControlPanel19"
	Child:	497
	Child:	498
	Constraints:	0x55
	ResBox:	499
	ResBox:	500
	VisibleBorder:	1
	Listening:	1
)

(TextLabel.497
	InternalName:	"aTextLabel8"
	Constraints:	0x55
	Label:	"Type:"
	Listening:	1
)

(AVCBBox.498
	InternalName:	"CbxTP"
	NextControl:	11
	ContentKind:	4
	Constraints:	0x55
	Listening:	1
)

(RectD.499
	Left:	2.00000000000000
	Top:	22.00000000000000
	Right:	58.00000000000000
	Bottom:	9.00000000000000
)

(RectD.500
	Left:	39.00000000000000
	Top:	108.00000000000000
	Right:	182.00000000000000
	Bottom:	5.00000000000000
)

(TextLine.501
	InternalName:	"TxlName"
	Label:	"Name:"
	Constraints:	0x55
	Listening:	1
	TextType:	502
	NextControl:	503
)

(AVEnum.502
	Name:	"TEXTLINE_TYPE_ALL"
)

(TextLine.503
	InternalName:	"TxlWD"
	Text:	"16"
	Label:	"Width:"
	Constraints:	0x55
	Listening:	1
	TextType:	504
	NextControl:	505
)

(AVEnum.504
	Name:	"TEXTLINE_TYPE_ALL"
)

(TextLine.505
	InternalName:	"TxlDP"
	Text:	"0"
	Label:	"Decimal Places"
	Constraints:	0x55
	Listening:	1
	TextType:	506
	NextControl:	507
)

(AVEnum.506
	Name:	"TEXTLINE_TYPE_ALL"
)

(AVCBBox.507
	InternalName:	"CbxEF"
	NextControl:	11
	ContentKind:	4
	Constraints:	0x55
	Listening:	1
	Select:	"DO.Add.CbxEF"
)

(TextLabel.508
	InternalName:	"aTextLabel9"
	Constraints:	0x55
	Label:	"Match Existing Field:"
	Listening:	1
)

(LButn.509
	InternalName:	"lblOK"
	Label:	"OK"
	Click:	"DO.Add.OK"
)

(LButn.510
	InternalName:	"lblCancel"
	Label:	"Cancel"
	Click:	"DO.Add.Cancel"
)

(CPanel.511
	InternalName:	"aControlPanel12"
	Child:	512
	Child:	513
	Child:	514
	Child:	515
	Constraints:	0x55
	ResBox:	516
	ResBox:	517
	ResBox:	518
	ResBox:	519
	VisibleBorder:	1
	Listening:	1
)

(RButn.512
	InternalName:	"rbFrom"
	Constraints:	0x55
	Listening:	1
	Label:	"From"
	Click:	"DO.Add.RBFrom"
)

(RButn.513
	InternalName:	"rbTo"
	Constraints:	0x55
	Listening:	1
	Label:	"To"
	Click:	"DO.Add.RBTo"
)

(TextLabel.514
	InternalName:	"aTextLabel16"
	Constraints:	0x55
	Label:	"Fields"
	Listening:	1
)

(RButn.515
	InternalName:	"RBBlank"
	Disabled:	1
	Invisible:	1
	Constraints:	0x55
	Listening:	1
)

(RectD.516
	Left:	2.00000000000000
	Top:	32.00000000000000
	Right:	52.00000000000000
	Bottom:	15.00000000000000
)

(RectD.517
	Left:	59.00000000000000
	Top:	33.00000000000000
	Right:	109.00000000000000
	Bottom:	16.00000000000000
)

(RectD.518
	Left:	39.00000000000000
	Top:	15.00000000000000
	Right:	72.00000000000000
	Bottom:	2.00000000000000
)

(RectD.519
	Left:	88.00000000000000
	Top:	17.00000000000000
	Right:	105.00000000000000
	Bottom:	6.00000000000000
)

(LButn.520
	InternalName:	"lblHelp"
	Invisible:	1
	Label:	"Help"
	Click:	"DO.Help2.Go"
)

(TextLine.521
	InternalName:	"txlFromField"
	Label:	"From Field:"
	Constraints:	0x55
	Listening:	1
	ReadOnly:	1
	TextType:	522
	NextControl:	11
)

(AVEnum.522
	Name:	"TEXTLINE_TYPE_ALL"
)

(TextLabel.523
	InternalName:	"txlValidate"
	Invisible:	1
	Constraints:	0x55
	Label:	"aTextLabel1"
	Listening:	1
)

(AVCBBox.524
	InternalName:	"cbxToListCK"
	Invisible:	1
	NextControl:	11
	ContentKind:	4
	Constraints:	0x55
	Listening:	1
)

(RectD.525
	Left:	2.00000000000000
	Top:	69.00000000000000
	Right:	197.00000000000000
	Bottom:	30.00000000000000
)

(RectD.526
	Left:	4.00000000000000
	Top:	27.00000000000000
	Right:	187.00000000000000
	Bottom:	7.00000000000000
)

(RectD.527
	Left:	5.00000000000000
	Top:	90.00000000000000
	Right:	80.00000000000000
	Bottom:	70.00000000000000
)

(RectD.528
	Left:	5.00000000000000
	Top:	116.00000000000000
	Right:	129.00000000000000
	Bottom:	96.00000000000000
)

(RectD.529
	Left:	3.00000000000000
	Top:	319.00000000000000
	Right:	130.00000000000000
	Bottom:	140.00000000000000
)

(RectD.530
	Left:	5.00000000000000
	Top:	140.00000000000000
	Right:	110.00000000000000
	Bottom:	123.00000000000000
)

(RectD.531
	Left:	147.00000000000000
	Top:	123.00000000000000
	Right:	188.00000000000000
	Bottom:	96.00000000000000
)

(RectD.532
	Left:	147.00000000000000
	Top:	155.00000000000000
	Right:	188.00000000000000
	Bottom:	128.00000000000000
)

(RectD.533
	Left:	9.00000000000000
	Top:	193.00000000000000
	Right:	127.00000000000000
	Bottom:	159.00000000000000
)

(RectD.534
	Left:	147.00000000000000
	Top:	185.00000000000000
	Right:	188.00000000000000
	Bottom:	158.00000000000000
)

(RectD.535
	Left:	8.00000000000000
	Top:	217.00000000000000
	Right:	188.00000000000000
	Bottom:	197.00000000000000
)

(RectD.536
	Left:	149.00000000000000
	Top:	89.00000000000000
	Right:	184.00000000000000
	Bottom:	74.00000000000000
)

(RectD.537
	Left:	126.00000000000000
	Top:	254.00000000000000
	Right:	202.00000000000000
	Bottom:	228.00000000000000
)

(AVDLog.538
	Name:	"DO.Help"
	X:	61
	Y:	52
	W:	345
	H:	440
	Server:	11
	ControlPanel:	539
	Title:	"                      Help & Instructions"
	EscapeEnabled:	1
	AlwaysOnTop:	1
	HasTitleBar:	1
	Closeable:	1
	DefaultButton:	542
)

(CPanel.539
	Child:	540
	ResBox:	541
	Listening:	1
)

(TextBox.540
	InternalName:	"txtbox.Help"
	Listening:	1
	ReadOnly:	1
	Constraints:	0x55
	VerticalScroll:	1
	NextControl:	11
)

(RectD.541
	Left:	3.00000000000000
	Top:	438.00000000000000
	Right:	344.00000000000000
	Bottom:	4.00000000000000
)

(Nil.542
)

(AVDLog.543
	Name:	"MT.Help"
	X:	61
	Y:	52
	W:	345
	H:	440
	Server:	11
	ControlPanel:	544
	Title:	"                      Help & Instructions"
	EscapeEnabled:	1
	AlwaysOnTop:	1
	HasTitleBar:	1
	Closeable:	1
	DefaultButton:	547
)

(CPanel.544
	Child:	545
	ResBox:	546
	Listening:	1
)

(TextBox.545
	InternalName:	"txtbox.Help"
	Listening:	1
	ReadOnly:	1
	Constraints:	0x55
	VerticalScroll:	1
	NextControl:	11
)

(RectD.546
	Left:	3.00000000000000
	Top:	438.00000000000000
	Right:	344.00000000000000
	Bottom:	4.00000000000000
)

(Nil.547
)

(AVDLog.548
	Name:	"My Themes"
	X:	61
	Y:	53
	W:	402
	H:	327
	ConstrainedControlNames:	549
	ConstrainedControlNames:	550
	ConstrainedControlNames:	551
	ConstrainedControlNames:	552
	ConstrainedControlNames:	553
	ConstrainedControlNames:	554
	ConstrainedControlNames:	555
	ConstrainedControlNames:	556
	ConstrainedControlNames:	557
	ConstrainedControlNames:	558
	Constraints:	559
	Constraints:	560
	Constraints:	561
	Constraints:	562
	Constraints:	563
	Constraints:	564
	Constraints:	565
	Constraints:	566
	Constraints:	567
	Constraints:	568
	Server:	569
	ControlPanel:	570
	Title:	"My Themes"
	EscapeEnabled:	1
	AlwaysOnTop:	1
	HasTitleBar:	1
	Closeable:	1
	Open:	"MT.Open"
	DefaultButton:	615
)

(AVStr.549
	S:	"lblAdd2View"
)

(AVStr.550
	S:	"lblDone"
)

(AVStr.551
	S:	"lblEditList"
)

(AVStr.552
	S:	"lblHelp"
)

(AVStr.553
	S:	"aLabelButton1"
)

(AVStr.554
	S:	"lblNewList"
)

(AVStr.555
	S:	"lblDeleteList"
)

(AVStr.556
	S:	"lblAddThemes"
)

(AVStr.557
	S:	"lblDeleteThemes"
)

(AVStr.558
	S:	"lblDoneEditting"
)

(Numb.559
	N:	85.00000000000000
)

(Numb.560
	N:	85.00000000000000
)

(Numb.561
	N:	85.00000000000000
)

(Numb.562
	N:	85.00000000000000
)

(Numb.563
	N:	85.00000000000000
)

(Numb.564
	N:	85.00000000000000
)

(Numb.565
	N:	85.00000000000000
)

(Numb.566
	N:	85.00000000000000
)

(Numb.567
	N:	85.00000000000000
)

(Numb.568
	N:	85.00000000000000
)

(Nil.569
)

(CPanel.570
	Child:	571
	Child:	577
	Child:	595
	ResBox:	612
	ResBox:	613
	ResBox:	614
	Listening:	1
)

(CPanel.571
	InternalName:	"cpa3"
	Child:	572
	Child:	574
	Constraints:	0x55
	ResBox:	575
	ResBox:	576
	VisibleBorder:	1
	Listening:	1
)

(TextLine.572
	InternalName:	"txtNewListName"
	Help:	"Enter a New List Name - Limited to 20 Letters - .txt wil be added to File Name //"
	Constraints:	0x55
	Listening:	1
	TextType:	573
	Size:	20
	NextControl:	569
)

(AVEnum.573
	Name:	"TEXTLINE_TYPE_ALL"
)

(AVCBox.574
	InternalName:	"ckbAddName"
	Help:	"Click Me after You Have Typed in a New List Name //"
	Listening:	1
	Label:	"Add Name to List"
	Click:	"MT.New.List"
	Constraints:	0x55
)

(RectD.575
	Left:	106.00000000000000
	Top:	26.00000000000000
	Right:	377.00000000000000
	Bottom:	6.00000000000000
)

(RectD.576
	Left:	7.00000000000000
	Top:	27.00000000000000
	Right:	115.00000000000000
	Bottom:	5.00000000000000
)

(CPanel.577
	InternalName:	"cpa1"
	Child:	578
	Child:	579
	Child:	580
	Child:	581
	Child:	582
	Child:	583
	Child:	585
	Child:	586
	Constraints:	0x55
	ResBox:	587
	ResBox:	588
	ResBox:	589
	ResBox:	590
	ResBox:	591
	ResBox:	592
	ResBox:	593
	ResBox:	594
	VisibleBorder:	1
	Listening:	1
)

(AVCBBox.578
	InternalName:	"cbxLists"
	NextControl:	569
	ContentKind:	4
	Constraints:	0x55
	Listening:	1
	Select:	"MT.List.Selected"
)

(LButn.579
	InternalName:	"lblAdd2View"
	Help:	"Click Me to Add Selected Themes to Current View //"
	Label:	"Add to View"
	Click:	"MT.Add.View"
)

(LButn.580
	InternalName:	"lblDone"
	Help:	"Close Tool //"
	Label:	"Done"
	Click:	"MT.Close"
)

(LButn.581
	InternalName:	"lblEditList"
	Help:	"Click Me to Edit the Lists //"
	Label:	"Edit Lists"
	Click:	"MT.Edit.Lists"
)

(LButn.582
	InternalName:	"lblHelp"
	Help:	"Help & Instrustions //"
	Label:	"Help"
	Click:	"MT.Help.Go"
)

(AVLBox.583
	InternalName:	"lbxListThemes"
	Help:	"Select Some Themes From The Current Theme List //"
	NextControl:	569
	ContentKind:	4
	Constraints:	0x55
	ColumnCount:	1
	Listening:	1
	VerticalScroll:	1
	SelectionStyle:	584
)

(AVEnum.584
	Name:	"LISTBOX_SELECTION_MULTIRANGE"
)

(TextLabel.585
	InternalName:	"aTextLabel1"
	Constraints:	0x55
	Label:	"Theme Lists"
	Listening:	1
)

(LButn.586
	InternalName:	"aLabelButton1"
	Help:	"Click Me to Add All Themes to Current View //"
	Label:	"Add All to View"
	Click:	"MT.Add.All.View"
)

(RectD.587
	Left:	84.00000000000000
	Top:	183.00000000000000
	Right:	375.00000000000000
	Bottom:	25.00000000000000
)

(RectD.588
	Left:	4.00000000000000
	Top:	44.00000000000000
	Right:	82.00000000000000
	Bottom:	25.00000000000000
)

(RectD.589
	Left:	4.00000000000000
	Top:	91.00000000000000
	Right:	82.00000000000000
	Bottom:	72.00000000000000
)

(RectD.590
	Left:	4.00000000000000
	Top:	115.00000000000000
	Right:	82.00000000000000
	Bottom:	96.00000000000000
)

(RectD.591
	Left:	4.00000000000000
	Top:	138.00000000000000
	Right:	82.00000000000000
	Bottom:	119.00000000000000
)

(RectD.592
	Left:	87.00000000000000
	Top:	141.00000000000000
	Right:	375.00000000000000
	Bottom:	47.00000000000000
)

(RectD.593
	Left:	194.00000000000000
	Top:	23.00000000000000
	Right:	256.00000000000000
	Bottom:	8.00000000000000
)

(RectD.594
	Left:	4.00000000000000
	Top:	68.00000000000000
	Right:	82.00000000000000
	Bottom:	49.00000000000000
)

(CPanel.595
	InternalName:	"cpa2"
	Child:	596
	Child:	597
	Child:	598
	Child:	599
	Child:	600
	Child:	602
	Child:	603
	Constraints:	0x55
	ResBox:	605
	ResBox:	606
	ResBox:	607
	ResBox:	608
	ResBox:	609
	ResBox:	610
	ResBox:	611
	VisibleBorder:	1
	Listening:	1
)

(LButn.596
	InternalName:	"lblNewList"
	Help:	"Click Me to Add a New List of Themes //"
	Label:	"New List"
	Click:	"MT.New.List.Open"
)

(LButn.597
	InternalName:	"lblDeleteList"
	Help:	"Delete the Current List Displayed in the Theme Lists Box //"
	Label:	"Delete List"
	Click:	"MT.Delete.List"
)

(LButn.598
	InternalName:	"lblAddThemes"
	Help:	"Click Me to Add Selected Themes to Current Theme List //"
	Label:	"Add Themes"
	Click:	"MT.Add.Theme"
)

(LButn.599
	InternalName:	"lblDeleteThemes"
	Help:	"Click Me to Delete Selected Themes from Current Theme List //"
	Label:	"Delete Themes"
	Click:	"MT.Delete.Theme"
)

(AVLBox.600
	InternalName:	"lbxThemes"
	Help:	"Select Some Themes From The View List //"
	NextControl:	569
	ContentKind:	4
	Constraints:	0x55
	ColumnCount:	1
	Listening:	1
	VerticalScroll:	1
	SelectionStyle:	601
)

(AVEnum.601
	Name:	"LISTBOX_SELECTION_MULTIROW"
)

(LButn.602
	InternalName:	"lblDoneEditting"
	Help:	"Hide the Editting Window //"
	Label:	"Done Editting"
	Click:	"MT.Done.Edit"
)

(AVLBox.603
	InternalName:	"lbxViews"
	NextControl:	569
	ContentKind:	4
	Constraints:	0x55
	ColumnCount:	1
	Listening:	1
	VerticalScroll:	1
	Select:	"MT.View.Select"
	SelectionStyle:	604
)

(AVEnum.604
	Name:	"LISTBOX_SELECTION_SINGLEROW"
)

(RectD.605
	Left:	6.00000000000000
	Top:	26.00000000000000
	Right:	84.00000000000000
	Bottom:	7.00000000000000
)

(RectD.606
	Left:	6.00000000000000
	Top:	52.00000000000000
	Right:	84.00000000000000
	Bottom:	33.00000000000000
)

(RectD.607
	Left:	6.00000000000000
	Top:	79.00000000000000
	Right:	84.00000000000000
	Bottom:	60.00000000000000
)

(RectD.608
	Left:	6.00000000000000
	Top:	105.00000000000000
	Right:	84.00000000000000
	Bottom:	86.00000000000000
)

(RectD.609
	Left:	88.00000000000000
	Top:	132.00000000000000
	Right:	376.00000000000000
	Bottom:	55.00000000000000
)

(RectD.610
	Left:	6.00000000000000
	Top:	131.00000000000000
	Right:	84.00000000000000
	Bottom:	112.00000000000000
)

(RectD.611
	Left:	89.00000000000000
	Top:	50.00000000000000
	Right:	377.00000000000000
	Bottom:	8.00000000000000
)

(RectD.612
	Left:	8.00000000000000
	Top:	326.00000000000000
	Right:	397.00000000000000
	Bottom:	294.00000000000000
)

(RectD.613
	Left:	8.00000000000000
	Top:	153.00000000000000
	Right:	397.00000000000000
	Bottom:	4.00000000000000
)

(RectD.614
	Left:	8.00000000000000
	Top:	293.00000000000000
	Right:	397.00000000000000
	Bottom:	153.00000000000000
)

(Nil.615
)

(AVDLog.616
	Name:	"SE"
	X:	17
	Y:	64
	W:	214
	H:	314
	ConstrainedControlNames:	617
	ConstrainedControlNames:	618
	ConstrainedControlNames:	619
	ConstrainedControlNames:	620
	ConstrainedControlNames:	621
	Constraints:	622
	Constraints:	623
	Constraints:	624
	Constraints:	625
	Constraints:	626
	Server:	569
	ControlPanel:	627
	Title:	"Saved Extents"
	EscapeEnabled:	1
	AlwaysOnTop:	1
	HasTitleBar:	1
	Closeable:	1
	DefaultButton:	643
)

(AVStr.617
	S:	"lbSave"
)

(AVStr.618
	S:	"lbDelete"
)

(AVStr.619
	S:	"lbZoom"
)

(AVStr.620
	S:	"lbDraw"
)

(AVStr.621
	S:	"aLabelButton1"
)

(Numb.622
	N:	85.00000000000000
)

(Numb.623
	N:	85.00000000000000
)

(Numb.624
	N:	85.00000000000000
)

(Numb.625
	N:	85.00000000000000
)

(Numb.626
	N:	85.00000000000000
)

(CPanel.627
	Child:	628
	ResBox:	642
	Listening:	1
)

(CPanel.628
	InternalName:	"cpl1"
	Child:	629
	Child:	631
	Child:	632
	Child:	633
	Child:	634
	Child:	635
	Constraints:	0x55
	ResBox:	636
	ResBox:	637
	ResBox:	638
	ResBox:	639
	ResBox:	640
	ResBox:	641
	VisibleBorder:	1
	Listening:	1
)

(AVLBox.629
	InternalName:	"lbxExtentList"
	NextControl:	569
	ContentKind:	4
	Constraints:	0x55
	ColumnCount:	1
	Listening:	1
	VerticalScroll:	1
	Select:	"SE.Selected"
	SelectionStyle:	630
)

(AVEnum.630
	Name:	"LISTBOX_SELECTION_SINGLEROW"
)

(LButn.631
	InternalName:	"lbSave"
	Help:	"Save Current Views Extent to List //"
	Label:	"Save"
	Click:	"SE.Add.Extent"
)

(LButn.632
	InternalName:	"lbDelete"
	Help:	"Delete Current Extent From List //"
	Label:	"Delete"
	Click:	"SE.Delete.Extent"
)

(LButn.633
	InternalName:	"lbZoom"
	Help:	"Zoom to Last Used Extent //"
	Label:	"Zoom to Last"
	Click:	"SE.Zoom.Last"
)

(LButn.634
	InternalName:	"lbDraw"
	Help:	"Draw Saved Extent //"
	Label:	"Draw"
	Click:	"SE.Draw.Extent"
)

(LButn.635
	InternalName:	"aLabelButton1"
	Help:	"Help //"
	Label:	"Help"
	Click:	"SE.Help.Go"
)

(RectD.636
	Left:	6.00000000000000
	Top:	263.00000000000000
	Right:	202.00000000000000
	Bottom:	8.00000000000000
)

(RectD.637
	Left:	5.00000000000000
	Top:	285.00000000000000
	Right:	64.00000000000000
	Bottom:	266.00000000000000
)

(RectD.638
	Left:	64.00000000000000
	Top:	285.00000000000000
	Right:	118.00000000000000
	Bottom:	266.00000000000000
)

(RectD.639
	Left:	118.00000000000000
	Top:	285.00000000000000
	Right:	199.00000000000000
	Bottom:	266.00000000000000
)

(RectD.640
	Left:	38.00000000000000
	Top:	304.00000000000000
	Right:	78.00000000000000
	Bottom:	285.00000000000000
)

(RectD.641
	Left:	5.00000000000000
	Top:	304.00000000000000
	Right:	39.00000000000000
	Bottom:	285.00000000000000
)

(RectD.642
	Left:	3.00000000000000
	Top:	312.00000000000000
	Right:	212.00000000000000
	Bottom:	4.00000000000000
)

(Nil.643
)

(AVDLog.644
	Name:	"SE.Help"
	X:	61
	Y:	52
	W:	345
	H:	440
	Server:	11
	ControlPanel:	645
	Title:	"                      Help & Instructions"
	EscapeEnabled:	1
	AlwaysOnTop:	1
	HasTitleBar:	1
	Closeable:	1
	DefaultButton:	648
)

(CPanel.645
	Child:	646
	ResBox:	647
	Listening:	1
)

(TextBox.646
	InternalName:	"txtbox.Help"
	Listening:	1
	ReadOnly:	1
	Constraints:	0x55
	VerticalScroll:	1
	NextControl:	11
)

(RectD.647
	Left:	3.00000000000000
	Top:	438.00000000000000
	Right:	344.00000000000000
	Bottom:	4.00000000000000
)

(Nil.648
)

(AVDLog.649
	Name:	"Name"
	X:	369
	Y:	352
	W:	197
	H:	50
	ConstrainedControlNames:	650
	Constraints:	651
	Server:	11
	ControlPanel:	652
	Title:	"Input Name of New Extent"
	EscapeEnabled:	1
	Modal:	1
	AlwaysOnTop:	1
	HasTitleBar:	1
	Closeable:	1
	DefaultButton:	658
)

(AVStr.650
	S:	"lblDone"
)

(Numb.651
	N:	85.00000000000000
)

(CPanel.652
	Child:	653
	Child:	655
	ResBox:	656
	ResBox:	657
	Listening:	1
)

(TextLine.653
	InternalName:	"txlName"
	Constraints:	0x55
	Listening:	1
	TextType:	654
	NextControl:	11
)

(AVEnum.654
	Name:	"TEXTLINE_TYPE_ALL"
)

(LButn.655
	InternalName:	"lblDone"
	Label:	"Done"
	Click:	"SE.Name.Done"
)

(RectD.656
	Left:	11.00000000000000
	Top:	28.00000000000000
	Right:	187.00000000000000
	Bottom:	8.00000000000000
)

(RectD.657
	Left:	19.00000000000000
	Top:	45.00000000000000
	Right:	185.00000000000000
	Bottom:	30.00000000000000
)

(Nil.658
)

(AVDLog.659
	Name:	"AdvancedLineProperties"
	X:	27
	Y:	69
	W:	430
	H:	200
	ConstrainedControlNames:	660
	ConstrainedControlNames:	661
	Constraints:	662
	Constraints:	663
	Server:	11
	ControlPanel:	664
	ObjectTag:	706
	EscapeEnabled:	1
	AlwaysOnTop:	1
	HasTitleBar:	1
	Closeable:	1
	Open:	"LineBuilder.AdvancedOpen"
	DefaultButton:	707
)

(AVStr.660
	S:	"LabelButton.OK"
)

(AVStr.661
	S:	"LabelButton.Cancel"
)

(Numb.662
	N:	85.00000000000000
)

(Numb.663
	N:	85.00000000000000
)

(CPanel.664
	Child:	665
	Child:	696
	ResBox:	704
	ResBox:	705
	Listening:	1
)

(CPanel.665
	InternalName:	"aControlPanel14"
	Child:	666
	Child:	667
	Child:	668
	Child:	669
	Child:	670
	Child:	671
	Child:	672
	Child:	673
	Child:	675
	Child:	677
	Child:	678
	Child:	679
	Child:	681
	Constraints:	0x55
	ResBox:	683
	ResBox:	684
	ResBox:	685
	ResBox:	686
	ResBox:	687
	ResBox:	688
	ResBox:	689
	ResBox:	690
	ResBox:	691
	ResBox:	692
	ResBox:	693
	ResBox:	694
	ResBox:	695
	Label:	"Advanced"
	VisibleBorder:	1
	Listening:	1
)

(TextLabel.666
	InternalName:	"aTextLabel9"
	Tag:	" "
	Constraints:	0x55
	Label:	"Style"
	Listening:	1
)

(TextLabel.667
	InternalName:	"TextLabel.Cap"
	Invisible:	1
	Tag:	" "
	Constraints:	0x55
	Label:	"Cap Style"
	Listening:	1
)

(AVCBBox.668
	InternalName:	"ComboBox.CapStyle"
	Invisible:	1
	NextControl:	11
	ContentKind:	4
	Constraints:	0x55
	Listening:	1
	Select:	"LineBuilder.AdvancedUpdater"
)

(AVCBBox.669
	InternalName:	"ComboBox.JoinStyle"
	Invisible:	1
	NextControl:	11
	ContentKind:	4
	Constraints:	0x55
	Listening:	1
	Select:	"LineBuilder.AdvancedUpdater"
)

(TextLabel.670
	InternalName:	"TextLabel.Join"
	Invisible:	1
	Tag:	" "
	Constraints:	0x55
	Label:	"Join Style"
	Listening:	1
)

(TextLabel.671
	InternalName:	"TextLabel.Pattern"
	Invisible:	1
	Tag:	" "
	Constraints:	0x55
	Label:	"Pattern"
	Listening:	1
)

(AVCBBox.672
	InternalName:	"ComboBox.Pattern"
	Invisible:	1
	NextControl:	11
	ContentKind:	4
	Constraints:	0x55
	Listening:	1
	Select:	"LineBuilder.AdvancedUpdater"
)

(TextLine.673
	InternalName:	"TextLine.LineSize"
	Text:	"1"
	Label:	"Size"
	Constraints:	0x55
	Listening:	1
	TextType:	674
	Changed:	"LineBuilder.AdvancedUpdater"
	NextControl:	11
)

(AVEnum.674
	Name:	"TEXTLINE_TYPE_INTEGER"
)

(TextLine.675
	InternalName:	"TextLine.AltLineSize"
	Text:	"0.1"
	Label:	"Alt Size"
	Constraints:	0x55
	Listening:	1
	TextType:	676
	Changed:	"LineBuilder.AdvancedUpdater"
	NextControl:	11
)

(AVEnum.676
	Name:	"TEXTLINE_TYPE_INTEGER"
)

(AVCBBox.677
	InternalName:	"ComboBox.Style"
	NextControl:	11
	ContentKind:	4
	Constraints:	0x55
	Listening:	1
	Select:	"LineBuilder.AdvancedUpdater"
)

(AVCBox.678
	InternalName:	"CheckBox.Flip"
	Invisible:	1
	Listening:	1
	Label:	"Flip"
	Click:	"LineBuilder.AdvancedUpdater"
	Constraints:	0x55
)

(TextLine.679
	InternalName:	"TextLine.Interval"
	Text:	"6"
	Label:	"Interval"
	Constraints:	0x55
	Listening:	1
	TextType:	680
	Changed:	"LineBuilder.AdvancedUpdater"
	NextControl:	11
)

(AVEnum.680
	Name:	"TEXTLINE_TYPE_INTEGER"
)

(TextLine.681
	InternalName:	"TextLine.ArrowLength"
	Text:	"6"
	Label:	"Arrow Length"
	Constraints:	0x55
	Listening:	1
	TextType:	682
	Changed:	"LineBuilder.AdvancedUpdater"
	NextControl:	11
)

(AVEnum.682
	Name:	"TEXTLINE_TYPE_INTEGER"
)

(RectD.683
	Left:	9.00000000000000
	Top:	30.00000000000000
	Right:	47.00000000000000
	Bottom:	17.00000000000000
)

(RectD.684
	Left:	9.00000000000000
	Top:	71.00000000000000
	Right:	64.00000000000000
	Bottom:	58.00000000000000
)

(RectD.685
	Left:	3.00000000000000
	Top:	161.00000000000000
	Right:	93.00000000000000
	Bottom:	75.00000000000000
)

(RectD.686
	Left:	3.00000000000000
	Top:	197.00000000000000
	Right:	93.00000000000000
	Bottom:	111.00000000000000
)

(RectD.687
	Left:	10.00000000000000
	Top:	108.00000000000000
	Right:	65.00000000000000
	Bottom:	95.00000000000000
)

(RectD.688
	Left:	10.00000000000000
	Top:	145.00000000000000
	Right:	65.00000000000000
	Bottom:	132.00000000000000
)

(RectD.689
	Left:	3.00000000000000
	Top:	234.00000000000000
	Right:	94.00000000000000
	Bottom:	148.00000000000000
)

(RectD.690
	Left:	144.00000000000000
	Top:	52.00000000000000
	Right:	207.00000000000000
	Bottom:	32.00000000000000
)

(RectD.691
	Left:	129.00000000000000
	Top:	73.00000000000000
	Right:	207.00000000000000
	Bottom:	53.00000000000000
)

(RectD.692
	Left:	3.00000000000000
	Top:	200.00000000000000
	Right:	94.00000000000000
	Bottom:	32.00000000000000
)

(RectD.693
	Left:	169.00000000000000
	Top:	146.00000000000000
	Right:	217.00000000000000
	Bottom:	118.00000000000000
)

(RectD.694
	Left:	129.00000000000000
	Top:	93.00000000000000
	Right:	207.00000000000000
	Bottom:	73.00000000000000
)

(RectD.695
	Left:	101.00000000000000
	Top:	114.00000000000000
	Right:	207.00000000000000
	Bottom:	94.00000000000000
)

(CPanel.696
	InternalName:	"aControlPanel6"
	Child:	697
	Child:	699
	Child:	700
	Constraints:	0x55
	ResBox:	701
	ResBox:	702
	ResBox:	703
	Label:	"Line Preview"
	VisibleBorder:	1
	Listening:	1
)

(AVLBox.697
	InternalName:	"ListBox.AdvancedLinePreview"
	NextControl:	11
	ContentKind:	4
	Constraints:	0x55
	ColumnCount:	1
	Listening:	1
	SelectionStyle:	698
	Apply:	"LineBuilder.CreateLine"
)

(AVEnum.698
	Name:	"LISTBOX_SELECTION_SINGLECELL"
)

(LButn.699
	InternalName:	"LabelButton.OK"
	Label:	"OK"
	Click:	"LineBuilder.AdvancedOK"
)

(LButn.700
	InternalName:	"LabelButton.Cancel"
	Label:	"Cancel"
	Click:	"LineBuilder.AdvancedCancel"
)

(RectD.701
	Left:	10.00000000000000
	Top:	145.00000000000000
	Right:	177.00000000000000
	Bottom:	22.00000000000000
)

(RectD.702
	Left:	11.00000000000000
	Top:	182.00000000000000
	Right:	76.00000000000000
	Bottom:	151.00000000000000
)

(RectD.703
	Left:	111.00000000000000
	Top:	183.00000000000000
	Right:	176.00000000000000
	Bottom:	152.00000000000000
)

(RectD.704
	Left:	194.00000000000000
	Top:	198.00000000000000
	Right:	421.00000000000000
	Bottom:	11.00000000000000
)

(RectD.705
	Left:	6.00000000000000
	Top:	198.00000000000000
	Right:	194.00000000000000
	Bottom:	11.00000000000000
)

(Nil.706
)

(Nil.707
)

(AVDLog.708
	Name:	"LineBuilder"
	X:	81
	Y:	90
	W:	380
	H:	406
	ConstrainedControlNames:	709
	ConstrainedControlNames:	710
	ConstrainedControlNames:	711
	Constraints:	712
	Constraints:	713
	Constraints:	714
	Server:	11
	ControlPanel:	715
	ObjectTag:	900
	Title:	"Advanced Line Builder / Color Picker"
	EscapeEnabled:	1
	AlwaysOnTop:	1
	HasTitleBar:	1
	Closeable:	1
	Open:	"LineBuilder.Open"
	DefaultButton:	901
)

(AVStr.709
	S:	"LabelButton.Help"
)

(AVStr.710
	S:	"aLabelButton25"
)

(AVStr.711
	S:	"Button.Line1"
)

(Numb.712
	N:	85.00000000000000
)

(Numb.713
	N:	85.00000000000000
)

(Numb.714
	N:	85.00000000000000
)

(CPanel.715
	Child:	716
	Child:	717
	Child:	718
	Child:	735
	Child:	747
	Child:	759
	Child:	795
	Child:	801
	Child:	812
	Child:	848
	Child:	884
	Child:	886
	ResBox:	888
	ResBox:	889
	ResBox:	890
	ResBox:	891
	ResBox:	892
	ResBox:	893
	ResBox:	894
	ResBox:	895
	ResBox:	896
	ResBox:	897
	ResBox:	898
	ResBox:	899
	Listening:	1
)

(TextBox.716
	InternalName:	"TextBox.Info"
	Listening:	1
	ReadOnly:	1
	Text:	"Welcome to Cool Tools...                These tools allow you to choose custom RGB colors and build custom simple and complex line symbols, and add all of them to your current ArcView palette.  Click below to cycle through help topics."
	Constraints:	0x55
	NextControl:	11
)

(LButn.717
	InternalName:	"LabelButton.Help"
	Help:	"Click for help"
	Label:	"aLabelButton3"
	Click:	"LineBuilder.LabelButtonHelp"
)

(CPanel.718
	InternalName:	"ControlPanel.Line1"
	Child:	719
	Child:	720
	Child:	722
	Child:	723
	Child:	724
	Child:	725
	Child:	727
	Constraints:	0x55
	ResBox:	728
	ResBox:	729
	ResBox:	730
	ResBox:	731
	ResBox:	732
	ResBox:	733
	ResBox:	734
	Label:	"Line 1"
	VisibleBorder:	1
	Listening:	1
)

(AVCBBox.719
	InternalName:	"ComboBox.LineStyle1"
	NextControl:	11
	ContentKind:	4
	Constraints:	0x55
	Listening:	1
	Select:	"LineBuilder.LineStylePreview1"
)

(AVLBox.720
	InternalName:	"ListBox.LineStylePreview1"
	NextControl:	11
	ContentKind:	4
	Constraints:	0x55
	ColumnCount:	1
	Listening:	1
	SelectionStyle:	721
)

(AVEnum.721
	Name:	"LISTBOX_SELECTION_SINGLECELL"
)

(AVCBBox.722
	InternalName:	"ComboBox.Line1Width"
	NextControl:	11
	ContentKind:	4
	Constraints:	0x55
	Listening:	1
	Select:	"LineBuilder.LineStylePreview1"
)

(TextLabel.723
	InternalName:	"TextLabel.Width1"
	Tag:	" "
	Constraints:	0x55
	Label:	"Width"
	Listening:	1
)

(TextLabel.724
	InternalName:	"TextLabel.Style1"
	Tag:	" "
	Constraints:	0x55
	Label:	"Style"
	Listening:	1
)

(Butn.725
	InternalName:	"Button.Line1"
	Disabled:	1
	Icon:	726
	Click:	"LineBuilder.AdvancedOpener"
)

(AVIcon.726
	Name:	"Empty"
	Res:	"AVIcon.Empty"

)

(TextLabel.727
	InternalName:	"TextLabel.Line1More"
	Constraints:	0x55
	Label:	"Adv."
	Listening:	1
)

(RectD.728
	Left:	6.00000000000000
	Top:	243.00000000000000
	Right:	84.00000000000000
	Bottom:	75.00000000000000
)

(RectD.729
	Left:	18.00000000000000
	Top:	56.00000000000000
	Right:	71.00000000000000
	Bottom:	24.00000000000000
)

(RectD.730
	Left:	6.00000000000000
	Top:	196.00000000000000
	Right:	59.00000000000000
	Bottom:	110.00000000000000
)

(RectD.731
	Left:	9.00000000000000
	Top:	107.00000000000000
	Right:	47.00000000000000
	Bottom:	94.00000000000000
)

(RectD.732
	Left:	10.00000000000000
	Top:	72.00000000000000
	Right:	48.00000000000000
	Bottom:	59.00000000000000
)

(RectD.733
	Left:	64.00000000000000
	Top:	127.00000000000000
	Right:	80.00000000000000
	Bottom:	110.00000000000000
)

(RectD.734
	Left:	62.00000000000000
	Top:	110.00000000000000
	Right:	86.00000000000000
	Bottom:	95.00000000000000
)

(CPanel.735
	InternalName:	"ControlPanel.Line2"
	Child:	736
	Child:	738
	Child:	739
	Child:	740
	Child:	741
	Constraints:	0x55
	ResBox:	742
	ResBox:	743
	ResBox:	744
	ResBox:	745
	ResBox:	746
	Label:	"Line 2"
	VisibleBorder:	1
	Listening:	1
)

(AVLBox.736
	InternalName:	"ListBox.LineStylePreview2"
	NextControl:	11
	ContentKind:	4
	Constraints:	0x55
	ColumnCount:	1
	Listening:	1
	SelectionStyle:	737
)

(AVEnum.737
	Name:	"LISTBOX_SELECTION_SINGLECELL"
)

(AVCBBox.738
	InternalName:	"ComboBox.LineStyle2"
	NextControl:	11
	ContentKind:	4
	Constraints:	0x55
	Listening:	1
	Select:	"LineBuilder.LineStylePreview2"
)

(TextLabel.739
	InternalName:	"TextLabel.Width2"
	Tag:	" "
	Constraints:	0x55
	Label:	"Width"
	Listening:	1
)

(AVCBBox.740
	InternalName:	"ComboBox.Line2Width"
	NextControl:	11
	ContentKind:	4
	Constraints:	0x55
	Listening:	1
	Select:	"LineBuilder.LineStylePreview2"
)

(TextLabel.741
	InternalName:	"TextLabel.Style2"
	Tag:	" "
	Constraints:	0x55
	Label:	"Style"
	Listening:	1
)

(RectD.742
	Left:	17.00000000000000
	Top:	56.00000000000000
	Right:	70.00000000000000
	Bottom:	24.00000000000000
)

(RectD.743
	Left:	5.00000000000000
	Top:	243.00000000000000
	Right:	83.00000000000000
	Bottom:	75.00000000000000
)

(RectD.744
	Left:	8.00000000000000
	Top:	109.00000000000000
	Right:	46.00000000000000
	Bottom:	96.00000000000000
)

(RectD.745
	Left:	5.00000000000000
	Top:	197.00000000000000
	Right:	58.00000000000000
	Bottom:	111.00000000000000
)

(RectD.746
	Left:	9.00000000000000
	Top:	73.00000000000000
	Right:	47.00000000000000
	Bottom:	60.00000000000000
)

(CPanel.747
	InternalName:	"ControlPanel.Line3"
	Child:	748
	Child:	750
	Child:	751
	Child:	752
	Child:	753
	Constraints:	0x55
	ResBox:	754
	ResBox:	755
	ResBox:	756
	ResBox:	757
	ResBox:	758
	Label:	"Line 3"
	VisibleBorder:	1
	Listening:	1
)

(AVLBox.748
	InternalName:	"ListBox.LineStylePreview3"
	NextControl:	11
	ContentKind:	4
	Constraints:	0x55
	ColumnCount:	1
	Listening:	1
	SelectionStyle:	749
)

(AVEnum.749
	Name:	"LISTBOX_SELECTION_SINGLECELL"
)

(AVCBBox.750
	InternalName:	"ComboBox.LineStyle3"
	NextControl:	11
	ContentKind:	4
	Constraints:	0x55
	Listening:	1
	Select:	"LineBuilder.LineStylePreview3"
)

(TextLabel.751
	InternalName:	"aTextLabel14"
	Tag:	" "
	Constraints:	0x55
	Label:	"Style"
	Listening:	1
)

(AVCBBox.752
	InternalName:	"ComboBox.Line3Width"
	NextControl:	11
	ContentKind:	4
	Constraints:	0x55
	Listening:	1
	Select:	"LineBuilder.LineStylePreview3"
)

(TextLabel.753
	InternalName:	"aTextLabel16"
	Tag:	" "
	Constraints:	0x55
	Label:	"Width"
	Listening:	1
)

(RectD.754
	Left:	20.00000000000000
	Top:	54.00000000000000
	Right:	73.00000000000000
	Bottom:	22.00000000000000
)

(RectD.755
	Left:	5.00000000000000
	Top:	242.00000000000000
	Right:	84.00000000000000
	Bottom:	74.00000000000000
)

(RectD.756
	Left:	9.00000000000000
	Top:	72.00000000000000
	Right:	47.00000000000000
	Bottom:	59.00000000000000
)

(RectD.757
	Left:	5.00000000000000
	Top:	197.00000000000000
	Right:	58.00000000000000
	Bottom:	111.00000000000000
)

(RectD.758
	Left:	8.00000000000000
	Top:	109.00000000000000
	Right:	46.00000000000000
	Bottom:	96.00000000000000
)

(CPanel.759
	InternalName:	"ControlPanel.Line1Att"
	Child:	760
	Child:	762
	Child:	764
	Child:	766
	Child:	767
	Child:	769
	Child:	775
	Child:	781
	Constraints:	0x55
	ResBox:	787
	ResBox:	788
	ResBox:	789
	ResBox:	790
	ResBox:	791
	ResBox:	792
	ResBox:	793
	ResBox:	794
	Label:	"Color"
	VisibleBorder:	1
	Listening:	1
)

(TextLine.760
	InternalName:	"TextLine.Red"
	Text:	"5"
	Label:	"R"
	Constraints:	0x55
	Listening:	1
	TextType:	761
	Changed:	"LineBuilder.CustomUpdate1"
	NextControl:	11
)

(AVEnum.761
	Name:	"TEXTLINE_TYPE_INTEGER"
)

(TextLine.762
	InternalName:	"TextLine.Green"
	Text:	"5"
	Label:	"G"
	Constraints:	0x55
	Listening:	1
	TextType:	763
	Changed:	"LineBuilder.CustomUpdate1"
	NextControl:	11
)

(AVEnum.763
	Name:	"TEXTLINE_TYPE_INTEGER"
)

(TextLine.764
	InternalName:	"TextLine.Blue"
	Text:	"5"
	Label:	"B"
	Constraints:	0x55
	Listening:	1
	TextType:	765
	Changed:	"LineBuilder.CustomUpdate1"
	NextControl:	11
)

(AVEnum.765
	Name:	"TEXTLINE_TYPE_INTEGER"
)

(AVCBBox.766
	InternalName:	"ComboBox_Color"
	NextControl:	11
	ContentKind:	4
	Constraints:	0x55
	Listening:	1
	Select:	"LineBuilder.RGB1Updater"
)

(AVLBox.767
	InternalName:	"ListBox.Line1Swatch"
	NextControl:	11
	ContentKind:	4
	Constraints:	0x55
	ColumnCount:	1
	Listening:	1
	SelectionStyle:	768
	Apply:	"LineBuilder.AddColor1ToPalette"
)

(AVEnum.768
	Name:	"LISTBOX_SELECTION_SINGLECELL"
)

(AVSlider.769
	InternalName:	"Slider.Red1"
	Constraints:	0x55
	NextControl:	11
	Listening:	1
	Horizontal:	1
	Value:	770
	Upper:	771
	Lower:	772
	ValueIncrement:	773
	MainIncrement:	774
	AuxIncrement:	772
	Drag:	"LineBuilder.SliderLine1"
)

(Numb.770
	InternalName:	"0.000000"
)

(Numb.771
	InternalName:	"255.000000"
	N:	255.00000000000000
)

(Numb.772
	InternalName:	"0.000"
)

(Numb.773
	InternalName:	"1.000"
	N:	1.00000000000000
)

(Numb.774
	InternalName:	"2.000"
	N:	2.00000000000000
)

(AVSlider.775
	InternalName:	"Slider.Green1"
	Constraints:	0x55
	NextControl:	11
	Listening:	1
	Horizontal:	1
	Value:	776
	Upper:	777
	Lower:	778
	ValueIncrement:	779
	MainIncrement:	780
	AuxIncrement:	778
	Drag:	"LineBuilder.SliderLine1"
)

(Numb.776
	InternalName:	"0.000000"
)

(Numb.777
	InternalName:	"255.000000"
	N:	255.00000000000000
)

(Numb.778
	InternalName:	"0.000"
)

(Numb.779
	InternalName:	"1.000"
	N:	1.00000000000000
)

(Numb.780
	InternalName:	"2.000"
	N:	2.00000000000000
)

(AVSlider.781
	InternalName:	"Slider.Blue1"
	Constraints:	0x55
	NextControl:	11
	Listening:	1
	Horizontal:	1
	Value:	782
	Upper:	783
	Lower:	784
	ValueIncrement:	785
	MainIncrement:	786
	AuxIncrement:	784
	Drag:	"LineBuilder.SliderLine1"
)

(Numb.782
	InternalName:	"0.000000"
)

(Numb.783
	InternalName:	"255.000000"
	N:	255.00000000000000
)

(Numb.784
	InternalName:	"0.000"
)

(Numb.785
	InternalName:	"1.000"
	N:	1.00000000000000
)

(Numb.786
	InternalName:	"2.000"
	N:	2.00000000000000
)

(RectD.787
	Left:	4.00000000000000
	Top:	56.00000000000000
	Right:	46.00000000000000
	Bottom:	36.00000000000000
)

(RectD.788
	Left:	4.00000000000000
	Top:	76.00000000000000
	Right:	46.00000000000000
	Bottom:	56.00000000000000
)

(RectD.789
	Left:	5.00000000000000
	Top:	96.00000000000000
	Right:	46.00000000000000
	Bottom:	76.00000000000000
)

(RectD.790
	Left:	14.00000000000000
	Top:	118.00000000000000
	Right:	80.00000000000000
	Bottom:	17.00000000000000
)

(RectD.791
	Left:	19.00000000000000
	Top:	131.00000000000000
	Right:	83.00000000000000
	Bottom:	99.00000000000000
)

(RectD.792
	Left:	45.00000000000000
	Top:	53.00000000000000
	Right:	89.00000000000000
	Bottom:	39.00000000000000
)

(RectD.793
	Left:	44.00000000000000
	Top:	73.00000000000000
	Right:	89.00000000000000
	Bottom:	59.00000000000000
)

(RectD.794
	Left:	44.00000000000000
	Top:	93.00000000000000
	Right:	89.00000000000000
	Bottom:	79.00000000000000
)

(CPanel.795
	InternalName:	"ControlPanel.LinePreview"
	Child:	796
	Child:	797
	Constraints:	0x55
	ResBox:	799
	ResBox:	800
	Label:	"Line Preview"
	VisibleBorder:	1
	Listening:	1
)

(LButn.796
	InternalName:	"aLabelButton25"
	Label:	"Add to Palette"
	Click:	"LineBuilder.CreateLine"
)

(AVLBox.797
	InternalName:	"ListBox.LinePreview"
	NextControl:	11
	ContentKind:	4
	Constraints:	0x55
	ColumnCount:	1
	Listening:	1
	SelectionStyle:	798
	Apply:	"LineBuilder.CreateLine"
)

(AVEnum.798
	Name:	"LISTBOX_SELECTION_SINGLECELL"
)

(RectD.799
	Left:	55.00000000000000
	Top:	183.00000000000000
	Right:	133.00000000000000
	Bottom:	159.00000000000000
)

(RectD.800
	Left:	11.00000000000000
	Top:	153.00000000000000
	Right:	174.00000000000000
	Bottom:	19.00000000000000
)

(CPanel.801
	InternalName:	"ControlPanel.LineTypePicker"
	Child:	802
	Child:	803
	Child:	804
	Child:	805
	Child:	806
	Constraints:	0x55
	ResBox:	807
	ResBox:	808
	ResBox:	809
	ResBox:	810
	ResBox:	811
	Label:	"Line Type"
	VisibleBorder:	1
	Listening:	1
)

(RButn.802
	InternalName:	"RadBut_2Line"
	Constraints:	0x55
	Listening:	1
	Label:	"2-Part Line"
	Click:	"LineBuilder.2ButtonClick"
)

(RButn.803
	InternalName:	"RadBut_3Line"
	Constraints:	0x55
	Listening:	1
	Label:	"3-Part Line"
	Click:	"LineBuilder.3ButtonClick"
)

(RButn.804
	InternalName:	"RadBut_1Line"
	Constraints:	0x55
	Listening:	1
	Label:	"1-Part Line"
	Click:	"LineBuilder.1ButtonClick"
)

(AVCBBox.805
	InternalName:	"ComboBox.LinePresets"
	NextControl:	11
	ContentKind:	4
	Constraints:	0x55
	Listening:	1
	Select:	"LineBuilder.Presets"
)

(TextLabel.806
	InternalName:	"TextLabel.Presets"
	Constraints:	0x55
	Label:	"Presets"
	Listening:	1
)

(RectD.807
	Left:	7.00000000000000
	Top:	50.00000000000000
	Right:	103.00000000000000
	Bottom:	36.00000000000000
)

(RectD.808
	Left:	7.00000000000000
	Top:	68.00000000000000
	Right:	103.00000000000000
	Bottom:	54.00000000000000
)

(RectD.809
	Left:	7.00000000000000
	Top:	33.00000000000000
	Right:	103.00000000000000
	Bottom:	18.00000000000000
)

(RectD.810
	Left:	80.00000000000000
	Top:	155.00000000000000
	Right:	182.00000000000000
	Bottom:	36.00000000000000
)

(RectD.811
	Left:	110.00000000000000
	Top:	32.00000000000000
	Right:	150.00000000000000
	Bottom:	19.00000000000000
)

(CPanel.812
	InternalName:	"ControlPanel.Line3Att"
	Child:	813
	Child:	815
	Child:	817
	Child:	819
	Child:	820
	Child:	822
	Child:	828
	Child:	834
	Constraints:	0x55
	ResBox:	840
	ResBox:	841
	ResBox:	842
	ResBox:	843
	ResBox:	844
	ResBox:	845
	ResBox:	846
	ResBox:	847
	Label:	"Color"
	VisibleBorder:	1
	Listening:	1
)

(TextLine.813
	InternalName:	"TextLine.Blue3"
	Text:	"5"
	Label:	"B"
	Constraints:	0x55
	Listening:	1
	TextType:	814
	Changed:	"LineBuilder.CustomUpdate3"
	NextControl:	11
)

(AVEnum.814
	Name:	"TEXTLINE_TYPE_INTEGER"
)

(TextLine.815
	InternalName:	"TextLine.Green3"
	Text:	"5"
	Label:	"G"
	Constraints:	0x55
	Listening:	1
	TextType:	816
	Changed:	"LineBuilder.CustomUpdate3"
	NextControl:	11
)

(AVEnum.816
	Name:	"TEXTLINE_TYPE_INTEGER"
)

(TextLine.817
	InternalName:	"TextLine.Red3"
	Text:	"5"
	Label:	"R"
	Constraints:	0x55
	Listening:	1
	TextType:	818
	Changed:	"LineBuilder.CustomUpdate3"
	NextControl:	11
)

(AVEnum.818
	Name:	"TEXTLINE_TYPE_INTEGER"
)

(AVCBBox.819
	InternalName:	"ComboBox_Color3"
	NextControl:	11
	ContentKind:	4
	Constraints:	0x55
	Listening:	1
	Select:	"LineBuilder.RGB3Updater"
)

(AVLBox.820
	InternalName:	"ListBox.Line3Swatch"
	NextControl:	11
	ContentKind:	4
	Constraints:	0x55
	ColumnCount:	1
	Listening:	1
	SelectionStyle:	821
	Apply:	"LineBuilder.AddColor3ToPalette"
)

(AVEnum.821
	Name:	"LISTBOX_SELECTION_SINGLECELL"
)

(AVSlider.822
	InternalName:	"Slider.Red3"
	Constraints:	0x55
	NextControl:	11
	Listening:	1
	Horizontal:	1
	Value:	823
	Upper:	824
	Lower:	825
	ValueIncrement:	826
	MainIncrement:	827
	AuxIncrement:	825
	Drag:	"LineBuilder.SliderLine3"
)

(Numb.823
	InternalName:	"10.000000"
	N:	10.00000000000000
)

(Numb.824
	InternalName:	"255.000000"
	N:	255.00000000000000
)

(Numb.825
	InternalName:	"0.000"
)

(Numb.826
	InternalName:	"1.000"
	N:	1.00000000000000
)

(Numb.827
	InternalName:	"2.000"
	N:	2.00000000000000
)

(AVSlider.828
	InternalName:	"Slider.Green3"
	Constraints:	0x55
	NextControl:	11
	Listening:	1
	Horizontal:	1
	Value:	829
	Upper:	830
	Lower:	831
	ValueIncrement:	832
	MainIncrement:	833
	AuxIncrement:	831
	Drag:	"LineBuilder.SliderLine3"
)

(Numb.829
	InternalName:	"0.000000"
)

(Numb.830
	InternalName:	"255.000000"
	N:	255.00000000000000
)

(Numb.831
	InternalName:	"0.000"
)

(Numb.832
	InternalName:	"1.000"
	N:	1.00000000000000
)

(Numb.833
	InternalName:	"2.000"
	N:	2.00000000000000
)

(AVSlider.834
	InternalName:	"Slider.Blue3"
	Constraints:	0x55
	NextControl:	11
	Listening:	1
	Horizontal:	1
	Value:	835
	Upper:	836
	Lower:	837
	ValueIncrement:	838
	MainIncrement:	839
	AuxIncrement:	837
	Drag:	"LineBuilder.SliderLine3"
)

(Numb.835
	InternalName:	"0.000000"
)

(Numb.836
	InternalName:	"255.000000"
	N:	255.00000000000000
)

(Numb.837
	InternalName:	"0.000"
)

(Numb.838
	InternalName:	"1.000"
	N:	1.00000000000000
)

(Numb.839
	InternalName:	"2.000"
	N:	2.00000000000000
)

(RectD.840
	Left:	7.00000000000000
	Top:	96.00000000000000
	Right:	48.00000000000000
	Bottom:	76.00000000000000
)

(RectD.841
	Left:	6.00000000000000
	Top:	76.00000000000000
	Right:	48.00000000000000
	Bottom:	56.00000000000000
)

(RectD.842
	Left:	6.00000000000000
	Top:	56.00000000000000
	Right:	48.00000000000000
	Bottom:	36.00000000000000
)

(RectD.843
	Left:	17.00000000000000
	Top:	118.00000000000000
	Right:	83.00000000000000
	Bottom:	17.00000000000000
)

(RectD.844
	Left:	21.00000000000000
	Top:	131.00000000000000
	Right:	84.00000000000000
	Bottom:	99.00000000000000
)

(RectD.845
	Left:	46.00000000000000
	Top:	54.00000000000000
	Right:	90.00000000000000
	Bottom:	40.00000000000000
)

(RectD.846
	Left:	46.00000000000000
	Top:	74.00000000000000
	Right:	90.00000000000000
	Bottom:	60.00000000000000
)

(RectD.847
	Left:	46.00000000000000
	Top:	94.00000000000000
	Right:	90.00000000000000
	Bottom:	80.00000000000000
)

(CPanel.848
	InternalName:	"ControlPanel.Line2Att"
	Child:	849
	Child:	851
	Child:	853
	Child:	855
	Child:	856
	Child:	858
	Child:	864
	Child:	870
	Constraints:	0x55
	ResBox:	876
	ResBox:	877
	ResBox:	878
	ResBox:	879
	ResBox:	880
	ResBox:	881
	ResBox:	882
	ResBox:	883
	Label:	"Color"
	VisibleBorder:	1
	Listening:	1
)

(TextLine.849
	InternalName:	"TextLine.Blue2"
	Text:	"5"
	Label:	"B"
	Constraints:	0x55
	Listening:	1
	TextType:	850
	Changed:	"LineBuilder.CustomUpdate2"
	NextControl:	11
)

(AVEnum.850
	Name:	"TEXTLINE_TYPE_INTEGER"
)

(TextLine.851
	InternalName:	"TextLine.Green2"
	Text:	"5"
	Label:	"G"
	Constraints:	0x55
	Listening:	1
	TextType:	852
	Changed:	"LineBuilder.CustomUpdate2"
	NextControl:	11
)

(AVEnum.852
	Name:	"TEXTLINE_TYPE_INTEGER"
)

(TextLine.853
	InternalName:	"TextLine.Red2"
	Text:	"5"
	Label:	"R"
	Constraints:	0x55
	Listening:	1
	TextType:	854
	Changed:	"LineBuilder.CustomUpdate2"
	NextControl:	11
)

(AVEnum.854
	Name:	"TEXTLINE_TYPE_INTEGER"
)

(AVCBBox.855
	InternalName:	"ComboBox_Color2"
	NextControl:	11
	ContentKind:	4
	Constraints:	0x55
	Listening:	1
	Select:	"LineBuilder.RGB2Updater"
)

(AVLBox.856
	InternalName:	"ListBox.Line2Swatch"
	NextControl:	11
	ContentKind:	4
	Constraints:	0x55
	ColumnCount:	1
	Listening:	1
	SelectionStyle:	857
	Apply:	"LineBuilder.AddColor2ToPalette"
)

(AVEnum.857
	Name:	"LISTBOX_SELECTION_SINGLECELL"
)

(AVSlider.858
	InternalName:	"Slider.Blue2"
	Constraints:	0x55
	NextControl:	11
	Listening:	1
	Horizontal:	1
	Value:	859
	Upper:	860
	Lower:	861
	ValueIncrement:	862
	MainIncrement:	863
	AuxIncrement:	861
	Drag:	"LineBuilder.SliderLine2"
)

(Numb.859
	InternalName:	"10.000000"
	N:	10.00000000000000
)

(Numb.860
	InternalName:	"255.000000"
	N:	255.00000000000000
)

(Numb.861
	InternalName:	"0.000"
)

(Numb.862
	InternalName:	"1.000"
	N:	1.00000000000000
)

(Numb.863
	InternalName:	"2.000"
	N:	2.00000000000000
)

(AVSlider.864
	InternalName:	"Slider.Green2"
	Constraints:	0x55
	NextControl:	11
	Listening:	1
	Horizontal:	1
	Value:	865
	Upper:	866
	Lower:	867
	ValueIncrement:	868
	MainIncrement:	869
	AuxIncrement:	867
	Drag:	"LineBuilder.SliderLine2"
)

(Numb.865
	InternalName:	"10.000000"
	N:	10.00000000000000
)

(Numb.866
	InternalName:	"255.000000"
	N:	255.00000000000000
)

(Numb.867
	InternalName:	"0.000"
)

(Numb.868
	InternalName:	"1.000"
	N:	1.00000000000000
)

(Numb.869
	InternalName:	"2.000"
	N:	2.00000000000000
)

(AVSlider.870
	InternalName:	"Slider.Red2"
	Constraints:	0x55
	NextControl:	11
	Listening:	1
	Horizontal:	1
	Value:	871
	Upper:	872
	Lower:	873
	ValueIncrement:	874
	MainIncrement:	875
	AuxIncrement:	873
	Drag:	"LineBuilder.SliderLine2"
)

(Numb.871
	InternalName:	"10.000000"
	N:	10.00000000000000
)

(Numb.872
	InternalName:	"255.000000"
	N:	255.00000000000000
)

(Numb.873
	InternalName:	"0.000"
)

(Numb.874
	InternalName:	"1.000"
	N:	1.00000000000000
)

(Numb.875
	InternalName:	"2.000"
	N:	2.00000000000000
)

(RectD.876
	Left:	8.00000000000000
	Top:	96.00000000000000
	Right:	50.00000000000000
	Bottom:	76.00000000000000
)

(RectD.877
	Left:	7.00000000000000
	Top:	76.00000000000000
	Right:	50.00000000000000
	Bottom:	56.00000000000000
)

(RectD.878
	Left:	7.00000000000000
	Top:	56.00000000000000
	Right:	50.00000000000000
	Bottom:	36.00000000000000
)

(RectD.879
	Left:	18.00000000000000
	Top:	118.00000000000000
	Right:	84.00000000000000
	Bottom:	17.00000000000000
)

(RectD.880
	Left:	21.00000000000000
	Top:	131.00000000000000
	Right:	85.00000000000000
	Bottom:	99.00000000000000
)

(RectD.881
	Left:	48.00000000000000
	Top:	92.00000000000000
	Right:	93.00000000000000
	Bottom:	78.00000000000000
)

(RectD.882
	Left:	48.00000000000000
	Top:	72.00000000000000
	Right:	93.00000000000000
	Bottom:	58.00000000000000
)

(RectD.883
	Left:	48.00000000000000
	Top:	52.00000000000000
	Right:	93.00000000000000
	Bottom:	38.00000000000000
)

(AVIBox.884
	InternalName:	"aIconBox28"
	Constraints:	0x55
	Icon:	885
	Listening:	1
)

(AVIcon.885
	Name:	"2line.bmp"
	Data:	4e442049 6d616765 0001001e 00070000 
	Data:	02840000 00000000 00000000 00000000 
	Data:	00000000 00000000 00000000 00000000 
	Data:	00000000 00000000 00000000 00000000 
	Data:	00000000 00000000 00000000 00000000 
	Data:	00000000 00000000 00000000 00000000 
	Data:	00000000 00000000 00000000 3a000000 
	Data:	ff0000ff 0000ff00 00ff0000 ff0000ff 
	Data:	0000ff00 00ff0000 ff0000ff 0000ff00 
	Data:	00ff0000 ff0000ff 0000ff00 00ff0000 
	Data:	ff0000ff 0000ff00 00ff0000 ff0000ff 
	Data:	0000ff00 00ff0000 ff0000ff 0000ff00 
	Data:	00ff0000 ff0000ff 00000000 ff0000ff 
	Data:	0000ff00 00ff0000 ff0000ff 0000ff00 
	Data:	00ff0000 ff0000ff 0000ff00 00ff0000 
	Data:	ff0000ff 0000ff00 00ff0000 ff0000ff 
	Data:	0000ff00 00ff0000 ff0000ff 0000ff00 
	Data:	00ff0000 ff0000ff 0000ff00 00ff0000 
	Data:	ff0000ff 00000000 ff0000ff 0000ff00 
	Data:	00ff0000 ff0000ff 0000ff00 00ff0000 
	Data:	ff0000ff 0000ff00 00ff0000 ff0000ff 
	Data:	0000ff00 00ff0000 ff0000ff 0000ff00 
	Data:	00ff0000 ff0000ff 0000ff00 00ff0000 
	Data:	ff0000ff 0000ff00 00ff0000 ff0000ff 
	Data:	00000000 ff0000ff 0000ff00 00ff0000 
	Data:	ff0000ff 0000ff00 00ff0000 ff0000ff 
	Data:	0000ff00 00ff0000 ff0000ff 0000ff00 
	Data:	00ff0000 ff0000ff 0000ff00 00ff0000 
	Data:	ff0000ff 0000ff00 00ff0000 ff0000ff 
	Data:	0000ff00 00ff0000 ff0000ff 00000000 
	Data:	ff0000ff 0000ff00 00ff0000 ff0000ff 
	Data:	0000ff00 00ff0000 ff0000ff 0000ff00 
	Data:	00ff0000 ff0000ff 0000ff00 00ff0000 
	Data:	ff0000ff 0000ff00 00ff0000 ff0000ff 
	Data:	0000ff00 00ff0000 ff0000ff 0000ff00 
	Data:	00ff0000 ff0000ff 00000000 00000000 
	Data:	00000000 00000000 00000000 00000000 
	Data:	00000000 00000000 00000000 00000000 
	Data:	00000000 00000000 00000000 00000000 
	Data:	00000000 00000000 00000000 00000000 
	Data:	00000000 00000000 00000000 00000000 
	Data:	00000000 00000000 00000001 00180007 
	Data:	00200001 00020000 00000000 0000
)

(AVIBox.886
	InternalName:	"aIconBox1"
	Constraints:	0x55
	Icon:	887
	Listening:	1
)

(AVIcon.887
	Name:	"cooltools.gif"
	Data:	4e442049 6d616765 00010086 001a0000 
	Data:	0d9cffff ffffffff ffffffff ffffffff 
	Data:	ffffffff ffffffff ffffffff ffffffff 
	Data:	ffffffff ffffffff ffffffff ffffffff 
	Data:	ffffffff ffffffff ffffffff ffffffff 
	Data:	ffffffff ffffffff ffffffff ffffffff 
	Data:	ffffffff ffffffff ffffffff ffffffff 
	Data:	ffffffff ffffffff ffffffff ffffffff 
	Data:	ffffffff ffffffff ffffffff ffffffff 
	Data:	ffffffff ffffffff ffffffff ffffffff 
	Data:	ffffffff ffffffff ffffffff ffffffff 
	Data:	ffffffff ffffffff ffffffff ffffffff 
	Data:	ffffffff ffffffff ffffffff ffffffff 
	Data:	ffffffff ffffffff ffffffff ffffffff 
	Data:	ffffffff ffffffff ffffffff ffffffff 
	Data:	ffffffff ffffffff ffffffff ffffffff 
	Data:	ffffffff ffffffff ffffffff ffffffff 
	Data:	ffffffff ffffffff ffffffff ffffffff 
	Data:	ffffffff ffffffff ffffffff ffffffff 
	Data:	ffffffff ffffffff ffffffff ffffffff 
	Data:	ffffffff ffffffff ffffffff ffffffff 
	Data:	fffcc077 4cfcfcff ffffffff ffffffff 
	Data:	ffffffff ffffffff ffffffff ffffffff 
	Data:	ffffffff ffffffff ffffffff ffffffff 
	Data:	ffffffff ffffffff ffffffff fffcc077 
	Data:	4cfcfcff ffffffff ffffffff ffffffff 
	Data:	ffffffff ffffffff ffffffff fc777a7a 
	Data:	6969b14f 29014cfc ffffffff ffffffff 
	Data:	ffffffff ffffffff ffffffff ffffffff 
	Data:	ffffffff fc7b7a16 fdfd1955 4bffffff 
	Data:	ffffffff ff01102b d0717171 71717171 
	Data:	7110694a 4bfcffff ffffffff ffffffff 
	Data:	ffffffff ffffffff ffffffff ffffffff 
	Data:	fc7b7a16 fdfd1955 4bffffff ffffffff 
	Data:	ffffffff ffffffff ffffffff ffffffff 
	Data:	fcac48fd fdc8f5fd fd21fd39 f9534cff 
	Data:	ffffffff ffffffff ffffffff ffffffff 
	Data:	ffffffff ffffffff ffff4c10 fdfdfdfd 
	Data:	fe5954ff ffffffff fffffc69 fdfdfdfd 
	Data:	fdfdfdfd fdfdfdfd 85226d4b ffffffff 
	Data:	ffffffff ffffffff ffffffff ffffffff 
	Data:	ffffffff ffff4c10 fdfdfdfd fe5954ff 
	Data:	ffffffff ffffffff ffffffff ffffffff 
	Data:	ffffffff ffad16fd fd4327fe decca9fd 
	Data:	fdfd1551 4affffff ffffffff ffffffff 
	Data:	ffffffff ffffffff ffffffff ffffffff 
	Data:	4b6e0b50 fdfdfe64 4effffff ffffffff 
	Data:	4f16fdfd 8a054dfd fd621d4d 89fdfdfb 
	Data:	616afcff ffffffff ffffffff ffffffff 
	Data:	ffffffff ffffffff ffffffff 4b6e0b50 
	Data:	fdfdfe64 4effffff ffffffff ffffffff 
	Data:	ffffffff ffffffff ffffad16 fdfd9dfe 
	Data:	44316f6f 4502fdfd 05828dfc ffffffff 
	Data:	ffffffff ffffffff ffffffff ffffffff 
	Data:	ffffffff ffff4a51 58bbfdfd fe825eff 
	Data:	ffffffff ffffeafd fd9dfe0b d4fdfd50 
	Data:	3af61732 fd8a305b 4cffffff ffffffff 
	Data:	ffffffff ffffffff ffffffff ffffffff 
	Data:	ffff4a51 58bbfdfd fe825eff ffffffff 
	Data:	ffffffff ffffffff ffffffff fffffffc 
	Data:	ddfdfda9 fe3f350e 3800b014 a6fd7428 
	Data:	5d4cffff ffffffff ffffffff ffffffff 
	Data:	ffffffff ffffffff ffffffff 4b631139 
	Data:	fdfdfe52 51ffffff fffffffc 0cfd8afe 
	Data:	40bf2ffd fd5042bf 14ebfd3b 46614aff 
	Data:	ffffffff ffffffff ffffffff ffffffff 
	Data:	ffffffff ffffffff 4b631139 fdfdfe52 
	Data:	51ffffff ffffffff ffffffff ffffffff 
	Data:	ffffffff ff01fdfd fd27070a 0f6179aa 
	Data:	5a72c7fd 62d8614a fffffc77 7a7a6986 
	Data:	904cfcff ffffffff fc777a7a 6986904c 
	Data:	fcfffc4a 5913fdfd fe5251ff ffffffff 
	Data:	ff4bb3c4 270b1465 cafdfd50 de19526f 
	Data:	eea9667f 56fffc77 7a7a6986 904cfcff 
	Data:	ffffffff fc777a7a 6986904c fcfffc4a 
	Data:	5913fdfd fe5251ff fffc7bac 7a6986b1 
	Data:	71b74cfc ffffffff fffffc3d fdfd62fe 
	Data:	30785d53 4c4c5457 68d28a42 7d55fc7b 
	Data:	20fdfd93 8bfd992a 564bfcff fc7b20fd 
	Data:	fd938bfd 992a564b fcff4e18 fdfdfe52 
	Data:	51ffffff ffffff4a 88410731 826ce8fd 
	Data:	fd501e0f 6c110687 0b658d9f 20fdfd93 
	Data:	8bfd992a 564bfcff fc7b20fd fd938bfd 
	Data:	992a564b fcff4e18 fdfdfe52 51ffaef7 
	Data:	fdfd368b fdfdfd03 704afcff ffffffff 
	Data:	4b47fdfd 743a6f61 53fcffff fc5611be 
	Data:	0b461156 9ffdfd1b 66fe1543 fdfd915c 
	Data:	4afc9ffd fd1b66fe 1543fdfd 915c4afc 
	Data:	4e18fdfd fe5251ff ffffffff ff4aaab6 
	Data:	781c8c63 1afdfd50 1e589c4e 76820061 
	Data:	e4fdfd1b 66fe1543 fdfd915c 4afc9ffd 
	Data:	fd1b66fe 1543fdfd 915c4afc 4e18fdfd 
	Data:	fe5251fc 2bfdfd74 fe3a49fd fd50376e 
	Data:	4bffffff ffff533c fdfd4d44 78514cff 
	Data:	ffffff4b 5ea18000 575620fd fd1d3a30 
	Data:	0da4a6fd fd9e5153 20fdfd1d 3a300da4 
	Data:	a6fdfd9e 514f4e18 fdfdfe52 51ffffff 
	Data:	ffffff4c 56796b51 554a1afd fd501e58 
	Data:	4e4f8d5d 595c20fd fd1d3a30 0da4a6fd 
	Data:	fd9e5153 20fdfd1d 3a300da4 a6fdfd9e 
	Data:	514f4e18 fdfdfe52 514b10fd fd4d460a 
	Data:	0acbfdfd 076154ff ffffffff 5618fdfd 
	Data:	4d7c6063 ffffffff fffc4a5e 6b594ec3 
	Data:	fdfd62fe 92818068 97fdfd4d 65bdfdfd 
	Data:	62fe9281 806897fd fd4d656d 6e18fdfd 
	Data:	fe5251ff ffffffff fffc4b4a 534f4c4a 
	Data:	1afdfd50 1e584efc 4b4a53c3 fdfd62fe 
	Data:	92818068 97fdfd4d 65bdfdfd 62fe9281 
	Data:	806897fd fd4d656d 6e18fdfd fe525153 
	Data:	e3fdfdfd e1e5670a d1896660 8dfcffff 
	Data:	ffff6ddf fdfd5025 7f6affff ffffffff 
	Data:	fc4b4a4a 4a0cfdfd 743a0a1c 577d04fd 
	Data:	fd50121f fdfd743a 0a1c577d 04fdfd50 
	Data:	41595c18 fdfdfe52 51ffffff ffffffff 
	Data:	ffffffff ff4f1afd fd501e58 4effffff 
	Data:	4c0cfdfd 743a0a1c 577d04fd fd50121f 
	Data:	fdfd743a 0a1c577d 04fdfd50 41595c18 
	Data:	fdfdfe52 5155f33e fdfdfdfd b903331e 
	Data:	3a356efc ffffffff 6d1ffdfd 3bdc6463 
	Data:	ffffffff ffffffff ffff4bb3 fdfd4d44 
	Data:	725d4a4e 98fdfd50 07b2fdfd 4d44725d 
	Data:	4a4e98fd fd500783 5d18fdfd fe5251ff 
	Data:	ffffffff ffffffff ffffff4f 1afdfd50 
	Data:	1e584eff ffff4bb3 fdfd4d44 725d4a4e 
	Data:	98fdfd50 07b2fdfd 4d44725d 4a4e98fd 
	Data:	fd500783 5d18fdfd fe525154 5f0acd62 
	Data:	fdfdfdfd fdd5d97e 4efcffff ffff56e2 
	Data:	fdfdfd49 b09cfcff ffffffff ffaeacb7 
	Data:	55e9fdfd 4d7c606d fc5494fd fd501e03 
	Data:	fdfd4d7c 606dfc54 94fdfd50 1e646b18 
	Data:	fdfdfe52 51ffffff ffffffff ffffffff 
	Data:	ff4f1afd fd501e58 4effffff 4a2afdfd 
	Data:	4d7c606d fc5494fd fd501e03 fdfd4d7c 
	Data:	606dfc54 94fdfd50 1e646b18 fdfdfe52 
	Data:	514f2de6 c2f0db74 89fdfdfd 02004e4c 
	Data:	ffffffff 545a08fd fd3bd388 4afcffff 
	Data:	ffffad16 fd0876d7 fdfd5025 7f6aff4a 
	Data:	96fdfd4d 1ecffdfd 50257f6a ff4a96fd 
	Data:	fd4d1e60 7018fdfd fe5251ff ffffffff 
	Data:	ffffffff ffffff4f 1afdfd50 1e584eff 
	Data:	ffff53ef fdfd5025 7f6aff4a 96fdfd4d 
	Data:	1ecffdfd 50257f6a ff4a96fd fd4d1e60 
	Data:	7018fdfd fe52514b 48fdf80a 45370b43 
	Data:	fdfdfdb5 5d4affff ffff4b59 673efdfd 
	Data:	3b2f9c4b fcfffc29 20fd3273 253836fd 
	Data:	fd9a7e63 fca8a0fd fd27d819 36fdfd9a 
	Data:	7e63fca8 a0fdfd27 ba646b18 fdfdfe52 
	Data:	51ffffff ffffffff ffffffff ff4f1afd 
	Data:	fd501e58 4effffff 4a5a36fd fd9a7e63 
	Data:	fca8a0fd fd27d819 36fdfd9a 7e63fca8 
	Data:	a0fdfd27 ba646b18 fdfdfe52 514a47fd 
	Data:	89e76881 142cfdfd fdfe766a ffffffff 
	Data:	fc6df933 32fdfdfd f4faf169 16fdfd50 
	Data:	7342ed58 04fdfd62 9b5b95a7 fdfd4dfe 
	Data:	ab0eb8fd fd629b5b 95a7fdfd 4dfe3183 
	Data:	2d21fdfd 66725bfc ffffffff ffffffff 
	Data:	ffffff4a 2afdfd89 da384eff ffff4f88 
	Data:	04fdfd62 9b5b95a7 fdfd4dfe ab0eb8fd 
	Data:	fd629b5b 95a7fdfd 4dfe3183 2d21fdfd 
	Data:	66725b55 c5fdfd1b caa15803 fdfd8afe 
	Data:	584effff ffffff4a 5d80ecce 3bfdfdfd 
	Data:	fdfdfd1b 9dfe1e0a 1c5a0f8e 3bfdfd13 
	Data:	fdfd854d fe2e65a1 788e3bfd fd13fdfd 
	Data:	854dfe2e 653cfdfd fdfdfdfd 61534cff 
	Data:	ffffffff fffffffc 29fdfdfd fdfdfd39 
	Data:	8c4afcff 4c5e008e 3bfdfd13 fdfd854d 
	Data:	fe2e65a1 788e3bfd fd13fdfd 854dfe2e 
	Data:	653cfdfd fdfdfdfd 619c1136 fdfdfdb9 
	Data:	21fdfd50 730b584e ffffffff fffc556c 
	Data:	0eab171d 4d4d4d4d 66fe3ab5 35b4575e 
	Data:	5f6723fb 4d4d8f05 73242e0d 75795f67 
	Data:	23fb4d4d 8f057324 2e0d64bc c11d1d1d 
	Data:	1d1dfe6e 4fffffff ffffffff fffce0cf 
	Data:	1d1d1d1d 1d660b63 4bfffc55 616723fb 
	Data:	4d4d8f05 73242e0d 75795f67 23fb4d4d 
	Data:	8f057324 2e0d64bc c11d1d1d 1d1dfeaa 
	Data:	83c9f273 9d4dafaf 66fedec2 116affff 
	Data:	ffffffff 4c56570f a52c4140 7c252528 
	Data:	0abe586b 554a4e75 09144187 843f41a3 
	Data:	6f605c53 4e750914 4187843f 41a36f60 
	Data:	595da528 26231222 455d53ff ffffffff 
	Data:	ffffff4c 63b62c37 d6232628 a5514aff 
	Data:	ff4c4e75 09144187 843f41a3 6f605c53 
	Data:	4e750914 4187843f 41a36f60 595da528 
	Data:	26231222 456b6b58 c6922c23 843f2522 
	Data:	3500794f ffffffff ffffff4c 55797db4 
	Data:	066f1981 670e005a 5c534cfc 4f4ea200 
	Data:	0e686868 0e82765e 4afc4f4e a2000e68 
	Data:	68680e82 765e6a6e 5a006867 0978755c 
	Data:	4affffff ffffffff fffc5559 7e726767 
	Data:	68005a4e 4bfffffc 4f4ea200 0e686868 
	Data:	0e82765e 4afc4f4e a2000e68 68680e82 
	Data:	765e6a6e 5a006867 09787551 4e596072 
	Data:	68686568 0652645d 54fcffff ffffffff 
	Data:	fffffc4f 565b575a 11115f6b 5e554bfc 
	Data:	fffffc4b 555c705f 5a5f575b 564bfcff 
	Data:	fc4b555c 705f5a5f 575b564b 4b545e8c 
	Data:	576c6c88 5b554bff ffffffff fffffffc 
	Data:	4f637970 6c6c578c 5e544cff fffffc4b 
	Data:	555c705f 5a5f575b 564bfcff fc4b555c 
	Data:	705f5a5f 575b564b 4b545e8c 576c6c88 
	Data:	5b554a55 5e595761 5a5a6159 4e4a4cff 
	Data:	ffffffff ffffffff fffffc4c 4f4a5454 
	Data:	4a4b4cfc ffffffff fffffc4c 4f535453 
	Data:	4a4cfcff ffffffff fc4c4f53 54534a4c 
	Data:	fcfffcfc 4c4b4f4a 4a4f4bfc fcffffff 
	Data:	ffffffff fffffc4c 4b4f4a4a 4f4b4cfc 
	Data:	fcffffff fffffc4c 4f535453 4a4cfcff 
	Data:	ffffffff fc4c4f53 54534a4c fcfffcfc 
	Data:	4c4b4f4a 4a4f4bfc fcfc4c4b 4f4a5354 
	Data:	4a4b4cfc ffffffff ffffffff ffffffff 
	Data:	ffffffff ffffffff ffffffff ffffffff 
	Data:	ffffffff ffffffff ffffffff ffffffff 
	Data:	ffffffff ffffffff ffffffff ffffffff 
	Data:	ffffffff ffffffff ffffffff ffffffff 
	Data:	ffffffff ffffffff ffffffff ffffffff 
	Data:	ffffffff ffffffff ffffffff ffffffff 
	Data:	ffffffff ffffffff ffffffff ffffffff 
	Data:	ffffffff ffffffff ffffffff ffff0000 
	Data:	03009b99 9baaacca 1728a849 56be666c 
	Data:	aa000a55 8d8b8d22 22222b3c c48c8a8c 
	Data:	7e7c7e2c 2b2c636f d8858385 92909298 
	Data:	96983348 eda7a4a7 4e4d4e26 3ce07a78 
	Data:	7a262636 243cf237 37472b40 e5868486 
	Data:	7f85c303 1de19e9c 9e000844 1f1e1f58 
	Data:	64cd1832 f6142ef2 5e5d5e4a 494a0707 
	Data:	07424142 51505100 04206261 628f95d3 
	Data:	5c68d168 74dd6b69 6ba8a7b8 3b3a3b5e 
	Data:	64a26564 65727072 041cd266 68867c7a 
	Data:	7c817f81 0c26ea5a 595a9d9a 9d253adf 
	Data:	11111100 1cee2f44 e96571da 0921d745 
	Data:	44453d3c 3d504e50 1a1a1a04 169d3131 
	Data:	31706f70 37363748 59e10d28 fb05137a 
	Data:	c1bec1c3 c0c3c4c1 c4000e75 bab7bac2 
	Data:	bfc20016 bab6b3b6 949294c0 bdc0bfbc 
	Data:	bfbebbbe bdbabdae abae9e9b 9eb2afb2 
	Data:	a9a7a9b5 b2b5b6b4 b6b3b0b3 b7b4b7aa 
	Data:	a7aaa09e a0aca9ac 0018cebc b9bca2a0 
	Data:	a2908e90 01062f8b 898c8f8d 8f6774dc 
	Data:	bdbbbdb0 aeb0adab adbbb8bb b9b6b988 
	Data:	8688afac af8e93d2 94919400 02100010 
	Data:	89a5a2a5 a8a5a890 96d49794 97b4b1b4 
	Data:	6975de9f a2cf3f3e 3fa5a3a5 a29fa2a4 
	Data:	a1a49694 96898789 9a979aa8 a6a84746 
	Data:	47031ff1 8088d544 4344afad af001ade 
	Data:	00129906 22f4b1ae b1bab8ba 39428e16 
	Data:	238bb5b4 c52a39b3 54525419 2fd37078 
	Data:	c5b6b5c6 4f5dd835 44be747a b80824f6 
	Data:	1c203c73 7593b8b5 b8000c65 4144619e 
	Data:	a2ce0b27 f9a3a1a3 aba8ab70 70707171 
	Data:	81828082 0620e43e 51e8b3b2 c30014aa 
	Data:	b3b1b36e 6c6e6a76 dfb8b7c8 b9b8c90a 
	Data:	187f918f 919da0cd 505cc55f 6cd49795 
	Data:	97464546 a19ea1b7 b6c76269 a60f29ed 
	Data:	403f4022 38dc9093 c09295c2 8a888a76 
	Data:	7476a0a3 d0212865 79777999 9cc9152b 
	Data:	cf7d82c1 69676946 51ab122a e07276a2 
	Data:	6a70ae27 338c181c 380b1770 09177e60 
	Data:	67a48c92 d01127cb 172bc13e 436e3840 
	Data:	7c3140ba 4c4b4c77 7dbb3d3d 3d7d7d8d 
	Data:	1c1d2c0f 132f1e20 2e5867e1 1b1b1b35 
	Data:	49dfb4b3 c41729b0 8e90ae45 56de979a 
	Data:	c76a6e9a 7c80ac63 6273797f bd5b68d0 
	Data:	a6a7c659 5b795f60 6f8f8e8f 3642ab7b 
	Data:	82bf3c3b 3c8b90cf 0a124e9c 9cac283b 
	Data:	d2112adf 55545540 53ea565c 9aa3a0a3 
	Data:	6d77d205 0f5ac5c2 c5001eff 000000c6 
	Data:	c3c60002 00080005 00180000 00000000 
	Data:	00000000 0000
)

(RectD.888
	Left:	5.00000000000000
	Top:	370.00000000000000
	Right:	194.00000000000000
	Bottom:	267.00000000000000
)

(RectD.889
	Left:	32.00000000000000
	Top:	401.00000000000000
	Right:	166.00000000000000
	Bottom:	372.00000000000000
)

(RectD.890
	Left:	200.00000000000000
	Top:	137.00000000000000
	Right:	289.00000000000000
	Bottom:	3.00000000000000
)

(RectD.891
	Left:	200.00000000000000
	Top:	270.00000000000000
	Right:	290.00000000000000
	Bottom:	136.00000000000000
)

(RectD.892
	Left:	200.00000000000000
	Top:	404.00000000000000
	Right:	290.00000000000000
	Bottom:	270.00000000000000
)

(RectD.893
	Left:	288.00000000000000
	Top:	137.00000000000000
	Right:	377.00000000000000
	Bottom:	3.00000000000000
)

(RectD.894
	Left:	5.00000000000000
	Top:	270.00000000000000
	Right:	193.00000000000000
	Bottom:	83.00000000000000
)

(RectD.895
	Left:	6.00000000000000
	Top:	83.00000000000000
	Right:	192.00000000000000
	Bottom:	6.00000000000000
)

(RectD.896
	Left:	288.00000000000000
	Top:	404.00000000000000
	Right:	378.00000000000000
	Bottom:	270.00000000000000
)

(RectD.897
	Left:	288.00000000000000
	Top:	270.00000000000000
	Right:	377.00000000000000
	Bottom:	136.00000000000000
)

(RectD.898
	Left:	75.00000000000000
	Top:	-122.00000000000000
	Right:	115.00000000000000
	Bottom:	-136.00000000000000
)

(RectD.899
	Left:	34.00000000000000
	Top:	403.00000000000000
	Right:	165.00000000000000
	Bottom:	372.00000000000000
)

(Nil.900
)

(Nil.901
)

(List.902
	Child:	903
)

(List.903
	Child:	904
	Child:	908
	Child:	910
)

(List.904
	Child:	905
	Child:	906
	Child:	907
)

(AVStr.905
	S:	"View"
)

(AVStr.906
	S:	"ButtonBar"
)

(AVStr.907
	S:	"View.Quick.Extents.C"
)

(Butn.908
	Help:	"Zoom to Saved Extent//Shift and Click for help"
	Icon:	909
	Click:	"View.Quick.Extents.C"
)

(AVIcon.909
	Name:	"1.bmp"
	Data:	4e442049 6d616765 00010014 00110000 
	Data:	03fcc8d0 d0c8d0d0 c8d0d0c8 d0d0c8d0 
	Data:	d0c8d0d0 c8d0d0c8 d0d0c8d0 d0c8d0d0 
	Data:	c8d0d0c8 d0d0c8d0 d0c8d0d0 c8d0d0c8 
	Data:	d0d0c8d0 d0c8d0d0 c8d0d0c8 d0d0c8d0 
	Data:	d0c8d0d0 00000000 00000000 00000000 
	Data:	00000000 0000c8d0 d0c8d0d0 c8d0d0c8 
	Data:	d0d00000 00000000 00000000 00000000 
	Data:	00000000 c8d0d0c8 d0d0c8d0 d0c8d0d0 
	Data:	00000000 00000000 00000000 c8d0d0c8 
	Data:	d0d0c8d0 d0c8d0d0 c8d0d0c8 d0d0c8d0 
	Data:	d0c8d0d0 00000000 00000000 00000000 
	Data:	c8d0d0c8 d0d0c8d0 d0c8d0d0 00000000 
	Data:	00000000 00000000 c8d0d0c8 d0d0c8d0 
	Data:	d0c8d0d0 c8d0d0c8 d0d0c8d0 d0c8d0d0 
	Data:	00000000 00000000 00000000 c8d0d0c8 
	Data:	d0d0c8d0 d0c8d0d0 00000000 00000000 
	Data:	ff0000ff 0000ff00 00ff0000 ff0000ff 
	Data:	0000ff00 00ff0000 ff0000ff 0000ff00 
	Data:	00ff0000 00000000 c8d0d0c8 d0d0c8d0 
	Data:	d0c8d0d0 000000c8 d0d00000 ff0000ff 
	Data:	0000ff00 00ff0000 ff0000ff 0000ff00 
	Data:	00ff0000 ff0000ff 0000ff00 00ffc8d0 
	Data:	d0000000 c8d0d0c8 d0d0c8d0 d0c8d0d0 
	Data:	000000c8 d0d00000 ff0000ff 00000000 
	Data:	00000000 00c8d0d0 c8d0d000 00000000 
	Data:	00000000 0000ff00 00ffc8d0 d0000000 
	Data:	c8d0d0c8 d0d0c8d0 d0c8d0d0 c8d0d0c8 
	Data:	d0d00000 ff0000ff c8d0d000 00000000 
	Data:	00c8d0d0 c8d0d000 00000000 00c8d0d0 
	Data:	0000ff00 00ffc8d0 d0c8d0d0 c8d0d0c8 
	Data:	d0d0c8d0 d0c8d0d0 c8d0d0c8 d0d00000 
	Data:	ff0000ff c8d0d0c8 d0d0c8d0 d0c8d0d0 
	Data:	c8d0d0c8 d0d0c8d0 d0c8d0d0 0000ff00 
	Data:	00ffc8d0 d0c8d0d0 c8d0d0c8 d0d0c8d0 
	Data:	d0c8d0d0 c8d0d0c8 d0d00000 ff0000ff 
	Data:	c8d0d0c8 d0d0c8d0 d0c8d0d0 c8d0d0c8 
	Data:	d0d0c8d0 d0c8d0d0 0000ff00 00ffc8d0 
	Data:	d0c8d0d0 c8d0d0c8 d0d0c8d0 d0c8d0d0 
	Data:	c8d0d0c8 d0d00000 ff0000ff c8d0d000 
	Data:	00000000 00c8d0d0 c8d0d000 00000000 
	Data:	00c8d0d0 0000ff00 00ffc8d0 d0c8d0d0 
	Data:	c8d0d0c8 d0d0c8d0 d0c8d0d0 000000c8 
	Data:	d0d00000 ff0000ff 00000000 00000000 
	Data:	00c8d0d0 c8d0d000 00000000 00000000 
	Data:	0000ff00 00ffc8d0 d0000000 c8d0d0c8 
	Data:	d0d0c8d0 d0c8d0d0 000000c8 d0d00000 
	Data:	ff0000ff 0000ff00 00ff0000 ff0000ff 
	Data:	0000ff00 00ff0000 ff0000ff 0000ff00 
	Data:	00ffc8d0 d0000000 c8d0d0c8 d0d0c8d0 
	Data:	d0c8d0d0 00000000 00000000 ff0000ff 
	Data:	0000ff00 00ff0000 ff0000ff 0000ff00 
	Data:	00ff0000 ff0000ff 0000ff00 00ff0000 
	Data:	00000000 c8d0d0c8 d0d0c8d0 d0c8d0d0 
	Data:	00000000 00000000 00000000 c8d0d0c8 
	Data:	d0d0c8d0 d0c8d0d0 c8d0d0c8 d0d0c8d0 
	Data:	d0c8d0d0 00000000 00000000 00000000 
	Data:	c8d0d0c8 d0d0c8d0 d0c8d0d0 00000000 
	Data:	00000000 00000000 c8d0d0c8 d0d0c8d0 
	Data:	d0c8d0d0 c8d0d0c8 d0d0c8d0 d0c8d0d0 
	Data:	00000000 00000000 00000000 c8d0d0c8 
	Data:	d0d0c8d0 d0c8d0d0 00000000 00000000 
	Data:	00000000 00000000 0000c8d0 d0c8d0d0 
	Data:	c8d0d0c8 d0d00000 00000000 00000000 
	Data:	00000000 00000000 c8d0d0c8 d0d00000 
	Data:	00000001 00180007 00200001 00020000 
	Data:	00000000 0000
)

(Numb.910
	N:	18.00000000000000
)

(List.911
	Child:	912
	Child:	919
	Child:	926
	Child:	933
	Child:	939
	Child:	946
	Child:	953
	Child:	960
	Child:	966
	Child:	973
	Child:	979
	Child:	986
	Child:	992
	Child:	999
	Child:	1005
	Child:	1012
	Child:	1018
	Child:	1025
	Child:	1031
	Child:	1038
	Child:	1044
	Child:	1051
	Child:	1057
	Child:	1064
	Child:	1070
	Child:	1077
	Child:	1083
	Child:	1090
	Child:	1096
)

(List.912
	Child:	913
	Child:	917
	Child:	918
)

(List.913
	Child:	914
	Child:	915
	Child:	916
)

(AVStr.914
	S:	"View"
)

(AVStr.915
	S:	"C-Theme Tools"
)

(AVStr.916
	S:	"1About.CompiledThemeTools"
)

(Choice.917
	Help:	"About Compiled Theme Tools "
	Label:	"1About Compiled Theme Tools"
	Click:	"1About.CompiledThemeTools"
	Shortcut:	"Keys.None"
)

(Numb.918
)

(List.919
	Child:	920
	Child:	924
	Child:	925
)

(List.920
	Child:	921
	Child:	922
	Child:	923
)

(AVStr.921
	S:	"View"
)

(AVStr.922
	S:	"C-Theme Tools"
)

(AVStr.923
	S:	"View.Zblank"
)

(Space.924
	Update:	"View.Zblank"
)

(Numb.925
	N:	1.00000000000000
)

(List.926
	Child:	927
	Child:	931
	Child:	932
)

(List.927
	Child:	928
	Child:	929
	Child:	930
)

(AVStr.928
	S:	"View"
)

(AVStr.929
	S:	"C-Theme Tools"
)

(AVStr.930
	S:	"View.Clear.All"
)

(Choice.931
	Help:	"Clears all Selected in all Themes in a View  -- Hold Shift & Click This Item for Instructions"
	Label:	"Clear All Selected"
	Click:	"View.Clear.All"
	Shortcut:	"Keys.None"
)

(Numb.932
	N:	2.00000000000000
)

(List.933
	Child:	934
	Child:	924
	Child:	938
)

(List.934
	Child:	935
	Child:	936
	Child:	937
)

(AVStr.935
	S:	"View"
)

(AVStr.936
	S:	"C-Theme Tools"
)

(AVStr.937
	S:	"View.Zblank"
)

(Numb.938
	N:	1.00000000000000
)

(List.939
	Child:	940
	Child:	944
	Child:	945
)

(List.940
	Child:	941
	Child:	942
	Child:	943
)

(AVStr.941
	S:	"View"
)

(AVStr.942
	S:	"C-Theme Tools"
)

(AVStr.943
	S:	"SE.Open"
)

(Choice.944
	Help:	"Opens the Saved Extents Dialog"
	Label:	"My Extents"
	Click:	"SE.Open"
	Shortcut:	"Keys.None"
)

(Numb.945
	N:	4.00000000000000
)

(List.946
	Child:	947
	Child:	951
	Child:	952
)

(List.947
	Child:	948
	Child:	949
	Child:	950
)

(AVStr.948
	S:	"View"
)

(AVStr.949
	S:	"C-Theme Tools"
)

(AVStr.950
	S:	"MT.Run"
)

(Choice.951
	Help:	"Adds Themes From a Saved List to Current View"
	Label:	"Add My Themes to View"
	Click:	"MT.Run"
	Shortcut:	"Keys.None"
)

(Numb.952
	N:	5.00000000000000
)

(List.953
	Child:	954
	Child:	958
	Child:	959
)

(List.954
	Child:	955
	Child:	956
	Child:	957
)

(AVStr.955
	S:	"View"
)

(AVStr.956
	S:	"C-Theme Tools"
)

(AVStr.957
	S:	"View.MV.Menu.C"
)

(Choice.958
	Help:	"Adds Views From a Saved List to Current Project -- Hold Shift & Click This Item for Instructions --- Hold Control & Click For Menu"
	Label:	"Add My Views to Project"
	Click:	"View.MV.Menu.C"
	Shortcut:	"Keys.None"
)

(Numb.959
	N:	6.00000000000000
)

(List.960
	Child:	961
	Child:	924
	Child:	965
)

(List.961
	Child:	962
	Child:	963
	Child:	964
)

(AVStr.962
	S:	"View"
)

(AVStr.963
	S:	"C-Theme Tools"
)

(AVStr.964
	S:	"View.Zblank"
)

(Numb.965
	N:	1.00000000000000
)

(List.966
	Child:	967
	Child:	971
	Child:	972
)

(List.967
	Child:	968
	Child:	969
	Child:	970
)

(AVStr.968
	S:	"View"
)

(AVStr.969
	S:	"C-Theme Tools"
)

(AVStr.970
	S:	"View.Toc.Menu.C"
)

(Choice.971
	Help:	"Table of Contents Tools  -- Hold Shift & Click This Item for Instructions "
	Label:	"T O C Tools"
	Click:	"View.Toc.Menu.C"
	Shortcut:	"Keys.None"
)

(Numb.972
	N:	8.00000000000000
)

(List.973
	Child:	974
	Child:	924
	Child:	978
)

(List.974
	Child:	975
	Child:	976
	Child:	977
)

(AVStr.975
	S:	"View"
)

(AVStr.976
	S:	"C-Theme Tools"
)

(AVStr.977
	S:	"View.Zblank"
)

(Numb.978
	N:	1.00000000000000
)

(List.979
	Child:	980
	Child:	984
	Child:	985
)

(List.980
	Child:	981
	Child:	982
	Child:	983
)

(AVStr.981
	S:	"View"
)

(AVStr.982
	S:	"C-Theme Tools"
)

(AVStr.983
	S:	"View.Legend.Tools.Menu.C"
)

(Choice.984
	Help:	"Legend Tools  -- Hold Shift & Click This Item for Instructions "
	Label:	"Legend Tools"
	Click:	"View.Legend.Tools.Menu.C"
	Shortcut:	"Keys.None"
)

(Numb.985
	N:	10.00000000000000
)

(List.986
	Child:	987
	Child:	924
	Child:	991
)

(List.987
	Child:	988
	Child:	989
	Child:	990
)

(AVStr.988
	S:	"View"
)

(AVStr.989
	S:	"C-Theme Tools"
)

(AVStr.990
	S:	"View.Zblank"
)

(Numb.991
	N:	1.00000000000000
)

(List.992
	Child:	993
	Child:	997
	Child:	998
)

(List.993
	Child:	994
	Child:	995
	Child:	996
)

(AVStr.994
	S:	"View"
)

(AVStr.995
	S:	"C-Theme Tools"
)

(AVStr.996
	S:	"View.Symbol.Tools.Menu.C"
)

(Choice.997
	Help:	"Symbol Tools "
	Label:	"Symbol Tools"
	Click:	"View.Symbol.Tools.Menu.C"
	Shortcut:	"Keys.None"
)

(Numb.998
	N:	12.00000000000000
)

(List.999
	Child:	1000
	Child:	924
	Child:	1004
)

(List.1000
	Child:	1001
	Child:	1002
	Child:	1003
)

(AVStr.1001
	S:	"View"
)

(AVStr.1002
	S:	"C-Theme Tools"
)

(AVStr.1003
	S:	"View.Zblank"
)

(Numb.1004
	N:	1.00000000000000
)

(List.1005
	Child:	1006
	Child:	1010
	Child:	1011
)

(List.1006
	Child:	1007
	Child:	1008
	Child:	1009
)

(AVStr.1007
	S:	"View"
)

(AVStr.1008
	S:	"C-Theme Tools"
)

(AVStr.1009
	S:	"View.Label.Menu.Branch.C"
)

(Choice.1010
	Help:	"Label Tools --- Hold Shift & Click This Item for Instructions\n"
	Label:	"Label Tools"
	Click:	"View.Label.Menu.Branch.C"
	Shortcut:	"Keys.None"
)

(Numb.1011
	N:	14.00000000000000
)

(List.1012
	Child:	1013
	Child:	924
	Child:	1017
)

(List.1013
	Child:	1014
	Child:	1015
	Child:	1016
)

(AVStr.1014
	S:	"View"
)

(AVStr.1015
	S:	"C-Theme Tools"
)

(AVStr.1016
	S:	"View.Zblank"
)

(Numb.1017
	N:	1.00000000000000
)

(List.1018
	Child:	1019
	Child:	1023
	Child:	1024
)

(List.1019
	Child:	1020
	Child:	1021
	Child:	1022
)

(AVStr.1020
	S:	"View"
)

(AVStr.1021
	S:	"C-Theme Tools"
)

(AVStr.1022
	S:	"View.Spatial.Tool.Menu.C"
)

(Choice.1023
	Help:	"Spatial Analysis Tools --- Hold Shift & Click This Item for Instructions\n"
	Label:	"Spatial Analysis Tools"
	Click:	"View.Spatial.Tool.Menu.C"
	Shortcut:	"Keys.None"
)

(Numb.1024
	N:	16.00000000000000
)

(List.1025
	Child:	1026
	Child:	924
	Child:	1030
)

(List.1026
	Child:	1027
	Child:	1028
	Child:	1029
)

(AVStr.1027
	S:	"View"
)

(AVStr.1028
	S:	"C-Theme Tools"
)

(AVStr.1029
	S:	"View.Zblank"
)

(Numb.1030
	N:	1.00000000000000
)

(List.1031
	Child:	1032
	Child:	1036
	Child:	1037
)

(List.1032
	Child:	1033
	Child:	1034
	Child:	1035
)

(AVStr.1033
	S:	"View"
)

(AVStr.1034
	S:	"C-Theme Tools"
)

(AVStr.1035
	S:	"View.Misc.Tools.Menu.C"
)

(Choice.1036
	Help:	"Misc. Tools --- Hold Shift & Click This Item for Instructions\n"
	Label:	"Misc. Tools"
	Click:	"View.Misc.Tools.Menu.C"
	Shortcut:	"Keys.None"
)

(Numb.1037
	N:	18.00000000000000
)

(List.1038
	Child:	1039
	Child:	924
	Child:	1043
)

(List.1039
	Child:	1040
	Child:	1041
	Child:	1042
)

(AVStr.1040
	S:	"View"
)

(AVStr.1041
	S:	"C-Theme Tools"
)

(AVStr.1042
	S:	"View.Zblank"
)

(Numb.1043
	N:	1.00000000000000
)

(List.1044
	Child:	1045
	Child:	1049
	Child:	1050
)

(List.1045
	Child:	1046
	Child:	1047
	Child:	1048
)

(AVStr.1046
	S:	"View"
)

(AVStr.1047
	S:	"C-Theme Tools"
)

(AVStr.1048
	S:	"View.Shape.Conver.Menu.C"
)

(Choice.1049
	Label:	"Shape Tools"
	Click:	"View.Shape.Conver.Menu.C"
	Shortcut:	"Keys.None"
)

(Numb.1050
	N:	20.00000000000000
)

(List.1051
	Child:	1052
	Child:	924
	Child:	1056
)

(List.1052
	Child:	1053
	Child:	1054
	Child:	1055
)

(AVStr.1053
	S:	"View"
)

(AVStr.1054
	S:	"C-Theme Tools"
)

(AVStr.1055
	S:	"View.Zblank"
)

(Numb.1056
	N:	1.00000000000000
)

(List.1057
	Child:	1058
	Child:	1062
	Child:	1063
)

(List.1058
	Child:	1059
	Child:	1060
	Child:	1061
)

(AVStr.1059
	S:	"View"
)

(AVStr.1060
	S:	"C-Theme Tools"
)

(AVStr.1061
	S:	"View.Tool.Bar.Menu"
)

(Choice.1062
	Help:	"Tool Bar Menu"
	Label:	"Tool Bars"
	Click:	"View.Tool.Bar.Menu"
	Shortcut:	"Keys.None"
)

(Numb.1063
	N:	22.00000000000000
)

(List.1064
	Child:	1065
	Child:	924
	Child:	1069
)

(List.1065
	Child:	1066
	Child:	1067
	Child:	1068
)

(AVStr.1066
	S:	"View"
)

(AVStr.1067
	S:	"C-Theme Tools"
)

(AVStr.1068
	S:	"View.Zblank"
)

(Numb.1069
	N:	1.00000000000000
)

(List.1070
	Child:	1071
	Child:	1075
	Child:	1076
)

(List.1071
	Child:	1072
	Child:	1073
	Child:	1074
)

(AVStr.1072
	S:	"View"
)

(AVStr.1073
	S:	"C-Theme Tools"
)

(AVStr.1074
	S:	"Doc.ExportImportODB"
)

(Choice.1075
	Help:	"Import // Export Views as ODB Files --- Hold Shift & Click This Item for Instructions\n"
	Label:	"Import // Export Views as ODB Files"
	Click:	"Doc.ExportImportODB"
	Shortcut:	"Keys.None"
)

(Numb.1076
	N:	24.00000000000000
)

(List.1077
	Child:	1078
	Child:	924
	Child:	1082
)

(List.1078
	Child:	1079
	Child:	1080
	Child:	1081
)

(AVStr.1079
	S:	"View"
)

(AVStr.1080
	S:	"C-Theme Tools"
)

(AVStr.1081
	S:	"View.Zblank"
)

(Numb.1082
	N:	1.00000000000000
)

(List.1083
	Child:	1084
	Child:	1088
	Child:	1089
)

(List.1084
	Child:	1085
	Child:	1086
	Child:	1087
)

(AVStr.1085
	S:	"View"
)

(AVStr.1086
	S:	"C-Theme Tools"
)

(AVStr.1087
	S:	"View.DXF.Menu.C"
)

(Choice.1088
	Help:	"DXF Tools --- Hold Shift & Click This Item for Instructions\n"
	Label:	"DXF Tools"
	Click:	"View.DXF.Menu.C"
	Shortcut:	"Keys.None"
)

(Numb.1089
	N:	26.00000000000000
)

(List.1090
	Child:	1091
	Child:	924
	Child:	1095
)

(List.1091
	Child:	1092
	Child:	1093
	Child:	1094
)

(AVStr.1092
	S:	"View"
)

(AVStr.1093
	S:	"C-Theme Tools"
)

(AVStr.1094
	S:	"View.Zblank"
)

(Numb.1095
	N:	1.00000000000000
)

(List.1096
	Child:	1097
	Child:	1101
	Child:	1102
)

(List.1097
	Child:	1098
	Child:	1099
	Child:	1100
)

(AVStr.1098
	S:	"View"
)

(AVStr.1099
	S:	"C-Theme Tools"
)

(AVStr.1100
	S:	"Theme.Tools.Whats.New.C"
)

(Choice.1101
	Help:	"Whats New //"
	Label:	"Whats New"
	Click:	"Theme.Tools.Whats.New.C"
	Shortcut:	"Keys.None"
)

(Numb.1102
	N:	28.00000000000000
)

(List.1103
)

(Script.1104
	Name:	"1About.CompiledThemeTools"
	SourceCode:	"'===========================================================\n \n'  Check for the shift  key, if the shift key is down, pop up instructions for using this script\n\n'if (System.IsShiftKeyDown) then\n  message =\n  \" POPUP HELP Script Author ( Script by Mike DeLaune, Email: mike.g.delaune@state.or.us,Oregon Department of Forestry, 10/19/97. and Brian J. Torreano 11/2/1999 for the Extension builder script)\"+nl+\n  \" \"+nl+\n  \" Disclamer & Thanks\"+nl+nl+\n  \" I would Like To Thank all of the People\"+nl+\n  \" that Have C
reated these scripts , From Those of us that\"+nl+\n  \" use them (THANK YOU)!! ,You Have Made our Jobs\"+nl+\n  \" Much Easer                                      \"+nl+\n  \"                                            \"+nl+\n  \" I TAKE NO CREDIT OR RESPONSIBILITY FOR     \"+nl+\n  \" THESE TOOLS , I MERELY COMPILED THEM       \"+nl+\n  \" TO SAVE SOME ROOM ON MY TOOL BAR           \"+nl+\n  \"                                            \"+nl+\n  \"                                            \"+nl+\n  \"                           
                 \"+nl+\n  \"                                            \"+nl+\n  \"                                             \"+nl\n'Title here         \n  msgbox.report(message,\"About Compiled Theme Tools\")\n  \n  Clipboard.The.Empty\n  Clipboard.The.Add(message)\n  Clipboard.The.Update\n    \n  MsgBox.Info(\"These instructions were copied to the system clipboard.  To print them, open a text editor\"++\n  \"(like notepad), paste in the contents of the clipboard, and print them from the text editor.\",\"PRINT INSTRUCTIONS\"
)\n\n'  return nil\n'end\n'===========================================================\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n' Script by Mike DeLaune, (Email: mike.g.delaune@state.or.us),\n' Oregon Department of Forestry, 10/19/97."
)

(Script.1105
	Name:	"1My Extension MAKE**************"
	SourceCode:	"' DO NOT EDIT!!! to insure successful creation of a MAKE script\n'\n' Name:  Extension Builder - Source Code\n'\n' Title: Extension Builder - Source Code\n'\n' Topics:  \n'\n' Description:  \n'\n' Requires:  \n'\n' Self:  \n'\n' Returns:  \n\n'------------------------------\n 'define the single quote as it may be \n 'referenced later\nSINGL_QUOT = 39.AsChar\n\n'------------------------------\n 'the Filename of the extension\n '\ntheExtensionFile = \"$AVEXT\\Compiled_Theme_Tools.avx\"\n\nif ( File.Exists( theExtensionFile.AsFileName ) )
 then\n  theReplace = MsgBox.YesNoCancel( \"A file by the name \"+theExtensionFile.quote+ \" already \"+\n    \"exists.  Replacing the existing file may impact one or more loaded extensions. Replace \"+\n    \"the existing file?\", \"Replace \"+theExtensionFile.quote+\"?\", FALSE )\n  if ( theReplace = NIL ) then\n    return NIL\n  elseif ( theReplace = FALSE ) then\n    MsgBox.Info( \"To avoid getting the previous message, \"+\n      \"look for the line of code that reads, \"+\"theExtensionFile = ..\".Quote +\n      \"and change the 
file path or base name of the filename in quotes.\",\"\" )\n  else\n    theReally = MsgBox.YesNoCancel( \"Really overwrite \"+theExtensionFile.Quote+\"?\",\"\",FALSE )\n    if ( theReally <> TRUE ) then\n      return NIL\n    end  ' if ( theREally <> TRUE..\n  end  ' if ( theReplace = ..\nend  ' if ( File.Exists..\n\n'------------------------------\n 'The Name of the extension to be displayed in the\n 'extension dialog\ntheExtensionName = \"Compiled Theme Tools\"\n\n'------------------------------\n 'The description of the extension
 to be displayed\n ' in the extension dialog\ndate.SetDefFormat(\"MM/dd/yy\")\nthedate = (date.now.AsString)\n\n \ntheDescription = \"Compiled Theme Tools - Creation Date \"+thedate+nl+\n\"This Extension will add many Usefull Tools to Your Project\"+nl+\n\"  ;-) Hmanfl@Lycos.com\"+nl\n \n'------------------------------\n 'The version of the extension\ntheVersion = 1.0\n\n'------------------------------\n 'Install Script\n ' The Script to use to install the extension\n 'NOTE: \"My Extension Install\" is a pre-perpared script for this\n
InScriptName=\"My Extension Install\"\n\n'------------------------------\n 'Uninstall Script\n ' The Script to use to uninstall the extension\n 'NOTE: \"My Extension Uninstall\" is a pre-prepared script for this\n\nUnScriptName=\"My Extension Uninstall\"\n\n'------------------------------\n 'Any document Names to include\n ' This is a list of any documents to include\n ' e.g. theDocs={\"View1\",\"Layout1\"}\ntheDocs={}\n\n'------------------------------\n 'Controls (Buttons and normal Tools) to include\n 'Controls {GUI name,ControlTy
pe,ScriptName}\n 'e.g. TheControlList={{\"View\",\"ButtonBar\",\"View.ZoomIn\"}, {\"View\",\"ToolBar\",\"View.Identify\"}}\nTheControllist={\n{\"View\",\"ButtonBar\",\"View.Quick.Extents.C\"}\n}\n\n'------------------------------\n 'Tool menus to include\n ' This is a list of which tool menus to include.  Tool menus are specified\n ' by giving a GUI name and a script name of one of the tools in the tool menu\n ' Using this to locate the tool menu ALL other tools inb that menu and \n ' their scripts will be extracted\n ' theToolMenu={{\"V
iew\",\"View.PointTool\"}}\nTheToolMenuList={}\n\n\n'------------------------------\n 'The Menus to include  (a list of menu items listing the doc, the top menu, and the script for the menu item)\n 'The MenuList {Doc name, Main Menu name , menu item Scriptname}\n ' e.g. The MenuList={{\"View\", \"File\", \"View.Export\"}}\ntheMenuList = { \n  { \"View\", \"C-Theme Tools\", \"1About.CompiledThemeTools\" },\n  { \"View\", \"C-Theme Tools\", \"View.Zblank\" },\n  { \"View\", \"C-Theme Tools\", \"View.Clear.All\" },\n  { \"View\", \"C-Theme Tools\", \"Vi
ew.Zblank\" },\n  { \"View\", \"C-Theme Tools\", \"SE.Open\" },\n  { \"View\", \"C-Theme Tools\", \"MT.Run\" },\n  { \"View\", \"C-Theme Tools\", \"View.MV.Menu.C\" },\n  { \"View\", \"C-Theme Tools\", \"View.Zblank\" },\n  { \"View\", \"C-Theme Tools\", \"View.Toc.Menu.C\" },\n  { \"View\", \"C-Theme Tools\", \"View.Zblank\" },\n  { \"View\", \"C-Theme Tools\", \"View.Legend.Tools.Menu.C\" },\n  { \"View\", \"C-Theme Tools\", \"View.Zblank\" },\n  { \"View\", \"C-Theme Tools\", \"View.Symbol.Tools.Menu.C\" },\n  { \"View\", \"C-Theme Tools\", \"View.Zblank\" },\n  { \"View\", \"C
-Theme Tools\", \"View.Label.Menu.Branch.C\" },\n  { \"View\", \"C-Theme Tools\", \"View.Zblank\" },\n  { \"View\", \"C-Theme Tools\", \"View.Spatial.Tool.Menu.C\" },\n  { \"View\", \"C-Theme Tools\", \"View.Zblank\" },\n  { \"View\", \"C-Theme Tools\", \"View.Misc.Tools.Menu.C\" },\n  { \"View\", \"C-Theme Tools\", \"View.Zblank\" },\n  { \"View\", \"C-Theme Tools\", \"View.Shape.Conver.Menu.C\" },\n  { \"View\", \"C-Theme Tools\", \"View.Zblank\" },\n  { \"View\", \"C-Theme Tools\", \"View.Tool.Bar.Menu\" },\n  { \"View\", \"C-Theme Tools\", \"View.Zblank\" },\n  { \"View
\", \"C-Theme Tools\", \"Doc.ExportImportODB\" },\n  { \"View\", \"C-Theme Tools\", \"View.Zblank\" },\n  { \"View\", \"C-Theme Tools\", \"View.DXF.Menu.C\" },\n  { \"View\", \"C-Theme Tools\", \"View.Zblank\" },\n  { \"View\", \"C-Theme Tools\", \"Theme.Tools.Whats.New.C\" },\n  } \n\n\n'------------------------------\n 'The scripts to include, not in controls or menus\n 'e.g. theScripts={\"My.Script\",\"View.export\"}\ntheScripts = {\n\"1About.CompiledThemeTools\",\n\"1My Extension MAKE**************\",\n\"Cad.Extractor.C\",\n\"Data.Create.Spatial.Index.C\",\n\"
DO.Add.Cancel\",\n\"DO.Add.CbxEF\",\n\"DO.Add.Go\",\n\"DO.Add.OK\",\n\"DO.Add.RBFrom\",\n\"DO.Add.RBTo\",\n\"DO.GO\",\n\"DO.Help.Go\",\n\"DO.Help2.Go\",\n\"DO.Lock\",\n\"DO.OPEN\",\n\"DO.Run\",\n\"DO.Show.Info\",\n\"DO.View.Select\",\n\"Doc.ExportImportODB\",\n\"DT.DXF.Out.Attrib.C\",\n\"Fill.Apply\",\n\"Fill.Cancel\",\n\"Fill.Del\",\n\"Fill.GetSymbol\",\n\"Fill.Help\",\n\"Fill.Make\",\n\"Fill.Move\",\n\"Fill.New\",\n\"Fill.NewNumber\",\n\"Fill.Open\",\n\"Fill.Start\",\n\"Fill.Update\",\n\"LabelTheme.CanUnload\",\n\"LabelTheme.cbx_AttachTheme.I.Update\",\n\"LabelTheme.cbx_Theme.E.Select\",\n\"Label
Theme.cbx_Theme.E.Update\",\n\"LabelTheme.cbx_Theme.I.Select\",\n\"LabelTheme.cbx_Theme.I.Update\",\n\"LabelTheme.chk_Attach.I.Click\",\n\"LabelTheme.chk_OnlySelected.E.Update\",\n\"LabelTheme.chk_Selected.I.Update\",\n\"LabelTheme.ExportLabel.Open\",\n\"LabelTheme.ImportLabel.Open\",\n\"LabelTheme.Instructions\",\n\"LabelTheme.lbt_Cancel.E.Click\",\n\"LabelTheme.lbt_Cancel.I.Click\",\n\"LabelTheme.lbt_GO.E.Click\",\n\"LabelTheme.lbt_GO.I.Click\",\n\"LabelTheme.rad_All-Theme.E.Click\",\n\"LabelTheme.rad_Visible.E.Click\",\n\"LabelTheme.RunExport\",\n\"La
belTheme.RunImport\",\n\"LabelTheme.Unload\",\n\"LineBuilder.1ButtonClick\",\n\"LineBuilder.2ButtonClick\",\n\"LineBuilder.3ButtonClick\",\n\"LineBuilder.AddColor1ToPalette\",\n\"LineBuilder.AddColor2ToPalette\",\n\"LineBuilder.AddColor3ToPalette\",\n\"LineBuilder.AdvancedCancel\",\n\"LineBuilder.AdvancedOK\",\n\"LineBuilder.AdvancedOpen\",\n\"LineBuilder.AdvancedOpen1\",\n\"LineBuilder.AdvancedOpen2\",\n\"LineBuilder.AdvancedOpen3\",\n\"LineBuilder.AdvancedOpener\",\n\"LineBuilder.AdvancedOpener1\",\n\"LineBuilder.AdvancedUpdater\",\n\"LineBuilder.BuildCom
positAILine\",\n\"LineBuilder.CreateLine\",\n\"LineBuilder.CustomUpdate1\",\n\"LineBuilder.CustomUpdate2\",\n\"LineBuilder.CustomUpdate3\",\n\"LineBuilder.LabelButtonHelp\",\n\"LineBuilder.LineStyle1\",\n\"LineBuilder.LineStyle2\",\n\"LineBuilder.LineStyle3\",\n\"LineBuilder.LineStylePreview1\",\n\"LineBuilder.LineStylePreview2\",\n\"LineBuilder.LineStylePreview3\",\n\"LineBuilder.Open\",\n\"LineBuilder.OpenButton\",\n\"LineBuilder.Presets\",\n\"LineBuilder.PreviewLine\",\n\"LineBuilder.RGB1Updater\",\n\"LineBuilder.RGB2Updater\",\n\"LineBuilder.RGB3Updater\",\n
\"LineBuilder.RGBClick\",\n\"LineBuilder.SliderLine1\",\n\"LineBuilder.SliderLine2\",\n\"LineBuilder.SliderLine3\",\n\"LineBuilder.SliderUpdater\",\n\"LineBuilder.StdColClick\",\n\"LineBuilder.SwatchUpdater\",\n\"MT.Add.All.View\",\n\"MT.Add.Theme\",\n\"MT.Add.View\",\n\"MT.Close\",\n\"MT.Delete.List\",\n\"MT.Delete.Theme\",\n\"MT.Done.Edit\",\n\"MT.Edit.Lists\",\n\"MT.Help.Go\",\n\"MT.List.Selected\",\n\"MT.New.List\",\n\"MT.New.List.Open\",\n\"MT.Open\",\n\"MT.Run\",\n\"MT.View.Select\",\n\"Polygon.AllIntersections\",\n\"SE.Add.Extent\",\n\"SE.Delete.Extent\",\n\"SE.Draw.Extent\",
\n\"SE.Help.Go\",\n\"SE.Name.Done\",\n\"SE.Open\",\n\"SE.Save\",\n\"SE.Selected\",\n\"SE.Zoom.Last\",\n\"splitTool.Apply\",\n\"splitTool.update\",\n\"Sub.Get3PCircle\",\n\"Sub.Get3PDirection\",\n\"Sub.GetConvexHull\",\n\"Sub.GetThsnPolygons\",\n\"Sub.RadialPointSort\",\n\"Theme.Dissect\",\n\"Theme.Sort.Shape.C\",\n\"Theme.Tools.Whats.New.C\",\n\"TwoThemeAnalyst.AggData\",\n\"TwoThemeAnalyst.AreaPercent\",\n\"TwoThemeAnalyst.Proximity\",\n\"View.Assign.New.Values.C\",\n\"View.Auto.Union.C\",\n\"view.bilegend\",\n\"View.Circle.Line.Snap.C\",\n\"View.Calculate.Feature.C\",\n\"View.C
lear.All\",\n\"View.Clip.From.Graphic.C\",\n\"View.Clip.Shp.C\",\n\"View.Demographics.Analysis.C\",\n\"View.DetectHolesPolygons\",\n\"View.DetectIntersectPolygons\",\n\"View.Dissolve.Shape.C\",\n\"View.DXF.Menu.C\",\n\"View.Dxf.Txt.2.Point.C\",\n\"View.Explode.Shape.C\",\n\"View.Export.Clean.C\",\n\"View.Graphic.2.Shp.C\",\n\"View.Import.711.C\",\n\"View.Label.Menu.Branch.C\",\n\"View.Labels.AsShapefile.C\",\n\"View.LabelTools.Help.C\",\n\"View.Legend.Add.Colors.To.Palette.C\",\n\"View.Legend.Desaturate.C\",\n\"View.Legend.Export.C\",\n\"View.Legend.Help.C\",\n\"Vie
w.Legend.Icon.Fill.C\",\n\"View.Legend.Import.C\",\n\"View.Legend.Swap.Symbols.C\",\n\"View.Legend.Text.Item.C\",\n\"View.Legend.Tools.Menu.C\",\n\"View.LoadGraphicText\",\n\"View.MakePointPolygons\",\n\"View.Menu.Help.C\",\n\"View.Misc.Tools.Menu.C\",\n\"View.MV.Add.C\",\n\"View.MV.Add2.C\",\n\"View.MV.Del.C\",\n\"View.MV.Del.File.C\",\n\"View.MV.Help.C\",\n\"View.MV.Load.C\",\n\"View.MV.Menu.C\",\n\"View.Nearest.C\",\n\"View.Points.2.Polygons.C\",\n\"View.Poly.2.Line.C\",\n\"View.Poly.2.Point.C\",\n\"View.Poly.Int.2.Pnt.C\",\n\"View.Remove.Vertices\",\n\"View.ReturnSele
ctedGraphicText.C\",\n\"View.SaveGraphicText\",\n\"View.SelectPoint\",\n\"View.SelectPoint.C\",\n\"View.SetTOCFont\",\n\"View.Shape.2.Graphic.C\",\n\"View.Shape.Conver.Menu.C\",\n\"View.Shapes.2.DXF.C\",\n\"View.Spatial.Tool.Menu.C\",\n\"View.Spider.Diagram.C\",\n\"View.Split.Theme.C\",\n\"View.Theme.Snap.Feature.C\",\n\"View.Theme.Tool.Update.C\",\n\"View.Toc.Hide.Show.C\",\n\"View.Toc.Menu.C\",\n\"View.TOC.Sort\",\n\"View.Togle.Legend.C\",\n\"View.Tool.Bar.Menu\",\n\"View.Transfer.Features.C\",\n\"View.Zblank\",\n\"View.CreateAEPFile\",\n\"Z.SelectDeluxe.CircleBounda
ryTool\",\n\"Z.SelectDeluxe.CircleDonutTool\",\n\"Z.SelectDeluxe.CircleTool\",\n\"Z.SelectDeluxe.LineBufferBoundaryTool\",\n\"Z.SelectDeluxe.LineBufferTool\",\n\"Z.SelectDeluxe.LineTool\",\n\"Z.SelectDeluxe.PointTool\",\n\"Z.SelectDeluxe.PolygonBoundaryTool\",\n\"Z.SelectDeluxe.PolygonBufferBoundaryTool\",\n\"Z.SelectDeluxe.PolygonTool\",\n\"Z.SelectDeluxe.PolylineBufferBoundaryTool\",\n\"Z.SelectDeluxe.PolylineBufferTool\",\n\"Z.SelectDeluxe.PolylineTool\",\n\"Z.SelectDeluxe.RectBoundaryTool\",\n\"Z.SelectDeluxe.RectBufferBoundaryTool\",\n\"Z.SelectD
eluxe.RectTool\",\n\"Z.View.Clear.All\",\n\"Z.View.Clear.Selected\",\n\"Densify.Shapes\",\n\"Z.View.Tool.Help\",\n\"zLabMove.Help\",\n\"zLabMove.Mover.btn_InOut.Click\",\n\"zLabMove.Mover.btn_Move.Click\",\n\"zLabMove.Mover.tol_Offset.Apply\",\n\"zLabMove.MoverDocActivate\",\n\"zLabMove.MoverDocClose\",\n\"zLabMove.MoverDocOpen\",\n\"zLabMove.MoverRun\",\n\"zLabMove.MoverRunUpdate\",\n\"ZSnap.SnapEditFeatureUpdate1.C\",\n\"ZSnap2.SnapEditFeature.C\",\n\"Batch.Import.2.Shape\",\n\"Batch.Copy.Shapes\",\n\"Batch.Copy.Projections\",\n\"Util.DecodeSymbol\",\n\"Util.RGB2L
ongInt\",\n\"View.Quick.Extents.C\",\n\"compiled theme tools.apr.Script.List\"\n }\n\n'------------------------------\n 'The dialogs to include\n 'e.g. theDialogs={\"Dialog Name\"}\ntheDialogs={\n\"ImportLabel\",\n\"ExportLabel\",\n\"zMover\",\n\"Z-Select Tools\",\n\"Change VectorFill Symbols\",\n\"DataOverLay\",\n\"DO.ADDFields\",\n\"DO.Help\",\n\"MT.Help\",\n\"My Themes\",\n\"SE\",\n\"SE.Help\",\n\"Name\",\n\"AdvancedLineProperties\",\n\"LineBuilder\"\n}\n\n\n'------------------------------\n 'The  Dependencies\ntheDependencies={\n\"$AVBIN/avdlog.dll\".AsFileName\n  }\n\n'---
---------------------------\n 'Check to make sure we are actually creating something\ntheExtItems = theDocs + theControlList + theToolMenuList + theScripts + \n              theDialogs + TheMenuList\nif ( theExtItems.IsEmpty ) then\n  MsgBox.Error( \"No extension items defined.  Exiting.\", \"Ext Make Error\" )\n  return NIL\nend\n'------------------------------\n' ATTENTION!!!!!!!!!!!!!!!\n' Do NOT alter the script after these lines, the remainer of this script\n' uses the lists you provided above to build the extension 
object.\n'_______________________________________________________________\n'_______________________________________________________________\n'_______________________________________________________________\n'_______________________________________________________________\n'_______________________________________________________________\n'_______________________________________________________________\n'_______________________________________________________________\n'________________________________________________
_______________\n'_______________________________________________________________\n\n'Create a total list of the needed scripts\nTheNeeded={}\n\nfor each ControlScript in thecontrolList\n TheNeeded.add(ConTrolScript.get(2))\nend\n\nFor each MenuScript in theMenuList\n theNeeded.add(MenuScript.get(2))\nend\n \ntotalscripts=thescripts.merge(theNeeded)\nTotalScripts.removeduplicates\n \ntheInstall=av.GetProject.FindScript(InscriptName)\nif (theInstall=NIL) then \n  Msgbox.Error(\"The install Script \"+InScriptName+\" was not found\"
,\"Script not found\")\n  return(nil)\nend\n\ntheUninstall=av.GetProject.FindScript(unscriptName)\nif (theUninstall=NIL) then \n  Msgbox.Error(\"The install Script \"+UnScriptName+\" was not found\",\"Script not found\")\n  return(nil)\nend\n\n\n'Create the extension\n' Extension.Make(ExtensionFile, theExtensionName, InstallScript, UninstallScript, Dependancies_\n\nmyExt = Extension.Make(theExtensionFile.asFilename, \n              theExtensionName,\n              theInstall,\n              theUninstall,              \n             
 theDependencies)\n\n\n\nTheDocList={}\nTheDialogList={}\nTheTotalControls={}\nThetotalMenus={}\ntheTotalToolMenus={}\n\n' Process the Document List\n'__________________________________________\nfor each aDoc in TheDocs\n  if ((av.getproject.findDoc(aDoc)=\"Null\").NOT) then\n     TheDocList.Add(av.GetProject.FindDoc(aDoc))\n   else\n      MsgBox.Warning(\"The Doc \"+adoc.asstring+\" cannot be found in the current project.\",\"Script Error\")\n      return(nil)\n end\nend\n\n'Add the List of Documents\nMyExt.add(TheDocList)\n\n\n' Process 
the Dialog List\n'__________________________________________\nfor each aDialog in TheDialogs\n  if ((av.getproject.findDialog(aDialog)=\"Null\").NOT) then\n     TheDialogList.Add(av.GetProject.FindDialog(aDialog))\n   else\n      MsgBox.Warning(\"The Dialog \"+aDialog.asstring+\" cannot be found in the current project.\",\"Script Error\")\n      return(nil)\n end\nend\n\n'Add the List of Documents\nMyExt.add(TheDialogList)\n\n\n\n' Process the control List\n'__________________________________________\n\n'Controls {GUI,ControlType,Scr
iptname}\n'__________________________________________\n'__________________________________________\n'__________________________________________\n\nfor each aControl in TheControlList\n  theControlDoc=av.getproject.findGUI(aControl.get(0))\n    if (theControlDoc=NIL) then   \n      MsgBox.Warning(\"The GUI \"+aControl.get(0)+\" cannot be found in the current project.\",\"Script Error\")\n      return(nil)\n    end\n  thecommand=\"av.getproject.findGUI(\"\"\"+aControl.get(0)+\"\"\").Get\"+acontrol.get(1)\n  'msgbox.info(thecommand,\"\")
\n  thescript1=Script.Make(thecommand)\n  thecontrolset=thescript1.doit(\"\")\n  theFoundControl=TheControlSet.FindbyScript(aControl.get(2))\n    if (theFoundControl=NIL) then   \n      MsgBox.Warning(\"No Control found with the script \"+aControl.get(2)+\" in \"+acontrol.get(1),\"Warning\")\n      return(nil)\n    end\n    if (theFoundControl.is(ToolMenu)) then \n      MsgBox.Warning(\"The script \"+aControl.get(2)+\" in \"+acontrol.get(1)+\" is for a tool menu.\",\"Not Supported\")\n      return(nil)\n    end\n         \n  TheTotalCo
ntrols.Add({aControl,thefoundControl,theControlSet.getcontrols.find(thefoundcontrol)})\nend  \n'Add to Ext\nMyExt.add(TheTotalControls)\n\n'__________________________________________\n\n'The MenuList {Doc, Menu, MenuScript}\n'__________________________________________\n'__________________________________________\n'__________________________________________\n\nFor each aMenu in themenulist\n  mDoc=aMenu.get(0)\n  mMenu=aMenu.get(1)\n  mScript=aMenu.get(2)\n  \n  themDoc=av.getproject.findGUI(mDoc)\n  if (themDoc=NIL) then   \n
      MsgBox.Warning(\"The GUI \"+mDoc+\" cannot be found in the current project.\",\"Script Error\")\n      return(nil)\n    end\n  theMbar=av.getproject.findGUI(mDoc).GetMenuBar\n  themenu=theMbar.findbylabel(mMenu)\n  if (themenu=NiL) then\n      MsgBox.Warning(\"The menu named \"+mMenu+\" is not here.\",\"Script Error\")\n      return(nil)\n  end\n    \n  themenucontrol=themenu.findbyScript(mScript)\n\n  if (themenucontrol=NiL) then\n      MsgBox.Warning(\"The script \"+mScript+\" not found.\",\"Warning\")\n      return(nil)\n  end\n  t
hemenuitemidx=themenu.getcontrols.find(themenucontrol)\n  thetotalmenus.add({amenu,theMenuControl,theMenuItemIdx})\n\nend\n\nmyext.add(thetotalmenus)\n  \n'__________________________________________\n\n'Process the Tool Menu List\n'__________________________________________\n'__________________________________________\n'__________________________________________\n \nfor each aControl in TheToolMenuList\n  theControlDoc=av.getproject.findGUI(aControl.get(0))\n    if (theControlDoc=NIL) then   \n      MsgBox.Warning(\"The GUI 
\"+aControl.get(0)+\" cannot be found in the current project.\",\"Script Error\")\n      return(nil)\n    end\n  thecontrolset=theControlDoc.getToolbar\n  theFoundControl=TheControlSet.FindbyScript(aControl.get(1))\n    if (theFoundControl=NIL) then   \n      MsgBox.Warning(\"No Control found with the script \"+aControl.get(1)+\" in \"+acontrol.get(1),\"Warning\")\n      return(nil)\n    end\n    if (theFoundControl.is(ToolMenu).not) then \n      MsgBox.Warning(\"The script \"+aControl.get(1)+\" is NOT for a tool menu.\",\"User Erro
r\")\n      return(nil)\n    end        \n  \n  TheTotalToolMenus.Add({aControl,thefoundControl,theControlSet.getcontrols.find(thefoundcontrol)})\nend  \n\nmyext.add(thetotalToolmenus)\n  \n\n'__________________________________________\n\n' Process the Script list\n'__________________________________________\n'__________________________________________\n'__________________________________________\n\nfor each ascript in TotalScripts\n  if ((av.getproject.findscript(ascript)=\"Null\").NOT) then\n     myExt.Add(av.GetProject.FindSc
ript(ascript))\n   else\n      MsgBox.Warning(\"The script \"+ascript+\" cannot be found in the current project.\",\"Script Eror\")\n      return(nil)\n end\nend\n \nmyExt.SetAbout(theDescription)\nmyExt.SetExtVersion(theVersion)\nmyExt.Commit\n\nMsgBox.Report( \"Extension created successfully!  To load the extension from \"+\n  \"any ArcView project, open the Extension Loading dialog ( in the File>>\"+\n  \"Extensions menu and check the box next to \"+theExtensionName.Quote+\".\"+nl+nl+\n  \"Enjoy!\"+nl+\"BT\", \"Ext Make\" )\n  \n' - End of
 Script ( BT )"
)

(Script.1106
	Name:	"Cad.Extractor.C"
	SourceCode:	"if (System.IsShiftKeyDown) then\nmessage=   \"******************************************************************************\"+NL+\n           \"                                   Cad Layer Extractor\"+NL+\n           \"                              Written by: Anthony Webb\"+NL+\n           \"******************************************************************************\"+NL+\n           \"Welcome to Cad Layer Extractor. To use this extension select Extract Cad Layer from the Cad Layer Extractor menu. If there are no DW
G or DXF\"+\n           \" themes loaded, CLE (Cad Layer Extractor) will not do anything. Select the DXF or DWG theme from the list that you want to select a layer from\"+\n           \" Next Select the layer or layers from the layers list that you want to extract. Next you will be asked if you want to create a new file. If\"+\n           \" you want to create a new file, select yes, if you want to append the layers to an existing file, then select no from the create a new file \"+\n           \"prompt and then select 
the theme you want to append the layer to from the the themes list. If you select the new file option then use the \"+\n           \"file dialog to tell CLE where to put the new theme.\"\nmsgbox.report(message,\"Cad Layer Extractor\")\n\nClipboard.The.Empty\nClipboard.The.Add(message)\nClipboard.The.Update\n    \n  MsgBox.Info(\"These instructions were copied to the system clipboard.  To print them, open a text editor\"++\n  \"(like notepad), paste in the contents of the clipboard, and print them from the text editor.\",\"PRI
NT INSTRUCTIONS\")\n\n  return nil\nend\n\ntheview=av.getactivedoc\nthethemeslist=theview.getthemes.deepclone\nthetlist={}\nif (thethemeslist.count<1) then\n  return nil\nend\n\nfor each k in thethemeslist\n  if (k.is(FTHEME)) then\n    if (k.getftab.isdrawing=TRUE) then      \n      thetlist.add(k)\n    end\n  end\nend      \nthetheme=msgbox.listasstring(thetlist,\"Select Theme to Transfer layer data from\",\"Cad Layer Extractor\")\nif (thetheme=nil) then\n  return nil\nend\ntheftab=thetheme.getftab\nif (theftab.isdrawing=false) then\n
  msgbox.error(\"This is not a Cad Drawing\",\"Cad Layer Extractor\")\n  return nil\nend\ntheclass=theftab.getshapeclass\nthelayerfield=theftab.findfield(\"layer\")\ntheshapefield=theftab.findfield(\"shape\")\nthelayerlist=theftab.returnlayers\nthellist=msgbox.multilistasstring(thelayerlist,\"Select Layers to transfer\",\"Cad Extractor\")\nif (thellist=nil) then\n  return nil\nend\nthechoice=msgbox.yesnocancel(\"Create New File\",\"Cad Layer Extractor\",True)\nif (thechoice=nil) then\n  return nil\nelseif (thechoice=true) then\n def = av
.GetProject.MakeFileName(\"theme\", \"shp\")\n def = FileDialog.Put(def, \"*.shp\", \"New Theme\")\n\n if (def <> nil) then\n  tbl = FTab.MakeNew(def, theclass)\n  if (tbl.HasError) then\n     if (tbl.HasLockError) then\n        MsgBox.Error(\"Unable to acquire Write Lock for file \" + def.GetBaseName, \"Cad Layer Extractor\")\n     else\n        MsgBox.Error(\"Unable to create \" + def.GetBaseName, \"\")\n     end\n     return nil\n  end\n  fld = Field.Make(\"Layer\", #FIELD_CHAR , 40, 0)\n  fld.SetVisible( TRUE )\n  tbl.AddFields({fld})\n
  tbl.SetEditable(False)\n  thenTheme = FTheme.Make(tbl)\n  theView.AddTheme(thenTheme)\n  thenTheme.SetActive(TRUE)\n  thenTheme.SetVisible(TRUE)\n  theView.SetEditableTheme(thenTheme)\n else\n  return nil\n end\nelse\n  thethemeslist=theview.getthemes.deepclone\n  thetlist={}\n  for each z in thethemeslist\n    if (z.is(FTHEME)) then\n      if (z.getftab.getshapeclass.getclassname=theclass.getclassname) then\n        if (z.getftab.isdrawing.not) then\n          thetlist.add(z)\n        end\n      end\n    end\n  end\n  if (th
etlist.count<1) then\n    msgbox.info(\"No themes of the right shape class in view\"+NL+\"Extraction Aborted\",\"Cad Extractor\")\n    return nil\n  end\n  thentheme=msgbox.listasstring(thetlist,\"Select theme to transfer to\",\"Cad Layer Extractor - Extract \"+theclass.getclassname)  \n  if (thentheme=nil) then\n    return nil\n  elseif (thentheme.getftab.isdrawing=TRUE) then\n    msgbox.info(\"Cant Extract to DXF or DWG Theme\"+NL+\"Extraction Aborted\",\"Cad Layer Extractor\")\n    return nil\n  end\n  thenTheme.SetActive(TRUE)\n  
thenTheme.SetVisible(TRUE)\n  \n  theView.SetEditableTheme(theview.findtheme(thenTheme.asstring))\nend\nthentheme=theview.findtheme(thentheme.asstring)\nthenftab=thentheme.getftab\nthenshape=thenftab.findfield(\"shape\")\nthenlayer=thenftab.findfield(\"layer\")\ninc=theftab.getnumrecords\nl=0\nav.clearstatus  \nfor each k in theftab\n  thelayer=theftab.returnvalue(thelayerfield,k)\n\n  for each l in thellist\n    if (thelayer=l) then\n      newrec=thenftab.addrecord\n      thenftab.setvalue(thenshape,newrec,theftab.returnvalue(
theshapefield,k))\n      thenftab.setvalue(thenlayer,newrec,thelayer)\n    end\n  end\n  l=l+1\n  av.setstatus((l/inc)*100)\n end\n av.clearstatus  \n thentheme.stopediting(TRUE)\n theView.SetEditableTheme(nil)\n \n theview.invalidate\n "
)

(Script.1107
	Name:	"Data.Create.Spatial.Index.C"
	SourceCode:	"\n'===========================================================\n \n'  Check for the shift key, if the shift key is down, pop up instructions for using this script\n\nif (System.IsShiftKeyDown) then\n  message =\n  \" \"+nl+\n  \" Script Author (Unknown)\"+nl+\n  \" \"+nl+\n  \"Brief Instructions:\"+nl+nl+\n  \"   This script processes a specified directory  \"+nl+\n  \"   creating spatial index files for \"+nl+\n  \"   every coverage and shapefile found in the tree.\"+nl\n      'Title here         \n  msgbox.report(message,\"spatial ind
ex files\")\n  \n  Clipboard.The.Empty\n  Clipboard.The.Add(message)\n  Clipboard.The.Update\n    \n  MsgBox.Info(\"These instructions were copied to the system clipboard.  To print them, open a text editor\"++\n  \"(like notepad), paste in the contents of the clipboard, and print them from the text editor.\",\"PRINT INSTRUCTIONS\")\n\n  return nil\nend\n' Name:  Data.CreateSpatialIndex\n'\n' Title:  Spatial Index Creator\n'\n' Topics:  Views\n'\n' Description:  This script processes a specified directory tree creating spatial ind
ex\n' files for every coverage and shapefile found in the tree.  \n'\n' Requires:  \n'\n' Self:  \n'\n' Returns:  \n'Starting location\n\n\nDate.SetDefFormat(\"hh:m:s\")\ntheDate = Date.Now.AsString\n'***********************\ntheProject = av.GetProject\n\ndefFN = FileName.Merge(FileName.GetCWD.AsString, \"~\")\naveDir = FileDialog.Put(defFN, \"*.ave\", \"Choose a Directory to Index\")\nif (aveDir = NIL) then return nil end\naveDir = aveDir.ReturnDir\n\n\n\nthecdir = theProject.GetWorkDir.GetFullName\nnewDir = theProject.GetWorkDir.GetFull
Name\n\n\npathin=aveDir\nthePath2=pathin.AsString.UCase \nchoice1=msgbox.miniyesno(\"Build a view with all features?\",FALSE)\n\nl={pathin}\n\nif (choice1=TRUE) then\n  thev=view.make\n  thev.setname(thePath2+\" \"+theDate+\" Spatial Index\")\nend\ni=0\n'Builds a list of all directories\nav.ShowMsg(\"Traversing directories...\")\nwhile (i<l.Count)\n  av.SetStatus((i/l.Count)*100)\n  l.Merge(l.Get(i).Read(\"\"))\n  i=i+1\nend\nav.ClearStatus\nav.clearmsg\n\nav.usewaitcursor\n\nav.showstopbutton\nc1=0\n\n'In each direcory get the list of SHP files
 / coverages and index them\nfor each p in l\nav.showmsg(\"Processing files\")\nc1=c1+1\nproceed=av.setstatus((c1/l.count)*100)\n  if ( proceed.Not ) then \n    av.ClearStatus \n    av.ShowMsg( \"Stopped\" ) \n    exit \n  end\n\n  for each s in p.read(\"*.shp\")\n      if (s.isDir=true) then\n       continue\n      end\n    'msgbox.info(s.asstring,\"\")\n    \n    p2=srcname.make(s.asstring)\n    \n    fthm=theme.make(p2)\n        \n    ftabin=FTab.Make(p2)\n    theshapef=ftabin.findfield(\"shape\")\n      if (ftabin.IsFieldIndexed(thesha
pef)=FALSE) then\n          ftabin.createindex(theshapef)\n      end\n      \n      if (choice1=TRUE) then\n        thev.addtheme(fthm)\n      end\n    av.showstopbutton\n    av.showmsg(\"Processing files in ...\"+p.asstring)\n  for each time1 in 1..1200\n  end\n\n    proceed=av.setstatus((c1/l.count)*100)\n      if ( proceed.Not ) then \n        av.ClearStatus \n        av.ShowMsg( \"Stopped\" ) \n        exit \n      end\n    \n    \n  end\n  \n  for each s in Coverage.ReturnSrcNames(p.GetName)\n    \n    p2=s    \n    fthm=theme.mak
e(p2)\n        \n    ftabin=FTab.Make(p2)\n    theshapef=ftabin.findfield(\"shape\")\n      if (ftabin.IsFieldIndexed(theshapef)=FALSE) then\n          ftabin.createindex(theshapef)\n      end\n      \n      if (choice1=TRUE) then\n        thev.addtheme(fthm)\n      end\n    av.showstopbutton\n    av.showmsg(\"Processing files in ...\"+p.asstring)\n  for each time1 in 1..1200\n  end\n  \n    proceed=av.setstatus((c1/l.count)*100)\n      if ( proceed.Not ) then \n        av.ClearStatus \n        av.ShowMsg( \"Stopped\" ) \n        ex
it \n      end\n      \n  end\n  \nend\n     \nav.clearstatus\nav.clearmsg\n\n\n\n\n"
)

(Script.1108
	Name:	"DO.Add.Cancel"
	SourceCode:	"DO = av.FindDialog(\"DataOverLay\")\ncpField = DO.FindByName(\"cpField\")\nlblcmdGo = DO.FindByName (\"lblcmdGo\")\nlblcmdGo .SetLabel (\"Go\")\nlblcmdGo.SetEnabled (True)\ncpField.SetEnabled (True)\nSELF.GetDialog.Close"
)

(Script.1109
	Name:	"DO.Add.CbxEF"
	SourceCode:	"DO = av.FindDialog(\"DataOverLay\")\nAF = av.FindDialog(\"DO.ADDFields\")\nEFieldsBox = AF.FindByName(\"CbxEF\")\nMEF = EFieldsBox.GetCurrentValue ' exist field selected\nRBFrom = AF.FindByName(\"rbFrom\")\nRBTO = AF.FindByName(\"rbTo\")\nCbxTP = AF.FindByName(\"CbxTP\")\nTxlWD = AF.FindByName(\"TxlWD\")\nTxlDP = AF.FindByName(\"TxlDP\")\n\nLbxViews = DO.FindByName(\"LbxViews\")\nSelectedView = LbxViews.GetCurrentValue\n\nThemeTo = DO.FindByName (\"cbxTo\").GetCurrentValue\ntheToTheme = SelectedView.FindTheme(ThemeTo)\n\nThemeFrom = DO.FindBy
Name (\"cbxFrom\").GetCurrentValue\ntheFromTheme = SelectedView.FindTheme(ThemeFrom)\n\n\n\nIf (MEF.AsString = \"<*** From Fields ***>\") then return nil end\nIf (MEF.AsString = \"<*** To Fields ***>\") then return nil end\n\nif (RBFrom.IsSelected) then\n      EFieldsBox = AF.FindByName(\"CbxEF\")\n      theFromFTab = theFromTheme.GetFTab\n      theFIFOrigFields = theFromFTab.GetFields\n      theFIFFieldsList = {}\n      for each f in theFIFOrigFields\n        if (f.asString <> \"Shape\") then\n        theFIFFieldsList.Add(f)'clone
\n        end\n      end\n      Temp1List = theFIFFieldsList.DeepClone\n      Temp1List.Sort(True)\n      FieldsList = EFieldsBox.GetList \n      for each TF in Temp1List\n        if ( MEF.AsString = TF.AsString) then\n        fname = TF.GetName\n        ftype = TF.GetType\n        fwidth = TF.GetWidth\n        fprec = TF.GetPrecision\n        end\n      end\n      \n      if (ftype = #FIELD_DECIMAL) then\n      CbxTP.FindByValue (\"Number\")\n      CbxTP.SelectCurrent \n      end\n      \n      if (ftype = #FIELD_CHAR) then\n   
   CbxTP.FindByValue (\"String\")\n      CbxTP.SelectCurrent \n      end\n      \n      if (ftype = #FIELD_LOGICAL) then\n      CbxTP.FindByValue (\"Boolean\")\n      CbxTP.SelectCurrent \n      end\n      \n      if (ftype = #FIELD_DATE) then\n      CbxTP.FindByValue (\"Date\")\n      CbxTP.SelectCurrent \n      end\n      \n      TxlWD.SetText (fwidth.AsString)\n      TxlDP.SetText (fprec.AsString)     \nend\nif (RBTo.IsSelected) then\n      EFieldsBox = AF.FindByName(\"CbxEF\")\n      theToFTab = theToTheme.GetFTab\n      theTIFOri
gFields = theToFTab.GetFields\n      theTIFFieldsList = {}\n      for each f in theTIFOrigFields\n        if (f.asString <> \"Shape\") then\n        theTIFFieldsList.Add(f)'clone\n        end\n      end\n      Temp2List = theTIFFieldsList.DeepClone\n      Temp2List.Sort(True)\n      \n      FieldsList = EFieldsBox.GetList \n      \n      for each TF in Temp2List\n        if ( MEF.AsString = TF.AsString) then\n        fname = TF.GetName\n        ftype = TF.GetType\n        fwidth = TF.GetWidth\n        fprec = TF.GetPrecision\n
        end\n      end\n      \n      if (ftype = #FIELD_DECIMAL) then\n      CbxTP.FindByValue (\"Number\")\n      CbxTP.SelectCurrent \n      end\n      \n      if (ftype = #FIELD_CHAR) then\n      CbxTP.FindByValue (\"String\")\n      CbxTP.SelectCurrent \n      end\n      \n      if (ftype = #FIELD_LOGICAL) then\n      CbxTP.FindByValue (\"Boolean\")\n      CbxTP.SelectCurrent \n      end\n      \n      if (ftype = #FIELD_DATE) then\n      CbxTP.FindByValue (\"Date\")\n      CbxTP.SelectCurrent \n      end\n      \n      TxlWD.SetTex
t (fwidth.AsString)\n      TxlDP.SetText (fprec.AsString)     \n\nend\nreturn nil\n\n"
)

(Script.1110
	Name:	"DO.Add.Go"
	SourceCode:	"DO = av.FindDialog(\"DataOverLay\")\nAF = av.FindDialog(\"DO.ADDFields\")\nEFieldsBox = AF.FindByName(\"CbxEF\")\nEFieldsBox.Empty \nRBBlank = AF.FindByName(\"RBBlank\")\nRBBlank.Select\nCbxTP = AF.FindByName(\"CbxTP\")\nTxlWD = AF.FindByName(\"TxlWD\")\nTxlDP = AF.FindByName(\"TxlDP\")\nTxlName = AF.FindByName(\"TxlName\")\nTxlWD.SetText (\"16\")\nTxlDP.SetText (\"0\") \nTxlName.SetText (\"\")\nTypeList = {\"Number\",\"String\",\"Boolean\",\"Date\"}\nCbxTP.DefineFromList(TypeList)"
)

(Script.1111
	Name:	"DO.Add.OK"
	SourceCode:	"'txlValidate\nAF = av.FindDialog(\"DO.ADDFields\")\nCbxTP = AF.FindByName(\"CbxTP\")\nTxlWD = AF.FindByName(\"TxlWD\")\nfwidth = TxlWD.GetText\nTxlDP = AF.FindByName(\"TxlDP\")\nTxlName = AF.FindByName(\"TxlName\")\nFname = TxlName.GetText \nFtype = CbxTP.GetCurrentValue\nfprec = TxlDP.GetText\ncbxToListCK = AF.FindByName(\"cbxToListCK\")\nToCheckList = cbxToListCK.GetList \nMatch = False\n\n\n'check name\n\nif (Fname = nil) then\nMsgBox.Error( \"Field Name Problem \", \"Change Field Name\" )\nreturn nil\nend\n\nif (Fname = \"\") then\nMsgBox.Erro
r( \"Field Name Problem \", \"Change Field Name\" )\nreturn nil \nend\n\nif (Fname.Left (1) = \" \") then\nMsgBox.Error( \"Field Name Problem \", \"Change Field Name\" )\nreturn nil \nend\n\n'for each CkField in ToCheckList\n'if (Fname = CkField.asString) then return nil end\n'MsgBox.Error( \"Field Name Problem \", \"Change Field Name\" )\n'end\n\n        \n'check width        \n\nif (fwidth.IsNumber = False) then\nMsgBox.Error( \"Field Width Problem \", \"Change Field Width\" )\nreturn nil \nend\nfwidth2 = fwidth.AsNumber\nif (fwidth = nil) then
\nMsgBox.Error( \"Field Width Problem \", \"Change Field Width\" )\nreturn nil\nend\n\nif (fwidth = \"\") then\nMsgBox.Error( \"Field Width Problem \", \"Change Field Width\" )\nreturn nil\nend\n\nif (fwidth.Left (1) = \" \") then\nMsgBox.Error( \"Field Width Problem \", \"Change Field Width\" )\nreturn nil \nend\n\nif (fwidth2 < 1) then\nMsgBox.Error( \"Field Width Problem \", \"Change Field Width\" )\nreturn nil\nend\n\nif (fwidth2 > 254) then\nMsgBox.Error( \"Field Width Problem \", \"Change Field Width\" )\nreturn nil\nend\n\nif (Ftype.asString = \"Num
ber\") then        \n        'check decimal places\n        \n        if (fprec.IsNumber = False) then\n        MsgBox.Error( \"Decimal Places Problem \", \"Change Decimal Places\" )\n        return nil \n        end\n        fprec2 = fprec.AsNumber\n        if (fprec = nil) then\n        MsgBox.Error( \"Decimal Places Problem \", \"Change Decimal Places\" )\n        return nil\n        end\n        \n        if (fprec = \"\") then\n        MsgBox.Error( \"Decimal Places Problem \", \"Change Decimal Places\" )\n        return nil\n      
  end\n        \n        if (fprec.Left (1) = \" \") then\n        MsgBox.Error( \"Decimal Places Problem \", \"Change Decimal Places\" )\n        return nil \n        end\n        \n        if (fprec2 < 0) then\n        MsgBox.Error( \"Decimal Places Problem \", \"Change Decimal Places\" )\n        return nil\n        end\n        \n        if (fprec2 > 252) then\n        MsgBox.Error( \"Decimal Places Problem \", \"Change Decimal Places\" )\n        return nil\n        end\n        \n        if (fprec2 <> 0) then\n          if (fprec2 >
 (fwidth2-2)) then\n          message = \"Decimal Places Problem\"+nl+\n                    \"Decimal Number must be 2 less than\"+nl+\n                    \"Field Width - Room for the 0. to fit in Field\"+nl\n          MsgBox.Error( Message, \"Change Decimal Places\" )\n          return nil\n          end\n        end\nend\n\ntxlValidate = AF.FindByName(\"txlValidate\")\ntxlValidate.SetLabel(\"True\")\nSELF.GetDialog.Close"
)

(Script.1112
	Name:	"DO.Add.RBFrom"
	SourceCode:	"DO = av.FindDialog(\"DataOverLay\")\nAF = av.FindDialog(\"DO.ADDFields\")\nLbxViews = DO.FindByName(\"LbxViews\")\nSelectedView = LbxViews.GetCurrentValue\n\nThemeFrom = DO.FindByName (\"cbxFrom\").GetCurrentValue\ntheFromTheme = SelectedView.FindTheme(ThemeFrom)\n\nRBFrom = AF.FindByName(\"rbFrom\")\nRBFrom.Select \n\nEFieldsBox = AF.FindByName(\"CbxEF\")\n\n\ntheFromFTab = theFromTheme.GetFTab\ntheFTabFields = theFromFTab.GetFields\ntheFTab2List = {}\n\nfor each f in theFTabFields\n  if (f.asString <> \"Shape\") then\n  theFTab2List.Add(f
)\n  end\nend\nTemp1List = theFTab2List.DeepClone\nTemp1List.Sort(True)\nTemp1List.Insert (\"<*** From Fields ***>\")\nEFieldsBox.Empty \nEFieldsBox.DefineFromList(Temp1List)"
)

(Script.1113
	Name:	"DO.Add.RBTo"
	SourceCode:	"DO = av.FindDialog(\"DataOverLay\")\nAF = av.FindDialog(\"DO.ADDFields\")\nLbxViews = DO.FindByName(\"LbxViews\")\nSelectedView = LbxViews.GetCurrentValue\n\nThemeTo = DO.FindByName (\"cbxTo\").GetCurrentValue\ntheToTheme = SelectedView.FindTheme(ThemeTo)\n\n\nRBTO = AF.FindByName(\"rbTo\")\nRBTO.Select\n\nEFieldsBox = AF.FindByName(\"CbxEF\")\n\ntheToFTab = theToTheme.GetFTab\ntheFTabFields = theToFTab.GetFields\ntheFTab2List = {}\n\nfor each f in theFTabFields\n  if (f.asString <> \"Shape\") then\n  theFTab2List.Add(f)\n  end\nend\nTemp1List
 = theFTab2List.DeepClone\nTemp1List.Sort(True)\nTemp1List.Insert (\"<*** From Fields ***>\")\nEFieldsBox.Empty \nEFieldsBox.DefineFromList(Temp1List)\n"
)

(Script.1114
	Name:	"DO.GO"
	SourceCode:	"DO = av.FindDialog(\"DataOverLay\")\nLockbutton = DO.FindByName(\"lblCmd.Lock\")\nRB1Fix = DO.FindByName(\"RB1Fix\")\n \nLbxViews = DO.FindByName(\"LbxViews\")\nSelectedView = LbxViews.GetCurrentValue\nTxlStart = DO.FindByName(\"TxlStart\")\nTxlEnd = DO.FindByName(\"TxlEnd\") \ncpSetup = DO.FindByName(\"cpSetUp\")\ncpField = DO.FindByName(\"cpField\")\nThemeFrom = DO.FindByName (\"cbxFrom\").GetCurrentValue\nThemeTo = DO.FindByName (\"cbxTo\").GetCurrentValue\ntheToTheme = SelectedView.FindTheme (ThemeTo)\ntheFromTheme  = SelectedView.Find
Theme (ThemeFrom)\nlblcmdGo = DO.FindByName (\"lblcmdGo\")\n\nckMFields = DO.FindByName (\"ckMFields\") \nMismatchList = {}\n\n\n\n\nif (ThemeFrom.AsString = ThemeTo.AsString) then\nMsgBox.Error(\"Themes Can Not Be The Same\", \"Change the Themes\")\nreturn nil\nend\n\nif (Lockbutton.GetLabel  = \"Lock\") then\nMsgBox.Error(\"Click Lock Button\", \"Oops\")\nreturn nil\nend\n\n\n'check the fields for problems\n\ntheEditTheme = theToTheme\ntheEditFTab = theEditTheme.GetFTab\ntheSourceTheme = theFromTheme\ntheSourceFTab = theSourceTheme.GetFTab\nthe
SFields = theSourceFTab.GetFields\ntheEFields = theEditFTab.GetFields\n\nBoxNameF = \"cbxFIF\"\nBoxNameT = \"cbxTIF\"\nck = 0\nfor each I in 1..15\n  BF = BoxNameF+(I.AsString)\n  BT = BoxNameT+(I.AsString)\n  BFField = DO.FindByName(BF)\n  BTField = DO.FindByName(BT)\n  F = BFField.GetCurrentValue\n  T = BTField.GetCurrentValue\n      if ((F.AsString = \"Shape\")and(T.AsString <> \"Shape\")) then \n      Message = \"Sorry - You Can't Have a From <Shape> and \"+nl+\n                \"Not Have it = <Shape>\"+nl\n      MsgBox.Info(Messa
ge , \"Oops\" )\n      Return Nil End\n      \n      if ((T.AsString = \"Shape\")and(F.AsString <> \"Shape\")) then \n      Message = \"Sorry - You Can't Have a To <Shape> and \"+nl+\n                \"Not Have it From <Shape>\"+nl\n      MsgBox.Info(Message , \"Oops\" )\n      Return Nil End\n      \n      if ((F.AsString = \"<None>\")and(T.AsString <> \"<None>\")) then \n      Message = \"Sorry - You Have Not Selected a <From Field>\"+nl+\n                \"To Go With Your <To Field>\"+nl\n      MsgBox.Info(Message , \"Oops\" )\n      Retu
rn Nil End\n      \n      if ((T.AsString = \"<None>\")and(F.AsString <> \"<None>\")) then \n      Message = \"Sorry - You Have Not Selected a <To Field>\"+nl+\n                \"To Go With Your <From Field>\"+nl\n      MsgBox.Info(Message , \"Oops\" )\n      Return Nil End\n      \n      if ((T.AsString = \"<None>\")and(F.AsString = \"<None>\")) then \n      ck = ck + 1\n        if (ck = 15) then\n        Message = \"Sorry - You Have Not Selected Any Fields\"+nl+\n                  \"To Work on - Please Select Some\"+nl\n        MsgBox.
Info(Message , \"Oops\" )\n        Return Nil End\n      End\n      \n      if ((F.AsString <> \"<None>\")and(T.AsString <> \"<New Field>\")) then\n        if (T.AsString <> \"<None>\") then\n          if (T.AsString <> \"<Match Field>\") then\n            \n            'Check field types\n            ck1Type = nil\n            for each H1 in theEFields\n              if (H1.AsString = T.AsString) then\n              ck1 = H1.AsString\n              ck1Type = H1.GetType\n              end\n            end\n            ck2Type = nil\n
            for each H2 in theSFields\n              if (H2.AsString = F.AsString) then\n              ck2 = H2.AsString\n              ck2Type = H2.GetType\n              end\n            end\n            \n            if (ck1Type <> ck2Type) then\n            Message = \"Sorry - You Have MisMatched Field Types\"+nl+\n                      \"Please Correct the Fields in Field Box - \"++I.AsString+nl+\n                      \"<\"+ck1+\">\"++\"---\"++\"<\"+ck2+\">\"+nl\n            MsgBox.Info(Message , \"Oops\" )\n            Return N
il\n            end\n                  \n          end\n        end\n      end\n\n      if (T.AsString = \"<Match Field>\") then\n      \n      'Check field names\n                  \n            for each H2 in theEFields\n              if (H2.AsString = F.AsString) then\n              ck2 = H2.AsString\n              Message = \"Sorry - This Field Name Exists in the To Theme \"+nl+\n                        \"Please Correct the Fields in Field Box - \"++I.AsString+nl+\n                        \"Can Not <Match> the Field Named\"++\"
<\"+F.AsString+\">\"+nl\n              MsgBox.Info(Message , \"Oops\" )\n              Return Nil\n              end\n            end\n            \n            \n            \n      end      \n\n\nend\n\n' get to work\n\nav.ShowStopButton \n\ncpField.SetEnabled (False)\nlblcmdGo.SetEnabled (False)\n\n'make a bitmap of selected records\n\n\ntheCount = theEditFTab.GetNumRecords\ntheBitmap = BitMap.Make(theCount)\nif ( theEditFTab.GetSelection.Count = 0 ) then\n   theBitmap.SetAll \nelse\n  theBitmap = theEditFTab.GetSelection\nend\nB1List = t
heBitmap.AsList\n\n\n'find out if the user wants to add fields to the edit theme's attribute table\n\ntheEditTheme = theToTheme\ntheEditFTab = theEditTheme.GetFTab\ntheSourceTheme = theFromTheme\ntheSourceFTab = theSourceTheme.GetFTab\ntheEditFieldsList = List.Make\ntheSourceFieldsList = List.Make\nnumberOfFields = 0\nfieldcounter = 0\nFromList = {}\nToList = {}\n  BoxNameF = \"cbxFIF\"\n  BoxNameT = \"cbxTIF\"\n  for each I in 1..15\n    BF = BoxNameF+(I.AsString)\n    BT = BoxNameT+(I.AsString)\n    BFField = DO.FindByName(BF)\n 
   BTField = DO.FindByName(BT)\n    F = BFField.GetCurrentValue\n    T = BTField.GetCurrentValue\n    FromList.Add(F)\n    ToList.Add(T)\n    if ((F <> \"<None>\")and(T = \"<New Field>\")) then\n    fieldcounter = fieldcounter + 1\n    yesno = True\n    end\n  end\n\n\n\nfor each I in 1..15\n  BF = BoxNameF+(I.AsString)\n  BT = BoxNameT+(I.AsString)\n  BFField = DO.FindByName(BF)\n  BTField = DO.FindByName(BT)\n  F = BFField.GetCurrentValue\n  T = BTField.GetCurrentValue\n  \n  if ((F <> \"<None>\")and(T = \"<New Field>\")) then\n      
AF = av.FindDialog(\"DO.ADDFields\")\n      txlFromField = AF.FindByName(\"txlFromField\")\n      txlFromField.SetText(\"\")\n      txlFromField.SetText(F.AsString)\n      cbxToListCK = AF.FindByName(\"cbxToListCK\")\n      cbxToListCK.DefineFromList(ToList)\n      txlValidate = AF.FindByName(\"txlValidate\")\n      txlValidate.SetLabel(\"False\")\n      AF.Open\n      Ckv = txlValidate.GetLabel \n      if (Ckv = \"False\") then return nil end\n      TxlName = AF.FindByName(\"TxlName\")\n      Fname = TxlName.GetText \n      Fname = Fn
ame.Trim\n      CbxTP = AF.FindByName(\"CbxTP\")\n      ftype = CbxTP.GetCurrentValue\n            \n            if (ftype = \"Number\") then\n            theType = #FIELD_DECIMAL \n            TxlWD = AF.FindByName(\"TxlWD\")\n            fwidth = TxlWD.GetText\n            fwidth = fwidth.AsNumber\n            TxlDP = AF.FindByName(\"TxlDP\")\n            fprec = TxlDP.GetText\n            fprec = fprec.AsNumber\n            end\n            \n            if (ftype = \"String\") then\n            theType = #FIELD_CHAR\n           
 TxlWD = AF.FindByName(\"TxlWD\")\n            fwidth = TxlWD.GetText\n            fwidth = fwidth.AsNumber\n            fprec = 0\n            end\n            \n            if (ftype = \"Boolean\") then\n            theType = #FIELD_LOGICAL\n            fwidth = 5\n            fprec = 0\n            end\n            \n            if (ftype = \"Date\") then\n            theType = #FIELD_DATE\n            fwidth = 8\n            fprec = 0\n            end\n      \n      NF = Field.Make (FName, theType, fWidth, fPrec)\n      theVari
able = FName\n  \n      theEditFieldsList.Add (theVariable)\n      theSourceFieldNames = theSourceFTab.GetFields\n        for each RF in theSourceFieldNames\n          if (F.asString = RF.AsString) then\n          theVariable = RF\n          end\n        end\n      theFieldType = theVariable.GetType\n      theFieldWidth = theVariable.GetWidth\n      theFieldPrecision = theVariable.GetPrecision\n      theSourceField = {theVariable, theFieldType, theFieldWidth, theFieldPrecision}\n      theSourceFieldsList.Add (theSourceF
ield)\n      theEditBitmap = theEditFTab.GetSelection\n      theSourceBitmap = theSourceTheme.GetFTab.GetSelection\n      theEditBitmap.ClearAll\n      theSourceBitmap.ClearAll\n      numberOfFields = numberOfFields + 1\n  \n  elseif ((F <> \"<None>\")and(T = \"<Match Field>\")) then\n       \n      theSourceFieldNames = theSourceFTab.GetFields\n       for each RF in theSourceFieldNames\n         if (F.asString = RF.AsString) then\n         theVariable = RF.AsString\n         end\n      end\n      theEditFieldsList.Add (theVa
riable)\n      \n      theSourceFieldNames = theSourceFTab.GetFields\n        for each RF in theSourceFieldNames\n          if (F.asString = RF.AsString) then\n          theVariable = RF\n          end\n        end\n      theFieldType = theVariable.GetType\n      theFieldWidth = theVariable.GetWidth\n      theFieldPrecision = theVariable.GetPrecision\n      theSourceField = {theVariable, theFieldType, theFieldWidth, theFieldPrecision}\n      theSourceFieldsList.Add (theSourceField)\n      theEditBitmap = theEditFTab.Get
Selection\n      theSourceBitmap = theSourceTheme.GetFTab.GetSelection\n      theEditBitmap.ClearAll\n      theSourceBitmap.ClearAll\n      numberOfFields = numberOfFields + 1\n\n  \n  \n  \n  elseif ((F <> \"<None>\")and(T <> \"<New Field>\")) then\n      if (T <> \"<None>\") then\n      if (T <> \"<Match Field>\") then\n      theEditFieldNames = theEditFTab.GetFields\n      \n        for each EF in theEditFieldNames\n          if (T.asString = EF.AsString) then\n          theVariable = EF\n          end\n        end\n\n      theFiel
dType = theVariable.GetType\n      theFieldWidth = theVariable.GetWidth\n      theFieldPrecision = theVariable.GetPrecision\n      theEditField = {theVariable, theFieldType, theFieldWidth, theFieldPrecision}\n      theEditFieldsList.Add (theEditField)\n      \n      \n      theSourceFieldNames = theSourceFTab.GetFields\n        for each RF in theSourceFieldNames\n          if (F.asString = RF.AsString) then\n          theVariable = RF\n          end\n        end\n      theFieldType = theVariable.GetType\n      theFieldWi
dth = theVariable.GetWidth\n      theFieldPrecision = theVariable.GetPrecision\n      theSourceField = {theVariable, theFieldType, theFieldWidth, theFieldPrecision}\n      theSourceFieldsList.Add (theSourceField)\n      theEditBitmap = theEditFTab.GetSelection\n      theSourceBitmap = theSourceTheme.GetFTab.GetSelection\n      theEditBitmap.ClearAll\n      theSourceBitmap.ClearAll\n      numberOfFields = numberOfFields + 1\n      end\n      end\n  end ' of if \nend ' of loop\n  \n\n\n  \nif (numberOfFields = 0) then\ncpField
.SetEnabled (True)\nlblcmdGo.SetEnabled (True)\n'Lockbutton.Click \n\nreturn nil\nend\n\n'Add the new field(s) to the table, or check to see that existing \n'fields are of compatible types with the corresponding source fields.\n'Also create a final list of fields to be edited called theEditFields.\ntheEditFields = List.Make\ntheNewEditFields = List.Make\ntheCount = theEditFieldsList.Count\ntheIndexA = 0\ntheBadTypeList = List.Make\n\n'loop through all the new or existing fields the user has specified\nwhile (theIndexA < the
Count)\n\n      'check to see if the user has chosen an existing field or if it's a \n      'new field the user wants to add (if it's a string, it's a new field)\n        if (theEditFieldsList.Get(theIndexA).is(String)) then\n      \n      'check to see if the user wants to add fields that already exist.  If \n      'they don't already exist, make them.      \n          if (theEditFTab.FindField (theEditFieldsList.Get(theIndexA).asString) = nil) then\n            theType = theSourceFieldsList.Get(theIndexA).Get(1)\n 
           theWidth = theSourceFieldsList.Get(theIndexA).Get(2)\n            thePrecision = theSourceFieldsList.Get(theIndexA).Get(3)\n            theNewField = Field.Make(theEditFieldsList.Get(theIndexA), theType, theWidth, thePrecision)\n            theEditFields.Add (theNewField)\n            theNewEditFields.Add (theNewField)\n            theIndexA = theIndexA + 1\n      \n      'If they do already exist, add the field names to theEditFields.\n          else\n            theEditFields.Add (theEditFieldsList.Get(
theIndexA))\n            theIndexA = theIndexA + 1\n          end\n      \n      'check that existing edit fields are the same type as the source field.\n      'If not, return nil with an error message.\n        elseif (theEditFieldsList.Get(theIndexA).Get(1) <> theSourceFieldsList.Get(theIndexA).Get(1)) then \n          theBadTypeList.Add (theEditFieldsList.Get(theIndexA).Get(0)) \n          theBadTypeList.Add (theEditFieldsList.Get(theIndexA).Get(1).asString) \n          theBadTypeList.Add (theSourceFieldsList.Get
(theIndexA).Get(0)) \n          theBadTypeList.Add (theSourceFieldsList.Get(theIndexA).Get(1).asString)\n          theIndexA = theIndexA + 1\n               \n      'add them to theEditFields.\n        else\n          theEditFields.Add (theEditFieldsList.Get(theIndexA).Get(0))\n          theIndexA = theIndexA + 1\n        end    \nend\n\n'return nil with an error message if there are incompatible field types, after removing the bad edit fields\ntheBadTypeListCount = theBadTypeList.count\nif (theBadTypeListCount > 0) the
n\n  theIndexB = 0\n  while (theIndexB < theBadTypeListCount) \n    msgBox.Error (\"Incompatible field types:\" + NL + \"The field \" + theBadTypeList.Get(theIndexB).asString.quote + \" = \" + theBadTypeList.Get(theIndexB+1) + NL + \"The field \" + theBadTypeList.Get(theIndexB + 2).asString.quote + \" = \" + theBadTypeList.Get(theIndexB + 3) + NL + \"The edit and source fields must be the same type.\", \"Error\")\n    theIndexB = theIndexB + 4\n  end\n  return nil\nend\n\n'add theEditFields\ntheEditFTab.StartEditingWithRecovery\nif
 (theEditFields.count > 0) then\n  theEditFTab.AddFields (theNewEditFields)\nend\n\n\ndate.SetDefFormat(\"hh:m:s AMPM\")\nthedate = (date.now.AsString)\nTxlStart.SetLabel(thedate)\n\n'Av.SetShowStatus(False)\n\nIX = 0   \n'Loop through all the records*****************************\nav.ShowStopButton\nfor each theRowNumber in 0 .. (theEditFTab.GetNumRecords - 1)\n  av.SetShowStatus (True)\n  progress = (theRowNumber/(theEditFTab.GetNumRecords - 1)) * 100\n  doMore = av.SetStatus( progress )\n  if (not doMore) then\n  break\n  end\n
  \n  bitofset = B1List.Get(IX)\n  if (bitofset = true) then \n      theIndex = 0\n    'Overlay with theme\n      av.SetShowStatus (False)\n      theShapeField = theEditFTab.FindField (\"Shape\")\n      theShape = {theEditFTab.ReturnValue (theShapeField, theRowNumber)}\n      theEditBitmap.ClearAll\n      theEditBitmap.Set(theRowNumber)\n      theDistance = 0\n      theSourceTheme.SelectByTheme (theEditTheme, #FTAB_RELTYPE_CONTAINSTHECENTEROF, theDistance, #VTAB_SELTYPE_NEW)\n      theSourceBitmap = theSourceTheme.GetFTa
b.GetSelection\n    \n    'Loop through all the fields to be populated\n      while (theIndex < numberOfFields)\n    \n    'if a source table row was selected\n        if (theSourceBitmap.Count = 1) then\n    \n    'if the edit table field is blank for the selected row\n        theField = theEditFTab.FindField (theEditFields.Get(theIndex).asString)        \n    \n    'Populate the edit table fields with the source table values for the selected row\n          for each theSourceRow in theSourceBitmap\n            theValue
 = theSourceTheme.GetFTab.ReturnValue (theSourceFieldsList.Get(theIndex).Get(0), theSourceRow)\n            theEditFTab.SetValue (theEditFields.Get(theIndex), theRowNumber, theValue)\n            theIndex = theIndex + 1\n          end\n        elseif (theSourceBitmap.count = 0) then\n          theIndex = theIndex + 1\n        elseif (theSourceBitmap.count > 1) then\n          theIndex = theIndex + 1\n          'msgBox.Error (\"More than one source polygon contains the center of one of the edit polygons.  Skipping th
is polygon.\",\"Error\")    \n        end\n      end\n\n  end ' if thebitmap is true\nIX = IX + 1\nend\n\n'clear the selection and stop editing the table\ntheEditBitmap.ClearAll\ntheSourceBitmap.ClearAll\n\nb = 0\nfor each rec in theEditFTab\nbitofset = B1List.Get(b)\nif (bitofset = True) then\nthetry = theBitmap.Set(b)\nelse\n'skip\nend\nb = b + 1\nend\n\ndate.SetDefFormat(\"hh:m:s AMPM\")\nthedate = (date.now.AsString)\nTxlEnd.SetLabel(thedate)\n\ncpField.SetEnabled (True)\nlblcmdGo.SetEnabled (True)\nlblcmdGo.SetLabel (\"Go\")\nif (RB1Fix.I
sSelected <> true) then\nLockbutton.Click \nAv.SetShowStatus(True)\nend\n\nif (theEditFTab.IsBeingEditedWithRecovery) then\n  doSave = MsgBox.YesNoCancel(\"Save Edits? Cancel to look over Data First\", \"Stop Editing\", True)\n  if (doSave = nil) then\n    return nil\n  end\n  if (theEditFTab.StopEditingWithRecovery(doSave).Not) then\n     MsgBox.Info(\"Unable to Save Edits, please use the Save Edits As option\", \"\")\n     return nil\n  end\nelseif (theEditFTab.IsEditable) then\n  theEditFTab.SetEditable(False)\nelse\n  theEditFT
ab.StartEditingWithRecovery\nend\n\nav.ClearMsg\nav.ClearStatus\n\n\n\n    "
)

(Script.1115
	Name:	"DO.Help.Go"
	SourceCode:	"'lblHelp\nHP = av.FindDialog(\"DO.Help\")\nTXHP = HP.FindByName(\"txtbox.Help\")\nMessage = \"Script Author ( Holly Torpey )\"+nl+\n          \"Dialogs by ( Charles Herbold - Hmanfl@lycos.com) \"+nl+\n          \" \"+nl+\n          \"this Tool overlays one polygon theme (the edit theme)\"+nl+\n          \"on another polygon theme (the source theme) with \"+nl+\n          \"similar or larger features and transfers attributes \"+nl+\n          \"of the source theme to the features of the edit theme.\"+nl+\n          \" \"+nl+\n          \"F
or example, you could add state names to each \"+nl+\n          \"record in a counties theme by overlaying the State\"+nl+\n          \"theme on the counties theme.  It adds fields to the \"+nl+\n          \"edit theme's theme and populates these fields  \"+nl+\n          \"with specified attributes from the source theme.\"+nl+\n          \" \"+nl+\n          \"It can also replace values in existing fields in the \"+nl+\n          \"edit theme. \"+nl+\n          \" \"+nl+\n          \"The overlay selects the features of the source th
eme that\"+nl+\n          \"contain the centers of the features of the edit theme\"+nl+\n          \"so features should be similar but need not be exact\"+nl+\n          \" \"+nl+\n          \"Edit features whose centers are not within a source feature\"+nl+\n          \"are not attributed \"+nl+\n          \" \"+nl+\n          \"The View, edit theme, source theme, and field names\"+nl+\n          \"are selected by the user from drop-down lists \"+nl+\n          \" \"+nl+\n          \" \"+nl+\n          \"caution: this tool is not idiot pr
oof\"+nl+\n          \"you can destroy your data if you are not careful\"+nl+\n          \" \"+nl+\n          \"try this to help you get a feel for how the tool works\"+nl+\n          \" \"+nl+\n          \"pick a Theme - select some records - export the records\"+nl+\n          \"using the same Theme - select less records - export it \"+nl+\n          \"delete some of the fields from the second Theme \"+nl+\n          \"now use the 1st exported Theme to tranfer fields and data\"+nl+\n          \"to the 2nd exported Theme \"+nl+\n     
     \" \"+nl+\n          \"How to use the tool \"+nl+\n          \" \"+nl+\n          \"start at the Center top box \"+nl+\n          \"Select a view\"+nl+\n          \"select a from theme\"+nl+\n          \"select a to theme \"+nl+\n          \" \"+nl+\n          \"click the lock button - this locks in the selected View & themes.\"+nl+\n          \" \"+nl+\n          \"you can start selecting fields to link\"+nl+\n          \" \"+nl+\n          \"up in the boxs below the lock button. you can work on\"+nl+\n          \"up to 15 fields at a time.
 as you select fields - if you \"+nl+\n          \"want to see the info on these fields - just click \"+nl+\n          \"the show field info button each time you add one \"+nl+\n          \" \"+nl+\n          \"if you are updating an existing field in the to theme\"+nl+\n          \"select the from field and the to field \"+nl+\n          \" \"+nl+\n          \"if you are adding a field and you want it the same as the\"+nl+\n          \"field in the from theme - set the to field to < match field >\"+nl+\n          \" \"+nl+\n          
\"if you are adding a field and you want to make it different\"+nl+\n          \"than the from field set the to field to < new field >\"+nl+\n          \" \"+nl+\n          \"you can use the same from field more than once \"+nl+\n          \" \"+nl+\n          \"the order of the fields does not matter \"+nl+\n          \" \"+nl+\n          \"number of selected records in the from theme does not matter\"+nl+\n          \" \"+nl+\n          \"if records in the to theme are selected then only\"+nl+\n          \"those records will be worked 
on.\"+nl+\n          \" \"+nl+\n          \"if none are selected then all will be worked on \"+nl+\n          \" \"+nl+\n          \"if you use the same to field more than once then \"+nl+\n          \"the one lowest to the bottom of the field selection \"+nl+\n          \"boxes will over write the other ones data \"+nl+\n          \" \"+nl+\n          \"after you have selected all the fields you want to work on\"+nl+\n          \"click the go button \"+nl+\n          \" \"+nl+\n          \"please ... this tool is not modal..you can do oth
er things \"+nl+\n          \"while the tool is running..but i wouldn't if i were you \"+nl+\n          \"i left it modaless so that you could move the tabels or \"+nl+\n          \"look at your fields in the themes - whatever - just don't \"+nl+\n          \"do anything to the tabels or the views \"+nl+\n          \"once you have clicked go \"+nl+\n          \" \"+nl+\n          \"after you click go -  \"+nl+\n          \" \"+nl+\n          \"if you have selected < new field > the tool will open a\"+nl+\n          \"small window that w
ill let you define the properties for \"+nl+\n          \"the new fields - tool will open this window as many times\"+nl+\n          \"as needed to define all the new fields\"+nl+\n          \" \"+nl+\n          \" \"+nl+\n          \"What you can do in the new field definition window \"+nl+\n          \" \"+nl+\n          \"starting at the bottom of the window you will see\"+nl+\n          \" \"+nl+\n          \"a from field box - it will tell you what\"+nl+\n          \"the from field's name is.\"+nl+\n          \" \"+nl+\n          \"next 
up is a field box with 2 select buttons \"+nl+\n          \"one marked from & one marked to \"+nl+\n          \"checking either one of these will display a list\"+nl+\n          \"in the next box up named match existing fields \"+nl+\n          \"selecting a field from the list in this box will\"+nl+\n          \"set the type - width - decimal places values  \"+nl+\n          \"to match that fields values\"+nl+\n          \" \"+nl+\n          \"you can change the values after their set\"+nl+\n          \"you don't have to use the mat
ch existing fields box \"+nl+\n          \" \"+nl+\n          \"you must enter a name \"+nl+\n          \"the name must be unique - not in the to theme already\"+nl+\n          \"also no blank spaces in the name\"+nl+\n          \" \"+nl+\n          \"for number fields - decimal places must be 2 less \"+nl+\n          \"than the field width to leave room for the 0. to fit \"+nl+\n          \" \"+nl+\n          \"string - boolean - date \"+nl+\n          \"decimal places does not mater \"+nl+\n          \" \"+nl+\n          \"boolean - date \"+
nl+\n          \"width does not mater \"+nl+\n          \" \"+nl+\n          \"click ok when you have selectd the properties\"+nl+\n          \"if you click cancel you will be returned to the\"+nl+\n          \"data overlay tool and no edit will take place  \"+nl+\n          \"you will need to click go again to start the tool \"+nl+\n          \" \"+nl+\n          \" \"+nl+\n          \"after you have defined all the new fields\"+nl+\n          \" \"+nl+\n          \"the status bar and stop button will be displayed at\"+nl+\n          \"the 
bottom of the arcview window \"+nl+\n          \"on small tabels you may not see this - too quick \"+nl+\n          \" \"+nl+\n          \"if you click the stop button tool will stop but FTab - Table\"+nl+\n          \"will still be in edit mode you will have to stop editting\"+nl+\n          \"the table yourself\"+nl+\n          \" \"+nl+\n          \" \"+nl+\n          \"when the tool is done it will prompt you to  \"+nl+\n          \"save edits  yes - no - cancel \"+nl+\n          \" \"+nl+\n          \"yes save's the edits \"+nl+\n      
    \" \"+nl+\n          \"no does not \"+nl+\n          \" \"+nl+\n          \"cancel leaves the tabel in edit mode \"+nl+\n          \"with the new data in place so you can look it over\"+nl+\n          \"then you can save it if it's correct \"+nl+\n          \" \"+nl+\n          \"your done !! \"+nl+\n          \" \"+nl+\n          \"you can select more fields to work on or exit the tool \"+nl+\n          \" \"+nl+\n          \" \"+nl+\n          \"what to do if the tool crashes while editting the theme \"+nl+\n          \" \"+nl+\n          \"do
n't freak out\"+nl+\n          \" \"+nl+\n          \"select the to theme \"+nl+\n          \"open its table\"+nl+\n          \"tabel - stop editting - and don't save the edits\"+nl+\n          \" \"+nl+\n          \" \"+nl+\n          \" \"+nl+\n          \"please send any bug reports to my email address \"+nl+\n          \"at the top of this message \"+nl+\n          \" ;-) \"+nl\n          \nMessage = Message.Proper          \nTXHP.SetText(Message) \nHP.Open"
)

(Script.1116
	Name:	"DO.Help2.Go"
	SourceCode:	"av.Run (\"DO.Help.Go\", nil)\nHP = av.FindDialog(\"DO.Help\")\nTXHP = HP.FindByName(\"txtbox.Help\")\nTXHP.SetPosition (4250)\nreturn nil"
)

(Script.1117
	Name:	"DO.Lock"
	SourceCode:	"DO = av.FindDialog(\"DataOverLay\")\nLbxViews = DO.FindByName(\"LbxViews\")\nSelectedView = LbxViews.GetCurrentValue\nLockbutton = DO.FindByName(\"lblCmd.Lock\")\ncpSetup = DO.FindByName(\"cpSetUp\")\ncpField = DO.FindByName(\"cpField\")\nThemeFrom = DO.FindByName (\"cbxFrom\")\nThemeTo = DO.FindByName (\"cbxTo\")\nlblcmdGo = DO.FindByName (\"lblcmdGo\")\nckMFields = DO.FindByName (\"ckMFields\")\ntxtRecordFrom = DO.FindByName(\"txtRecordFrom\")\ntxtRecordTo = DO.FindByName(\"txtRecordTo\")\ntxtRecordFrom.SetLabel (\"\")\ntxtRecordTo.SetLabel 
(\"\")\ncpInfo = DO.FindByName (\"cpInfo\")\ncpInfo.SetHelp(\"\")\n\n\nif (ThemeFrom.GetCurrentValue <> ThemeTo.GetCurrentValue) then\n\n      if (Lockbutton.GetLabel  = \"Lock\") then\n      cpSetup.SetEnabled (False)\n      cpField.SetEnabled (True)\n      Lockbutton.SetLabel (\"UnLock\")\n      lblcmdGo.SetEnabled (True)\n      TxlStart = DO.FindByName(\"TxlStart\")\n      TxlEnd = DO.FindByName(\"TxlEnd\") \n      TxlStart.SetLabel(\"\")\n      TxlEnd.SetLabel(\"\")\n    \n          'set fields\n          'cbxFIF1..15 ************* \n     
     'FIF = DO.FindByName(\"cbxFIF\")\n          ThemeFrom = DO.FindByName (\"cbxFrom\")\n          \n          \n          theFIFValue = ThemeFrom.GetCurrentValue\n          if (theFIFValue = \"<none>\") then return nil end\n          theFIFTheme = SelectedView.FindTheme (theFIFValue)\n          if (theFIFTheme = nil) then return nil end\n          theFIFFTab = theFIFTheme.GetFTab\n          theFIFOrigFields = theFIFFTab.GetFields\n          TempList = theFIFOrigFields.DeepClone\n          TempList.Sort(True)\n          the
FIFFieldsList = {\"<None>\"}\n          theRecs = theFIFFTab\n          theCount2 = theRecs.GetNumRecords\n          theRecs = theFIFFTab.GetSelection\n          theCount1 = theRecs.count\n          txtRecordFrom.SetLabel (theCount1.AsString++\" of \"++theCount2.AsString)\n           \n          for each f in TempList\n            \n              theFIFFieldsList.Add(f)\n            \n          end\n          \n          BoxName = \"cbxFIF\"\n          for each I in 1..15\n          BX = BoxName+(I.AsString)\n          \n        
  cbxFIF = DO.FindByName(BX)\n          'cbxFIF.DefineFromList(theFIFOrigFields)\n          cbxFIF.DefineFromList(theFIFFieldsList)\n          end ' I\n          \n          'cbxTIF1..15\n          'TIF ********\n          TIF = DO.FindByName(\"cbxTIF\")\n          ThemeTo = DO.FindByName (\"cbxTo\")\n          \n          'theTIFIndexValue = TIF.GetCurrentValue\n          theTIFValue = ThemeTo.GetCurrentValue\n          if (theTIFValue = \"<none>\") then return nil end\n          theTIFTheme = SelectedView.FindTheme (theTIFV
alue)\n          if (theTIFTheme = nil) then return nil end\n          theTIFFTab = theTIFTheme.GetFTab\n          theTIFOrigFields = theTIFFTab.GetFields\n          TempList = theTIFOrigFields.DeepClone\n          TempList.Sort(True)\n          theTIFFieldsList = {\"<None>\",\"<New Field>\",\"<Match Field>\"}\n          theRecs = theTIFFTab\n          theCount2 = theRecs.GetNumRecords\n          theRecs = theTIFFTab.GetSelection\n          theCount1 = theRecs.count\n          txtRecordTo.SetLabel (theCount1.AsString++\" of 
\"++theCount2.AsString)\n\n          for each f in TempList\n            \n              theTIFFieldsList.Add(f)'clone\n            \n          end\n          \n          \n          BoxName = \"cbxTIF\"\n          for each I in 1..15\n          BX = BoxName+(I.AsString)\n          \n          cbxFIF = DO.FindByName(BX)\n          'cbxFIF.DefineFromList(theTIFOrigFields)\n          cbxFIF.DefineFromList(theTIFFieldsList)\n          end ' I\n      \n      \n      \n      else\n      cpSetup.SetEnabled (True)\n      cpField.SetEnable
d (False)\n      Lockbutton.SetLabel (\"Lock\")\n      lblcmdGo.SetEnabled (False)\n      ckMFields.SetSelected(False)\n      \n      end\n\nelse\nMsgBox.Error( \"Both Themes Can Not Be The Same \", \"Oops\" )\ntxtRecordFrom.SetLabel (\"\")\ntxtRecordTo.SetLabel (\"\")\n\nend\n\n\n\n"
)

(Script.1118
	Name:	"DO.OPEN"
	SourceCode:	"'DataOverLay\n'C.Herbold\n\n\n\nDO = Self ' \"DataOverLay\"\nmessage = \"Select a View//\"\n\n\n\nThemeFrom = Self.FindByName (\"cbxFrom\")\nThemeTo = Self.FindByName (\"cbxTo\")\nThemeFrom.setHelp(\"Select a Theme\")\nThemeTo.setHelp(\"Select a Theme\")\nLbxViews = Self.FindByName(\"LbxViews\")\nLbxViews.SetHelp(message)\n\ntxtRecordFrom = DO.FindByName(\"txtRecordFrom\")\ntxtRecordTo = DO.FindByName(\"txtRecordTo\")\ntxtRecordFrom.SetLabel (\"\")\ntxtRecordTo.SetLabel (\"\")\nTxlStart = DO.FindByName(\"TxlStart\")\nTxlEnd = DO.FindByName(\"TxlEnd\") \nT
xlStart.SetLabel(\"\")\nTxlEnd.SetLabel(\"\")\nlblcmdGo = DO.FindByName (\"lblcmdGo\")\nlblcmdGo.SetLabel (\"Go\")\ncpInfo = DO.FindByName (\"cpInfo\")\ncpInfo.SetHelp(\"\")\n\n\n\ntheViewList = list.Make\ntheDocs = av.GetProject.GetDocs\nfor each theDoc in theDocs\n  if (theDoc.is(View)) then  \n    theViewList.Add (theDoc)\n  end\nend\nLbxViews.DefineFromList(theViewList)\n\n\n\n\nlblcmdGo = DO.FindByName (\"lblcmdGo\")\nlblcmdGo.SetEnabled (False)\nckMFields = DO.FindByName (\"ckMFields\")\nckMFields.SetSelected(False)\n\n\ntheThemeList = {}\nblan
klist = {\"<none>\"}\nBoxName1 = \"cbxFIF\"\nBoxName2 = \"cbxTIF\"\nfor each I in 1..15\nBX1 = BoxName1+(I.AsString)\nBX2 = BoxName2+(I.AsString)\ncbxFIF1 = DO.FindByName(BX1)\ncbxFIF2 = DO.FindByName(BX2)\ncbxFIF1.DefineFromList(blanklist)\ncbxFIF2.DefineFromList(blanklist)\ncbxFIF1.setHelp(message)\ncbxFIF2.setHelp(message)\nend ' I\n\nLockbutton = DO.FindByName(\"lblCmd.Lock\")\nmessage = \"Click the Lock Button After\"+nl+\n          \"You Have Selected a From & To Theme\"+nl+\n          \"//\"+nl\n\nLockbutton.SetHelp(message)\n\n\ncpSet
up = DO.FindByName(\"cpSetUp\")\ncpField = DO.FindByName(\"cpField\")\ncpSetup.SetEnabled (True)\ncpField.SetEnabled (False)\nLockbutton.SetLabel (\"Lock\")\n\n\n\n    \nThemeFrom.DefineFromList(blanklist)\nThemeTo.DefineFromList(blanklist)\n\n\n\n\ncpSetup = DO.FindByName(\"cpSetUp\")\ncpField = DO.FindByName(\"cpField\")\ncpSetup.SetEnabled (True)\ncpField.SetEnabled (False)\nRB1Fix = DO.FindByName(\"RB1Fix\")\nRB1Fix.SetSelected (False)\n\n\n'add help messages\nckMFields = DO.FindByName(\"ckMFields\")\nmessage = \"Check This If You Want New Fi
elds Added To the To Table\"+nl+\n           \"If this Box is Checked\"+nl+\n          \"Any Fields Left as <none> in the To Table Will be Created\"+nl+\n          \"From the Fields in the From Table - Any Fields Set to <New Field>\"+nl+\n          \"Will open a Dialog for you to Create a New Field\"+\"//\"+nl\nckMFields.setHelp(message)  \ntheInfo = DO.FindByName (\"lblCmdShowInfo\")\nmessage = \"Click This Each Time You Select a Field To See Info on That Field\"+nl+\n          \"Just Move The Cursor Over The Field Name To See Th
e Info\"+\"//\"+nl\n                   \ntheInfo.SetHelp(message)\n\nmessage =\"Click this Button After you Have\"+nl+\n         \"Selected the From and To Fields Below\"+ \"//\"+nl\n\nlblcmdGo.SetHelp(message)\n\n\n\n\n\n\n"
)

(Script.1119
	Name:	"DO.Run"
	SourceCode:	"DO = av.FindDialog(\"DataOverLay\")\nDO.Open"
)

(Script.1120
	Name:	"DO.Show.Info"
	SourceCode:	"DO = av.FindDialog(\"DataOverLay\")\nLockbutton = DO.FindByName(\"lblCmd.Lock\")\n\nLbxViews = DO.FindByName(\"LbxViews\")\nSelectedView = LbxViews.GetCurrentValue\n\nThemeFrom = DO.FindByName (\"cbxFrom\").GetCurrentValue\ntheFromTheme = SelectedView.FindTheme(ThemeFrom)\n\nThemeTo = DO.FindByName (\"cbxTo\").GetCurrentValue\ntheToTheme = SelectedView.FindTheme (ThemeTo)\n\n\n\n\n\n'from fields\n\nif (theFromTheme <> nil) then\ntheFIFTheme = SelectedView.FindTheme(ThemeFrom)\ntheFIFFTab = theFIFTheme.GetFTab\ntheType = theFIFFTab.FindFi
eld(\"shape\").GetType\n\n  V = (\"Name:  \"+ThemeFrom+NL+\n       \"Type:  \"+theType.AsString+NL)\nelse\n  V = \"<None>\"\nend \n\nV = V+\"//\"\nH = DO.FindByName (\"cbxFrom\") \nH.setHelp(V)\n\n\n\n\n\n\n\nif (theFromTheme <> nil) then \n  \n  theFIFOrigFields = theFIFFTab.GetFields\n  BoxName = \"cbxFIF\"\n  for each I in 1..15\n  BX = BoxName+(I.AsString)\n  cbxFIF = DO.FindByName(BX)\n  SelectedTheme = cbxFIF.GetCurrentValue\n    if (SelectedTheme.asString <> \"<none>\") then \n    fname = SelectedTheme.GetName\n    falias = SelectedTheme.GetAl
ias\n    ftype = SelectedTheme.GetType\n    fwidth = SelectedTheme.GetWidth\n    fprec = SelectedTheme.GetPrecision\n    V = (\"Name:  \"+fname+NL+\n        \"Alias:  \"+falias+NL+\n        \"Type:  \"+ftype.asstring+NL+\n        \"Width:  \"+fwidth.asstring+NL+\n        \"Precision:  \"+fprec.asstring)\n  \n    else\n    V = \"<None>\"\n    end \n  V = V+\"//\"\n  cbxFIF.setHelp(V)\n  end ' I\nend\n\n'to fields\n\n\nif (theToTheme <> nil) then\ntheTIFTheme = SelectedView.FindTheme (ThemeTo)\ntheTIFFTab = theTIFTheme.GetFTab\ntheType = theTIFFT
ab.FindField(\"shape\").GetType\n\n  V = (\"Name:  \"+ThemeTo+NL+\n     \"Type:  \"+theType.AsString+NL)\nelse\n  V = \"<None>\"\nend \n\nV = V+\"//\"\n\nH = DO.FindByName (\"cbxTo\") \nH.setHelp(V)\n\n\n\n\n\n\n\nif (theToTheme <> nil) then \n  \n  theTIFOrigFields = theTIFFTab.GetFields\n  BoxName = \"cbxTIF\"\n  for each I in 1..15\n  BX = BoxName+(I.AsString)\n  cbxTIF = DO.FindByName(BX)\n  SelectedTheme = cbxTIF.GetCurrentValue\n    if (SelectedTheme.asString <> \"<None>\") then\n      if (SelectedTheme.asString <> \"<New Field>\") then \n        
if (SelectedTheme.asString <> \"<Match Field>\") then\n        fname = SelectedTheme.GetName\n        falias = SelectedTheme.GetAlias\n        ftype = SelectedTheme.GetType\n        fwidth = SelectedTheme.GetWidth\n        fprec = SelectedTheme.GetPrecision\n        V = (\"Name:  \"+fname+NL+\n            \"Alias:  \"+falias+NL+\n            \"Type:  \"+ftype.asstring+NL+\n            \"Width:  \"+fwidth.asstring+NL+\n            \"Precision:  \"+fprec.asstring)\n      \n        else\n        V = \"<None>\"\n        end\n      end\n    
end \n  V = V+\"//\"\n\n  cbxTIF.setHelp(V)\n  end ' I\n\n'Est the run time\n\ntheRecs = theTIFFTab\ntheCount2 = theRecs.GetNumRecords\ntheRecs = theTIFFTab.GetSelection\ntheCount1 = theRecs.count\nif (theCount1 = 0) then\ntheEstSec = theCount2 *0.045\ntheEstMin = theEstSec / 60\nif (theEstMin < 1) then theEstMin = 1 end\ntheEstMin = theEstMin.Round \nMessage = \"Estimated Run Time\"+nl+\n           theEstMin.AsString+\" Min\"+Nl\nelse\ntheEstSec = theCount1 *0.045\ntheEstMin = theEstSec / 60\nif (theEstMin < 1) then theEstMin = 1 end
\ntheEstMin = theEstMin.Round \nMessage = \"Estimated Run Time\"+nl+\n           theEstMin.AsString+\" Min\"+Nl\nend\nMessage = Message+\"//\"\ncpInfo = DO.FindByName (\"cpInfo\")\ncpInfo.SetHelp(Message)\n\n\n\n\n\n\n\nend\n\n\n\n\n\n"
)

(Script.1121
	Name:	"DO.View.Select"
	SourceCode:	"DO = av.FindDialog(\"DataOverLay\")\nThemeFrom = DO.FindByName (\"cbxFrom\")\nThemeTo = DO.FindByName (\"cbxTo\")\nLbxViews = DO.FindByName(\"LbxViews\")\n\nSelectedView = LbxViews.GetCurrentValue \n\ntheThemeList = {}\n\nfor each d in av.GetProject.GetDocs\n  if(d.is(View)) then\n    if (d.asString = SelectedView.AsString) then \n    Tmlist = d.getThemes\n      for each T in Tmlist\n        if (T.CanEdit = True) then\n        theThemeList.Add(T.GetName)\n        end\n      end\n    end\n  end\nend\n           \nThemeFrom.DefineFromList
(theThemeList)\nThemeTo.DefineFromList(theThemeList)\n\n"
)

(Script.1122
	Name:	"Doc.ExportImportODB"
	SourceCode:	"'===========================================================\n \n'  Check for the shift key, if the shift key is down, pop up instructions for using this script\n\nif (System.IsShiftKeyDown) then\n  message =\n  \" \"+nl+\n  \" Script Author (Jan Stemmler 12-July-1999 at EA-Herdecke phone: +49-202 -8009-51 Email: EAHerdecke@csi.com)\"+nl+\n  \" \"+nl+\n  \" Brief Instructions:\"+nl+nl+\n  \" Save the ArcView document as an ODB file\"+nl+\n  \" Loads a ODB file as a ArcView document\"+nl+\n  \" \"+nl+\n  \" \"+nl+\n  \"                   
                         \"+nl+\n  \"                                            \"+nl+\n  \"                                            \"+nl+\n  \"                                            \"+nl+\n  \"                                            \"+nl+\n  \"                                            \"+nl+\n  \"                                            \"+nl+\n  \"                                            \"+nl+\n  \"                                             \"+nl\n'Title here         \n  msgbox.report(message,\"Export/Impo
rt active ArcView doc. as ODB file\")\n  \n  Clipboard.The.Empty\n  Clipboard.The.Add(message)\n  Clipboard.The.Update\n    \n  MsgBox.Info(\"These instructions were copied to the system clipboard.  To print them, open a text editor\"++\n  \"(like notepad), paste in the contents of the clipboard, and print them from the text editor.\",\"PRINT INSTRUCTIONS\")\n\n  return nil\nend\n'===========================================================\n\n\n' Name:  Doc.ExportImportODB\n'\n' by Jan Stemmler, (12-July-1999)\n' at EA-Herdecke\n' 
   Ingenieurgesellschaft für Geotechnik und Umwelt\n'    Am Ossenbrink 40\n'    D-58313 Herdecke\n'\n'    Germany\n'\n'    phone: +49-202 -8009-51\n'    Email: EAHerdecke@csi.com\n'\n\ntheGUI = av.GetActiveDoc.GetGUI\ntheWinTitle = \"Export/Import\"++theGUI\ntheChoice = MsgBox.ChoiceAsString ({ \"Export\", \"Import\"}, \"Export or import the active ArcView document as an ODB file. Please Choose:\", theWinTitle)\n\nif (theChoice = \"Export\") then\n  theDoc = av.GetActiveDoc\n  theDefFileName=theDoc.asString+\".odb\"\n\n  theWinTitle = \"
Export\"++theGUI++\", Save the ArcView document as an ODB file\"\n\n  theODBfileName = FileDialog.Put(theDefFileName.asFileName,\"*.odb\",theWinTitle)\n  if (theODBfileName = nil) then MsgBox.Info(\"Nothing exported !\",\"Export\"++theGUI) exit end\n  theODB = ODB.Make(theODBfileName)\n  \n  if (theODB = nil) then MsgBox.Info(\"Nothing exported !\",\"Export\"++theGUI) exit end\n  theDict = Dictionary.Make(1)\n  theDict.Set(\"MyDoc\", theDoc)\n  theODB.Add(theDict)\n  if (theODB.Commit) then\n    if (MsgBox.LongYesNo (theDoc.asString
++\"successfully exported to '\"+theODBfileName.asString+\"'\"+NL+\"Do you want to export additional information?\", \"Export\"++theGUI, true)) then\n      theDepsFileName = theODBfileName.asString.AsFileName\n      theDepsFileName.SetExtension(\"txt\")\n      MsgBox.Info(\"Will now write additional information to '\"+theDepsFileName.asString+\"'.\"+NL+NL+\"This could take some time!\",\"Export\"++theGUI)\n      theDepsFile = LineFile.Make (theDepsFileName, #FILE_PERM_WRITE)\n      theDepsFile.WriteElt(\"Additional information for
 file:\"+NL+theODBfileName.asString\n                            +NL+NL+\"Source project:            \"++av.GetProject.asString\n                            +NL+\"Document type (GUI):       \"++theGUI\n                            +NL+\"Document name:             \"++theDoc.asString\n                            +NL)\n  \n      theProjDepends = av.GetProject.GetDependencies\n      if (theProjDepends.Count > 0) then\n        theDepsFile.WriteElt(\"Extentions of source project were:\")\n        for each rec in theProjDepends\n   
       theDepsFile.WriteElt(rec.asString)\n        end\n        end\n      theDepsFile.WriteElt(nl+\"the ODB file uses the following files:\")\n      theRFile = LineFile.Make ( theODBfileName, #FILE_PERM_READ )\n      myPathList = {}\n      theRFileSize=theRFile.GetSize\n      i=0\n      av.ClearStatus\n      av.ShowStopButton\n      while ( theRFile.IsAtEnd.Not)  \n        i = i + 1\n        av.ShowMsg(\"looking through line\"++i.asString++\"of\"++theRFileSize.asString++\"lines\")\n        progress = (i/theRFileSize) * 100\n   
     doMore = av.SetStatus( progress )\n        if (not doMore) then  break  end\n        buf = theRFile.ReadElt\n        if ( buf.Contains(\"Path:\") ) then\n          aPath = buf.extract(1)\n          myPathList.Add (aPath)\n        end\n      end\n      myPathList.RemoveDuplicates\n      for each rec in myPathList\n        theDepsFile.WriteElt(rec.unquote)\n      end\n    end\n  else\n    MsgBox.Error(\"could not export\"++theGUI,\"Export\"++theGUI)\n  end\nelseif (theChoice = \"Import\") then\n  theWinTitle = \"Import an ArcView
 document from an ODB file\"\n  theODBfile = FileDialog.Show(\"*.odb\",\"ODB file\",theWinTitle)\n  if (theODBfile = nil) then exit end\n  theODB = ODB.Open(theODBfile)\n  theODBDepends = theODB.GetDependencies\n  for each rec in theODBDepends\n    if ((MsgBox.LongYesNo (theODBfile.asString++\"needs\"++rec.asString , theWinTitle, true)).not) then exit end\n  end\n  theObj = theODB.Get(0)\n  theClassName = theObj.GetClass.GetClassName\n  if (theClassName = \"Dictionary\") then\n    theKeyList = theObj.ReturnKeys\n    if (theKeyL
ist.Count = 1) then\n      theKey = theKeyList.Get (0)\n    else\n      theKey = msgBox.ListAsString (theKeyList, \"Select one Object\", theWinTitle)\n    end\n    theDoc = theObj.Get(theKey)\n    av.GetProject.AddDoc(theDoc)\n  else\n    av.GetProject.AddDoc(theObj)\n  end  \n  \nelse\n  exit\nend\n"
)

(Script.1123
	Name:	"DT.DXF.Out.Attrib.C"
	SourceCode:	"'Script Name:  DT.DXFOutAttrib Version 1.1\n\n'Original Script: @Shape2DXF by ESRI France, translated and modified by Mel VanderWal\n'\n'Extensive overhaul by C.B. Beckcom, Nov. 1999\n'Revised: 3 Dec 99  Bug Fix: Number format to include 9 places past decimal, added Field Enum list to recognize\n'                            all appropriate field types for Layer, Elevation and Thickness.\n'\n'Application:  View GUI; button or menu item\n'Purpose:  Converts one and only one Feature Theme(tested with *.shp, *.dxf, *.dw
g, and ArcInfo Coverage files) \n'          and attached text into a DXF file.\n'          Most importantly it allows the user to export attribute values out in the DXF file.\n'          The attributes are \"hidden\" in the Layer Name, Entity Color, Entity Elevation, and Entity Thickness.\n'          The user is given a choice to create a New Field for both the Elevation and Thickness values,\n'          these new fields are populated with unique number values starting at 1.\n'          By using a unique value for 
each entity a field is created for rejoining the linework \n'          with the attribute table. This can be very useful if you need to export the lines into\n'          a stronger drawing editer like AutoCAD but want to re-attach the attributes when the \n'          lines are brought back into ArcView, this is done with a spatial join.\n'\n'----------------------------------------------------------------------------------------------------\n\n'----------GENERIC VARIABLES SECTION 1-------------------\n\n'---Set leve
l of precision for coordinates---\nScript.The.SetNumberFormat(\"d.ddddddddd\")\n\ntheView=av.GetActiveDoc\ntheActiveThemes = theView.GetActiveThemes\ntheTheme = theActiveThemes.Get(0)\ntheUnits = theView.GetUnits\n\n'----------RESOURCE CHECKING--------------------\n\nif (theUnits=#UNITS_LINEAR_UNKNOWN) then\n  MsgBox.Error(\"No map units defined.  Please define the map units in the View Properties dialog, and try again.\",\"Bummer!   Map Units Undefined\")\n  theView.Edit\n  return nil\nend\n\nif (theActiveThemes.Count = 0) then
\n  MsgBox.Error(\"You must have ONE active feature theme!\", \"Bummer!   No Active Theme\")\n  return nil\nelseif (theActiveThemes.Count > 1) then\n  MsgBox.Error(\"You must have only ONE active feature theme!\", \"Bummer!   Too Many Active Themes\")\n  return nil\nend\n\nif (theTheme.Is(FTheme).Not) then\n    MsgBox.Error(theTheme.GetName.UCase++\" is not a Feature Theme!\"+NL+\"Only FThemes may be exported as a DXF.\", \"Bummer!  Wrong Theme Class\")\n    return nil\nend\n\n'----------GENERIC VARIABLES SECTION 2-------------------
\n\ntheFTab = theTheme.GetFTab\ntheVTab = theTheme.GetFTab\ntheShapeField = theFTab.FindField(\"Shape\")\ntheShapeType = theShapeField.GetType\n'---Create Translation String Sets----\nstrIllegal = \" ~!@#%^&*()+|`=/\\{}[]:;<>?,.'\"\nstrLegal   = \"_-$$$$-$---_--___----__--$__-\"\n'---Check for Attached Graphic Text----\nTextCheck = theTheme.GetGraphics.HasLabels\n\n'----------DETERMINE SELECTED FEATURES-------------------\n\nif (theFTab.GetSelection.Count = 0) then\n    theSelection = theFTab\n    theNumRecs = theFTab.GetNumRecor
ds\n  else\n    theSelection = theFTab.GetSelection\n    theNumRecs = theFTab.GetSelection.Count\n  end 'if\n\n\n'----------DETERMINE EXTENT OF THEME OR SELECTED FEATURES-------------------\n\ntheRect = Rect.MakeEmpty\ntheFtab = theView.GetActiveThemes.Get(0).GetFTab\n\n  if (theFTab.GetSelection.Count > 0) then\n    theRect = theTheme.GetSelectedExtent\n  else\n    theRect = theTheme.ReturnExtent\n  end\n\n\n'----------CREATE THE DXF FILE-------------------\n\ntheThemeName = theTheme.GetName\nstrExt = theThemeName.Right(4)\ntheF
ileName = theThemeName.BasicTrim(\"\",strExt)\ntheDXFTemp1 = Filename.Make(theFileName.Translate(strIllegal,strLegal))\ntheDXFTemp2 = theDXFTemp1.GetBaseName + \".dxf\"\ntheDXFFilename = FileDialog.Put(theDXFTemp2.AsFileName,\"*.dxf\",\"Select Output Name and Location for the DXF file.\")\nif (theDXFFilename = nil) then\n  exit\nelse\n  theLF = LineFile.Make(theDXFFilename, #FILE_PERM_WRITE)\nend\n\n\n'----------LAYER NAME(S)--------------------\n\nLayerChoice = MsgBox.YesNoCancel(\"YES to use Theme Name as Layer Name.\"+NL+\"NO t
o use a String Field for the Layer Name(s).\",\"Use Theme Name as Layer Name?\",true)\n\nif (LayerChoice = true) then\n\ntheLayerName = theTheme.GetName.Translate(strIllegal,strLegal)\nUseLayerField = False\n\nelseif (LayerChoice = False) then\n\ntheStrFieldList = {}\n\n  for each c in theTheme.GetFtab.GetFields\n      if ((c.IsVisible) and ((c.GetType = #FIELD_CHAR) or (c.GetType = #FIELD_VCHAR) or (c.GetType = #FIELD_ISODATE) or (c.GetType = #FIELD_ISODATETIME) or (c.GetType = #FIELD_ISOTIME))) then\n        theStrFieldL
ist.Add(c) \n      end 'if\n  end 'for each c\n  \n'---Trap for NO string(Char) fields----\n\n  SFLCheck = theStrFieldList.Count\n  if (SFLCheck <> 0) then\n  \n      theLayerField = MsgBox.Choice(theStrFieldList,\"Choose the Field you want to use for Layer assignment. Only String Fields are elgible.\",\"Layer Field\")\n    \n      if (theLayerField = nil) then\n        theLF.Close\n        theFtab.Deactivate\n        File.Delete(theDXFFilename)\n        exit\n      end 'if\n      \n    UseLayerField = TRUE\n    \n    '---Create a
 List of Unique Values to Write to Layer Names\n    \n    theLayerNames = {}\n    theNullList = {\"\"} \n      \n    for each val in theSelection\n      theLayerNames.Add(theVTab.ReturnValueString(theLayerField, val))\n    end 'for each val\n    \n    '---Trap for Duplicates and Empty Field Values----\n    if (theLayerNames.Count > 0) then\n      theLayerNames.RemoveDuplicates\n      theLayerNames = theLayerNames-theNullList     \n    end 'if\n    \n   else\n   \n    MsgBox.Info(theTheme.GetName.UCase++\"does NOT have a String
 Field!\"+NL+\"The Theme Name will be used as the Layer Name.\",\"Bummer!  No String Field in Table.\")\n    theLayerName = theTheme.GetName.Translate(strIllegal,strLegal)\n    UseLayerField = False\n   \n   end 'if SFLCheck\n\nelseif (LayerChoice = nil) then\n  \n  theLF.Close\n  theFtab.Deactivate\n  File.Delete(theDXFFilename)\n  exit\n  \nend 'if LayerChoice\n\n\n'----------COLOR CHOICE--------------------\n \n'---Add choice for color field or color choice, verify and list only numeric fields with max value <= 255  \n\nColorCho
ice = MsgBox.YesNoCancel(\"YES to choose a Color from a list.\"+NL+\"NO to use a Numeric Field for the Color choice.\",\"Choose Entity Color from List?\",true)\nif (ColorChoice = true) then\n\n    '---Build Color Dictionary\n    theColorDict = Dictionary.Make(11)\n    theColorDict.Add(\"Black\", 7)\n    theColorDict.Add(\"Red\", 1)\n    theColorDict.Add(\"Yellow\", 2)\n    theColorDict.Add(\"Green\", 3)\n    theColorDict.Add(\"Cyan\", 4)\n    theColorDict.Add(\"Blue\", 5)\n    theColorDict.Add(\"Magenta\", 6)\n    theColorDict.Add(\"Dark G
ray\", 8)\n    theColorDict.Add(\"Light Gray\", 9)\n    theColorDict.Add(\"Brown\", 34)\n    theColorDict.Add(\"<ByLayer>\", 256)\n    \n    '---Build and sort the color choice list, determine color and get the numeric value as a string from theColorDict\n    theColorList=theColorDict.ReturnKeys\n    theColorList.Sort(true)\n    theColor=MsgBox.ListAsString (theColorList,\"Choose the Color for all objects to be Exported.\",\"DXF Color\")\n      if (theColor = nil) then\n        theLF.Close\n        theFtab.Deactivate\n        Fil
e.Delete(theDXFFilename)\n        exit\n      end  \n    theDXFColor=theColorDict.Get(theColor).AsString\n    UseColorField = FALSE\n    \nelseif (ColorChoice = false) then\n\n  '---Get the Numeric Fields for the DXF Color and filter fields to only those that meet ACAD requirements for Color\n  theColorList = {}\n  theNumFieldList = {}\n  theMaxTestList = {}\n  theWholeIntList = {}\n  \n  \n  '---Check that there are only numbers greater than or equal to 0 and less than 255-----\n    for each f in theTheme.GetFtab.GetField
s\n      if ((f.IsVisible) and ((f.GetType = #FIELD_DECIMAL) or (f.GetType = #FIELD_DOUBLE) or(f.GetType = #FIELD_FLOAT) or (f.GetType = #FIELD_LONG) or (f.GetType = #FIELD_SHORT) or (f.GetType = #FIELD_BYTE) or (f.GetType = #FIELD_MONEY))) then\n        theNumFieldList.Add(f) \n      end 'if\n    end 'for each f\n                 \n    for each i in theNumFieldList\n      theMinimum = nil\n      theMaximum = nil\n      for each rec in theVTab   \n       theValue = theVTab.ReturnValueNumber( i, rec )\n          if ( n
ot ( theValue.IsNull ) ) then\n            if ( theMinimum = nil ) then\n              theMinimum = theValue\n              theMaximum = theValue\n            else\n              theMinimum = theMinimum min theValue\n              theMaximum = theMaximum max theValue\n            end 'if-else\n          end 'if\n       end 'for each i\n       \n       if ((theMaximum <= 255) and (theMinimum >= 1)) then\n         theMaxTestList.Add(i)\n       end 'if\n    end 'for each\n\n     '----Check for whole integers-----\n     for eac
h f in theMaxTestList\n     theSum = 0\n       for each rec in theVTab\n         theValue = theVTab.ReturnValueNumber(f,rec)\n           if ( not ( theValue.IsNull ) ) then\n             theRemainder = theValue mod 1\n           end 'if\n         theSum = theRemainder + theSum\n       end 'for each rec\n       if (theSum = 0) then\n           theWholeIntList.Add(f)\n       end 'if\n     end 'for each f\n   \n'---Trap for Numeric fields that qualify----\n\n  CFCheck = theWholeIntList.Count\n  \n  if (CFCheck <> 0) then\n\n    t
heColorField = MsgBox.Choice(theWholeIntList,\"Choose the Field you want to use for color assignment. Only Number Fields containing only Whole Numbers with All values between 1 and 255 are elgible.\",\"Color Assignment Field\")\n    \n    if (theColorField = nil) then\n    \n      theLF.Close\n      theFtab.Deactivate\n      File.Delete(theDXFFilename)\n      exit\n      \n    end 'if\n    \n    UseColorField = TRUE\n    \n  else\n  \n  MsgBox.Info(theTheme.GetName.UCase++\"has NO elgible Numeric Fields for Color Choice.\"+NL+\"
Please choose from a Color List.\",\"Bummer!\")\n  \n      '---Build Color Dictionary\n    theColorDict = Dictionary.Make(11)\n    theColorDict.Add(\"Black\", 7)\n    theColorDict.Add(\"Red\", 1)\n    theColorDict.Add(\"Yellow\", 2)\n    theColorDict.Add(\"Green\", 3)\n    theColorDict.Add(\"Cyan\", 4)\n    theColorDict.Add(\"Blue\", 5)\n    theColorDict.Add(\"Magenta\", 6)\n    theColorDict.Add(\"Dark Gray\", 8)\n    theColorDict.Add(\"Light Gray\", 9)\n    theColorDict.Add(\"Brown\", 34)\n    theColorDict.Add(\"<ByLayer>\", 256)\n    \n    '---B
uild and sort the color choice list, determine color and get the numeric value as a string from theColorDict\n    theColorList=theColorDict.ReturnKeys\n    theColorList.Sort(true)\n    theColor=MsgBox.ListAsString (theColorList,\"Choose the Color for all objects to be Exported.\",\"DXF Color\")\n      if (theColor = nil) then\n        theLF.Close\n        theFtab.Deactivate\n        File.Delete(theDXFFilename)\n        exit\n      end  \n    theDXFColor=theColorDict.Get(theColor).AsString\n    UseColorField = FALSE\n    \n 
 end 'if\n\n\nelseif (ColorChoice = nil) then\n\n  theLF.Close\n  theFtab.Deactivate\n  File.Delete(theDXFFilename)\n  exit\n  \nend 'if ColorChoice\n\n\n'----------Z VALUE FIELD-------------------\n\nUseZVal = MsgBox.YesNo(\"YES to choose a Z Value Field.\"+NL+\"NO to skip Z Values.\",\"Export Z Values?\", true)\nif (UseZVal = true) then\ntheZList = {} \ntheZFieldList = {}\n\n  for each f in theTheme.GetFTab.GetFields\n    if ((f.IsVisible) and ((f.GetType = #FIELD_DECIMAL) or (f.GetType = #FIELD_DOUBLE) or(f.GetType = #FIELD_FLOAT)
 or (f.GetType = #FIELD_LONG) or (f.GetType = #FIELD_SHORT) or (f.GetType = #FIELD_BYTE) or (f.GetType = #FIELD_MONEY))) then\n      theZFieldList.Add(f) \n    end 'if\n  end 'for each\n  \n  '----Verify that FTheme is a Shape File, an Editable FTab-------------\n  edCheck = theFtab.CanEdit\n  \n  if (edCheck) then\n  theZFieldList.Insert(\"<New Field>\")\n  \n   z = MsgBox.ListAsString(theZFieldList,\"Choose the Field you want to use for Z Values.\"+NL+\"<New Field> will be populated with unique values.\",\"Z Value Field\")\n
  if (z = nil) then\n      theLF.Close\n      theFtab.Deactivate\n      File.Delete(theDXFFilename)\n      exit\n  elseif (z = \"<New Field>\") then\n  theField = theftab.FindField(\"Elevation\")\n    if (theField = nil ) then\n      theField = \"Elevation\"\n    else\n    theField = MsgBox.Input(\"The Default field name 'Elevation' already exists! Please enter a different name for the Field.\",\"OOPS!\",\"\")\n      if (theField = nil) then\n        theLF.Close\n        theFtab.Deactivate\n        File.Delete(theDXFFilename)\n      
  exit\n      elseif ((theFTab.FindField(theField) = Nil).Not) then\n        MsgBox.Info(theField++\"already exists also!\",\"Bummer!\")\n        goOn = MsgBox.YesNo(\"Do you want to continue with Elevation set at 0?\",\"Now What?\", true)\n        if (goOn = true) then\n          UseZVal = FALSE\n        else\n          theLF.Close\n          theFtab.Deactivate\n          File.Delete(theDXFFilename)\n          exit\n        end 'if goOn\n      end 'if theField\n    end 'if z\n    if (theFTab.FindField(theField) = Nil) then\n    
  theFTab.SetEditable(true)\n      newField = Field.Make(theField,#FIELD_DECIMAL,8,0)\n      theFtab.AddFields({newField})\n      x = 0\n        for each r in theFtab\n          theFtab.SetValue(newField,r,x+1)\n          x = x+1\n        end\n      theFTab.SetEditable(false)\n      theZField = newField\n    end\n    else\n      theZList.Add(z)\n      theZField = theZList.Get(0)\n     end\n     \n   \n  \nelse      \n'---Trap for NO Numeric fields at all in Non-editable FTabs----\n\nZCheck = theZFieldList.Count\n  \n if (ZCheck <
> 0) then\n   \n   z = MsgBox.ListAsString(theZFieldList,\"Choose the Field you want to use for Z Values.\",\"Z Value Field\")\n   if (z = nil) then\n      theLF.Close\n      theFtab.Deactivate\n      File.Delete(theDXFFilename)\n      exit\n   end\n   theZList.Add(z)\n   theZField = theZList.Get(0)\n   \n else\n \n   MsgBox.Info(theTheme.GetName.UCase++\"does NOT have a Numeric Field!\"+NL+\"The Z Value will be set at 0.\",\"Bummer!  No Numeric Field in Table.\")\n   UseZVal = false\n   \n end 'if ZCheck\n  \nend 'if-elseif\n\nend ' if 
edCheck\n\n\n'----------THICKNESS VALUE FIELD-------------------\n\nUseTVal = MsgBox.YesNo(\"YES to choose a Thickness Value Field.\"+NL+\"NO to skip Thickness Values.\",\"Export Thickness Values?\", true)\nif (UseTVal = true) then\ntheTList = {} \ntheTFieldList = {}\n\n  for each f in theTheme.GetFTab.GetFields\n    if ((f.IsVisible) and ((f.GetType = #FIELD_DECIMAL) or (f.GetType = #FIELD_DOUBLE) or(f.GetType = #FIELD_FLOAT) or (f.GetType = #FIELD_LONG) or (f.GetType = #FIELD_SHORT) or (f.GetType = #FIELD_BYTE) or (f.GetT
ype = #FIELD_MONEY))) then\n      theTFieldList.Add(f) \n    end 'if\n  end 'for each\n  \n  '----Verify that FTheme is a Shape File, an Editable FTab-------------\n  edCheck = theFtab.CanEdit\n  \n  if (edCheck) then\n  theTFieldList.Insert(\"<New Field>\")\n  \n   t = MsgBox.ListAsString(theTFieldList,\"Choose the Field you want to use for Thickness Values.\"+NL+\"<New Field> will be populated with unique values.\",\"Thickness Value Field\")\n  if (t = nil) then\n      theLF.Close\n      theFtab.Deactivate\n      File.Delete(th
eDXFFilename)\n      exit\n  elseif (t = \"<New Field>\") then\n  theTField = theftab.FindField(\"Thickness\")\n    if (theTField = nil ) then\n      theTField = \"Thickness\"\n    else\n    theTField = MsgBox.Input(\"The Default field name 'Thickness' already exists! Please enter a different name for the Field.\",\"OOPS!\",\"\")\n      if (theTField = nil) then\n        theLF.Close\n        theFtab.Deactivate\n        File.Delete(theDXFFilename)\n        exit\n      elseif ((theFTab.FindField(theTField) = Nil).Not) then\n        Ms
gBox.Info(theTField++\"already exists also!\",\"Bummer!\")\n        TgoOn = MsgBox.YesNo(\"Do you want to continue with Thickness set at 0?\",\"Now What?\", true)\n        if (TgoOn = true) then\n          UseTVal = FALSE\n        else\n          theLF.Close\n          theFtab.Deactivate\n          File.Delete(theDXFFilename)\n          exit\n        end\n      end\n    end\n    if (theFTab.FindField(theTField) = Nil) then\n      theFTab.SetEditable(true)\n      newTField = Field.Make(theTField,#FIELD_DECIMAL,8,0)\n      theFtab.
AddFields({newTField})\n      x = 0\n        for each r in theFtab\n          theFtab.SetValue(newTField,r,x+1)\n          x = x+1\n        end\n      theFTab.SetEditable(false)\n      theTField = newTField\n    end\n    else\n      theTList.Add(t)\n      theTField = theTList.Get(0)\n     end\n     \n   \n  \nelse      \n'---Trap for NO Numeric fields at all in Non-editable FTabs----\n\nTCheck = theTFieldList.Count\n  \n if (TCheck <> 0) then\n   \n   t = MsgBox.ListAsString(theTFieldList,\"Choose the Field you want to use for Thi
ckness Values.\",\"Thickness Value Field\")\n   if (t = nil) then\n      theLF.Close\n      theFtab.Deactivate\n      File.Delete(theDXFFilename)\n      exit\n   end\n   theTList.Add(t)\n   theTField = theTList.Get(0)\n   \n else\n \n   MsgBox.Info(theTheme.GetName.UCase++\"does NOT have a Numeric Field!\"+NL+\"The Thickness Value will be set at 0.\",\"Bummer!  No Numeric Field in Table.\")\n   UseTVal = false\n   \n end 'if TCheck\n  \nend 'if-elseif\n\nend ' if edCheck\n\n\n'----------BEGIN WRITTING ELEMENTS TO FILE--------------------
\n\n'---Create Header Section---\ntheLF.WriteElt(\"  0\")\ntheLF.WriteElt(\"SECTION\")\ntheLF.WriteElt(\"  2\")\ntheLF.WriteElt(\"HEADER\")\ntheLF.WriteElt(\"  9\")\ntheLF.WriteElt(\"$EXTMAX\")\ntheLF.WriteElt(\" 10\")\ntheLF.WriteElt(theRect.GetRight.asString)\ntheLF.WriteElt(\" 20\")\ntheLF.WriteElt(theRect.GetTop.asString)\ntheLF.WriteElt(\"  9\")\ntheLF.WriteElt(\"$EXTMIN\")\ntheLF.WriteElt(\" 10\")\ntheLF.WriteElt(theRect.GetLeft.asString)\ntheLF.WriteElt(\" 20\")\ntheLF.WriteElt(theRect.GetBottom.asString)\ntheLF.WriteElt(\"  9\")\ntheLF.WriteElt
(\"$LUPREC\")\ntheLF.WriteElt(\" 70\")\ntheLF.WriteElt(\"  8\") '14\ntheLF.WriteElt(\"  0\")\ntheLF.WriteElt(\"ENDSEC\")\n\n'---Create Tables Section---\ntheLF.WriteElt(\"  0\")\ntheLF.WriteElt(\"SECTION\")\ntheLF.WriteElt(\"  2\")\ntheLF.WriteElt(\"TABLES\")\ntheLF.WriteElt(\"  0\")\ntheLF.WriteElt(\"TABLE\")\ntheLF.WriteElt(\"  2\")\ntheLF.WriteElt(\"LAYER\")\ntheLF.WriteElt(\" 70\")\ntheLF.WriteElt(\"  2\")\ntheLF.WriteElt(\"  0\")\ntheLF.WriteElt(\"LAYER\")\ntheLF.WriteElt(\"  2\")\ntheLF.WriteElt(\"0\")\ntheLF.WriteElt(\" 70\")\ntheLF.WriteElt(\"  0\")\ntheLF.WriteE
lt(\" 62\")\ntheLF.WriteElt(\"  7\")\ntheLF.WriteElt(\"  6\")\ntheLF.WriteElt(\"CONTINUOUS\")\ntheLF.WriteElt(\"  0\")\n\n'---Create a seperate TEXT Layer if Graphic Text exists----\nif(TextCheck) then\n  theLF.WriteElt(\"LAYER\")\n  theLF.WriteElt(\"  2\")\n  theLF.WriteElt(\"TEXT_LABELS\")\n  theLF.WriteElt(\" 70\")\n  theLF.WriteElt(\"  0\")\n  theLF.WriteElt(\" 62\")\n  theLF.WriteElt(\"  7\")\n  theLF.WriteElt(\"  6\")\n  theLF.WriteElt(\"CONTINUOUS\")\n  theLF.WriteElt(\"  0\")\nend\n\n\nif(UseLayerField = true) then\n  for each l in theLayerNames\n    
theLF.WriteElt(\"LAYER\")\n    theLF.WriteElt(\"  2\")\n    theLayerName = l.AsString.Left(31).Translate(strillegal,strlegal)\n    theLF.WriteElt(theLayerName)\n    theLF.WriteElt(\" 70\")\n    theLF.WriteElt(\" 64\")\n    theLF.WriteElt(\" 62\")\n    theLF.WriteElt(\"  7\")\n    theLF.WriteElt(\"  6\")\n    theLF.WriteElt(\"CONTINUOUS\")\n    theLF.WriteElt(\"  0\")\n  end 'for each l\nelse\n  theLF.WriteElt(\"LAYER\")\n  theLF.WriteElt(\"  2\")\n  theLF.WriteElt(theLayerName)\n  theLF.WriteElt(\" 70\")\n  theLF.WriteElt(\" 64\")\n  theLF.WriteElt(\"
 62\")\n  theLF.WriteElt(\"  7\")\n  theLF.WriteElt(\"  6\")\n  theLF.WriteElt(\"CONTINUOUS\")\n  theLF.WriteElt(\"  0\")\nend 'if\n\ntheLF.WriteElt(\"ENDTAB\")\ntheLF.WriteElt(\"  0\")\ntheLF.WriteElt(\"ENDSEC\")\n\n'---Create Blocks Section---\ntheLF.WriteElt(\"  0\")\ntheLF.WriteElt(\"SECTION\")\ntheLF.WriteElt(\"  2\")\ntheLF.WriteElt(\"BLOCKS\")\ntheLF.WriteElt(\"  0\")\ntheLF.WriteElt(\"ENDSEC\")\n\n'---Create Entities Section---\ntheLF.WriteElt(\"  0\")\ntheLF.WriteElt(\"SECTION\")\ntheLF.WriteElt(\"  2\")\ntheLF.WriteElt(\"ENTITIES\")\n\n\n'---Update Status M
essage---\n  av.ShowMsg(\"Exporting DXF file from\"++theTheme.GetName++\". . .\")\n  for each theRec in theSelection\n    av.SetStatus(theRec/theNumRecs*100)\n    av.ShowStopButton\n    \n    '---Export the Feature---\n    theShape = theFTab.ReturnValue(theShapeField,theRec)\n    \n    if (theShapeType = #FIELD_SHAPEPOINT) then\n\n      '---Add Points\n      \n      '----Trap for non-entities, especially important when a Point Theme has been\n      '----created from an Event Theme where the Table(*.dbf) was created in anothe
r application\n      \n      if ((theShape.IsNull).Not) then\n      \n      theX = theShape.GetX.AsString\n      theY = theShape.GetY.AsString\n      if (UseZVal = true) then\n        theZ = theFTab.ReturnValue(theZField,theRec).AsString\n      else\n        theZ = (0.AsString)\n      end 'if\n      if (UseTVal = true) then\n        theT = theFTab.ReturnValue(theTField,theRec).AsString\n      else\n        theT = (0.AsString)\n      end 'if\n\n      theLF.WriteElt(\"  0\")\n      theLF.WriteElt(\"POINT\")\n      theLF.WriteElt(\" 
 8\")\n      \n      '---Establish Layer Name and trap for empty fields and illegal characters----\n      \n      if(UseLayerField = true) then\n        theFieldStr = theVTab.ReturnValue(theLayerField,theRec)\n          if (theFieldStr.IsNull) then\n            theLayerName = \"0\"\n          else\n            theLayerName = theFieldStr.Left(31).Translate(strillegal,strlegal)\n          end\n        theLF.WriteElt(theLayerName)\n      else\n        theLF.WriteElt(theLayerName)\n      end 'if-else\n      \n      theLF.WriteElt
(\" 10\")\n      theLF.WriteElt(theX)\n      theLF.WriteElt(\" 20\")\n      theLF.WriteElt(theY)\n      theLF.WriteElt(\" 30\")\n      theLF.WriteElt(theZ)\n      theLF.WriteElt(\" 39\")\n      theLF.WriteElt(theT)      \n      theLF.WriteElt(\" 62\")\n      if(UseColorField = true) then\n        '---Check for and replace any 'Empty' values---\n        theDXFCheck = theVTab.ReturnValue(theColorField,theRec)\n          if (theDXFCheck.IsNull) then\n              theDXFColor = 256\n          else\n            theDXFColor = theDXFChec
k\n          end        \n        \n        theLF.WriteElt(theDXFColor.AsString)\n      else\n        theLF.WriteElt(theDXFColor)\n      end 'if-else\n    else\n      continue\n    end 'if theShape.IsNull\n    \n    elseif (theShapeType = #FIELD_SHAPEMULTIPOINT) then\n\n      '---Add MultiPoints\n      if ((theShape.IsNull).Not) then\n      \n      thePoints = theShape.AsList\n      for each thePoint in thePoints\n        theX = thePoint.GetX.AsString\n        theY = thePoint.GetY.AsString\n        if (UseZVal = true) then\n   
       theZ = theFTab.ReturnValue(theZField,theRec).AsString\n        else\n          theZ = 0.AsString\n        end 'if\n        if (UseTVal = true) then\n          theT = theFTab.ReturnValue(theTField,theRec).AsString\n        else\n          theT = 0.AsString\n        end 'if\n\n        theLF.WriteElt(\"  0\")\n        theLF.WriteElt(\"POINT\")\n        theLF.WriteElt(\"  8\")\n        \n        '---Establish Layer Name and trap for empty fields and illegal characters----\n        \n        if(UseLayerField = true) then\n     
       theFieldStr = theVTab.ReturnValue(theLayerField,theRec)\n          if (theFieldStr.IsNull) then\n            theLayerName = \"0\"\n          else\n            theLayerName = theFieldStr.Left(31).Translate(strillegal,strlegal)\n          end\n          theLF.WriteElt(theLayerName)\n        else\n          theLF.WriteElt(theLayerName)\n        end 'if-else\n  \n        theLF.WriteElt(\" 10\")\n        theLF.WriteElt(theX)\n        theLF.WriteElt(\" 20\")\n        theLF.WriteElt(theY)\n        theLF.WriteElt(\" 30\")\n        
theLF.WriteElt(theZ)\n        theLF.WriteElt(\" 39\")\n        theLF.WriteElt(theT)\n        theLF.WriteElt(\" 62\")\n        if(UseColorField = true) then\n          '---Check for and replace any 'Empty' values---\n          theDXFCheck = theVTab.ReturnValue(theColorField,theRec)\n          if (theDXFCheck.IsNull) then\n              theDXFColor = 256\n          else\n            theDXFColor = theDXFCheck\n          end        \n        \n          theLF.WriteElt(theDXFColor.AsString)\n        else\n          theLF.WriteElt(
theDXFColor)\n        end 'if\n\n      end 'for each\n    else\n      continue\n    end 'if theShape.IsNull\n\n    elseif (theShapeType = #FIELD_SHAPELINE) then\n\n      '---Add Lines\n      if ((theShape.IsNull).Not) then\n      \n\n      if (UseZVal = true) then\n        theZ = theFTab.ReturnValue(theZField,theRec).AsString\n      else\n        theZ = 0.AsString\n      end 'if\n      if (UseTVal = true) then\n        theT = theFTab.ReturnValue(theTField,theRec).AsString\n      else\n        theT = 0.AsString\n      end 'if\n    
  \n      theVertexLists = theShape.AsList\n      for each theVertexList in theVertexLists\n\n        theLF.WriteElt(\"  0\")\n        theLF.WriteElt(\"POLYLINE\")\n        theLF.WriteElt(\"  8\")\n        \n        '---Establish Layer Name and trap for empty fields and illegal characters----\n        \n        if(UseLayerField = true) then\n            theFieldStr = theVTab.ReturnValue(theLayerField,theRec)\n          if (theFieldStr.IsNull) then\n            theLayerName = \"0\"\n          else\n            theLayerName = theFi
eldStr.Left(31).Translate(strillegal,strlegal)\n          end\n\n          theLF.WriteElt(theLayerName)\n        else\n          theLF.WriteElt(theLayerName)\n        end 'if-else\n  \n\n        theLF.WriteElt(\" 62\")\n        if(UseColorField = true) then\n          '---Check for and replace any 'Empty' values---\n          theDXFCheck = theVTab.ReturnValue(theColorField,theRec)\n          if (theDXFCheck.IsNull) then\n              theDXFColor = 256\n          else\n            theDXFColor = theDXFCheck\n          end     
   \n        \n          theLF.WriteElt(theDXFColor.AsString)\n        else\n          theLF.WriteElt(theDXFColor)\n        end 'if-else\n        theLF.WriteElt(\" 66\")\n        theLF.WriteElt(\"  1\")\n        theLF.WriteElt(\" 10\")\n        theLF.WriteElt(\"0.0\")\n        theLF.WriteElt(\" 20\")\n        theLF.WriteElt(\"0.0\")\n        theLF.WriteElt(\" 30\")\n        theLF.WriteElt(theZ)\n        theLF.WriteElt(\" 39\")\n        theLF.WriteElt(theT)\n\n        for each theVertex in theVertexList\n          theX = theVertex.GetX.AsStr
ing\n          theY = theVertex.GetY.AsString\n          if (UseZVal = true) then\n            theZ = theFTab.ReturnValue(theZField,theRec).AsString\n          else\n            theZ = 0.AsString\n          end 'if-else\n          if (UseTVal = true) then\n            theT = theFTab.ReturnValue(theTField,theRec).AsString\n          else\n            theT = 0.AsString\n          end 'if-else\n\n          theLF.WriteElt(\"  0\")\n          theLF.WriteElt(\"VERTEX\")\n          theLF.WriteElt(\"  8\")\n          \n          '---Esta
blish Layer Name and trap for empty fields and illegal characters----\n          \n          if(UseLayerField = true) then\n              theFieldStr = theVTab.ReturnValue(theLayerField,theRec)\n          if (theFieldStr.IsNull) then\n            theLayerName = \"0\"\n          else\n            theLayerName = theFieldStr.Left(31).Translate(strillegal,strlegal)\n          end\n            theLF.WriteElt(theLayerName)\n          else\n            theLF.WriteElt(theLayerName)\n          end 'if-else\n  \n\n          theLF.Wri
teElt(\" 10\")\n          theLF.WriteElt(theX)\n          theLF.WriteElt(\" 20\")\n          theLF.WriteElt(theY)\n          theLF.WriteElt(\" 30\")\n          theLF.WriteElt(theZ)\n          theLF.WriteElt(\" 39\")\n          theLF.WriteElt(theT)\n          \n          'theLF.WriteElt(\"  0\")\n\n         end 'for each\n        \n        theLF.WriteElt(\"  0\")\n        theLF.WriteElt(\"SEQEND\")\n        theLF.WriteElt(\"  8\")\n        theLF.WriteElt(\"0\")\n      end 'for each\n    else\n      continue\n    end 'if theShape.IsNull\n    \n    
elseif (theShapeType = #FIELD_SHAPEPOLY) then\n\n      '---Add Polygons\n      if ((theShape.IsNull).Not) then\n      \n      if (UseZVal = true) then\n        theZ = theFTab.ReturnValue(theZField,theRec).AsString\n      else\n        theZ = 0.AsString\n      end 'if\n      \n      if (UseTVal = true) then\n        theT = theFTab.ReturnValue(theTField,theRec).AsString\n      else\n        theT = 0.AsString\n      end 'if\n\n      theVertexLists = theShape.AsList\n      for each theVertexList in theVertexLists\n\n        theLF.
WriteElt(\"  0\")\n        theLF.WriteElt(\"POLYLINE\")\n        theLF.WriteElt(\"  8\")\n        \n        '---Establish Layer Name and trap for empty fields and illegal characters----\n        \n        if(UseLayerField = true) then\n            theFieldStr = theVTab.ReturnValue(theLayerField,theRec)\n          if (theFieldStr.IsNull) then\n            theLayerName = \"0\"\n          else\n            theLayerName = theFieldStr.Left(31).Translate(strillegal,strlegal)\n          end\n          theLF.WriteElt(theLayerName)\n    
    else\n          theLF.WriteElt(theLayerName)\n        end 'if-else\n  \n\n        theLF.WriteElt(\" 62\")\n        if(UseColorField = true) then\n          '---Check for and replace any 'Empty' values---\n          theDXFCheck = theVTab.ReturnValue(theColorField,theRec)\n          if (theDXFCheck.IsNull) then\n              theDXFColor = 256\n          else\n            theDXFColor = theDXFCheck\n          end        \n        \n          theLF.WriteElt(theDXFColor.AsString)\n        else\n          theLF.WriteElt(theDXFC
olor)\n        end 'if-else\n        theLF.WriteElt(\" 66\")\n        theLF.WriteElt(\"  1\")\n        theLF.WriteElt(\" 10\")\n        theLF.WriteElt(\"0.0\")\n        theLF.WriteElt(\" 20\")\n        theLF.WriteElt(\"0.0\")\n        theLF.WriteElt(\" 30\")\n        theLF.WriteElt(theZ)\n        theLF.WriteElt(\" 39\")\n        theLF.WriteElt(theT)\n        theLF.WriteElt(\" 70\")\n        theLF.WriteElt(\"  1\")\n\n        for each theVertex in theVertexList\n          theX = theVertex.GetX.AsString\n          theY = theVertex.GetY.AsString\n
          if (UseZVal = true) then\n            theZ = theFTab.ReturnValue(theZField,theRec).AsString\n          else\n            theZ = 0.AsString\n          end 'if-else\n          if (UseTVal = true) then\n            theT = theFTab.ReturnValue(theTField,theRec).AsString\n          else\n            theT = 0.AsString\n          end 'if-else\n          \n          theLF.WriteElt(\"  0\")\n          theLF.WriteElt(\"VERTEX\")\n          theLF.WriteElt(\"  8\")\n          \n          '---Establish Layer Name and trap for empty
 fields and illegal characters----\n          \n          if(UseLayerField = true) then\n              theFieldStr = theVTab.ReturnValue(theLayerField,theRec)\n            if (theFieldStr.IsNull) then\n              theLayerName = \"0\"\n            else\n              theLayerName = theFieldStr.Left(31).Translate(strillegal,strlegal)\n            end\n            theLF.WriteElt(theLayerName)\n          else\n            theLF.WriteElt(theLayerName)\n          end 'if-else\n\n          theLF.WriteElt(\" 10\")\n          theLF
.WriteElt(theX)\n          theLF.WriteElt(\" 20\")\n          theLF.WriteElt(theY)\n          theLF.WriteElt(\" 30\")\n          theLF.WriteElt(theZ)\n          theLF.WriteElt(\" 39\")\n          theLF.WriteElt(theT)\n        end 'for each theVertex\n        \n        theLF.WriteElt(\"  0\")\n        theLF.WriteElt(\"SEQEND\")\n        theLF.WriteElt(\"  8\")\n        theLF.WriteElt(\"0\")\n      end 'for each theVertexList\n    else\n      continue\n    end 'if theShape.IsNull\n   \n    end 'if-else theShapeType\n    \n     more = av.SetSt
atus(theRec/theNumRecs*100)\n     if ((av.SetStatus(theRec/theNumRecs*100)).Not) then\n       break\n     end\n\n  end 'for each theRec\n  \n  av.ClearStatus\n    \n  '---Export graphic text attached to the theme----------\n  \n  theIDNum = 0\n  theGraphicList = theTheme.GetGraphics\n  if (theGraphicList.IsEmpty.Not) then\n    theTextList = List.Make\n    for each theGraphic in theGraphicList\n      if (theGraphic.Is(GraphicText)) then\n        theTextList.Add(theGraphic)\n      end\n    end\n    theNumGraphics = theTextList.C
ount\n    \n    for each theGText in theTextList\n     \n      '---Determine text attributes\n      theTextScaleFactor = 0.000235\n      theSize = theGText.GetSymbol.GetSize - theTextScaleFactor - theView.ReturnScale\n      theFont = theGText.GetSymbol.GetFont.GetFamily\n      theStyle = theGText.GetSymbol.GetFont.GetStyle\n      theText = theGText.GetText\n      \n      '---Determine Text Placement\n      theGAngle = theGText.GetAngle Mod 360\n      theGPosition = theGText.GetOrigin\n      theGExtent = theGText.GetBound
s\n      theGWidth = theGExtent.GetWidth\n      if (theGAngle = 0) then\n        theNewGPosition = theGPosition.Clone\n      else\n        theXShift = 0\n        theYShift = 0\n        theGTextFlat = theGText.Clone\n        theGTextFlat.SetAngle(0)\n        theGPositionFlat = theGTextFlat.GetOrigin\n        theGExtentFlat   = theGTextFlat.GetBounds\n        theCosAlpha = theGAngle.AsRadians.Cos\n        theSinAlpha = theGAngle.AsRadians.Sin\n        theGWidthFlat = theGExtentFlat.GetWidth\n        if (theSinAlpha > 0) th
en\n          theXShift = theGWidthFlat - theCosAlpha\n          theXShift = theGWidth - theXShift\n        else\n          theYShift = theGWidthFlat - (theGAngle - 180.AsRadians.Sin)\n        end\n        theNewGPosition = Point.Make((theGPosition.GetX+theXShift),(theGPosition.GetY+theYShift))\n      end\n      theLF.WriteElt(\"  0\")\n      theLF.WriteElt(\"TEXT\")\n      theLF.WriteElt(\"  8\")\n      '----Writes all text to Layer \"Text_Labels\"----\n      theLF.WriteElt(\"TEXT_LABELS\")\n      theLF.WriteElt(\" 10\")\n      the
LF.WriteElt(theNewGPosition.GetX.AsString)\n      theLF.WriteElt(\" 20\")\n      theLF.WriteElt(theNewGPosition.GetY.AsString)\n      theLF.WriteElt(\" 30\")\n      theLF.WriteElt(\"0.0\")\n      theLF.WriteElt(\" 40\")\n      theLF.WriteElt(theSize.AsString)\n      theLF.WriteElt(\" 50\")\n      theLF.WriteElt(theGAngle.AsString)\n      theLF.WriteElt(\"  1\")\n      theLF.WriteElt(theText)\n      theLF.WriteElt(\"  7\")\n      theLF.WriteElt(theFont++theStyle)\n    end\n  end\n\n'---Finish the Entities Section\ntheLF.WriteElt(\"0\")\ntheL
F.WriteElt(\"ENDSEC\")\ntheLF.WriteElt(\"0\")\ntheLF.WriteElt(\"EOF\")\n\n'---Close and Clean-Up\ntheLF.Close\nav.ClearStatus\nav.ClearMsg\nMsgBox.Info(\"DXF Export of\"++theTheme.GetName++\"was a success!\",\"Cool!\")\n"
)

(Script.1124
	Name:	"Fill.Apply"
	SourceCode:	"theDialog = Self.GetDialog\n\ntheNumber = theDialog.FindByName(\"txl_Number\").GetText.AsNumber - 1\n\nmySymWin = av.GetSymbolWin\nmySymWin.Open\n'mySymWin.SetPanel(#SYMBOLWIN_PANEL_FILL)\nmyPalette = mySymWin.GetPalette\nmyPaletteList = myPalette.GetList(#PALETTE_LIST_FILL)\n\n'theNumber=55\n\nml = myPaletteList.Get(theNumber)\n\nIf (ml.GetStyle.AsString.Left(10) = \"VECTORFILL\") Then\n  ml.SetAngle(theDialog.FindByName(\"txl_Angle\"      ).GetText.AsNumber)\n  ml.SetHeight(theDialog.FindByName(\"txl_Height\"     ).GetText.AsNum
ber)\n  ml.SetWidth(theDialog.FindByName(\"txl_Width\"      ).GetText.AsNumber)\n  ml.SetPenSize(theDialog.FindByName(\"txl_PenSize\"    ).GetText.AsNumber)\n  ml.SetXOffset(theDialog.FindByName(\"txl_XOffset\"    ).GetText.AsNumber)\n  ml.SetXSeparation(theDialog.FindByName(\"txl_XSeparation\").GetText.AsNumber)\n  ml.SetYOffset(theDialog.FindByName(\"txl_YOffset\"    ).GetText.AsNumber)\n  ml.SetYSeparation(theDialog.FindByName(\"txl_YSeparation\").GetText.AsNumber)\nElseIf (ml.GetStyle.AsString.Left(10) = \"RASTERFILL\") The
n\nEnd\n\nmySymWin.RefreshPalette(#PALETTE_LIST_FILL)\n\nav.Run(\"Fill.Update\", {theDialog, theNumber} )"
)

(Script.1125
	Name:	"Fill.Cancel"
	SourceCode:	"Self.GetDialog.Close"
)

(Script.1126
	Name:	"Fill.Del"
	SourceCode:	"theDialog = Self.GetDialog\n\nIf (MsgBox.YesNo(\"Are you sure?\",\"\",FALSE)) Then\n  If (MsgBox.YesNo(\"Are you really sure?\",\"\",FALSE)) Then\n\n    mySymWin = av.GetSymbolWin\n    mySymWin.Open\n    myPalette = mySymWin.GetPalette\n    myPaletteList = myPalette.GetList(#PALETTE_LIST_FILL)\n\n    theNumber = theDialog.FindByName(\"txl_Number\").GetText.AsNumber - 1\n\n    myPaletteList.Remove(theNumber)\n\n    mySymWin.RefreshPalette(#PALETTE_LIST_FILL)\n\n  End\nEnd\n\n"
)

(Script.1127
	Name:	"Fill.GetSymbol"
	SourceCode:	"theDialog     = self.GetDialog\n\nmySymWin      = av.GetSymbolWin\ntheSymbol     = mySymWin.ReturnCurrentSymbol(#SYMBOL_FILL)\nmyPalette     = mySymWin.GetPalette\nmyPaletteList = myPalette.GetList(#PALETTE_LIST_FILL)\ntheCounter = -1\nfound = FALSE\n\nFor Each aSymbol In myPaletteList\n  theCounter = theCounter + 1\n  If (theSymbol = aSymbol) Then\n    theNumber = theCounter\n    found = TRUE\n  End\nEnd\n\nIf (found = FALSE) THEN\n  MsgBox.Error(\"Please enter the number of the symbol!\",\"\")\n  exit\nEnd\n\nav.Run(\"Fill.Update\",
 {theDialog, theNumber} )"
)

(Script.1128
	Name:	"Fill.Help"
	SourceCode:	"'===========================================================\n \n'  Check for the shift  key, if the shift key is down, pop up instructions for using this script\n\n'if (System.IsShiftKeyDown) then\n  message =\n  \" Script Author (klaus.neudecker@ku-eichstaett.de)\"+nl+\n  \" Change-VectorFill-Symbols (8th September 1999)\"+nl+\n  \" \"+nl+nl+\n  \" The extension allows the manipulation, creation and deletion of VectorFill symbols in the fill palette of the Symbol Window.\"+nl+\n  \" WHEN YOU USE ARCVIEW 3.1:\"+nl+\n  \" This v
ersion of ArcView has a bug which won't be fixed by the patch (Version 3.1.1)\"+nl+\n  \" You can not create VectorFills with lines smaller than 1pt! \"+nl+\n  \" When you want to do this, you must use ArcView 3.0 or wait until ArcView 3.2 (Hopefully it will be fixed then)!\"+nl+\n  \" Tool is quirky - you can't change esri symbols \"+nl+\n  \" Any symbols you create - it will not find the number \"+nl+\n  \" You will have to play with it to get the hang of it\"+nl+\n  \" Sorry but it would take to long to explain all the qu
irks\"+nl+\n  \" \"+nl+\n  \" \"+nl+\n  \" \"+nl+\n  \" \"+nl\n'Title here         \n  msgbox.report(message,\"Change-VectorFill-Symbols\")\n  \n  Clipboard.The.Empty\n  Clipboard.The.Add(message)\n  Clipboard.The.Update\n    \n  MsgBox.Info(\"These instructions were copied to the system clipboard.  To print them, open a text editor\"++\n  \"(like notepad), paste in the contents of the clipboard, and print them from the text editor.\",\"PRINT INSTRUCTIONS\")\n\n'  return nil\n'end\n'==========================================================
=\n\n"
)

(Script.1129
	Name:	"Fill.Make"
	SourceCode:	"' MyDialogExt.Make\n' Make the extension object\nMyDialogExt = Extension.Make(\"$USEREXT/Change-VectorFill-Symbols.avx\".AsFileName,\n\n   \"Change VectorFill Symbols\",\n   av.FindScript(\"Fill.Install\"),\n   av.FindScript(\"Fill.Uninstall\"),\n   {\"$AVBIN/avdlog.dll\".AsFileName})\n\nMyDialogExt.SetExtVersion(1)\nMyDialogExt.SetAbout(\"Allows the manipulation of VectorFill-Symbols in the Symbol Window.\"+NL+\n                     \"Version: 8th September 1999\"+NL+\n                     \"Klaus Neudecker E-Mail: klaus.neudecker@k
u-eichstaett.de\")\nMyDialogExt.SetUnloadScript(av.FindScript(\"Fill.Unload\"))\nMyDialogExt.SetCanUnloadScript(av.FindScript(\"Fill.CanUnload\"))\n\n' Retrieve the MyDialog dialog from the project and add it to the \n' extension\nMyDialogExt.Add(av.FindDialog(\"Change VectorFill Symbols\"))\n\n' Retrieve the View button that launches the dialog and add it to the \n' extension\nMyDialogExt.Add( av.FindGUI( \"View\").GetButtonBar.GetControls.Get( av.FindGUI( \"View\").GetButtonBar.GetControls.Count-1))\nMyDialogExt.Add( av.FindGU
I( \"View\").GetButtonBar.GetControls.Get( av.FindGUI( \"View\").GetButtonBar.GetControls.Count-2))\n\n' Retrieve all the scripts for the dialog, make sure they are all complied, \n' and then add them to the extension. Assumes that the scripts are prefix by \n' \"MyDialog\"\nfor each aDoc in av.GetProject.GetDocs\n  if (aDoc.Is(SEd)) then\n    if (aDoc.GetName.Contains(\"Fill.\")) then\n      if (aDoc.IsCompiled.Not) then\n        aDoc.Compile\n      end\n      MyDialogExt.Add(av.FindScript(aDoc.GetName))\n    end\n  end\nend\n\n'
 Write the extension to file\nMyDialogExt.Commit"
)

(Script.1130
	Name:	"Fill.Move"
	SourceCode:	"theDialog = Self.GetDialog\n\nmySymWin = av.GetSymbolWin\nmySymWin.Open\nmyPalette = mySymWin.GetPalette\nmyPaletteList = myPalette.GetList(#PALETTE_LIST_FILL)\n\ntheNumber = theDialog.FindByName(\"txl_Number\").GetText.AsNumber - 1\n\nml = myPaletteList.Get(theNumber)\nmyPaletteList.Remove(theNumber)\n\nnewNumber = MsgBox.Input(\"Enter the new position:\", \"\", \"\")\n\nIf (newNumber.IsNumber.Not) Then\n  MsgBox.Error(\"Please enter a number!\",\"\")\nEnd\n\n\n\nFor Each sym In (myPaletteList.Count-1)..(newNumber-1) By -1\n\nEnd\n\nmySymWin
.RefreshPalette(#PALETTE_LIST_FILL)\n"
)

(Script.1131
	Name:	"Fill.New"
	SourceCode:	"theDialog = Self.GetDialog\n\nmySymWin = av.GetSymbolWin\nmySymWin.Open\nmyPalette = mySymWin.GetPalette\nmyPaletteList = myPalette.GetList(#PALETTE_LIST_FILL)\n\n\ntheChoice = {\"#VECTORFILL_STYLE_CROSSHATCH\",\"#VECTORFILL_STYLE_DOT\",\"#VECTORFILL_STYLE_DOTDENSITY\",\"#VECTORFILL_STYLE_HATCH\",\"#VECTORFILL_STYLE_RANDDOT\",\"#VECTORFILL_STYLE_RECTANGLE\"}\ntheChosen = MsgBox.ChoiceAsString(theChoice, \"Choose the type of vectorFill:\",\"\")\nIf (theChosen = nil) Then\n  Exit\nEnd\n\nml = VectorFill.Make\nml.SetStyle(theChosen.AsEnum)\n
myPaletteList.Add(ml)\n\nmySymWin.RefreshPalette(#PALETTE_LIST_FILL)\n\nav.Run(\"Fill.Update\", {theDialog, (myPaletteList.Count)-1} )"
)

(Script.1132
	Name:	"Fill.NewNumber"
	SourceCode:	"theNumber = Self.GetText\nav.Run( \"Fill.Update\", {Self.GetDialog, (theNumber.AsNumber) - 1} )"
)

(Script.1133
	Name:	"Fill.Open"
	SourceCode:	"av.Run( \"Fill.Update\", {Self, 0} )"
)

(Script.1134
	Name:	"Fill.Start"
	SourceCode:	"av.FindDialog(\"Change VectorFill Symbols\").Open\n"
)

(Script.1135
	Name:	"Fill.Update"
	SourceCode:	"theDialog = Self.Get(0)\ntheNumber = Self.Get(1)\n\nmySymWin = av.GetSymbolWin\nmySymWin.Open\nmyPalette = mySymWin.GetPalette\nmyPaletteList =  myPalette.GetList(#PALETTE_LIST_FILL)\n\n'theNumber=55\n\nml = myPaletteList.Get(theNumber)\n\nmySymWin.SelectSymbol(myPaletteList.Get(theNumber))\n\nIf (ml.GetStyle.AsString.Left(10) = \"VECTORFILL\") Then\n  theDialog.FindByName(\"txl_Number\"     ).SetText((theNumber + 1).AsString)\n  theDialog.FindByName(\"txl_Style\"      ).SetText(ml.GetStyle.AsString)\n  theDialog.FindByName(\"txl_
Angle\"      ).SetText(ml.GetAngle.AsString)\n  theDialog.FindByName(\"txl_Angle\"      ).SetReadOnly(FALSE)\n  theDialog.FindByName(\"txl_Height\"     ).SetText(ml.GetHeight.AsString)\n  theDialog.FindByName(\"txl_Height\"     ).SetReadOnly(FALSE)\n  theDialog.FindByName(\"txl_Width\"      ).SetText(ml.GetWidth.AsString)\n  theDialog.FindByName(\"txl_Width\"      ).SetReadOnly(FALSE)\n  theDialog.FindByName(\"txl_PenSize\"    ).SetText(ml.GetPenSize.AsString)\n  theDialog.FindByName(\"txl_PenSize\"    ).SetReadOnly(FALSE)\n  the
Dialog.FindByName(\"txl_XOffset\"    ).SetText(ml.GetXOffset.AsString)\n  theDialog.FindByName(\"txl_XOffset\"    ).SetReadOnly(FALSE)\n  theDialog.FindByName(\"txl_XSeparation\").SetText(ml.GetXSeparation.AsString)\n  theDialog.FindByName(\"txl_XSeparation\").SetReadOnly(FALSE)\n  theDialog.FindByName(\"txl_YOffset\"    ).SetText(ml.GetYOffset.AsString)\n  theDialog.FindByName(\"txl_YOffset\"    ).SetReadOnly(FALSE)\n  theDialog.FindByName(\"txl_YSeparation\").SetText(ml.GetYSeparation.AsString)\n  theDialog.FindByName(\"txl_YS
eparation\").SetReadOnly(FALSE)\nElseIf (ml.GetStyle.AsString.Left(10) = \"RASTERFILL\") Then\n  theDialog.FindByName(\"txl_Number\"     ).SetText((theNumber + 1).AsString)\n  theDialog.FindByName(\"txl_Style\"      ).SetText(ml.GetStyle.AsString)\n  theDialog.FindByName(\"txl_Angle\"      ).SetText(\"----\")\n  theDialog.FindByName(\"txl_Angle\"      ).SetReadOnly(TRUE)\n  theDialog.FindByName(\"txl_Height\"     ).SetText(\"----\")\n  theDialog.FindByName(\"txl_Height\"     ).SetReadOnly(TRUE)\n  theDialog.FindByName(\"txl_Width\"    
  ).SetText(\"----\")\n  theDialog.FindByName(\"txl_Width\"      ).SetReadOnly(TRUE)\n  theDialog.FindByName(\"txl_PenSize\"    ).SetText(\"----\")\n  theDialog.FindByName(\"txl_PenSize\"    ).SetReadOnly(TRUE)\n  theDialog.FindByName(\"txl_XOffset\"    ).SetText(\"----\")\n  theDialog.FindByName(\"txl_XOffset\"    ).SetReadOnly(TRUE)\n  theDialog.FindByName(\"txl_XSeparation\").SetText(\"----\")\n  theDialog.FindByName(\"txl_XSeparation\").SetReadOnly(TRUE)\n  theDialog.FindByName(\"txl_YOffset\"    ).SetText(\"----\")\n  theDialog.FindByNa
me(\"txl_YOffset\"    ).SetReadOnly(TRUE)\n  theDialog.FindByName(\"txl_YSeparation\").SetText(\"----\")\n  theDialog.FindByName(\"txl_YSeparation\").SetReadOnly(TRUE)\nElse\n  theDialog.FindByName(\"txl_Number\"     ).SetText((theNumber + 1).AsString)\n  theDialog.FindByName(\"txl_Style\"      ).SetText(\"NOT SUPPORTED !!!\")\n  theDialog.FindByName(\"txl_Angle\"      ).SetText(\"----\")\n  theDialog.FindByName(\"txl_Angle\"      ).SetReadOnly(TRUE)\n  theDialog.FindByName(\"txl_Height\"     ).SetText(\"----\")\n  theDialog.FindByName(\"tx
l_Height\"     ).SetReadOnly(TRUE)\n  theDialog.FindByName(\"txl_Width\"      ).SetText(\"----\")\n  theDialog.FindByName(\"txl_Width\"      ).SetReadOnly(TRUE)\n  theDialog.FindByName(\"txl_PenSize\"    ).SetText(\"----\")\n  theDialog.FindByName(\"txl_PenSize\"    ).SetReadOnly(TRUE)\n  theDialog.FindByName(\"txl_XOffset\"    ).SetText(\"----\")\n  theDialog.FindByName(\"txl_XOffset\"    ).SetReadOnly(TRUE)\n  theDialog.FindByName(\"txl_XSeparation\").SetText(\"----\")\n  theDialog.FindByName(\"txl_XSeparation\").SetReadOnly(TRUE)\n  theD
ialog.FindByName(\"txl_YOffset\"    ).SetText(\"----\")\n  theDialog.FindByName(\"txl_YOffset\"    ).SetReadOnly(TRUE)\n  theDialog.FindByName(\"txl_YSeparation\").SetText(\"----\")\n  theDialog.FindByName(\"txl_YSeparation\").SetReadOnly(TRUE)\nEnd\n\n"
)

(Script.1136
	Name:	"LabelTheme.CanUnload"
	SourceCode:	"'LabelTheme.CanUnload\n'part of Label Theme Manager Extension\n\nreturn (System.CanUnloadLibrary(self.GetDependencies.get(0)))"
)

(Script.1137
	Name:	"LabelTheme.cbx_AttachTheme.I.Update"
	SourceCode:	"'LabelTheme.cbx_AttachTheme.I.Update\n'part of Label Theme Manager Extension\n\ntheDialog = self.GetDialog\nchkAttach = theDialog.FindByName(\"chk_Attach.I\")\n\nif (chkAttach.IsSelected) then\n  self.SetVisible(TRUE)\n  self.SetEnabled(TRUE)\n  self.DefineFromList(theDialog.GetActiveDoc.GetThemes)\nelse\n  self.Empty\n  self.SetEnabled(FALSE)\n  self.SetVisible(FALSE)\nend"
)

(Script.1138
	Name:	"LabelTheme.cbx_Theme.E.Select"
	SourceCode:	"'LabelTheme.cbx_Theme.E.Select\n'part of Label Theme Manager Extension\n\nself.BroadcastUpdate"
)

(Script.1139
	Name:	"LabelTheme.cbx_Theme.E.Update"
	SourceCode:	"'LabelTheme.cbx_Theme.E.Update\n'part of Label Theme Manager Extension\n\n' Checks to see if User has chosen to use just one theme\n' If so, adds the Themes with labels (GraphicSets) to choice box\n' If not, deletes list from choicbox and disables\n\nradio = self.GetDialog.FindByName(\"rad_Theme.E\")\n\naDoc = self.GetDialog.GetActiveDoc\ntheThemes = aDoc.GetThemes\naList = {}\n\nif (theThemes.IsEmpty.Not and radio.IsSelected) then\n  for each t in theThemes\n    if (t.GetGraphics.HasLabels) then \n      aList.Add(t)\n    end
\n  end\n  if (aList.IsEmpty.Not) then\n    self.DefineFromList(aList)\n  else\n    self.DefineFromList({\"None are attached\"})\n    self.GetDialog.FindByName(\"rad_AllLabels.E\").Select\n  end     \nelse\n  self.DefineFromList(aList)\nend\nif (aList.IsEmpty) then\n  self.SetEnabled(FALSE)\nelse\n  self.SetEnabled(TRUE)\nend\n    \nself.BroadcastUpdate"
)

(Script.1140
	Name:	"LabelTheme.cbx_Theme.I.Select"
	SourceCode:	"'LabelTheme.cbx_Theme.I.Select\n'part of Label Theme Manager Extension\n\nself.GetDialog.SetServer(self.GetCurrentValue.GetFTab)\nself.GetDialog.FindByName(\"chk_Selected.I\").Update"
)

(Script.1141
	Name:	"LabelTheme.cbx_Theme.I.Update"
	SourceCode:	"'LabelTheme.cbx_Theme.I.Update\n'part of Label Theme Manager Extension\n\n' Checks to see if there are valid label point themes in the view\n' If so, adds the Themes to choice box\n' If not, tells user, and closes dialog and entire program\n\ntheDialog = self.GetDialog\nthemeList = theDialog.GetActiveDoc.GetThemes\n\n' CREATE A LIST OF THE VALID LABEL POINT THEMES IN THE VIEW\n' THERE MUST BE, SINCE RUNIMPORT PROGRAM ALREADY CHECKED\n\ngoodThemes =  {}\nfor each t in themeList\n\n  ' 3a  CHECK THAT THEMES ARE FTHEMES\n  if 
(t.HasTable) then\n    theFTab = t.GetFTab \n    badTheme = 0\n    if ((theFTab.FindField(\"Shape\")=nil) OR\n        (theFTab.FindField(\"Label\")=nil) OR\n        (theFTab.FindField(\"Angle\")=nil) OR\n        (theFTab.FindField(\"Space\")=nil) OR\n        (theFTab.FindField(\"Align\")=nil) OR\n        (theFTab.FindField(\"RGB0\")=nil) OR\n        (theFTab.FindField(\"RGB1\")=nil) OR\n        (theFTab.FindField(\"RGB2\")=nil) OR\n        (theFTab.FindField(\"Size\")=nil) OR\n        (theFTab.FindField(\"Style\")=nil) OR\n        (theFTab
.FindField(\"Font\")=nil) OR\n        (theFTab.FindField(\"Scale\")=nil) OR\n        (theFTab.GetShapeClass.GetClassName <> \"Point\")) then \n      badTheme = 1\n    end  \n    \n    'if there are missing fields, tell user and end program\n    if (badTheme = 0) then\n      goodThemes.Add(t)\n    end\n  end  \nend\n\nself.DefineFromList(goodThemes)\nself.GetDialog.SetServer(self.GetCurrentValue.GetFTab)\ntheDialog.FindByName(\"chk_Selected.I\").Update"
)

(Script.1142
	Name:	"LabelTheme.chk_Attach.I.Click"
	SourceCode:	"'LabelTheme.chk_Attach.I.Click\n'part of Label Theme Manager Extension\n\nself.GetDialog.FindByName(\"cbx_AttachTheme.I\").Update\n"
)

(Script.1143
	Name:	"LabelTheme.chk_OnlySelected.E.Update"
	SourceCode:	"'LabelTheme.chk_OnlySelected.E.Update\n'part of Label Theme Manager Extension\n\nradTheme = self.GetDialog.FindByName(\"rad_Theme.E\")\nradVisible = self.GetDialog.FindByName(\"rad_Visible.E\")\n\naGraphicList = self.GetDialog.GetActiveDoc.GetGraphics\n\nif (radVisible.IsSelected) then\n  y = 0\n  for each gx in aGraphicList\n    if ((gx.IsVisible) AND (gx.IsSelected)) then\n      y = y + 1\n    end\n  end\n  if (y > 0) then\n    self.SetEnabled(TRUE)\n  else\n    self.SetSelected(FALSE)\n    self.SetEnabled(FALSE)\n  end\n\nelseif 
(radTheme.IsSelected.Not) then\n\n  if (aGraphicList.HasSelected) then\n    self.SetEnabled(TRUE)\n  else\n    self.SetSelected(FALSE)\n    self.SetEnabled(FALSE)\n  end\n  \nelse\n  theTheme = self.GetDialog.FindByName(\"cbx_Theme.E\").GetCurrentValue\n  x = 0\n  if (self.GetDialog.FindByName(\"cbx_Theme.E\").IsEnabled) then\n  aGraphicSet = self.GetDialog.GetActiveDoc.FindTheme(theTheme.GetName).GetGraphics\n    for each g in aGraphicSet\n      if ((g.IsSelected) AND (g.GetSymbol.GetType = #SYMBOL_TEXT)) then\n       x=x+1\n 
     end\n    end\n  end  \n  if (x>0) then\n    self.SetEnabled(TRUE)\n  else\n    self.SetSelected(FALSE)\n    self.SetEnabled(FALSE)\n  end\nend  \n"
)

(Script.1144
	Name:	"LabelTheme.chk_Selected.I.Update"
	SourceCode:	"'LabelTheme.chk_Selected.I.Update\n'part of Label Theme Manager Extension\n\nif ((self.GetDialog.GetServer.GetNumSelRecords)>0) then\n  self.SetEnabled(TRUE)\nelse\n  self.SetEnabled(FALSE)\n  self.SetSelected(FALSE)\nend\n\n"
)

(Script.1145
	Name:	"LabelTheme.ExportLabel.Open"
	SourceCode:	"'LabelTheme.ExportLabel.Open\n'part of Label Theme Manager Extension\n\n' Export Dialog Box Open Script\n' Selects and updates various controls in the Export Dialog Box\n' Sets the listners, too\n'\n' Author: Kevin O'Malley\n' Date: 06/09/1998\n\nself.FindByName(\"rad_AllLabels.E\").Select\n\ncbxTheme = self.FindByName(\"cbx_Theme.E\")\n\ncbxTheme.Update\n\nchkSelect = self.FindByName(\"chk_OnlySelected.E\")\nchkSelect.Update\n\ncbxTheme.SetListeners({chkSelect})\n\n"
)

(Script.1146
	Name:	"LabelTheme.ImportLabel.Open"
	SourceCode:	"'LabelTheme.ImportLabel.Open\n'part of Label Theme Manager Extension\n\n' Import Dialog Box Open Script\n' Selects and updates various controls in the Import Dialog Box\n'\n' Author: Kevin O'Malley\n' Date: 06/09/1998\n\nself.FindByName(\"cbx_Theme.I\").Update\nself.FindByName(\"chk_Selected.I\").SetSelected(FALSE)\nself.FindByName(\"chk_Selected.I\").Update\nself.FindByName(\"chk_Scale.I\").SetSelected(TRUE)\nself.FindByName(\"chk_FinSelect.I\").SetSelected(TRUE)\nself.FindByName(\"chk_Attach.I\").SetSelected(FALSE)\nself.FindByName
(\"cbx_AttachTheme.I\").Update\nself.FindByName(\"chk_Extent.I\").SetSelected(FALSE)"
)

(Script.1147
	Name:	"LabelTheme.Instructions"
	SourceCode:	"'Instructions for Label Theme Manager Extension\n' It is just text in a MsgBox.Report\n'=============================================\n'Portions of this work include intellectual property of Kevin O'Malley and are\n'  used herein with permission. Copyright (C) 1998 Kevin O'Malley.\n'  All rights reserved.\n'=============================================\n\nMsgBox.Report(\n\"------------------------------------------------------------------\"+NL+\n\"Label Theme Extension (version 3a)\"+NL+\n\"--------------------------------
----------------------------------\"+NL+NL+\n\"    The label theme extension creates and uses point themes that can be used for the storing of text labels for use in other projects.  There are two functions:\"+NL+NL+\n\"  1) Export Labels to Point Theme\"+NL+\n\"  2) Import Labels from Point Theme\"+NL+NL+\n\"1. EXPORT LABELS\"+NL+\n\"    This feature will take the text graphics of you choosing and create a point theme shape file based on the location of the labels.  You can save the shapefile to any name and location tha
t you want.  This 'Label Theme' stores all of the following attributes from the labels (Field names are in paretheses):\"+NL+\n\"   the text (Label)\"+NL+\n\"   rotation angle (Angle)\"+NL+\n\"   spacing (Space)\"+NL+\n\"   alignment (Align)\"+NL+\n\"   color (RGB0, RGB1 & RGB2)\"+NL+\n\"   font (Font)\"+NL+\n\"   font style (Style)\"+NL+\n\"   font size (Size)\"+NL+\n\" & original theme the label was attached to (OrgTheme).\"+NL+NL+\n\"   This new label theme can then be used in another project by using the import function.\"+NL+NL+\n\"  
 Choices:  The dialog box gives you four options for choosing the labels to be exported.  They are fairly self-explanatory.\"+NL+NL+\n\"   Unfortunately, only the text gets exported, therefore any extra graphics, for example, boxes, will not be exported.\"+NL+NL+\n\"2. IMPORT LABELS\"+NL+\n\"    This function takes a label theme that was created in the 'EXPORT' function and extracts the labels, along with their original attributes.  It then allows the user to attach the new labels to any of themes in the current vie
w, or not.  Users can also choose whether or not to have the new labels scale with the display.\"+NL+NL+\n\"    Choices:  Users can import only a selection of the labels, if they want.  Either select the points you want beforehand or you can import labels from the points that are in your View display extent.  When finished, the user can choose whether to have the new labels selected in the view.\"+NL+NL+NL+\n\"Kevin B. O'Malley.  6/24/1998\"+NL+\"KevOMalley@juno.com\"\n,\"INSTRUCTIONS FOR LABEL THEME EXTENSION\")\n"
)

(Script.1148
	Name:	"LabelTheme.lbt_Cancel.E.Click"
	SourceCode:	"'LabelTheme.lbt_Cancel.E.Click\n'part of Label Theme Manager Extension\n\n' Cancel the Export Dialog\n\ntheDialog = self.GetDialog\n\n' PUT NULL RESULTS INTO LIST AND SEND THEM BACK TO RUN BUTTON TO CANCEL\n\nresultList = {}\n\ntheDialog.SetModalResult(resultList)\n\ntheDialog.Close\n\n\n"
)

(Script.1149
	Name:	"LabelTheme.lbt_Cancel.I.Click"
	SourceCode:	"'LabelTheme.lbt_Cancel.I.Click\n'part of Label Theme Manager Extension\n\n' Cancel the Import Dialog\n\ntheDialog = self.GetDialog\n\n' PUT NULL RESULTS INTO LIST AND SEND THEM BACK TO RUN BUTTON TO CANCEL\n\nresultList = {}\n\ntheDialog.SetModalResult(resultList)\n\ntheDialog.Close\n\n\n"
)

(Script.1150
	Name:	"LabelTheme.lbt_GO.E.Click"
	SourceCode:	"'LabelTheme.lbt_GO.Export.Click\n'part of Label Theme Manager Extension\n\n' Get user inputs for entire dialog box\n\ntheDialog = self.GetDialog\n\n' GET THE INPUTS FROM DIALOG\n\nallLabels = theDialog.FindByName(\"rad_AllLabels.E\").IsSelected\n\nvisible = theDialog.FindByName(\"rad_Visible.E\").IsSelected\n\ntheTheme = theDialog.FindByName(\"cbx_Theme.E\").GetSelection\n\nonlySelected = theDialog.FindByName(\"chk_OnlySelected.E\").IsSelected\n\n' PUT RESULTS INTO LIST AND SEND THEM BACK TO RUN BUTTON\n\nresultList = {allLabels,visi
ble,theTheme,onlySelected}\n\ntheDialog.SetModalResult(resultList)\n\ntheDialog.Close\n\n\n"
)

(Script.1151
	Name:	"LabelTheme.lbt_GO.I.Click"
	SourceCode:	"'LabelTheme.lbt_GO.I.Click\n'part of Label Theme Manager Extension\n\n' Get user inputs for entire Import dialog box\n\ntheDialog = self.GetDialog\n\n' GET THE INPUTS FROM DIALOG\n\ntheTheme = theDialog.FindByName(\"cbx_Theme.I\").GetSelection\n\nonlySelected = theDialog.FindByName(\"chk_Selected.I\").IsSelected\n\nscale = theDialog.FindByName(\"chk_Scale.I\").IsSelected\n\nattach = theDialog.FindByName(\"chk_Attach.I\").IsSelected\n\nattachTheme = theDialog.FindByName(\"cbx_AttachTheme.I\").GetSelection\n\nextent = theDialog.FindByNam
e(\"chk_Extent.I\").IsSelected\n\nfinSelect = theDialog.FindByName(\"chk_FinSelect.I\").IsSelected\n\n' PUT RESULTS INTO LIST AND SEND THEM BACK TO RUN BUTTON\n\nresultList = {theTheme,onlySelected,scale,attach,attachTheme,extent,finSelect}\n\ntheDialog.SetModalResult(resultList)\n\ntheDialog.Close\n\n\n"
)

(Script.1152
	Name:	"LabelTheme.rad_All-Theme.E.Click"
	SourceCode:	"'LabelTheme.rad_All-Theme.E.Click\n'part of Label Theme Manager Extension\n\nself.GetDialog.FindByName(\"cbx_Theme.E\").Update"
)

(Script.1153
	Name:	"LabelTheme.rad_Visible.E.Click"
	SourceCode:	"'LabelTheme.rad_Visible.E.Click\n'part of Label Theme Manager Extension\n\naGraphicList = self.GetDialog.GetActiveDoc.GetGraphics\n\nx = 0\nfor each g in aGraphicList\n  if (g.IsVisible) then\n    x = x + 1\n  end\nend\n\n\nif (x = 0) then\n  self.GetDialog.FindByName(\"rad_AllLabels.E\").Select\n  MsgBox.Info(\"No labels are visible\",\"Cannot choose that\")\nend\n\nself.GetDialog.FindByName(\"cbx_Theme.E\").Update"
)

(Script.1154
	Name:	"LabelTheme.RunExport"
	SourceCode:	"' Name:  LabelTheme.RunExport\n'\n' Title:  Creates a Label Point Theme from Active View's Graphic Text's\n'\n' Topics:  Labeling\n'\n'=============================================\n'Portions of this work include intellectual property of Kevin O'Malley and are\n'  used herein with permission. Copyright (C) 1998 Kevin O'Malley.\n'  All rights reserved.\n'=============================================\n'\n' Description: This script will take all of the graphic texts in the\n'active View and save their origins to a new Poin
t Theme, which the\n'user can name and save themselves.  Users will also be given an option\n'to add the new theme to the current view or not.  The new shape file\n'will store the following attributes of the texts:\n'   Label\n'   Rotation Angle\n'   Line Spacing\n'   Alignment\n'   RGB Color\n'   Font Size\n'   Font Style (italic, bold, etc.)\n'   Font Family (arial, courier, etc.)\n'   Scale of View when Theme was made (for use in adding the texts, later)\n'   Original Theme the label was attached to, if it was (this 
can help organize the labels, later).\n'   \n' Kevin O'Malley, KevOMalley@juno.com\n' 06/09/1998\n'\n' Runs the Export Dialog Box, to output a point theme of labels\n\n' FIRST CHECK IF THE VIEW HAS ITS UNITS SET\n\ntheView = av.GetActiveDoc\n\nif (theView.GetUnits=\"#UNITS_LINEAR_UNKNOWN\".asEnum) then\n   MsgBox.Error(\"Before running, please select\"+NL+\"the map units for the view, \"+theView.asString,\"No units!\")\n   exit\n \n' CHECK THAT THERE ARE ACTUAL GRAPHICS, ELSE STOP\n   \nelseif (theView.GetGraphics.FindAllByClass(Gr
aphicText) = nil) then\n  \n   MsgBox.Error(\"There are no labels in this view.\"+NL+\"Nothing to export.\",\"Cannot Proceed\")\n   Exit\n\n' IF OK, RUN THE PROGRAM\n\nelse   \n\n  ' OPEN THE DIALOG BOX AND RECEIVE ITS RESULTS\n  ' (GO OR CANCEL BUTTON ON DIALOG WILL CLOSE THE DIALOG)\n  \n  theDialog = av.FindDialog(\"ExportLabel\")\n  theDialog.Open\n  resultList = theDialog.GetModalResult\n  \n  '  CANCEL BUTTON WAS USED\n  if (resultList.Count=0) then exit\n  end\n  \n  allLabels = resultList.Get(0)    'USER WANTS ALL THE LABELS I
N THE VIEW\n  visible = resultList.Get(1)      'USER WANTS JUST THE TURNED-ON LABELS\n  theTheme = resultList.Get(2)     'USER WANTS THE LABELS JUST FROM THIS THEME\n  selectedOnly = resultList.Get(3) 'USER WANTS JUST THE SELECTED LABELS\n\n  ' GET NEW SHAPE FILE AND SAVE IT   \n  fileDef = av.GetProject.MakeFileName(\"Label\", \"shp\")\n  myFilename = FileDialog.Put(fileDef,\"*.shp\",\"Save the new label theme\")\n  \n  if (myFilename <> nil) then\n  \n   'MAKE NEW FTAB\n    newFTab = FTab.MakeNew(myFileName,Point)\n    \n   'M
AKE NEW FIELDS\n    newField1 = Field.Make (\"Label\", #FIELD_CHAR , 30, 0)\n    newField2 = Field.Make (\"Angle\", #FIELD_DECIMAL , 10, 5)\n    newField3 = Field.Make (\"Space\", #FIELD_DECIMAL , 4, 1)\n    newField4 = Field.Make (\"Align\", #FIELD_CHAR , 25, 0)\n    newField5 = Field.Make (\"RGB0\", #FIELD_LONG , 3, 0)\n    newField6 = Field.Make (\"RGB1\", #FIELD_LONG , 3, 0)\n    newField7 = Field.Make (\"RGB2\", #FIELD_LONG , 3, 0)\n    newField8 = Field.Make (\"Size\", #FIELD_DECIMAL , 8, 4)\n    newField9 = Field.Make (\"Styl
e\", #FIELD_CHAR , 11 , 0)\n    newField10 = Field.Make (\"Font\", #FIELD_CHAR , 32 , 0)\n    newField11 = Field.Make (\"Scale\", #FIELD_DECIMAL , 21, 10)\n    newField12 = Field.Make (\"OrgTheme\", #FIELD_CHAR , 30 , 0)\n    \n    fieldList = {newField1,newField2,newField3,newField4,newField5,newField6,\n                 newField7,newField8,newField9,newField10,newField11,newField12}\n                 \n    newFTab.AddFields(fieldList)\n\n   ' CREATE GRAPHIC SET OR GRAPHIC LIST BASED ON USER INPUT  \n    if ((allLabels) OR 
(visible)) then\n      gs = theView.GetGraphics\n    else\n      gs = theView.FindTheme(theTheme.GetName).GetGraphics\n    end\n   \n    av.ShowMsg(\"Exporting labels to point theme...\")\n    av.ShowStopButton\n    av.SetStatus(0)\n    recNum = 0\n     \n   'ADD ORGIN OF TEXT AND ATTRIBUTE VALUES, TAKE ONLY TEXT\n   'BASED ON USER INPUT, TAKE ONLY SELECTED\n   'BASED ON USER INPUT, TAKE ONLY VISIBLE\n    \n    for each g in gs\n      if ((g.GetSymbol.GetType = #SYMBOL_TEXT) AND ((g.IsVisible) OR (visible.NOT)) AND ((g.IsSel
ected) OR (selectedOnly.NOT)))  then\n        n = newFTab.AddRecord\n        newFTab.SetValue(newFTab.FindField(\"shape\"),n,g.GetOrigin)\n        newFTab.SetValue(newFTab.FindField(\"Label\"),n,g.GetText)\n        newFTab.SetValueNumber(newFTab.FindField(\"Angle\"),n,g.GetAngle)\n        newFTab.SetValueNumber(newFTab.FindField(\"Space\"),n,g.GetSpacing)\n        newFTab.SetValueString(newFTab.FindField(\"Align\"),n,g.GetAlignment.AsString)\n        newFTab.SetValueNumber(newFTab.FindField(\"RGB0\"),n,g.ReturnSymbols.Get(0).
\n                GetColor.GetRGBList.Get(0))\n        newFTab.SetValueNumber(newFTab.FindField(\"RGB1\"),n,g.ReturnSymbols.Get(0).\n                GetColor.GetRGBList.Get(1))\n        newFTab.SetValueNumber(newFTab.FindField(\"RGB2\"),n,g.ReturnSymbols.Get(0).\n                GetColor.GetRGBList.Get(2))\n        newFTab.SetValueNumber(newFTab.FindField(\"Size\"),n,g.ReturnSymbols.Get(0).GetSize)\n        newFTab.SetValueString(newFTab.FindField(\"Style\"),n,g.ReturnSymbols.Get(0).GetFont.GetStyle)\n        newFTab.SetVa
lueString(newFTab.FindField(\"Font\"),n,g.ReturnSymbols.Get(0).GetFont.GetFamily)\n        newFTab.SetValueNumber(newFTab.FindField(\"Scale\"),n,theView.ReturnScale)\n     \n     ' IF THE GRAPHIC IS ATTACHED TO A THEME, ADD NAME TO ORGTHEME FIELD   \n        if (visible OR allLabels) then\n          xyz = 0\n          for each thm in theView.GetThemes\n            aGS = thm.GetGraphics\n            if (aGS.Find(g) > -1) then\n              xyz = 1\n              newFTab.SetValueString(newFTab.FindField(\"OrgTheme\"),n,thm.
GetName)\n            end\n          end\n          if (xyz = 0) then\n            newFTab.SetValueString(newFTab.FindField(\"OrgTheme\"),n,\"Unattached\")\n          end       \n        else\n          newFTab.SetValueString(newFTab.FindField(\"OrgTheme\"),n,theTheme.GetName) \n        end\n        \n      end 'FOR EACH GRAPHIC LOOP\n      \n     'UPDATE STATUS BAR\n      \n      recNum =  recNum + 1\n      proceed = av.SetStatus((recNum/gs.Count) * 100)\n      if (proceed.Not) then\n        av.ClearStatus\n        av.ClearMsg\n  
      exit\n      end  \n\n    end\n    \n    av.SetStatus(100)\n    av.ClearMsg\n    av.ClearStatus\n\n  \n   'DO THEY WANT TO ADD THE NEW THEME TO THE VIEW\n    yn = MsgBox.MiniYesNo(\"Add new layer to the view?\",true)\n  \n    If (yn) then\n      newFTheme = FTheme.Make(newFTab)\n      theView.AddTheme(newFTheme)\n    end  \n  \n  else\n  \n   'CANCEL IF USER HITS CANCEL WHEN PROMPTED FOR FILENAME\n    msgBox.Warning(\"Procedure Canceled.\",\" \")\n  end\n  \nend\n\n'DONE"
)

(Script.1155
	Name:	"LabelTheme.RunImport"
	SourceCode:	"' Name:  LabelTheme.RunImport\n'\n' Title:  Creates Labels from a Point Label Theme into the Active View's Display\n'\n' Topics:  Labeling\n'\n'=============================================\n'Portions of this work include intellectual property of Kevin O'Malley and are\n'  used herein with permission. Copyright (C) 1998 Kevin O'Malley.\n'  All rights reserved.\n'=============================================\n'\n' Description: This script will make new GraphicTexts from a 'Label Theme'.\n'A Label Theme is created in the 
LabelTheme.RunExport script/dialog, or can be made\n'by the user, although its attribute table must have a valid structure, otherwise\n'this code will not run for the user.  The fields that are needed are:\n'   Shape (points)\n'   Label\n'   Rotation Angle\n'   Line Spacing\n'   Alignment\n'   RGB Color (three fields: RGB0, RGB1 & RGB2)\n'   Font Size\n'   Font Style\n'   Font Family\n'   Scale of View when Theme was made (for use in getting the right font size).\n'\n'The program uses user inputs from the ImportLabel dia
log box, also desigend\n'by Kevin O'Malley 6/24/1998.\n'KevOMalley@juno.com  \n\n\ntheView = av.GetActiveDoc\nthemeList = theView.GetThemes\n\n'MAP UNITS NEED TO BE SET BEFOREHAND\nif (theView.GetDisplay.getunits=#UNITS_LINEAR_UNKNOWN) then\n msgbox.warning(\"No map units defined.  Please define the map units in the View, Properties dialog.\",\"Warning\")\n exit\n\nelse\n\n' CHECK THEMES TO MAKE SURE THERE IS AT LEAST ONE VALID LABEL POINT THEME\n  goodTheme = 0  \n  for each t in themeList\n    ' 3a CHECK THAT THEME IS AN FTHEM
E\n    if (t.HasTable) then\n      theFTab = t.GetFTab    \n      if ((theFTab.FindField(\"Shape\")<>nil) AND\n          (theFTab.FindField(\"Label\")<>nil) AND\n          (theFTab.FindField(\"Angle\")<>nil) AND\n          (theFTab.FindField(\"Space\")<>nil) AND\n          (theFTab.FindField(\"Align\")<>nil) AND\n          (theFTab.FindField(\"RGB0\")<>nil) AND\n          (theFTab.FindField(\"RGB1\")<>nil) AND\n          (theFTab.FindField(\"RGB2\")<>nil) AND\n          (theFTab.FindField(\"Size\")<>nil) AND\n          (theFTab.FindFiel
d(\"Style\")<>nil) AND\n          (theFTab.FindField(\"Font\")<>nil) AND\n          (theFTab.FindField(\"Scale\")<>nil) AND\n          (theFTab.GetShapeClass.GetClassName = \"Point\")) then \n        goodTheme = goodTheme + 1\n      end\n    end  \n  end\n     \n  if (goodTheme = 0) then\n    MsgBox.Warning(\"There are no valid label point themes in the view.\",\"Procedure canceled\")\n    exit\n  end\n\nend\n\n' OPEN THE DIALOG BOX AND RECEIVE ITS RESULTS\n' (GO OR CANCEL BUTTON ON DIALOG WILL CLOSE THE DIALOG)\n\ntheDialog = av.FindDia
log(\"ImportLabel\")\ntheDialog.Open\nresultList = theDialog.GetModalResult\n\n'  CANCEL BUTTON WAS USED\nif (resultList.Count=0) then exit\nend\n\n' GET MODAL RESULTS\ntheTheme = resultList.Get(0)     'THE POINT LABEL THEME\nonlySelected = resultList.Get(1) 'DO THEY WANT ONLY SELECTED RECORDS\ntoscale = resultList.Get(2)      'DO THEY WANT IT TO SCALE\nattach = resultList.Get(3)       'DO THEY WANT TO ATTACH LABELS TO A THEME\nattachTheme = resultList.Get(4)  'IF SO, WHICH THEME\nextent = resultList.Get(5)       'DO THEY 
WANT ONLY POINTS IN VIEW EXTENT\nfinSelect = resultList.Get(6)       'DO THEY WANT THE LABELS SELECTED WHEN FINISHED\n\ngl = theView.GetGraphics\ntheFTab = theTheme.GetFTab\n\n'IF USER WANTS SCALING LABELS, CHANGE SCALE TO ORIGINAL SCALE\nnewScale = theFTab.ReturnValue(theFTab.FindField(\"Scale\"),0)\ntheExtent = theView.GetDisplay.ReturnVisExtent\n\nif (toScale) then\n  theView.GetDisplay.ZoomToScale(newScale)\nend  \n\n'IF USER ONLY WANTS SELECTED RECORDS, MAKE DIFFERENT SET FOR THE PROCESSING, BELOW\n\nif (onlySelected) t
hen\n  theSet = theFTab.GetSelection\n  recCount = theSet.Count\nelse\n  theSet = theFTab\n  recCount = theSet.GetNumRecords\nend\n\n' SET UP MESSAGE BAR\nav.ShowMsg(\"Importing labels from point theme...\")\nav.ShowStopButton\nav.SetStatus(0)\nrecNum = 0\n\n'RUN LOOP ON EACH RECORD OF THESET    \nfor each r in theSet\n\n  orig = theFTab.ReturnValue(theFTab.FindField(\"Shape\"),r)\n  \n 'IF USER HAS CHOSEN EXTENT ONLY, TAKE ONLY THOSE IN EXTENT\n  if (((orig.IsContainedIn(theExtent)) AND (extent)) OR (extent.NOT)) then\n\n    theLab
el = theFTab.ReturnValue(theFTab.FindField(\"Label\"),r)\n  \n    gTxt = GraphicText.Make(theLabel,orig)\n    ang = theFTab.ReturnValue(theFTab.FindField(\"Angle\"),r)\n    spc = theFTab.ReturnValue(theFTab.FindField(\"Space\"),r)\n    aln = \"#\"+theFTab.ReturnValue(theFTab.FindField(\"Align\"),r)\n    rgb0 = theFTab.ReturnValue(theFTab.FindField(\"RGB0\"),r)\n    rgb1 = theFTab.ReturnValue(theFTab.FindField(\"RGB1\"),r)\n    rgb2 = theFTab.ReturnValue(theFTab.FindField(\"RGB2\"),r)\n    siz = theFTab.ReturnValue(theFTab.FindField
(\"Size\"),r)\n    sty = theFTab.ReturnValue(theFTab.FindField(\"Style\"),r)\n    fam = theFTab.ReturnValue(theFTab.FindField(\"Font\"),r)\n  \n    gTxt.SetAngle(ang)\n    gTxt.SetSpacing(spc)\n    gTxt.SetAlignment(aln.AsEnum)\n    newRGB = {rgb0,rgb1,rgb2}\n    theColor = Color.Make\n    theColor.SetRGBList(newRGB)\n    gtxt.ReturnSymbols.Get(0).SetColor(theColor)\n    gtxt.ReturnSymbols.Get(0).SetSize(siz)\n    gtxt.ReturnSymbols.Get(0).SetFont(Font.Make(fam,sty))\n  \n   'IF USER WANTS SCALING LABELS, DO IT HERE\n   \n    if
 (toScale) then                               \n      theView.GetDisplay.HookUpSymbol(gtxt.ReturnSymbols.Get(0))\n    end\n   \n   'ADD NEW LABELS TO VIEW'S GRAPHICLIST      \n    gl.Add(gTxt)\n    \n   'IF USER WANTS THEM ATTACHED, ADD TO A THEME'S GRAPHICSET\n    if (attach) then\n      attachTheme.GetGraphics.Add(gTxt)\n    end\n   'FINISH WITH LABELS SELECTED SO USER CAN WORK WITH THEM, IF THEY WANT\n    if (finSelect) then\n      gTxt.Select\n    end  \n  end\n \n 'UPDATE STATUS BAR\n  \n  recNum =  recNum + 1\n  proceed 
= av.SetStatus((recNum/recCount) * 100)\n  if (proceed.Not) then\n    av.ClearStatus\n    av.ClearMsg\n    theView.GetDisplay.SetExtent(theExtent)\n    exit\n  end  \n\nend  'FOR LOOP ON THESET\n\nav.SetStatus(100)\nav.ClearMsg\nav.ClearStatus\n\n'RESET THE EXTENT TO WHAT USER STARTED WITH\ntheView.GetDisplay.SetExtent(theExtent)\n\n'DONE"
)

(Script.1156
	Name:	"LabelTheme.Unload"
	SourceCode:	"'LabelTheme.Unload\nDialog.DetachFromExtension(self)"
)

(Script.1157
	Name:	"LineBuilder.1ButtonClick"
	SourceCode:	"'LineBuilder.1ButtonClick\ntheDialog = av.FindDialog(\"LineBuilder\")\n\ntheListBox1 = theDialog.FindByName(\"ComboBox_Color\")\ntheTextLine1 = theDialog.FindByName(\"TxtLbl.Line1\")\ntheRedBox1 = theDialog.FindByName(\"TextLine.Red\")\ntheGreenBox1 = theDialog.FindByName(\"TextLine.Green\")\ntheBlueBox1 = theDialog.FindByName(\"TextLine.Blue\")\ntheSliderR1 = theDialog.FindByName(\"Slider.Red1\")\ntheSliderG1 = theDialog.FindByName(\"Slider.Green1\")\ntheSliderB1 = theDialog.FindByName(\"Slider.Blue1\")\nTextRed1 = theDialog.FindByNam
e(\"TextLine.Red\")\nTextGreen1 = theDialog.FindByName(\"TextLine.Green\")\nTextBlue1 = theDialog.FindByName(\"TextLine.Blue\")\nSwatch1 = theDialog.FindByName(\"ListBox.Line1Swatch\")\nPanel1 = theDialog.FindByName(\"ControlPanel.Line1Att\")\nPanelLine1 = theDialog.FindByName(\"ControlPanel.Line1\")\nLineStyle1 = theDialog.FindByName(\"ListBox.LineStylePreview1\")\nComboBox1 = theDialog.FindByName(\"ComboBox.LineStyle1\")\n\ntheListBox2 = theDialog.FindByName(\"ComboBox_Color2\")\ntheTextLine2 = theDialog.FindByName(\"TxtLbl.Line2\")\nt
heRedBox2 = theDialog.FindByName(\"TextLine.Red2\")\ntheGreenBox2 = theDialog.FindByName(\"TextLine.Green2\")\ntheBlueBox2 = theDialog.FindByName(\"TextLine.Blue2\")\ntheSliderR2 = theDialog.FindByName(\"Slider.Red2\")\ntheSliderG2 = theDialog.FindByName(\"Slider.Green2\")\ntheSliderB2 = theDialog.FindByName(\"Slider.Blue2\")\nTextRed2 = theDialog.FindByName(\"TextLine.Red2\")\nTextGreen2 = theDialog.FindByName(\"TextLine.Green2\")\nTextBlue2 = theDialog.FindByName(\"TextLine.Blue2\")\nSwatch2 = theDialog.FindByName(\"ListBox.Line2Swa
tch\")\nPanel2 = theDialog.FindByName(\"ControlPanel.Line2Att\")\nPanelLine2 = theDialog.FindByName(\"ControlPanel.Line2\")\nLineStyle2 = theDialog.FindByName(\"ListBox.LineStylePreview2\")\nComboBox2 = theDialog.FindByName(\"ComboBox.LineStyle2\")\n\ntheListBox3 = theDialog.FindByName(\"ComboBox_Color3\")\ntheTextLine3 = theDialog.FindByName(\"TxtLbl.Line3\")\ntheRedBox3 = theDialog.FindByName(\"TextLine.Red3\")\ntheGreenBox3 = theDialog.FindByName(\"TextLine.Green3\")\ntheBlueBox3 = theDialog.FindByName(\"TextLine.Blue3\")\ntheSliderR
3 = theDialog.FindByName(\"Slider.Red3\")\ntheSliderG3 = theDialog.FindByName(\"Slider.Green3\")\ntheSliderB3 = theDialog.FindByName(\"Slider.Blue3\")\nTextRed3 = theDialog.FindByName(\"TextLine.Red3\")\nTextGreen3 = theDialog.FindByName(\"TextLine.Green3\")\nTextBlue3 = theDialog.FindByName(\"TextLine.Blue3\")\nSwatch3 = theDialog.FindByName(\"ListBox.Line3Swatch\")\nPanel3 = theDialog.FindByName(\"ControlPanel.Line3Att\")\nPanelLine3 = theDialog.FindByName(\"ControlPanel.Line3\")\nLineStyle3 = theDialog.FindByName(\"ListBox.LineStyl
ePreview3\")\nComboBox3 = theDialog.FindByName(\"ComboBox.LineStyle3\")\n\ntheOnList = {theListBox1,theRedBox1,theGreenBox1,theBlueBox1,\n             theSliderR1,theSliderG1,theSliderB1,TextRed1,TextGreen1,\n             TextBlue1,Swatch1,Panel1,PanelLine1,LineStyle1,ComboBox1}\n\nfor each i in theOnList\n  i.SetEnabled(TRUE)\n  i.SetVisible(TRUE)\nend\n\ntheOffList = {theListBox2,theRedBox2,theGreenBox2,theBlueBox2,\n             theSliderR2,theSliderG2,theSliderB2,TextRed2,TextGreen2,\n             TextBlue2,Swatch2,Pane
l2,PanelLine2,LineStyle2,ComboBox2,\n             theListBox3,theRedBox3,theGreenBox3,theBlueBox3,theSliderR3,\n             theSliderG3,theSliderB3,TextRed3,TextGreen3,TextBlue3,Swatch3,\n             Panel3, PanelLine3,LineStyle3,ComboBox3}\n              \nfor each i in theOffList\n  i.SetEnabled(FALSE)\n  i.SetVisible(FALSE)\nend\n\n  \nav.Run(\"LineBuilder.SwatchUpdater\",nil)\nav.Run(\"LineBuilder.PreviewLine\",nil)\nav.Run(\"LineBuilder.LineStylePreview1\",nil)"
)

(Script.1158
	Name:	"LineBuilder.2ButtonClick"
	SourceCode:	"'LineBuilder.2ButtonClick\ntheDialog = av.FindDialog(\"LineBuilder\")\n\ntheListBox1 = theDialog.FindByName(\"ComboBox_Color\")\ntheTextLine1 = theDialog.FindByName(\"TxtLbl.Line1\")\ntheRedBox1 = theDialog.FindByName(\"TextLine.Red\")\ntheGreenBox1 = theDialog.FindByName(\"TextLine.Green\")\ntheBlueBox1 = theDialog.FindByName(\"TextLine.Blue\")\ntheSliderR1 = theDialog.FindByName(\"Slider.Red1\")\ntheSliderG1 = theDialog.FindByName(\"Slider.Green1\")\ntheSliderB1 = theDialog.FindByName(\"Slider.Blue1\")\nTextRed1 = theDialog.FindByNam
e(\"TextLine.Red\")\nTextGreen1 = theDialog.FindByName(\"TextLine.Green\")\nTextBlue1 = theDialog.FindByName(\"TextLine.Blue\")\nSwatch1 = theDialog.FindByName(\"ListBox.Line1Swatch\")\nPanel1 = theDialog.FindByName(\"ControlPanel.Line1Att\")\nPanelLine1 = theDialog.FindByName(\"ControlPanel.Line1\")\nLineStyle1 = theDialog.FindByName(\"ListBox.LineStylePreview1\")\nComboBox1 = theDialog.FindByName(\"ComboBox.LineStyle1\")\n\ntheListBox2 = theDialog.FindByName(\"ComboBox_Color2\")\ntheTextLine2 = theDialog.FindByName(\"TxtLbl.Line2\")\nt
heRedBox2 = theDialog.FindByName(\"TextLine.Red2\")\ntheGreenBox2 = theDialog.FindByName(\"TextLine.Green2\")\ntheBlueBox2 = theDialog.FindByName(\"TextLine.Blue2\")\ntheSliderR2 = theDialog.FindByName(\"Slider.Red2\")\ntheSliderG2 = theDialog.FindByName(\"Slider.Green2\")\ntheSliderB2 = theDialog.FindByName(\"Slider.Blue2\")\nTextRed2 = theDialog.FindByName(\"TextLine.Red2\")\nTextGreen2 = theDialog.FindByName(\"TextLine.Green2\")\nTextBlue2 = theDialog.FindByName(\"TextLine.Blue2\")\nSwatch2 = theDialog.FindByName(\"ListBox.Line2Swa
tch\")\nPanel2 = theDialog.FindByName(\"ControlPanel.Line2Att\")\nPanelLine2 = theDialog.FindByName(\"ControlPanel.Line2\")\nLineStyle2 = theDialog.FindByName(\"ListBox.LineStylePreview2\")\nComboBox2 = theDialog.FindByName(\"ComboBox.LineStyle2\")\n\ntheListBox3 = theDialog.FindByName(\"ComboBox_Color3\")\ntheTextLine3 = theDialog.FindByName(\"TxtLbl.Line3\")\ntheRedBox3 = theDialog.FindByName(\"TextLine.Red3\")\ntheGreenBox3 = theDialog.FindByName(\"TextLine.Green3\")\ntheBlueBox3 = theDialog.FindByName(\"TextLine.Blue3\")\ntheSliderR
3 = theDialog.FindByName(\"Slider.Red3\")\ntheSliderG3 = theDialog.FindByName(\"Slider.Green3\")\ntheSliderB3 = theDialog.FindByName(\"Slider.Blue3\")\nTextRed3 = theDialog.FindByName(\"TextLine.Red3\")\nTextGreen3 = theDialog.FindByName(\"TextLine.Green3\")\nTextBlue3 = theDialog.FindByName(\"TextLine.Blue3\")\nSwatch3 = theDialog.FindByName(\"ListBox.Line3Swatch\")\nPanel3 = theDialog.FindByName(\"ControlPanel.Line3Att\")\nPanelLine3 = theDialog.FindByName(\"ControlPanel.Line3\")\nLineStyle3 = theDialog.FindByName(\"ListBox.LineStyl
ePreview3\")\nComboBox3 = theDialog.FindByName(\"ComboBox.LineStyle3\")\n\ntheOnList = {theListBox1,theRedBox1,theGreenBox1,theBlueBox1,\n             theSliderR1,theSliderG1,theSliderB1,TextRed1,TextGreen1,\n             TextBlue1,Swatch1,Panel1,PanelLine1,LineStyle1,ComboBox1,\n             theListBox2,theRedBox2,theGreenBox2,theBlueBox2,\n             theSliderR2,theSliderG2,theSliderB2,TextRed2,TextGreen2,\n             TextBlue2,Swatch2,Panel2,PanelLine2,LineStyle2,ComboBox2}\n\nfor each i in theOnList\n  i.SetEnabl
ed(TRUE)\n  i.SetVisible(TRUE)\nend\n\n\ntheOffList = {theListBox3,theRedBox3,theGreenBox3,theBlueBox3,theSliderR3,\n              theSliderG3,theSliderB3,TextRed3,TextGreen3,TextBlue3,Swatch3,\n              Panel3, PanelLine3,LineStyle3,ComboBox3}\n              \nfor each i in theOffList\n  i.SetEnabled(FALSE)\n  i.SetVisible(FALSE)\nend\n\n  \nav.Run(\"LineBuilder.SwatchUpdater\",nil)\nav.Run(\"LineBuilder.PreviewLine\",nil)\nav.Run(\"LineBuilder.LineStylePreview1\",nil)\nav.Run(\"LineBuilder.LineStylePreview2\",nil)\n"
)

(Script.1159
	Name:	"LineBuilder.3ButtonClick"
	SourceCode:	"'LineBuilder.3ButtonClick\ntheColorList = {\"Black\",\"Blue\",\"Cyan\",\"Gray\",\"Green\",\"Magenta\",\"Red\",\"White\",\"Yellow\",\"Custom\"}\ntheDialog = av.FindDialog(\"LineBuilder\")\n\ntheListBox1 = theDialog.FindByName(\"ComboBox_Color\")\ntheTextLine1 = theDialog.FindByName(\"TxtLbl.Line1\")\ntheRedBox1 = theDialog.FindByName(\"TextLine.Red\")\ntheGreenBox1 = theDialog.FindByName(\"TextLine.Green\")\ntheBlueBox1 = theDialog.FindByName(\"TextLine.Blue\")\ntheSliderR1 = theDialog.FindByName(\"Slider.Red1\")\ntheSliderG1 = theDialog.FindByName(\"S
lider.Green1\")\ntheSliderB1 = theDialog.FindByName(\"Slider.Blue1\")\nTextRed1 = theDialog.FindByName(\"TextLine.Red\")\nTextGreen1 = theDialog.FindByName(\"TextLine.Green\")\nTextBlue1 = theDialog.FindByName(\"TextLine.Blue\")\nSwatch1 = theDialog.FindByName(\"ListBox.Line1Swatch\")\nPanel1 = theDialog.FindByName(\"ControlPanel.Line1Att\")\nPanelLine1 = theDialog.FindByName(\"ControlPanel.Line1\")\nLineStyle1 = theDialog.FindByName(\"ListBox.LineStylePreview1\")\nComboBox1 = theDialog.FindByName(\"ComboBox.LineStyle1\")\n\ntheListBox2
 = theDialog.FindByName(\"ComboBox_Color2\")\ntheTextLine2 = theDialog.FindByName(\"TxtLbl.Line2\")\ntheRedBox2 = theDialog.FindByName(\"TextLine.Red2\")\ntheGreenBox2 = theDialog.FindByName(\"TextLine.Green2\")\ntheBlueBox2 = theDialog.FindByName(\"TextLine.Blue2\")\ntheSliderR2 = theDialog.FindByName(\"Slider.Red2\")\ntheSliderG2 = theDialog.FindByName(\"Slider.Green2\")\ntheSliderB2 = theDialog.FindByName(\"Slider.Blue2\")\nTextRed2 = theDialog.FindByName(\"TextLine.Red2\")\nTextGreen2 = theDialog.FindByName(\"TextLine.Green2\")\nTex
tBlue2 = theDialog.FindByName(\"TextLine.Blue2\")\nSwatch2 = theDialog.FindByName(\"ListBox.Line2Swatch\")\nPanel2 = theDialog.FindByName(\"ControlPanel.Line2Att\")\nPanelLine2 = theDialog.FindByName(\"ControlPanel.Line2\")\nLineStyle2 = theDialog.FindByName(\"ListBox.LineStylePreview2\")\nComboBox2 = theDialog.FindByName(\"ComboBox.LineStyle2\")\n\ntheListBox3 = theDialog.FindByName(\"ComboBox_Color3\")\ntheTextLine3 = theDialog.FindByName(\"TxtLbl.Line3\")\ntheRedBox3 = theDialog.FindByName(\"TextLine.Red3\")\ntheGreenBox3 = theDial
og.FindByName(\"TextLine.Green3\")\ntheBlueBox3 = theDialog.FindByName(\"TextLine.Blue3\")\ntheSliderR3 = theDialog.FindByName(\"Slider.Red3\")\ntheSliderG3 = theDialog.FindByName(\"Slider.Green3\")\ntheSliderB3 = theDialog.FindByName(\"Slider.Blue3\")\nTextRed3 = theDialog.FindByName(\"TextLine.Red3\")\nTextGreen3 = theDialog.FindByName(\"TextLine.Green3\")\nTextBlue3 = theDialog.FindByName(\"TextLine.Blue3\")\nSwatch3 = theDialog.FindByName(\"ListBox.Line3Swatch\")\nPanel3 = theDialog.FindByName(\"ControlPanel.Line3Att\")\nPanelLine3 
= theDialog.FindByName(\"ControlPanel.Line3\")\nLineStyle3 = theDialog.FindByName(\"ListBox.LineStylePreview3\")\nComboBox3 = theDialog.FindByName(\"ComboBox.LineStyle3\")\n\ntheOnList = {theListBox1,theRedBox1,theGreenBox1,theBlueBox1,\n             theSliderR1,theSliderG1,theSliderB1,TextRed1,TextGreen1,\n             TextBlue1,Swatch1,Panel1,PanelLine1,LineStyle1,ComboBox1,\n             theListBox2,theRedBox2,theGreenBox2,theBlueBox2,\n             theSliderR2,theSliderG2,theSliderB2,TextRed2,TextGreen2,\n            
 TextBlue2,Swatch2,Panel2,PanelLine2,LineStyle2,ComboBox2,\n             theListBox3,theRedBox3,theGreenBox3,theBlueBox3,\n             theSliderR3,theSliderG3,theSliderB3,TextRed3,TextGreen3,\n             TextBlue3,Swatch3,Panel3,PanelLine3,LineStyle3,ComboBox3}\n            \nfor each i in theOnList\n  i.SetEnabled(TRUE)\n  i.SetVisible(TRUE)\nend\n\nav.Run(\"LineBuilder.SwatchUpdater\",nil)\nav.Run(\"LineBuilder.PreviewLine\",nil)\nav.Run(\"LineBuilder.LineStylePreview1\",nil)\nav.Run(\"LineBuilder.LineStylePreview2\",nil)\n
av.Run(\"LineBuilder.LineStylePreview3\",nil)\n"
)

(Script.1160
	Name:	"LineBuilder.AddColor1ToPalette"
	SourceCode:	"'LineBuilder.AddColor1ToPalette\ntheDialog = av.FindDialog(\"LineBuilder\")\n\npal = av.GetSymbolWin.GetPalette \ncolors = pal.GetList(#PALETTE_LIST_COLOR)\n\ntheSymWin = av.GetSymbolWin \ntheSymWin.Open\ntheSymWin.SetPanel(#SYMBOLWIN_PANEL_COLOR)\n\ntheRedBox1 = theDialog.FindByName(\"TextLine.Red\")\ntheGreenBox1 = theDialog.FindByName(\"TextLine.Green\")\ntheBlueBox1 = theDialog.FindByName(\"TextLine.Blue\")\n\ntheRedVal = theRedBox1.GetText.AsNumber\ntheGreenVal = theGreenBox1.GetText.AsNumber\ntheBlueVal = theBlueBox1.Gettext
.AsNumber\n\ntheRGBList = {theRedVal,theGreenVal,theBlueVal}\n\ntheLine1Color = Color.Make\ntheLine1Color.SetRGBList(theRGBList)\n\ncolors.Add(theLine1Color)\n\nav.GetSymbolwin.RefreshPalette(#PALETTE_LIST_COLOR)\n\n"
)

(Script.1161
	Name:	"LineBuilder.AddColor2ToPalette"
	SourceCode:	"'LineBuilder.AddColor2ToPalette\ntheDialog = av.FindDialog(\"LineBuilder\")\n\npal = av.GetSymbolWin.GetPalette \ncolors = pal.GetList(#PALETTE_LIST_COLOR)\n\ntheSymWin = av.GetSymbolWin \ntheSymWin.Open\ntheSymWin.SetPanel(#SYMBOLWIN_PANEL_COLOR)\n\ntheRedBox2 = theDialog.FindByName(\"TextLine.Red2\")\ntheGreenBox2 = theDialog.FindByName(\"TextLine.Green2\")\ntheBlueBox2 = theDialog.FindByName(\"TextLine.Blue2\")\n\ntheRedVal = theRedBox2.GetText.AsNumber\ntheGreenVal = theGreenBox2.GetText.AsNumber\ntheBlueVal = theBlueBox2.Gett
ext.AsNumber\n\ntheRGBList = {theRedVal,theGreenVal,theBlueVal}\n\ntheLine2Color = Color.Make\ntheLine2Color.SetRGBList(theRGBList)\n\ncolors.Add(theLine2Color)\n\nav.GetSymbolwin.RefreshPalette(#PALETTE_LIST_COLOR)\n"
)

(Script.1162
	Name:	"LineBuilder.AddColor3ToPalette"
	SourceCode:	"'LineBuilder.AddColor3ToPalette\ntheDialog = av.FindDialog(\"LineBuilder\")\n\npal = av.GetSymbolWin.GetPalette \ncolors = pal.GetList(#PALETTE_LIST_COLOR)\n\ntheSymWin = av.GetSymbolWin \ntheSymWin.Open\ntheSymWin.SetPanel(#SYMBOLWIN_PANEL_COLOR)\n\n\ntheRedBox3 = theDialog.FindByName(\"TextLine.Red3\")\ntheGreenBox3 = theDialog.FindByName(\"TextLine.Green3\")\ntheBlueBox3 = theDialog.FindByName(\"TextLine.Blue3\")\n\ntheRedVal = theRedBox3.GetText.AsNumber\ntheGreenVal = theGreenBox3.GetText.AsNumber\ntheBlueVal = theBlueBox3.Get
text.AsNumber\n\ntheRGBList = {theRedVal,theGreenVal,theBlueVal}\n\ntheLine3Color = Color.Make\ntheLine3Color.SetRGBList(theRGBList)\n\ncolors.Add(theLine3Color)\n\nav.GetSymbolwin.RefreshPalette(#PALETTE_LIST_COLOR)\n"
)

(Script.1163
	Name:	"LineBuilder.AdvancedCancel"
	SourceCode:	"'LineBuilder.AdvancedOK\n\ntheDialog = av.FindDialog(\"AdvancedLineProperties\")\n\ntheDialog.Close\n\n\n"
)

(Script.1164
	Name:	"LineBuilder.AdvancedOK"
	SourceCode:	"'LineBuilder.AdvancedOK\n\ntheParentDialog = av.FindDialog(\"LineBuilder\")\ntheDialog = av.FindDialog(\"AdvancedLineProperties\")\n\nmyPreviewBox = theDialog.FindByName(\"ListBox.AdvancedLinePreview\")\ntheLinePreview = myPreviewBox.GetCurrentValue\ntheSize = theLinePreview.GetSize\n\ntheParentPreviewBox = theParentDialog.FindByName(\"ListBox.LineStylePreview1\")\ntheParentPreviewBox.Empty\ntheParentPreviewBox.DefineFromList({theLinePreview})\ntheParentPreviewBox.FitRows(5..(myPreviewBox.GetRowCount-1),true)\ntheParentPreviewB
ox.FitColumns(5..(myPreviewBox.GetColumnCount-1),true)\ntheParentPreviewBox.SetRowHeight(100)\ntheParentPreviewBox.SetColumnWidth(100)\n\ntheParentSizeBox = theParentDialog.FindByName(\"ComboBox.Line1Width\")\ntheParentSizeBox.Empty\ntheVisible = (theSize)\ntheWidth1List = {theVisible,0.1,0.5,1,2,3,4,5,6,7,8,9,10,12,15,20}\ntheParentSizeBox.DefineFromList(theWidth1List)\n\ntheDialog.Close\n\nav.Run(\"LineBuilder.PreviewLine\",nil)\n"
)

(Script.1165
	Name:	"LineBuilder.AdvancedOpen"
	SourceCode:	"'LineBuilder.AdvancedOpen\n\ntheParentDialog = av.FindDialog(\"LineBuilder\")\n\n\n'theSymWin = av.GetSymbolWin \n'theSymWin.Open\n'theSymWin.SetPanel(#SYMBOLWIN_PANEL_PEN)\n\ntheParentPreviewBox = theParentDialog.FindByName(\"ListBox.LineStylePreview1\")\ntheLinePreview = theParentPreviewBox.GetCurrentValue\ntheParentStyleBox = theParentDialog.FindByName(\"ComboBox.LineStyle1\")\ntheParentStyle = theParentStyleBox.GetCurrentValue\n\nmyPreviewBox = self.FindByName(\"ListBox.AdvancedLinePreview\")\ntheSizeBox = self.FindByName(\"Te
xtLine.LineSize\")\ntheAltSizeBox = self.FindByName(\"TextLine.AltLineSize\")\ntheStyleBox = self.FindByName(\"ComboBox.Style\")\ntheCapStyleBox = self.FindByName(\"ComboBox.CapStyle\")\ntheJoinStyleBox = self.FindByName(\"ComboBox.JoinStyle\")\nthePatternBox = self.FindByName(\"ComboBox.Pattern\")\ntheFlipBox = self.FindByName(\"CheckBox.Flip\")\ntheIntervalBox = self.FindByName(\"TextLine.Interval\")\nTextLabelCap = self.FindByName(\"TextLabel.Cap\")\nTextLabelJoin = self.FindByName(\"TextLabel.Join\")\nTextLabelPattern = self.FindBy
Name(\"TextLabel.Pattern\")\ntheArrowLengthBox = self.FindByName(\"Textline.ArrowLength\")\n\ntheVectorStyleTexts = {theParentStyle,\"Plain\",\"Arrowheads\",\"Dashes\",\"Diamonds\",\"Dots\",\"Hash\",\"Hollow\",\"Scallop\",\"Scrub\",\"Slant\",\"ZigZag\"}\ntheStyleBox.DefineFromList(theVectorStyleTexts)\n\ntheLineType = theLinePreview.GetClass.GetClassName.AsString\n\nif (theLinePreview.GetClass.GetClassName.AsString = \"BasicPen\") then\n  theSize = theLinePreview.GetSize\n  theCapStyle = theLinePreview.GetCapStyle\n  theJoinStyle = theLinePrevie
w.GetJoinStyle\n  \n  'MsgBox.Info(theCapStyle.AsString,\"\")\n  \n  if (theStyleBox.GetCurrentValue = \"Dashes\") then\n  \n    thePattern = theLinePreview.ReturnPattern\n    thePatternString = \"\"\n  \n    if (thePattern.Count = 0) then\n      thePatternString = \"None\"\n    end\n    if (thePattern.Count <> 0) then\n      for each e in thePattern\n        thePatternString = thePatternString+e.AsString+\"  \"\n      end\n    end\n    thePatternString = thePatternString.BasicTrim(\"\",\",\")  \n    thePatternList = {thePatternString,\"1 
1\",\"5 5\",\"10 10\"}\n    thePatternBox.Empty\n    thePatternBox.DefineFromList(thePatternList)\n  end\n  \n    theAltSizeBox.SetVisible(FALSE)\n    theFlipBox.SetVisible(FALSE)\n    theCapStyleBox.SetVisible(TRUE)\n    theJoinStyleBox.SetVisible(TRUE)\n    thePatternBox.SetVisible(TRUE)\n    theFlipBox.SetVisible(FALSE)\n    theIntervalBox.SetVisible(FALSE)\n    TextLabelCap.SetVisible(TRUE)\n    TextLabelJoin.SetVisible(TRUE)\n    TextLabelPattern.SetVisible(TRUE)\n    theArrowLengthBox.SetVisible(FALSE)\n\n    if (theStyleB
ox.GetCurrentValue = \"Plain\") then\n      thePatternBox.SetVisible(FALSE)\n      textLabelPattern.SetVisible(FALSE)\n    end\n  \n  theSizeBox.SetText(theSize.AsString)\n  \n  if (theCapStyle.AsString = \"BASICPEN_CAP_BUTT\") then\n    theCapStyle = \"Butt\"\n  end\n  if (theCapStyle.AsString = \"BASICPEN_CAP_ROUND\") then\n    theCapStyle = \"Round\"\n  end\n  if (theCapStyle.AsString = \"BASICPEN_CAP_SQUARE\") then\n    theCapStyle = \"Square\"\n  end\n  theCapStyleList = {theCapStyle.AsString,\"Butt\",\"Round\",\"Square\"}\n  theCapStyleB
ox.DefineFromList(theCapStyleList)\n  \n  if (theJoinStyle.AsString = \"BASICPEN_JOIN_MITER\") then\n    theJoinStyle = \"Miter\"\n  end\n  if (theJoinStyle.AsString = \"BASICPEN_JOIN_BEVEL\") then\n    theJoinStyle = \"Bevel\"\n  end\n  if (theJoinStyle.AsString = \"BASICPEN_JOIN_ROUND\") then\n    theJoinStyle = \"Round\"\n  end\n  theJoinStyleList = {theJoinStyle.AsString,\"Bevel\",\"Miter\",\"Round\"}\n  theJoinStyleBox.DefineFromList(theJoinStyleList)\n  \nelse\n\n  if (theLinePreview.GetFlip) then\n    theFlipBox.SetSelected(TRUE)\n    
else\n    theFlipBox.SetSelected(FALSE)\n  end\n\n\n  theSize = theLinePreview.GetSize\n  theAltSize = theLinePreview.GetAltSize\n  theInterval = theLinePreview.GetInterval\n  theFlip = theLinePreview.GetFlip\n  \n  theAltSizeBox.SetVisible(TRUE)\n  theFlipBox.SetVisible(FALSE)\n  theIntervalBox.SetVisible(TRUE)\n  theCapStyleBox.SetVisible(FALSE)\n  theJoinStyleBox.SetVisible(FALSE)\n  thePatternBox.SetVisible(FALSE)\n  theFlipBox.SetVisible(FALSE)\n  TextLabelCap.SetVisible(FALSE)\n  TextLabelJoin.SetVisible(FALSE)\n  TextL
abelPattern.SetVisible(FALSE)\n  theArrowLengthBox.SetVisible(FALSE)\n\n\n\n  theSizeBox.SetText(theSize.AsString)\n  theAltSizeBox.SetText(theAltSize.AsString)\n  theIntervalBox.SetText(theInterval.AsString)\n  \n  if ((theLineType = \"VectorPenZigZag\") OR (theLineType = \"VectorPenScrub\") OR (theLineType = \"VectorPenSlant\") OR (theLineType = \"VectorPenScallop\")) then\n    theFlipBox.SetVisible(TRUE)\n  end\n  \n  if (theLineType = \"VectorPenArrow\") then\n    theArrowLengthBox.SetVisible(TRUE)\n    theArrowLength = 50\n    
theArrowLengthBox.SetText(theArrowLength.AsString)\n  end\n  \nend\n\n\n'MsgBox.Info(theLinePreview,\"\")\n\n\n\n\nmyPreviewBox.SetCurrentValue(theLinePreview)\nmyPreviewBox.FitRows(5..(myPreviewBox.GetRowCount-1),true)\nmyPreviewBox.FitColumns(5..(myPreviewBox.GetColumnCount-1),true)\nmyPreviewBox.SetRowHeight(100)\nmyPreviewBox.SetColumnWidth(100)\n\n\n"
)

(Script.1166
	Name:	"LineBuilder.AdvancedOpen1"
	SourceCode:	"'LineBuilder.AdvancedOpen1\n\ntheParentDialog = av.FindDialog(\"LineBuilder\")\n\n\n'theSymWin = av.GetSymbolWin \n'theSymWin.Open\n'theSymWin.SetPanel(#SYMBOLWIN_PANEL_PEN)\n\ntheParentPreviewBox = theParentDialog.FindByName(\"ListBox.LineStylePreview1\")\ntheLinePreview = theParentPreviewBox.GetCurrentValue\ntheParentStyleBox = theParentDialog.FindByName(\"ComboBox.LineStyle1\")\ntheParentStyle = theParentStyleBox.GetCurrentValue\n\nmyPreviewBox = self.FindByName(\"ListBox.AdvancedLinePreview\")\ntheSizeBox = self.FindByName(\"T
extLine.LineSize\")\ntheAltSizeBox = self.FindByName(\"TextLine.AltLineSize\")\ntheStyleBox = self.FindByName(\"ComboBox.Style\")\ntheCapStyleBox = self.FindByName(\"ComboBox.CapStyle\")\ntheJoinStyleBox = self.FindByName(\"ComboBox.JoinStyle\")\nthePatternBox = self.FindByName(\"ComboBox.Pattern\")\ntheFlipBox = self.FindByName(\"CheckBox.Flip\")\ntheIntervalBox = self.FindByName(\"TextLine.Interval\")\nTextLabelCap = self.FindByName(\"TextLabel.Cap\")\nTextLabelJoin = self.FindByName(\"TextLabel.Join\")\nTextLabelPattern = self.FindB
yName(\"TextLabel.Pattern\")\ntheArrowLengthBox = self.FindByName(\"Textline.ArrowLength\")\n\ntheVectorStyleTexts = {theParentStyle,\"Plain\",\"Arrowheads\",\"Dashes\",\"Diamonds\",\"Dots\",\"Hash\",\"Hollow\",\"Scallop\",\"Scrub\",\"Slant\",\"ZigZag\"}\ntheStyleBox.DefineFromList(theVectorStyleTexts)\n\ntheLineType = theLinePreview.GetClass.GetClassName.AsString\n\nif (theLinePreview.GetClass.GetClassName.AsString = \"BasicPen\") then\n  theSize = theLinePreview.GetSize\n  theCapStyle = theLinePreview.GetCapStyle\n  theJoinStyle = theLinePrevi
ew.GetJoinStyle\n  \n  if (theStyleBox.GetCurrentValue = \"Dashes\") then\n  \n    thePattern = theLinePreview.ReturnPattern\n    thePatternString = \"\"\n  \n    if (thePattern.Count = 0) then\n      thePatternString = \"None\"\n    end\n    if (thePattern.Count <> 0) then\n      for each e in thePattern\n        thePatternString = thePatternString+e.AsString+\"  \"\n      end\n    end\n    thePatternString = thePatternString.BasicTrim(\"\",\",\")  \n    thePatternList = {thePatternString,\"1 1\",\"5 5\",\"10 10\"}\n    thePatternBox.Empty\n
    thePatternBox.DefineFromList(thePatternList)\n  end\n  \n    theAltSizeBox.SetVisible(FALSE)\n    theFlipBox.SetVisible(FALSE)\n    theCapStyleBox.SetVisible(TRUE)\n    theJoinStyleBox.SetVisible(TRUE)\n    thePatternBox.SetVisible(TRUE)\n    theFlipBox.SetVisible(FALSE)\n    theIntervalBox.SetVisible(FALSE)\n    TextLabelCap.SetVisible(TRUE)\n    TextLabelJoin.SetVisible(TRUE)\n    TextLabelPattern.SetVisible(TRUE)\n    theArrowLengthBox.SetVisible(FALSE)\n\n    if (theStyleBox.GetCurrentValue = \"Plain\") then\n      t
hePatternBox.SetVisible(FALSE)\n      textLabelPattern.SetVisible(FALSE)\n    end\n  \n  theSizeBox.SetText(theSize.AsString)\n  \n  if (theCapStyle.AsString = \"BASICPEN_CAP_BUTT\") then\n    theCapStyle = \"Butt\"\n  end\n  theCapStyleList = {theCapStyle.AsString,\"Butt\",\"Round\",\"Square\"}\n  theCapStyleBox.DefineFromList(theCapStyleList)\n  \n  if (theJoinStyle.AsString = \"BASICPEN_JOIN_MITER\") then\n    theJoinStyle = \"Miter\"\n  end\n  theJoinStyleList = {theJoinStyle.AsString,\"Bevel\",\"Miter\",\"Round\"}\n  theJoinStyleBox.Defi
neFromList(theJoinStyleList)\n  \nelse\n\n  theSize = theLinePreview.GetSize\n  theAltSize = theLinePreview.GetAltSize\n  theInterval = theLinePreview.GetInterval\n  theFlip = theLinePreview.GetFlip\n  \n  theAltSizeBox.SetVisible(TRUE)\n  theFlipBox.SetVisible(FALSE)\n  theIntervalBox.SetVisible(TRUE)\n  theCapStyleBox.SetVisible(FALSE)\n  theJoinStyleBox.SetVisible(FALSE)\n  thePatternBox.SetVisible(FALSE)\n  theFlipBox.SetVisible(FALSE)\n  TextLabelCap.SetVisible(FALSE)\n  TextLabelJoin.SetVisible(FALSE)\n  TextLabelPatte
rn.SetVisible(FALSE)\n  theArrowLengthBox.SetVisible(FALSE)\n\n\n\n  theSizeBox.SetText(theSize.AsString)\n  theAltSizeBox.SetText(theAltSize.AsString)\n  theIntervalBox.SetText(theInterval.AsString)\n  \n  if ((theLineType = \"VectorPenZigZag\") OR (theLineType = \"VectorPenScrub\") OR (theLineType = \"VectorPenSlant\") OR (theLineType = \"VectorPenScallop\")) then\n    theFlipBox.SetVisible(TRUE)\n  end\n  \n  if (theLineType = \"VectorPenArrow\") then\n    theArrowLengthBox.SetVisible(TRUE)\n    theArrowLength = 50\n    theArrowL
engthBox.SetText(theArrowLength.AsString)\n  end\n  \nend\n\n\n'MsgBox.Info(theLinePreview,\"\")\n\n\n\n\nmyPreviewBox.SetCurrentValue(theLinePreview)\nmyPreviewBox.FitRows(5..(myPreviewBox.GetRowCount-1),true)\nmyPreviewBox.FitColumns(5..(myPreviewBox.GetColumnCount-1),true)\nmyPreviewBox.SetRowHeight(100)\nmyPreviewBox.SetColumnWidth(100)\n\n\n"
)

(Script.1167
	Name:	"LineBuilder.AdvancedOpen2"
	SourceCode:	"'LineBuilder.AdvancedOpen2\n\ntheParentDialog = av.FindDialog(\"LineBuilder\")\n\n\n'theSymWin = av.GetSymbolWin \n'theSymWin.Open\n'theSymWin.SetPanel(#SYMBOLWIN_PANEL_PEN)\n\ntheParentPreviewBox = theParentDialog.FindByName(\"ListBox.LineStylePreview2\")\ntheLinePreview = theParentPreviewBox.GetCurrentValue\ntheParentStyleBox = theParentDialog.FindByName(\"ComboBox.LineStyle2\")\ntheParentStyle = theParentStyleBox.GetCurrentValue\n\nmyPreviewBox = self.FindByName(\"ListBox.AdvancedLinePreview\")\ntheSizeBox = self.FindByName(\"T
extLine.LineSize\")\ntheAltSizeBox = self.FindByName(\"TextLine.AltLineSize\")\ntheStyleBox = self.FindByName(\"ComboBox.Style\")\ntheCapStyleBox = self.FindByName(\"ComboBox.CapStyle\")\ntheJoinStyleBox = self.FindByName(\"ComboBox.JoinStyle\")\nthePatternBox = self.FindByName(\"ComboBox.Pattern\")\ntheFlipBox = self.FindByName(\"CheckBox.Flip\")\ntheIntervalBox = self.FindByName(\"TextLine.Interval\")\nTextLabelCap = self.FindByName(\"TextLabel.Cap\")\nTextLabelJoin = self.FindByName(\"TextLabel.Join\")\nTextLabelPattern = self.FindB
yName(\"TextLabel.Pattern\")\ntheArrowLengthBox = self.FindByName(\"Textline.ArrowLength\")\n\ntheVectorStyleTexts = {theParentStyle,\"Plain\",\"Arrowheads\",\"Dashes\",\"Diamonds\",\"Dots\",\"Hash\",\"Hollow\",\"Scallop\",\"Scrub\",\"Slant\",\"ZigZag\"}\ntheStyleBox.DefineFromList(theVectorStyleTexts)\n\ntheLineType = theLinePreview.GetClass.GetClassName.AsString\n\nif (theLinePreview.GetClass.GetClassName.AsString = \"BasicPen\") then\n  theSize = theLinePreview.GetSize\n  theCapStyle = theLinePreview.GetCapStyle\n  theJoinStyle = theLinePrevi
ew.GetJoinStyle\n  \n  if (theStyleBox.GetCurrentValue = \"Dashes\") then\n  \n    thePattern = theLinePreview.ReturnPattern\n    thePatternString = \"\"\n  \n    if (thePattern.Count = 0) then\n      thePatternString = \"None\"\n    end\n    if (thePattern.Count <> 0) then\n      for each e in thePattern\n        thePatternString = thePatternString+e.AsString+\"  \"\n      end\n    end\n    thePatternString = thePatternString.BasicTrim(\"\",\",\")  \n    thePatternList = {thePatternString,\"1 1\",\"5 5\",\"10 10\"}\n    thePatternBox.Empty\n
    thePatternBox.DefineFromList(thePatternList)\n  end\n  \n    theAltSizeBox.SetVisible(FALSE)\n    theFlipBox.SetVisible(FALSE)\n    theCapStyleBox.SetVisible(TRUE)\n    theJoinStyleBox.SetVisible(TRUE)\n    thePatternBox.SetVisible(TRUE)\n    theFlipBox.SetVisible(FALSE)\n    theIntervalBox.SetVisible(FALSE)\n    TextLabelCap.SetVisible(TRUE)\n    TextLabelJoin.SetVisible(TRUE)\n    TextLabelPattern.SetVisible(TRUE)\n    theArrowLengthBox.SetVisible(FALSE)\n\n    if (theStyleBox.GetCurrentValue = \"Plain\") then\n      t
hePatternBox.SetVisible(FALSE)\n      textLabelPattern.SetVisible(FALSE)\n    end\n  \n  theSizeBox.SetText(theSize.AsString)\n  \n  if (theCapStyle.AsString = \"BASICPEN_CAP_BUTT\") then\n    theCapStyle = \"Butt\"\n  end\n  theCapStyleList = {theCapStyle.AsString,\"Butt\",\"Round\",\"Square\"}\n  theCapStyleBox.DefineFromList(theCapStyleList)\n  \n  if (theJoinStyle.AsString = \"BASICPEN_JOIN_MITER\") then\n    theJoinStyle = \"Miter\"\n  end\n  theJoinStyleList = {theJoinStyle.AsString,\"Bevel\",\"Miter\",\"Round\"}\n  theJoinStyleBox.Defi
neFromList(theJoinStyleList)\n  \nelse\n\n  theSize = theLinePreview.GetSize\n  theAltSize = theLinePreview.GetAltSize\n  theInterval = theLinePreview.GetInterval\n  theFlip = theLinePreview.GetFlip\n  \n  theAltSizeBox.SetVisible(TRUE)\n  theFlipBox.SetVisible(FALSE)\n  theIntervalBox.SetVisible(TRUE)\n  theCapStyleBox.SetVisible(FALSE)\n  theJoinStyleBox.SetVisible(FALSE)\n  thePatternBox.SetVisible(FALSE)\n  theFlipBox.SetVisible(FALSE)\n  TextLabelCap.SetVisible(FALSE)\n  TextLabelJoin.SetVisible(FALSE)\n  TextLabelPatte
rn.SetVisible(FALSE)\n  theArrowLengthBox.SetVisible(FALSE)\n\n\n\n  theSizeBox.SetText(theSize.AsString)\n  theAltSizeBox.SetText(theAltSize.AsString)\n  theIntervalBox.SetText(theInterval.AsString)\n  \n  if ((theLineType = \"VectorPenZigZag\") OR (theLineType = \"VectorPenScrub\") OR (theLineType = \"VectorPenSlant\") OR (theLineType = \"VectorPenScallop\")) then\n    theFlipBox.SetVisible(TRUE)\n  end\n  \n  if (theLineType = \"VectorPenArrow\") then\n    theArrowLengthBox.SetVisible(TRUE)\n    theArrowLength = 50\n    theArrowL
engthBox.SetText(theArrowLength.AsString)\n  end\n  \nend\n\n\n'MsgBox.Info(theLinePreview,\"\")\n\n\n\n\nmyPreviewBox.SetCurrentValue(theLinePreview)\nmyPreviewBox.FitRows(5..(myPreviewBox.GetRowCount-1),true)\nmyPreviewBox.FitColumns(5..(myPreviewBox.GetColumnCount-1),true)\nmyPreviewBox.SetRowHeight(100)\nmyPreviewBox.SetColumnWidth(100)\n\n\n"
)

(Script.1168
	Name:	"LineBuilder.AdvancedOpen3"
	SourceCode:	"'LineBuilder.AdvancedOpen3\n\ntheParentDialog = av.FindDialog(\"LineBuilder\")\n\n\n'theSymWin = av.GetSymbolWin \n'theSymWin.Open\n'theSymWin.SetPanel(#SYMBOLWIN_PANEL_PEN)\n\ntheParentPreviewBox = theParentDialog.FindByName(\"ListBox.LineStylePreview3\")\ntheLinePreview = theParentPreviewBox.GetCurrentValue\ntheParentStyleBox = theParentDialog.FindByName(\"ComboBox.LineStyle3\")\ntheParentStyle = theParentStyleBox.GetCurrentValue\n\nmyPreviewBox = self.FindByName(\"ListBox.AdvancedLinePreview\")\ntheSizeBox = self.FindByName(\"T
extLine.LineSize\")\ntheAltSizeBox = self.FindByName(\"TextLine.AltLineSize\")\ntheStyleBox = self.FindByName(\"ComboBox.Style\")\ntheCapStyleBox = self.FindByName(\"ComboBox.CapStyle\")\ntheJoinStyleBox = self.FindByName(\"ComboBox.JoinStyle\")\nthePatternBox = self.FindByName(\"ComboBox.Pattern\")\ntheFlipBox = self.FindByName(\"CheckBox.Flip\")\ntheIntervalBox = self.FindByName(\"TextLine.Interval\")\nTextLabelCap = self.FindByName(\"TextLabel.Cap\")\nTextLabelJoin = self.FindByName(\"TextLabel.Join\")\nTextLabelPattern = self.FindB
yName(\"TextLabel.Pattern\")\ntheArrowLengthBox = self.FindByName(\"Textline.ArrowLength\")\n\ntheVectorStyleTexts = {theParentStyle,\"Plain\",\"Arrowheads\",\"Dashes\",\"Diamonds\",\"Dots\",\"Hash\",\"Hollow\",\"Scallop\",\"Scrub\",\"Slant\",\"ZigZag\"}\ntheStyleBox.DefineFromList(theVectorStyleTexts)\n\ntheLineType = theLinePreview.GetClass.GetClassName.AsString\n\nif (theLinePreview.GetClass.GetClassName.AsString = \"BasicPen\") then\n  theSize = theLinePreview.GetSize\n  theCapStyle = theLinePreview.GetCapStyle\n  theJoinStyle = theLinePrevi
ew.GetJoinStyle\n  \n  if (theStyleBox.GetCurrentValue = \"Dashes\") then\n  \n    thePattern = theLinePreview.ReturnPattern\n    thePatternString = \"\"\n  \n    if (thePattern.Count = 0) then\n      thePatternString = \"None\"\n    end\n    if (thePattern.Count <> 0) then\n      for each e in thePattern\n        thePatternString = thePatternString+e.AsString+\"  \"\n      end\n    end\n    thePatternString = thePatternString.BasicTrim(\"\",\",\")  \n    thePatternList = {thePatternString,\"1 1\",\"5 5\",\"10 10\"}\n    thePatternBox.Empty\n
    thePatternBox.DefineFromList(thePatternList)\n  end\n  \n    theAltSizeBox.SetVisible(FALSE)\n    theFlipBox.SetVisible(FALSE)\n    theCapStyleBox.SetVisible(TRUE)\n    theJoinStyleBox.SetVisible(TRUE)\n    thePatternBox.SetVisible(TRUE)\n    theFlipBox.SetVisible(FALSE)\n    theIntervalBox.SetVisible(FALSE)\n    TextLabelCap.SetVisible(TRUE)\n    TextLabelJoin.SetVisible(TRUE)\n    TextLabelPattern.SetVisible(TRUE)\n    theArrowLengthBox.SetVisible(FALSE)\n\n    if (theStyleBox.GetCurrentValue = \"Plain\") then\n      t
hePatternBox.SetVisible(FALSE)\n      textLabelPattern.SetVisible(FALSE)\n    end\n  \n  theSizeBox.SetText(theSize.AsString)\n  \n  if (theCapStyle.AsString = \"BASICPEN_CAP_BUTT\") then\n    theCapStyle = \"Butt\"\n  end\n  theCapStyleList = {theCapStyle.AsString,\"Butt\",\"Round\",\"Square\"}\n  theCapStyleBox.DefineFromList(theCapStyleList)\n  \n  if (theJoinStyle.AsString = \"BASICPEN_JOIN_MITER\") then\n    theJoinStyle = \"Miter\"\n  end\n  theJoinStyleList = {theJoinStyle.AsString,\"Bevel\",\"Miter\",\"Round\"}\n  theJoinStyleBox.Defi
neFromList(theJoinStyleList)\n  \nelse\n\n  theSize = theLinePreview.GetSize\n  theAltSize = theLinePreview.GetAltSize\n  theInterval = theLinePreview.GetInterval\n  theFlip = theLinePreview.GetFlip\n  \n  theAltSizeBox.SetVisible(TRUE)\n  theFlipBox.SetVisible(FALSE)\n  theIntervalBox.SetVisible(TRUE)\n  theCapStyleBox.SetVisible(FALSE)\n  theJoinStyleBox.SetVisible(FALSE)\n  thePatternBox.SetVisible(FALSE)\n  theFlipBox.SetVisible(FALSE)\n  TextLabelCap.SetVisible(FALSE)\n  TextLabelJoin.SetVisible(FALSE)\n  TextLabelPatte
rn.SetVisible(FALSE)\n  theArrowLengthBox.SetVisible(FALSE)\n\n\n\n  theSizeBox.SetText(theSize.AsString)\n  theAltSizeBox.SetText(theAltSize.AsString)\n  theIntervalBox.SetText(theInterval.AsString)\n  \n  if ((theLineType = \"VectorPenZigZag\") OR (theLineType = \"VectorPenScrub\") OR (theLineType = \"VectorPenSlant\") OR (theLineType = \"VectorPenScallop\")) then\n    theFlipBox.SetVisible(TRUE)\n  end\n  \n  if (theLineType = \"VectorPenArrow\") then\n    theArrowLengthBox.SetVisible(TRUE)\n    theArrowLength = 50\n    theArrowL
engthBox.SetText(theArrowLength.AsString)\n  end\n  \nend\n\n\n'MsgBox.Info(theLinePreview,\"\")\n\n\n\n\nmyPreviewBox.SetCurrentValue(theLinePreview)\nmyPreviewBox.FitRows(5..(myPreviewBox.GetRowCount-1),true)\nmyPreviewBox.FitColumns(5..(myPreviewBox.GetColumnCount-1),true)\nmyPreviewBox.SetRowHeight(100)\nmyPreviewBox.SetColumnWidth(100)\n\n"
)

(Script.1169
	Name:	"LineBuilder.AdvancedOpener"
	SourceCode:	"'LineBuilder.AdvancedOpener\n\ntheAdvDialog = av.FindDialog(\"AdvancedLineProperties\")\ntheAdvDialog.Open\n"
)

(Script.1170
	Name:	"LineBuilder.AdvancedOpener1"
	SourceCode:	"'LineBuilder.AdvancedOpener1\n\ntheAdvDialog = av.FindDialog(\"AdvancedLineProperties\")\ntheAdvDialog.Open\n"
)

(Script.1171
	Name:	"LineBuilder.AdvancedUpdater"
	SourceCode:	"'LineBuilder.AdvancedUpdater\n\ntheParentDialog = av.FindDialog(\"LineBuilder\")\ntheDialog = av.FindDialog(\"AdvancedLineProperties\")\n\ntheParentPreviewBox = theParentDialog.FindByName(\"ListBox.LineStylePreview1\")\ntheLinePreview = theParentPreviewBox.GetCurrentValue\ntheParentStyleBox = theParentDialog.FindByName(\"ComboBox.LineStyle1\")\ntheParentStyle = theParentStyleBox.GetCurrentValue\n\nmyPreviewBox = theDialog.FindByName(\"ListBox.AdvancedLinePreview\")\ntheSizeBox = theDialog.FindByName(\"TextLine.LineSize\")\ntheAltS
izeBox = theDialog.FindByName(\"TextLine.AltLineSize\")\ntheStyleBox = theDialog.FindByName(\"ComboBox.Style\")\ntheCapStyleBox = theDialog.FindByName(\"ComboBox.CapStyle\")\ntheJoinStyleBox = theDialog.FindByName(\"ComboBox.JoinStyle\")\nthePatternBox = theDialog.FindByName(\"ComboBox.Pattern\")\ntheFlipBox = theDialog.FindByName(\"CheckBox.Flip\")\ntheIntervalBox = theDialog.FindByName(\"TextLine.Interval\")\nTextLabelCap = theDialog.FindByName(\"TextLabel.Cap\")\nTextLabelJoin = theDialog.FindByName(\"TextLabel.Join\")\nTextLabelP
attern = theDialog.FindByName(\"TextLabel.Pattern\")\ntheArrowLengthBox = theDialog.FindByName(\"TextLine.ArrowLength\")\n\ntheSize = theSizeBox.GetText.AsNumber\ntheColor = theLinePreview.GetColor\ntheAltSize = theAltSizeBox.GetText.AsNumber\ntheStyle = theStyleBox.GetCurrentValue.AsString\n\nif (theFlipBox.IsSelected) then\n  theFlipState = \"ON\"\n  else\n  theFlipState = \"OFF\"\nend\ntheInterval = theIntervalBox.GetText.AsNumber\ntheArrowLength = theArrowLengthBox.GetText.AsNumber\n\nif (theStyle = \"Plain\")then\n    theLine = 
BasicPen.Make\n    theLine.SetColor(theColor)\n    theLine.SetColorLock(true)\n    theLine.SetSize(theSize)\n   'theLine.SetCapStyle(theCapStyle)'*\n   'theLine.SetJoinStyle(theJoinStyle)'*\n    theCapStyle = theCapStyleBox.GetCurrentValue.AsString\n    if (theCapStyle = \"Butt\") then\n      theLine.SetCapStyle(#BASICPEN_CAP_BUTT)\n    elseif (theCapStyle = \"Round\") then\n      theLine.SetCapStyle(#BASICPEN_CAP_ROUND)\n    elseif (theCapStyle = \"Square\") then\n      theLine.SetCapStyle(#BASICPEN_CAP_SQUARE)\n    else\n   
   theLine.SetCapStyle(#BASICPEN_CAP_BUTT)'*\n    end\n\n    theJoinStyle = theJoinStyleBox.GetCurrentValue.AsString\n    if (theJoinStyle = \"Bevel\") then\n      theLine.SetJoinStyle(#BASICPEN_JOIN_BEVEL)\n    elseif (theJoinStyle = \"Miter\") then\n      theLine.SetJoinStyle(#BASICPEN_JOIN_MITER)\n    elseif (theJoinStyle = \"Round\") then\n      theLine.SetJoinStyle(#BASICPEN_JOIN_ROUND)\n    else\n      theLine.SetJoinStyle(#BASICPEN_JOIN_BEVEL)'*\n    end\nend\n    \nif (theStyle = \"Arrowheads\")then\n    theLine = VectorPe
nArrow.Make\n    theLine.SetSize(theSize)\n    theLine.SetAltSize(theAltSize)\n    theLine.SetColor(theColor)\n    theLine.SetColorLock(true)\n    theLine.SetArrowLen(theArrowLength)\n    'theLine.SetArrowLen(5)\n    theLine.SetInterval(theInterval)\nend\n\nif (theStyle = \"Dashes\")then\n    theLine = BasicPen.Make\n    theLine.SetSize(theSize)\n    theLine.SetColor(theColor)\n    theLine.SetColorLock(true)\n    theCapStyle = theCapStyleBox.GetCurrentValue.AsString ' *\n    thePatternValue = thePatternBox.GetCurrentValue.As
List\n    thePatternList = thePatternValue.AsList\n    \n    if (thePatternList <> \"None\") then\n     'CH = MsgBox.ChoiceAsString(thePatternList,\"PatternList\",\"\")\n      'CH1 = MsgBox.Input( \"Enter\", \"Title\", \"8.62/8.62\" )\n      'CHList = CH1.AsStkens(\"/\")\n      'theLine.SetPattern(CHList)\n     'theLine.SetPattern({thePatternList})\n    end\n    if (theCapStyle = \"Butt\") then ' ***\n      theLine.SetCapStyle(#BASICPEN_CAP_BUTT)\n    elseif (theCapStyle = \"Round\") then\n      theLine.SetCapStyle(#BASICPEN_CAP_ROUND)\n 
   elseif (theCapStyle = \"Square\") then\n      theLine.SetCapStyle(#BASICPEN_CAP_SQUARE)\n    else\n      theLine.SetCapStyle(#BASICPEN_CAP_BUTT)'*\n    end\n\n    theJoinStyle = theJoinStyleBox.GetCurrentValue.AsString\n    if (theJoinStyle = \"Bevel\") then\n      theLine.SetJoinStyle(#BASICPEN_JOIN_BEVEL)\n    elseif (theJoinStyle = \"Miter\") then\n      theLine.SetJoinStyle(#BASICPEN_JOIN_MITER)\n    elseif (theJoinStyle = \"Round\") then\n      theLine.SetJoinStyle(#BASICPEN_JOIN_ROUND)\n    else\n      theLine.SetJoinSt
yle(#BASICPEN_JOIN_BEVEL)\n    end\n\nend\n\nif (theStyle = \"Diamonds\")then        \n    theLine = VectorPenDiamond.Make\n    theLine.SetSize(theSize)\n    theLine.SetAltSize(theAltSize)\n    theLine.SetColor(theColor)\n    theLine.SetColorLock(true)\n    theLine.SetInterval(theInterval)\nend\n\nif (theStyle = \"Dots\")then        \n    theLine = VectorPenDot.Make\n    theLine.SetSize(theSize)\n    theLine.SetAltSize(theAltSize)\n    theLine.SetColor(theColor)\n    theLine.SetColorLock(true)\n    theLine.SetInterval(theInterval)
\nend\n\nif (theStyle = \"Hash\")then        \n    theLine = VectorPenHash.Make\n    theLine.SetSize(theSize)\n    theLine.SetAltSize(theAltSize)\n    theLine.SetColor(theColor)\n    theLine.SetColorLock(true)\n    theLine.SetInterval(theInterval)\nend\n\nif (theStyle = \"Hollow\")then        \n    theLine = VectorPenHollow.Make\n    theLine.SetSize(theSize)\n    theLine.SetAltSize(theAltSize)\n    theLine.SetColor(theColor)\n    theLine.SetColorLock(true)\n    theLine.SetInterval(theInterval)\nend\n\nif (theStyle = \"Scallop\")then 
       \n    theLine = VectorPenScallop.Make\n    theLine.SetSize(theSize)\n    theLine.SetAltSize(theAltSize)\n    theLine.SetColor(theColor)\n    theLine.SetColorLock(true)\n    theLine.SetInterval(theInterval)\n    if (theFlipState = \"ON\") then\n      theLine.SetFlip(TRUE)\n    else\n      theLine.SetFlip(FALSE)\n    end\nend\n\nif (theStyle = \"Scrub\")then        \n    theLine = VectorPenScrub.Make\n    theLine.SetSize(theSize)\n    theLine.SetAltSize(theAltSize)\n    theLine.SetColor(theColor)\n    theLine.SetColorLock(tr
ue)\n    theLine.SetInterval(theInterval)\n    if (theFlipState = \"ON\") then\n      theLine.SetFlip(TRUE)\n    else\n      theLine.SetFlip(FALSE)\n    end\nend\n\nif (theStyle = \"Slant\")then        \n    theLine = VectorPenSlant.Make\n    theLine.SetSize(theSize)\n    theLine.SetAltSize(theAltSize)\n    theLine.SetColor(theColor)\n    theLine.SetColorLock(true)\n    theLine.SetInterval(theInterval)\n    if (theFlipState = \"ON\") then\n      theLine.SetFlip(TRUE)\n    else\n      theLine.SetFlip(FALSE)\n    end\nend\n\nif (theStyle
 = \"ZigZag\")then        \n    theLine = VectorPenZigZag.Make\n    theLine.SetSize(theSize)\n    theLine.SetAltSize(theAltSize)\n    theLine.SetColor(theColor)\n    theLine.SetColorLock(true)\n    theLine.SetInterval(theInterval)\n    if (theFlipState = \"ON\") then\n      theLine.SetFlip(TRUE)\n    else\n      theLine.SetFlip(FALSE)\n    end\nend\n\n\nmyPreviewBox.Empty\nmyPreviewBox.DefineFromList({theLine})\nmyPreviewBox.FitRows(5..(myPreviewBox.GetRowCount-1),true)\nmyPreviewBox.FitColumns(5..(myPreviewBox.GetColumnCount-1)
,true)\nmyPreviewBox.SetRowHeight(100)\nmyPreviewBox.SetColumnWidth(100)"
)

(Script.1172
	Name:	"LineBuilder.BuildCompositAILine"
	SourceCode:	"'LineBuilder.CreateLine\npal = av.GetSymbolWin.GetPalette \ntheLineList = {}\n\ntheDialog = av.FindDialog(\"LineBuilder\")\ntheLineBut = theDialog.FindByName(\"RadBut_2line\")\ntheLineBut3 = theDialog.FindByName(\"RadBut_3line\")\ntheListBox = theDialog.FindByName(\"ComboBox_Color\")\ntheListBox2 = theDialog.FindByName(\"ComboBox_Color2\")\ntheListBox3 = theDialog.FindByName(\"ComboBox_Color3\")\ntheWidthBox = theDialog.FindByName(\"ComboBox.Width\")\n\ncolor1 = theListBox.GetSelection.AsString\ncolor2 = theListBox2.GetSelection.AsSt
ring\ncolor3 = theListBox3.GetSelection.AsString\ntheTotalLineWidth = theWidthBox.GetSelection\ntheOutlineWidth = theTotalLineWidth\ntheAltOutlineWidth = theTotalLineWidth - 1\ntheCenterlineWidth = 1\n\ntheRedBox1 = theDialog.FindByName(\"TextLine.Red\")\ntheGreenBox1 = theDialog.FindByName(\"TextLine.Green\")\ntheBlueBox1 = theDialog.FindByName(\"TextLine.Blue\")\ntheRedBox2 = theDialog.FindByName(\"TextLine.Red2\")\ntheGreenBox2 = theDialog.FindByName(\"TextLine.Green2\")\ntheBlueBox2 = theDialog.FindByName(\"TextLine.Blue2\")\nt
heRedBox3 = theDialog.FindByName(\"TextLine.Red3\")\ntheGreenBox3 = theDialog.FindByName(\"TextLine.Green3\")\ntheBlueBox3 = theDialog.FindByName(\"TextLine.Blue3\")\n\ntheStdColCheckBox = theDialog.FindByName(\"CheckBox.StandardColors\")\n\ntheRGBCheckBox = theDialog.FindByName(\"CheckBox.RGB\")\n  red1 = theRedBox1.GetText.AsNumber\n  green1 = theGreenBox1.GetText.AsNumber\n  blue1 = theBlueBox1.GetText.AsNumber\n  red2 = theRedBox2.GetText.AsNumber\n  green2 = theGreenBox2.GetText.AsNumber\n  blue2 = theBlueBox2.GetText.AsNum
ber\n  red3 = theRedBox3.GetText.AsNumber\n  green3 = theGreenBox3.GetText.AsNumber\n  blue3 = theBlueBox3.GetText.AsNumber\n  \n  theColorList = {red1,green1,blue1,red2,green2,blue2,red3,green3,blue3}\n  for each e in theColorList\n    if ((e > 255) or (e < 0)) then\n    MsgBox.Warning(\"All RGB values must be between 0 and 255\",\"Bad User\")\n    return Nil\n    exit\n    end\n  end\n  \n  theColor1 = Color.Make\n  theColor2 = Color.Make\n  TheColor3 = Color.Make\n  \n  color1List = {red1,green1,blue1}\n  color2List = {red2,gr
een2,blue2}\n  color3List = {red3,green3,blue3}\n  \n  theColor1.SetRGBList(color1List)\n  theColor2.SetRGBList(color2List)\n  theColor3.SetRGBList(color3List)\n\n\n\nif (theStdColCheckBox.IsSelected) then\n\n  if (theLineBut.IsSelected) then\n    '** Make the BasicPen for bottom line\n    bln1 = BasicPen.Make\n    bln1.SetColor(theColor1)\n    bln1.SetColorLock(true)\n    bln1.SetSize(theTotalLineWidth)\n    \n    '** Make the VectorPenHollow\n    vph1 = VectorPenHollow.Make\n    vph1.SetSize(theOutlineWidth)\n    vph1.SetAltS
ize(theAltOutlineWidth)\n    vph1.SetColor(theColor2)\n    vph1.SetColorLock(true)\n  \n    aSymList = SymbolList.FromList({bln1,vph1})  \n  end\n\n  if (theLineBut3.IsSelected) then\n    '** Make the BasicPen for bottom line\n    bln1 = BasicPen.Make\n    bln1.SetColor(theColor1)\n    bln1.SetColorLock(true)\n    bln1.SetSize(theTotalLineWidth)\n\n    '** Make the VectorPenHollow\n    vph1 = VectorPenHollow.Make\n    vph1.SetSize(theOutlineWidth)\n    vph1.SetAltSize(theAltOutlineWidth)\n    vph1.SetColor(theColor2)\n    vph
1.SetColorLock(true)\n  \n    '** Make the BasicPen for top line\n    bln2 = BasicPen.Make\n    bln2.SetColor(theColor3)\n    bln2.SetColorLock(true)\n    bln2.SetSize(theCenterlineWidth)\n  \n    aSymList = SymbolList.FromList({bln1,vph1,bln2})\n  end\nend\n\n\nif (theRGBCheckBox.IsSelected) then\n  if (theLineBut.IsSelected) then\n    '** Make the BasicPen for bottom line\n    bln1 = BasicPen.Make\n    bln1.SetColor(theColor1)\n    bln1.SetColorLock(true)\n    bln1.SetSize(theTotalLineWidth)\n    \n    '** Make the VectorPenH
ollow\n    vph1 = VectorPenHollow.Make\n    vph1.SetSize(theOutlineWidth)\n    vph1.SetAltSize(theAltOutlineWidth)\n    vph1.SetColor(theColor2)\n    vph1.SetColorLock(true)\n  \n    aSymList = SymbolList.FromList({bln1,vph1})  \n  end\n\n  if (theLineBut3.IsSelected) then\n    '** Make the BasicPen for bottom line\n    bln1 = BasicPen.Make\n    bln1.SetColor(theColor1)\n    bln1.SetColorLock(true)\n    bln1.SetSize(theTotalLineWidth)\n\n    '** Make the VectorPenHollow\n    vph1 = VectorPenHollow.Make\n    vph1.SetSize(theOu
tlineWidth)\n    vph1.SetAltSize(theAltOutlineWidth)\n    vph1.SetColor(theColor2)\n    vph1.SetColorLock(true)\n  \n    '** Make the BasicPen for top line\n    bln2 = BasicPen.Make\n    bln2.SetColor(theColor3)\n    bln2.SetColorLock(true)\n    bln2.SetSize(theCenterlineWidth)\n  \n    aSymList = SymbolList.FromList({bln1,vph1,bln2})\n  end\nend\n\n\n'** Make a CompositeArcInfoPen which contains\n'** each of the symbols we just made.\n\n'aSymList = SymbolList.FromList({bln1,vph1,bln2})\n\naCAIP = CompositeArcInfoPen.Make(aSymL
ist)\ntheLineList.Add(aCAIP)\n\n"
)

(Script.1173
	Name:	"LineBuilder.CreateLine"
	SourceCode:	"'LineBuilder.CreateLine\n\ntheSymWin = av.GetSymbolWin \ntheSymWin.Open\n\npal = av.GetSymbolWin.GetPalette \npens = pal.GetList(#PALETTE_LIST_PEN)\n\ntheDialog = av.FindDialog(\"LineBuilder\")\nthePreviewBox = theDialog.FindByName(\"ListBox.LinePreview\")\ntheLine = thePreviewBox.GetCurrentValue\n\n'** Add it to the Pen List of the new palette\npens.Add(theLine)\n\n\n'** Write the new palette out to the file system for later use\n'mypal = \"$AVHOME/symbols/myLine.avp\".AsFileName\n'pal.SaveToFile(#PALETTE_LIST_ALL,mypal)\n\n'refres
h the palette\nav.GetSymbolwin.RefreshPalette(#PALETTE_LIST_PEN)\ntheSymWin.SetPanel(#SYMBOLWIN_PANEL_PEN)\n"
)

(Script.1174
	Name:	"LineBuilder.CustomUpdate1"
	SourceCode:	"'LineBuilder.CustomUpdate1\ntheDialog = av.FindDialog(\"LineBuilder\")\ntheListBox1 = theDialog.FindByName(\"ComboBox_Color\")\ntheListBox1.Empty\n\ntheListBox = theDialog.FindByName(\"ComboBox_Color\")\ntheListBox.Empty\n\ntheColorList = {\"Custom\",\"Black\",\"Blue\",\"Cyan\",\"Gray\",\"Green\",\"Magenta\",\"Red\",\"White\",\"Yellow\"}\ntheListBox.DefineFromList(theColorList)\nav.Run(\"LineBuilder.SwatchUpdater\",nil)\nav.Run(\"LineBuilder.PreviewLine\",nil)\nav.Run(\"LineBuilder.LineStylePreview1\",nil)\nav.Run(\"LineBuilder.LineStylePreview2\",nil)\n
av.Run(\"LineBuilder.LineStylePreview3\",nil)\nav.Run(\"LineBuilder.SliderUpdater\",nil)"
)

(Script.1175
	Name:	"LineBuilder.CustomUpdate2"
	SourceCode:	"'LineBuilder.CustomUpdate2\ntheDialog = av.FindDialog(\"LineBuilder\")\ntheListBox2 = theDialog.FindByName(\"ComboBox_Color2\")\ntheListBox2.Empty\n\ntheColorList = {\"Custom\",\"Black\",\"Blue\",\"Cyan\",\"Gray\",\"Green\",\"Magenta\",\"Red\",\"White\",\"Yellow\"}\ntheListBox2.DefineFromList(theColorList)\nav.Run(\"LineBuilder.SwatchUpdater\",nil)\nav.Run(\"LineBuilder.PreviewLine\",nil)\nav.Run(\"LineBuilder.LineStylePreview1\",nil)\nav.Run(\"LineBuilder.LineStylePreview2\",nil)\nav.Run(\"LineBuilder.LineStylePreview3\",nil)\nav.Run(\"LineBuilder.Slid
erUpdater\",nil)"
)

(Script.1176
	Name:	"LineBuilder.CustomUpdate3"
	SourceCode:	"'LineBuilder.CustomUpdate2\ntheDialog = av.FindDialog(\"LineBuilder\")\ntheColorList = {\"Custom\",\"Black\",\"Blue\",\"Cyan\",\"Gray\",\"Green\",\"Magenta\",\"Red\",\"White\",\"Yellow\"}\ntheListBox3 = theDialog.FindByName(\"ComboBox_Color3\")\ntheListBox3.Empty\ntheListBox3.DefineFromList(theColorList)\n\nav.Run(\"LineBuilder.SwatchUpdater\",nil)\nav.Run(\"LineBuilder.PreviewLine\",nil)\nav.Run(\"LineBuilder.LineStylePreview1\",nil)\nav.Run(\"LineBuilder.LineStylePreview2\",nil)\nav.Run(\"LineBuilder.LineStylePreview3\",nil)\nav.Run(\"LineBuilder.Slid
erUpdater\",nil)"
)

(Script.1177
	Name:	"LineBuilder.LabelButtonHelp"
	SourceCode:	"'LineBuilder.LabelButtonHelp\ntheDialog = av.FindDialog(\"LineBuilder\")\n\ntheHelpButton = theDialog.FindByName(\"LabelButton.Help\")\ntheTextField = theDialog.FindByName(\"TextBox.Info\")\n\ntheFirstText = (\"Welcome to Cool Tools...                These tools allow you to choose custom RGB colors and build custom simple and complex line symbols, and add all of them to your current ArcView palette.  Click below to cycle through help topics.\")\ntheRGBText = (\"Custom RGB Colors...                     Use the tools on the
 right to define your own custom RGB colors.  You can use the slider bars to gradually increase the amount of each color, or type in the RGB values directly into the input boxes.  You will see a preview of the color you are making dynamically displayed in the preview box.  If you want to add the color you have created to the ArcView palette, double-click on the preview box for it.\")\ntheLineText = (\"Custom Line Symbols...                  These tools allow you to build custom line symbols from each type of p
en built into ArcView.  Use the radio buttons above to choose the number of lines to use, or pick one of the presets and view its properties in the line and color preview boxes.  You will also see a preview of the compound line in the box above. For each line component, you can choose the line style, width, and RGB color from the tools on the right.  Both the color and line style and size will show up in the preview boxes as you modify them.  Compound lines are built with Line 1 on the bottom, Line 2 on top
 of it, and Line 3 on top of that.  In most cases, you will want Line 1 to be the widest, with Lines 2 and 3 getting gradually smaller.  Once you are satisfied with the line, add it to the palette by dowble-clicking on its preview or by hitting the Add to Palette button.\")\ntheHelpText = (\"Script Author...                        C.Blakely@SWBell.Net     Http://Sneak.Dyndns.org                     Build 2452128  Version 1.0\")\n\ntheCurrentText = theTextField.GetText\n\nif (theCurrentText = theFirstText) then\n  th
eTextField.SetVerticalScroll(TRUE)\n  theTextField.SetText (theRGBText)\nend\n\nif (theCurrentText = theRGBText) then\n  theTextField.SetVerticalScroll(TRUE)\n  theTextField.SetText (theLineText)\nend\n\nif (theCurrentText = theLineText) then\n  theTextField.SetVerticalScroll(FALSE)\n  theTextField.SetText (theHelpText)\nend\n\nif (theCurrentText = theHelpText) then\n  theTextField.SetVerticalScroll(FALSE)\n  theTextField.SetText (theFirstText)\nend\n\n"
)

(Script.1178
	Name:	"LineBuilder.LineStyle1"
	SourceCode:	"'LineBuilder.LineStyle\ntheDialog = av.FindDialog(\"LineBuilder\")\ntheListBox1 = theDialog.FindByName(\"ComboBox.LineStyle1\")\n\ntheComboBox = theDialog.FindByName(\"ListBox.LineStylePreview1\")\n'theListBox1.SetRowHeight(500)\n'theListBox1.SetColumnWidth(0.5)\n\ntheComboBox.FitRows(0..(theComboBox.GetRowCount-1),true)\n'theComboBox.FitColumns(0..(theComboBox.GetColumnCount-1),true)\ntheComboBox.SetRowHeight(100)\ntheComboBox.SetColumnWidth(100)\n\n  theColor1 = Color.Make\n  theColor2 = Color.Make\n  TheColor3 = Color.Make\n 
 \n  thered = {255,0,0}\n  theblack = {0,0,0}\n  theyellow = {255,255,0}\n  \n  theColor1.SetRGBList(theRed)\n  theColor2.SetRGBList(theBlack)\n  theColor3.SetRGBList(theYellow)\n\n    '** Make the BasicPen for bottom line\n    bln = BasicPen.Make\n    bln.SetColor(theColor2)\n    bln.SetColorLock(true)\n    bln.SetSize(3)\n\n    '** Make the Dash\n    dash = BasicPen.Make\n    dash.SetSize(3)\n    dash.SetColor(theColor1)\n    dash.SetColorLock(true)\n    dash.SetPattern({8,8})\n    \n    '** Make the VectorPenHollow\n    vph = 
VectorPenHollow.Make\n    vph.SetSize(3)\n    vph.SetAltSize(2)\n    vph.SetColor(theColor1)\n    vph.SetColorLock(true)\n    \n    '** Make the VectorPenArrow\n    varrow = VectorPenArrow.Make\n    varrow.SetSize(0.1)\n    varrow.SetAltSize(0.1)\n    varrow.SetColor(theColor1)\n    varrow.SetColorLock(true)\n    varrow.SetArrowLen(50)\n\n    '** Make the VectorPenDot\n    dot = VectorPenDot.Make\n    dot.SetSize(0.1)\n    dot.SetAltSize(2)\n    dot.SetColor(theColor1)\n    dot.SetColorLock(true)\n\n    '** Make the VectorPenHa
sh\n    hash = VectorPenHash.Make\n    hash.SetSize(0.1)\n    hash.SetAltSize(1)\n    hash.SetColor(theColor2)\n    hash.SetColorLock(true)\n\n    '** Make the VectorPenDiamond\n    diamond = VectorPenDiamond.Make\n    diamond.SetSize(0.1)\n    diamond.SetAltSize(1)\n    diamond.SetColor(theColor2)\n    diamond.SetColorLock(true)\n    diamond.setoffset(30)\n\n    '** Make the VectorPenScallop\n    Scallop = VectorPenScallop.Make\n    Scallop.SetSize(0.1)\n    Scallop.SetAltSize(1)\n    Scallop.SetColor(theColor1)\n    Scallop.
SetColorLock(true)\n    Scallop.setoffset(30)\n    \n    '** Make the VectorPenScrub\n    Scrub = VectorPenScrub.Make\n    Scrub.SetSize(0.1)\n    Scrub.SetAltSize(1)\n    Scrub.SetColor(theColor1)\n    Scrub.SetColorLock(true)\n    Scrub.setoffset(30)\n    \n    '** Make the VectorPenSlant\n    Slant = VectorPenSlant.Make\n    Slant.SetSize(0.1)\n    Slant.SetAltSize(1)\n    Slant.SetColor(theColor2)\n    Slant.SetColorLock(true)\n    Slant.setoffset(30)\n\n    '** Make the VectorPenZigZag\n    ZigZag = VectorPenZigZag.Make\n 
   ZigZag.SetSize(0.1)\n    ZigZag.SetAltSize(1)\n    ZigZag.SetColor(theColor1)\n    ZigZag.SetColorLock(true)\n    ZigZag.setoffset(30)\n\n    '** Make the first Marker and VectorPenVertexMarker\n    '** This one will be a solid yellow square\n    mrk1 = BasicMarker.Make\n    mrk1.SetStyle(#BASICMARKER_STYLE_PATTERN)\n    mrk1.SetFont(Font.Make(\"ESRI Geometric Symbols\",\"Normal\"))\n\n    mrk1.SetCharacter(37)\n    mrk1.SetColor(Color.GetYellow)\n    mrk1.SetColorLock(true)\n    vpv1 = VectorPenVertexMarker.Make(mrk1)\n   
 vpv1.SetSize(7)\n    \n    '** Make the first Marker and VectorPenVertexMarker\n    '** This one will be a hollow black square\n    mrk2 = BasicMarker.Make\n    mrk2.SetStyle(#BASICMARKER_STYLE_PATTERN)\n    mrk2.SetFont(Font.Make(\"ESRI Geometric Symbols\",\"Normal\"))\n    mrk2.SetCharacter(67)\n    mrk2.SetColor(Color.GetBlack)\n    mrk2.SetColorLock(true)\n    vpv2 = VectorPenVertexMarker.make(mrk2)\n    vpv2.SetSize(7)\n\n\n\n\n    myArrowList = {bln,varrow}\n    myArrowSymList = SymbolList.FromList(myArrowList)\n    myArr
ow = CompositeArcInfoPen.Make(myArrowSymList)\n    aSymList = SymbolList.FromList({bln,vph,vpv1,vpv2})  \n    aCAIP = CompositeArcInfoPen.Make(aSymList)\n\ntheValue = theListBox1.GetSelection\ntheVectorStyleTexts = {theValue,\"Plain\",\"Arrowheads\",\"Dashes\",\"Diamonds\",\"Dots\",\"Hash\",\"Hollow\",\"Scallop\",\"Scrub\",\"Slant\",\"ZigZag\"}\ntheStyleChoices = {bln,varrow,myArrow,dash,diamond,dot,hash,vph,Scallop,Scrub,Slant,ZigZag,aCAIP}\ntheListBox1.DefineFromList(theVectorStyleTexts)\nav.Run(\"LineBuilder.PreviewLine\",nil)"
)

(Script.1179
	Name:	"LineBuilder.LineStyle2"
	SourceCode:	"'LineBuilder.LineStyle\ntheDialog = av.FindDialog(\"LineBuilder\")\ntheListBox1 = theDialog.FindByName(\"ComboBox.LineStyle2\")\n\ntheComboBox = theDialog.FindByName(\"ListBox.LineStylePreview2\")\n'theListBox1.SetRowHeight(500)\n'theListBox1.SetColumnWidth(0.5)\n\ntheComboBox.FitRows(0..(theComboBox.GetRowCount-1),true)\n'theComboBox.FitColumns(0..(theComboBox.GetColumnCount-1),true)\ntheComboBox.SetRowHeight(100)\ntheComboBox.SetColumnWidth(100)\n\n  theColor1 = Color.Make\n  theColor2 = Color.Make\n  TheColor3 = Color.Make\n 
 \n  thered = {255,0,0}\n  theblack = {0,0,0}\n  theyellow = {255,255,0}\n  \n  theColor1.SetRGBList(theRed)\n  theColor2.SetRGBList(theBlack)\n  theColor3.SetRGBList(theYellow)\n\n    '** Make the BasicPen for bottom line\n    bln = BasicPen.Make\n    bln.SetColor(theColor2)\n    bln.SetColorLock(true)\n    bln.SetSize(3)\n\n    '** Make the Dash\n    dash = BasicPen.Make\n    dash.SetSize(3)\n    dash.SetColor(theColor1)\n    dash.SetColorLock(true)\n    dash.SetPattern({8,8})\n    \n    '** Make the VectorPenHollow\n    vph = 
VectorPenHollow.Make\n    vph.SetSize(3)\n    vph.SetAltSize(2)\n    vph.SetColor(theColor1)\n    vph.SetColorLock(true)\n    \n    '** Make the VectorPenArrow\n    varrow = VectorPenArrow.Make\n    varrow.SetSize(0.1)\n    varrow.SetAltSize(0.1)\n    varrow.SetColor(theColor1)\n    varrow.SetColorLock(true)\n    varrow.SetArrowLen(50)\n\n    '** Make the VectorPenDot\n    dot = VectorPenDot.Make\n    dot.SetSize(0.1)\n    dot.SetAltSize(2)\n    dot.SetColor(theColor1)\n    dot.SetColorLock(true)\n\n    '** Make the VectorPenHa
sh\n    hash = VectorPenHash.Make\n    hash.SetSize(0.1)\n    hash.SetAltSize(1)\n    hash.SetColor(theColor2)\n    hash.SetColorLock(true)\n\n    '** Make the VectorPenDiamond\n    diamond = VectorPenDiamond.Make\n    diamond.SetSize(0.1)\n    diamond.SetAltSize(1)\n    diamond.SetColor(theColor2)\n    diamond.SetColorLock(true)\n    diamond.setoffset(30)\n\n    '** Make the VectorPenScallop\n    Scallop = VectorPenScallop.Make\n    Scallop.SetSize(0.1)\n    Scallop.SetAltSize(1)\n    Scallop.SetColor(theColor1)\n    Scallop.
SetColorLock(true)\n    Scallop.setoffset(30)\n    \n    '** Make the VectorPenScrub\n    Scrub = VectorPenScrub.Make\n    Scrub.SetSize(0.1)\n    Scrub.SetAltSize(1)\n    Scrub.SetColor(theColor1)\n    Scrub.SetColorLock(true)\n    Scrub.setoffset(30)\n    \n    '** Make the VectorPenSlant\n    Slant = VectorPenSlant.Make\n    Slant.SetSize(0.1)\n    Slant.SetAltSize(1)\n    Slant.SetColor(theColor2)\n    Slant.SetColorLock(true)\n    Slant.setoffset(30)\n\n    '** Make the VectorPenZigZag\n    ZigZag = VectorPenZigZag.Make\n 
   ZigZag.SetSize(0.1)\n    ZigZag.SetAltSize(1)\n    ZigZag.SetColor(theColor1)\n    ZigZag.SetColorLock(true)\n    ZigZag.setoffset(30)\n\n    '** Make the first Marker and VectorPenVertexMarker\n    '** This one will be a solid yellow square\n    mrk1 = BasicMarker.Make\n    mrk1.SetStyle(#BASICMARKER_STYLE_PATTERN)\n    mrk1.SetFont(Font.Make(\"ESRI Geometric Symbols\",\"Normal\"))\n\n    mrk1.SetCharacter(37)\n    mrk1.SetColor(Color.GetYellow)\n    mrk1.SetColorLock(true)\n    vpv1 = VectorPenVertexMarker.Make(mrk1)\n   
 vpv1.SetSize(7)\n    \n    '** Make the first Marker and VectorPenVertexMarker\n    '** This one will be a hollow black square\n    mrk2 = BasicMarker.Make\n    mrk2.SetStyle(#BASICMARKER_STYLE_PATTERN)\n    mrk2.SetFont(Font.Make(\"ESRI Geometric Symbols\",\"Normal\"))\n    mrk2.SetCharacter(67)\n    mrk2.SetColor(Color.GetBlack)\n    mrk2.SetColorLock(true)\n    vpv2 = VectorPenVertexMarker.make(mrk2)\n    vpv2.SetSize(7)\n\n\n\n\n    myArrowList = {bln,varrow}\n    myArrowSymList = SymbolList.FromList(myArrowList)\n    myArr
ow = CompositeArcInfoPen.Make(myArrowSymList)\n    aSymList = SymbolList.FromList({bln,vph,vpv1,vpv2})  \n    aCAIP = CompositeArcInfoPen.Make(aSymList)\n\ntheValue = theListBox1.GetSelection\ntheVectorStyleTexts = {theValue,\"Plain\",\"Arrowheads\",\"Dashes\",\"Diamonds\",\"Dots\",\"Hash\",\"Hollow\",\"Scallop\",\"Scrub\",\"Slant\",\"ZigZag\"}\ntheStyleChoices = {bln,varrow,myArrow,dash,diamond,dot,hash,vph,Scallop,Scrub,Slant,ZigZag,aCAIP}\n\ntheListBox1.DefineFromList(theVectorStyleTexts)\nav.Run(\"LineBuilder.PreviewLine\",nil)\n"
)

(Script.1180
	Name:	"LineBuilder.LineStyle3"
	SourceCode:	"'LineBuilder.LineStyle\ntheDialog = av.FindDialog(\"LineBuilder\")\ntheListBox1 = theDialog.FindByName(\"ComboBox.LineStyle3\")\n\ntheComboBox = theDialog.FindByName(\"ListBox.LineStylePreview3\")\n'theListBox1.SetRowHeight(500)\n'theListBox1.SetColumnWidth(0.5)\n\ntheComboBox.FitRows(0..(theComboBox.GetRowCount-1),true)\n'theComboBox.FitColumns(0..(theComboBox.GetColumnCount-1),true)\ntheComboBox.SetRowHeight(100)\ntheComboBox.SetColumnWidth(100)\n\n  theColor1 = Color.Make\n  theColor2 = Color.Make\n  TheColor3 = Color.Make\n 
 \n  thered = {255,0,0}\n  theblack = {0,0,0}\n  theyellow = {255,255,0}\n  \n  theColor1.SetRGBList(theRed)\n  theColor2.SetRGBList(theBlack)\n  theColor3.SetRGBList(theYellow)\n\n    '** Make the BasicPen for bottom line\n    bln = BasicPen.Make\n    bln.SetColor(theColor2)\n    bln.SetColorLock(true)\n    bln.SetSize(3)\n\n    '** Make the Dash\n    dash = BasicPen.Make\n    dash.SetSize(3)\n    dash.SetColor(theColor1)\n    dash.SetColorLock(true)\n    dash.SetPattern({8,8})\n    \n    '** Make the VectorPenHollow\n    vph = 
VectorPenHollow.Make\n    vph.SetSize(3)\n    vph.SetAltSize(2)\n    vph.SetColor(theColor1)\n    vph.SetColorLock(true)\n    \n    '** Make the VectorPenArrow\n    varrow = VectorPenArrow.Make\n    varrow.SetSize(0.1)\n    varrow.SetAltSize(0.1)\n    varrow.SetColor(theColor1)\n    varrow.SetColorLock(true)\n    varrow.SetArrowLen(50)\n\n    '** Make the VectorPenDot\n    dot = VectorPenDot.Make\n    dot.SetSize(0.1)\n    dot.SetAltSize(2)\n    dot.SetColor(theColor1)\n    dot.SetColorLock(true)\n\n    '** Make the VectorPenHa
sh\n    hash = VectorPenHash.Make\n    hash.SetSize(0.1)\n    hash.SetAltSize(1)\n    hash.SetColor(theColor2)\n    hash.SetColorLock(true)\n\n    '** Make the VectorPenDiamond\n    diamond = VectorPenDiamond.Make\n    diamond.SetSize(0.1)\n    diamond.SetAltSize(1)\n    diamond.SetColor(theColor2)\n    diamond.SetColorLock(true)\n    diamond.setoffset(30)\n\n    '** Make the VectorPenScallop\n    Scallop = VectorPenScallop.Make\n    Scallop.SetSize(0.1)\n    Scallop.SetAltSize(1)\n    Scallop.SetColor(theColor1)\n    Scallop.
SetColorLock(true)\n    Scallop.setoffset(30)\n    \n    '** Make the VectorPenScrub\n    Scrub = VectorPenScrub.Make\n    Scrub.SetSize(0.1)\n    Scrub.SetAltSize(1)\n    Scrub.SetColor(theColor1)\n    Scrub.SetColorLock(true)\n    Scrub.setoffset(30)\n    \n    '** Make the VectorPenSlant\n    Slant = VectorPenSlant.Make\n    Slant.SetSize(0.1)\n    Slant.SetAltSize(1)\n    Slant.SetColor(theColor2)\n    Slant.SetColorLock(true)\n    Slant.setoffset(30)\n\n    '** Make the VectorPenZigZag\n    ZigZag = VectorPenZigZag.Make\n 
   ZigZag.SetSize(0.1)\n    ZigZag.SetAltSize(1)\n    ZigZag.SetColor(theColor1)\n    ZigZag.SetColorLock(true)\n    ZigZag.setoffset(30)\n\n    '** Make the first Marker and VectorPenVertexMarker\n    '** This one will be a solid yellow square\n    mrk1 = BasicMarker.Make\n    mrk1.SetStyle(#BASICMARKER_STYLE_PATTERN)\n    mrk1.SetFont(Font.Make(\"ESRI Geometric Symbols\",\"Normal\"))\n\n    mrk1.SetCharacter(37)\n    mrk1.SetColor(Color.GetYellow)\n    mrk1.SetColorLock(true)\n    vpv1 = VectorPenVertexMarker.Make(mrk1)\n   
 vpv1.SetSize(7)\n    \n    '** Make the first Marker and VectorPenVertexMarker\n    '** This one will be a hollow black square\n    mrk2 = BasicMarker.Make\n    mrk2.SetStyle(#BASICMARKER_STYLE_PATTERN)\n    mrk2.SetFont(Font.Make(\"ESRI Geometric Symbols\",\"Normal\"))\n    mrk2.SetCharacter(67)\n    mrk2.SetColor(Color.GetBlack)\n    mrk2.SetColorLock(true)\n    vpv2 = VectorPenVertexMarker.make(mrk2)\n    vpv2.SetSize(7)\n\n\n\n\n    myArrowList = {bln,varrow}\n    myArrowSymList = SymbolList.FromList(myArrowList)\n    myArr
ow = CompositeArcInfoPen.Make(myArrowSymList)\n    aSymList = SymbolList.FromList({bln,vph,vpv1,vpv2})  \n    aCAIP = CompositeArcInfoPen.Make(aSymList)\n\ntheValue = theListBox1.GetSelection\ntheVectorStyleTexts = {theValue,\"Plain\",\"Arrowheads\",\"Dashes\",\"Diamonds\",\"Dots\",\"Hash\",\"Hollow\",\"Scallop\",\"Scrub\",\"Slant\",\"ZigZag\"}\ntheStyleChoices = {bln,varrow,myArrow,dash,diamond,dot,hash,vph,Scallop,Scrub,Slant,ZigZag,aCAIP}\n\ntheListBox1.DefineFromList(theVectorStyleTexts)\n\nav.Run(\"LineBuilder.PreviewLine\",nil)"
)

(Script.1181
	Name:	"LineBuilder.LineStylePreview1"
	SourceCode:	"'LineBuilder.LineStylePreview\ntheDialog = av.FindDialog(\"LineBuilder\")\ntheListBox1 = theDialog.FindByName(\"ComboBox.LineStyle1\")\n\ntheValue = theListBox1.GetCurrentValue\nB = theListBox1.GoFirst\nif (B = False) then theValue = \"Plain\" end\n\ntheWidthBox = theDialog.FindByName(\"ComboBox.Width\")\n\ntheWidth1Box = theDialog.FindByName(\"ComboBox.Line1Width\")\n \n \ntheTotalLineWidth = theWidth1Box.GetSelection\nA = theWidth1Box.GoFirst\nif (A = False) then theTotalLineWidth = 4 end\ntheOutlineWidth = theTotalLineWidth \ntheA
ltOutlineWidth = theTotalLineWidth - 1\ntheCenterlineWidth = 1\n\n\n  theColor1 = Color.Make\n  theColor2 = Color.Make\n  TheColor3 = Color.Make\n  \n  thered = {0,0,0}\n  theblack = {0,0,0}\n  theyellow = {255,255,0}\n  \n  theRedBox1 = theDialog.FindByName(\"TextLine.Red\")\n  theGreenBox1 = theDialog.FindByName(\"TextLine.Green\")\n  theBlueBox1 = theDialog.FindByName(\"TextLine.Blue\")\n\n  \n  red1 = theRedBox1.GetText.AsNumber\n  green1 = theGreenBox1.GetText.AsNumber\n  blue1 = theBlueBox1.GetText.AsNumber\n  \n  theColor = {r
ed1,green1,blue1}\n  \n  theColor1.SetRGBList(theColor)\n  theColor2.SetRGBList(theBlack)\n  theColor3.SetRGBList(theYellow)\n\n\n    '** Make the BasicPen for bottom line\n    bln = BasicPen.Make\n    bln.SetColor(theColor1)\n    bln.SetColorLock(true)\n    bln.SetSize(theTotalLineWidth)\n    \n    '** Make the BasicPen for arrow\n    arrowLine = BasicPen.Make\n    arrowLine.SetColor(theColor1)\n    arrowLine.SetColorLock(true)\n    arrowLine.SetSize(theTotalLineWidth)\n\n    '** Make the Dash\n    dash = BasicPen.Make\n    da
sh.SetSize(theTotalLineWidth)\n    dash.SetColor(theColor1)\n    dash.SetColorLock(true)\n    dash.SetPattern({8.64,8.64})\n    \n    '** Make the VectorPenHollow\n    vph = VectorPenHollow.Make\n    vph.SetSize(theTotalLineWidth)\n    vph.SetAltSize(theAltOutlineWidth)\n    vph.SetColor(theColor1)\n    vph.SetColorLock(true)\n    \n    '** Make the VectorPenArrow\n    varrow = VectorPenArrow.Make\n    varrow.SetSize(theTotalLineWidth)\n    varrow.SetAltSize(0.1)\n    varrow.SetColor(theColor1)\n    varrow.SetColorLock(true
)\n    varrow.SetArrowLen(50)\n\n    '** Make the VectorPenDot\n    dot = VectorPenDot.Make\n    dot.SetSize(theTotalLineWidth)\n    dot.SetAltSize(2)\n    dot.SetColor(theColor1)\n    dot.SetColorLock(true)\n\n    '** Make the VectorPenHash\n    hash = VectorPenHash.Make\n    hash.SetSize(theTotalLineWidth)\n    hash.SetAltSize(1)\n    hash.SetColor(theColor1)\n    hash.SetColorLock(true)\n\n    '** Make the VectorPenDiamond\n    diamond = VectorPenDiamond.Make\n    diamond.SetSize(theTotalLineWidth)\n    diamond.SetAltSize(1
)\n    diamond.SetColor(theColor1)\n    diamond.SetColorLock(true)\n    diamond.setoffset(30)\n\n    '** Make the VectorPenScallop\n    Scallop = VectorPenScallop.Make\n    Scallop.SetSize(theTotalLineWidth)\n    Scallop.SetAltSize(1)\n    Scallop.SetColor(theColor1)\n    Scallop.SetColorLock(true)\n    Scallop.setoffset(30)\n    \n    '** Make the VectorPenScrub\n    Scrub = VectorPenScrub.Make\n    Scrub.SetSize(theTotalLineWidth)\n    Scrub.SetAltSize(1)\n    Scrub.SetColor(theColor1)\n    Scrub.SetColorLock(true)\n    Scr
ub.setoffset(30)\n    \n    '** Make the VectorPenSlant\n    Slant = VectorPenSlant.Make\n    Slant.SetSize(theTotalLineWidth)\n    Slant.SetAltSize(1)\n    Slant.SetColor(theColor1)\n    Slant.SetColorLock(true)\n    Slant.setoffset(30)\n\n    '** Make the VectorPenZigZag\n    ZigZag = VectorPenZigZag.Make\n    ZigZag.SetSize(theTotalLineWidth)\n    ZigZag.SetAltSize(1)\n    ZigZag.SetColor(theColor1)\n    ZigZag.SetColorLock(true)\n    ZigZag.setoffset(30)\n\n    '** Make the first Marker and VectorPenVertexMarker\n    '** 
This one will be a solid yellow square\n    mrk1 = BasicMarker.Make\n    mrk1.SetStyle(#BASICMARKER_STYLE_PATTERN)\n    mrk1.SetFont(Font.Make(\"ESRI Geometric Symbols\",\"Normal\"))\n\n    mrk1.SetCharacter(37)\n    mrk1.SetColor(Color.GetYellow)\n    mrk1.SetColorLock(true)\n    vpv1 = VectorPenVertexMarker.Make(mrk1)\n    vpv1.SetSize(7)\n    \n    '** Make the first Marker and VectorPenVertexMarker\n    '** This one will be a hollow black square\n    mrk2 = BasicMarker.Make\n    mrk2.SetStyle(#BASICMARKER_STYLE_PATTERN)\n
    mrk2.SetFont(Font.Make(\"ESRI Geometric Symbols\",\"Normal\"))\n    mrk2.SetCharacter(67)\n    mrk2.SetColor(Color.GetBlack)\n    mrk2.SetColorLock(true)\n    vpv2 = VectorPenVertexMarker.make(mrk2)\n    vpv2.SetSize(7)\n\n\n\n\n    myArrowList = {arrowLine,varrow}\n    myArrowSymList = SymbolList.FromList(myArrowList)\n    myArrow = CompositeArcInfoPen.Make(myArrowSymList)\n    aSymList = SymbolList.FromList({bln,vph,vpv1,vpv2})  \n    aCAIP = CompositeArcInfoPen.Make(aSymList)\n\ntheVectorStyleTexts = {\"Plain\",\"Arrowhead
s\",\"Dashes\",\"Diamonds\",\"Dots\",\"Hash\",\"Hollow\",\"Scallop\",\"Scrub\",\"Slant\",\"ZigZag\"}\ntheStyleChoices = {bln,varrow,myArrow,dash,diamond,dot,hash,vph,Scallop,Scrub,Slant,ZigZag,aCAIP}\n\n  if (theValue = \"Plain\") then\n    theSymbol = {bln}\n  elseif (theValue = \"Arrowheads\") then\n    theSymbol = {varrow}\n  elseif (theValue = \"Dashes\") then\n    theSymbol = {dash}\n  elseif (theValue = \"Diamonds\") then\n    theSymbol = {diamond}\n  elseif (theValue = \"Dots\") then\n    theSymbol = {dot}\n  elseif (theValue = \"Hash\") then\n
    theSymbol = {hash}\n  elseif (theValue = \"Hollow\") then\n    theSymbol = {vph}\n  elseif (theValue = \"Markers\") then\n    theSymbol = {aCAIP}\n  elseif (theValue = \"Scallop\") then\n    theSymbol = {scallop}\n  elseif (theValue = \"Scrub\") then\n    theSymbol = {scrub}\n  elseif (theValue = \"Slant\") then\n    theSymbol = {slant}\n  'elseif (theValue = \"Vertex Marker\") then\n  '  theSymbol = {vmarker}\n  elseif (theValue = \"ZigZag\") then\n    theSymbol = {ZigZag}\n  end\n  \n\ntheComboBox = theDialog.FindByName(\"ListBox.Lin
eStylePreview1\")\ntheComboBox.Empty\ntheComboBox.DefineFromList(theSymbol)\ntheComboBox.FitRows(0..(theComboBox.GetRowCount-1),true)\ntheComboBox.FitColumns(0..(theComboBox.GetColumnCount-1),true)\ntheComboBox.SetRowHeight(100)\ntheComboBox.SetColumnWidth(1000)\n\nav.Run(\"LineBuilder.PreviewLine\",nil)\n"
)

(Script.1182
	Name:	"LineBuilder.LineStylePreview2"
	SourceCode:	"'LineBuilder.LineStylePreview\ntheDialog = av.FindDialog(\"LineBuilder\")\ntheListBox1 = theDialog.FindByName(\"ComboBox.LineStyle2\")\n\ntheValue = theListBox1.GetCurrentValue\nB = theListBox1.GoFirst\nif (B = False) then theValue = \"Plain\" end\n\ntheWidth2Box = theDialog.FindByName(\"ComboBox.Line2Width\")\ntheTotalLineWidth = theWidth2Box.GetSelection\nA = theWidth2Box.GoFirst\nif (A = False) then theTotalLineWidth = 4 end\n\ntheOutlineWidth = theTotalLineWidth\ntheAltOutlineWidth = theTotalLineWidth - 1\ntheCenterlineWidth 
= 1\n\n\n\n'theValue = theListBox1.GetCurrentValue\n\n  theColor1 = Color.Make\n  theColor2 = Color.Make\n  TheColor3 = Color.Make\n  \n  thered = {0,0,0}\n  theblack = {0,0,0}\n  theyellow = {255,255,0}\n  \n  theRedBox2 = theDialog.FindByName(\"TextLine.Red2\")\n  theGreenBox2 = theDialog.FindByName(\"TextLine.Green2\")\n  theBlueBox2 = theDialog.FindByName(\"TextLine.Blue2\")\n\n  \n  red2 = theRedBox2.GetText.AsNumber\n  green2 = theGreenBox2.GetText.AsNumber\n  blue2 = theBlueBox2.GetText.AsNumber\n  \n  theColor = {red2,green2,bl
ue2}\n  \n  theColor1.SetRGBList(theColor)\n\n\n  theColor2.SetRGBList(theBlack)\n  theColor3.SetRGBList(theYellow)\n\n\n    '** Make the BasicPen for bottom line\n    bln = BasicPen.Make\n    bln.SetColor(theColor1)\n    bln.SetColorLock(true)\n    bln.SetSize(theTotalLineWidth)\n\n    '** Make the Dash\n    dash = BasicPen.Make\n    dash.SetSize(theTotalLineWidth)\n    dash.SetColor(theColor1)\n    dash.SetColorLock(true)\n    dash.SetPattern({8.64,8.64})\n    \n    '** Make the BasicPen for arrow\n    arrowLine = BasicPen.Make
\n    arrowLine.SetColor(theColor1)\n    arrowLine.SetColorLock(true)\n    arrowLine.SetSize(theTotalLineWidth)\n\n    \n    '** Make the VectorPenHollow\n    vph = VectorPenHollow.Make\n    vph.SetSize(theTotalLineWidth)\n    vph.SetAltSize(2)\n    vph.SetColor(theColor1)\n    vph.SetColorLock(true)\n    \n    '** Make the VectorPenArrow\n    varrow = VectorPenArrow.Make\n    varrow.SetSize(0.1)\n    varrow.SetAltSize(0.1)\n    varrow.SetColor(theColor1)\n    varrow.SetColorLock(true)\n    varrow.SetArrowLen(50)\n\n    '** Mak
e the VectorPenDot\n    dot = VectorPenDot.Make\n    dot.SetSize(theTotalLineWidth)\n    dot.SetAltSize(2)\n    dot.SetColor(theColor1)\n    dot.SetColorLock(true)\n\n    '** Make the VectorPenHash\n    hash = VectorPenHash.Make\n    hash.SetSize(theTotalLineWidth)\n    hash.SetAltSize(1)\n    hash.SetColor(theColor1)\n    hash.SetColorLock(true)\n\n    '** Make the VectorPenDiamond\n    diamond = VectorPenDiamond.Make\n    diamond.SetSize(theTotalLineWidth)\n    diamond.SetAltSize(1)\n    diamond.SetColor(theColor1)\n    dia
mond.SetColorLock(true)\n    diamond.setoffset(30)\n\n    '** Make the VectorPenScallop\n    Scallop = VectorPenScallop.Make\n    Scallop.SetSize(theTotalLineWidth)\n    Scallop.SetAltSize(1)\n    Scallop.SetColor(theColor1)\n    Scallop.SetColorLock(true)\n    Scallop.setoffset(30)\n    \n    '** Make the VectorPenScrub\n    Scrub = VectorPenScrub.Make\n    Scrub.SetSize(theTotalLineWidth)\n    Scrub.SetAltSize(1)\n    Scrub.SetColor(theColor1)\n    Scrub.SetColorLock(true)\n    Scrub.setoffset(30)\n    \n    '** Make the Ve
ctorPenSlant\n    Slant = VectorPenSlant.Make\n    Slant.SetSize(theTotalLineWidth)\n    Slant.SetAltSize(1)\n    Slant.SetColor(theColor1)\n    Slant.SetColorLock(true)\n    Slant.setoffset(30)\n\n    '** Make the VectorPenZigZag\n    ZigZag = VectorPenZigZag.Make\n    ZigZag.SetSize(theTotalLineWidth)\n    ZigZag.SetAltSize(1)\n    ZigZag.SetColor(theColor1)\n    ZigZag.SetColorLock(true)\n    ZigZag.setoffset(30)\n\n    '** Make the first Marker and VectorPenVertexMarker\n    '** This one will be a solid yellow square\n  
  mrk1 = BasicMarker.Make\n    mrk1.SetStyle(#BASICMARKER_STYLE_PATTERN)\n    mrk1.SetFont(Font.Make(\"ESRI Geometric Symbols\",\"Normal\"))\n\n    mrk1.SetCharacter(37)\n    mrk1.SetColor(Color.GetYellow)\n    mrk1.SetColorLock(true)\n    vpv1 = VectorPenVertexMarker.Make(mrk1)\n    vpv1.SetSize(7)\n    \n    '** Make the first Marker and VectorPenVertexMarker\n    '** This one will be a hollow black square\n    mrk2 = BasicMarker.Make\n    mrk2.SetStyle(#BASICMARKER_STYLE_PATTERN)\n    mrk2.SetFont(Font.Make(\"ESRI Geometri
c Symbols\",\"Normal\"))\n    mrk2.SetCharacter(67)\n    mrk2.SetColor(Color.GetBlack)\n    mrk2.SetColorLock(true)\n    vpv2 = VectorPenVertexMarker.make(mrk2)\n    vpv2.SetSize(7)\n\n\n\n\n    myArrowList = {arrowLine,varrow}\n    myArrowSymList = SymbolList.FromList(myArrowList)\n    myArrow = CompositeArcInfoPen.Make(myArrowSymList)\n    aSymList = SymbolList.FromList({bln,vph,vpv1,vpv2})  \n    aCAIP = CompositeArcInfoPen.Make(aSymList)\n\ntheVectorStyleTexts = {\"Plain\",\"Arrowheads\",\"Dashes\",\"Diamonds\",\"Dots\",\"Hash\",\"Hol
low\",\"Scallop\",\"Scrub\",\"Slant\",\"ZigZag\"}\ntheStyleChoices = {bln,varrow,myArrow,dash,diamond,dot,hash,vph,Scallop,Scrub,Slant,ZigZag,aCAIP}\n\n  if (theValue = \"Plain\") then\n    theSymbol = {bln}\n  elseif (theValue = \"Arrowheads\") then\n    theSymbol = {varrow}\n  elseif (theValue = \"Dashes\") then\n    theSymbol = {dash}\n  elseif (theValue = \"Diamonds\") then\n    theSymbol = {diamond}\n  elseif (theValue = \"Dots\") then\n    theSymbol = {dot}\n  elseif (theValue = \"Hash\") then\n    theSymbol = {hash}\n  elseif (theValue
 = \"Hollow\") then\n    theSymbol = {vph}\n  elseif (theValue = \"Markers\") then\n    theSymbol = {aCAIP}\n  elseif (theValue = \"Scallop\") then\n    theSymbol = {scallop}\n  elseif (theValue = \"Scrub\") then\n    theSymbol = {scrub}\n  elseif (theValue = \"Slant\") then\n    theSymbol = {slant}\n  'elseif (theValue = \"Vertex Marker\") then\n  '  theSymbol = {vmarker}\n  elseif (theValue = \"ZigZag\") then\n    theSymbol = {ZigZag}\n  end\n  \n\ntheComboBox = theDialog.FindByName(\"ListBox.LineStylePreview2\")\ntheComboBox.Empty\ntheCom
boBox.DefineFromList(theSymbol)\ntheComboBox.FitRows(0..(theComboBox.GetRowCount-1),true)\ntheComboBox.FitColumns(0..(theComboBox.GetColumnCount-1),true)\ntheComboBox.SetRowHeight(100)\ntheComboBox.SetColumnWidth(1000)\n\nav.Run(\"LineBuilder.PreviewLine\",nil)\n"
)

(Script.1183
	Name:	"LineBuilder.LineStylePreview3"
	SourceCode:	"'LineBuilder.LineStylePreview\ntheDialog = av.FindDialog(\"LineBuilder\")\ntheListBox1 = theDialog.FindByName(\"ComboBox.LineStyle3\")\n\ntheValue = theListBox1.GetCurrentValue\nB = theListBox1.GoFirst\nif (B = False) then theValue = \"Plain\" end\n\n\ntheWidth3Box = theDialog.FindByName(\"ComboBox.Line3Width\")\ntheTotalLineWidth = theWidth3Box.GetSelection\nA = theWidth3Box.GoFirst\nif (A = False) then theTotalLineWidth = 4 end\ntheOutlineWidth = theTotalLineWidth\ntheAltOutlineWidth = theTotalLineWidth - 1\ntheCenterlineWidth 
= 1\n\n'theValue = theListBox1.GetCurrentValue\n\n  theColor1 = Color.Make\n  theColor2 = Color.Make\n  TheColor3 = Color.Make\n  \n  thered = {0,0,0}\n  theblack = {0,0,0}\n  theyellow = {255,255,0}\n  \n  theRedBox3 = theDialog.FindByName(\"TextLine.Red3\")\n  theGreenBox3 = theDialog.FindByName(\"TextLine.Green3\")\n  theBlueBox3 = theDialog.FindByName(\"TextLine.Blue3\")\n  \n  red3 = theRedBox3.GetText.AsNumber\n  green3 = theGreenBox3.GetText.AsNumber\n  blue3 = theBlueBox3.GetText.AsNumber\n  \n  theColor = {red3,green3,blue3
}\n  \n  theColor1.SetRGBList(theColor)\n  theColor2.SetRGBList(theBlack)\n  theColor3.SetRGBList(theYellow)\n\n    '** Make the BasicPen for bottom line\n    bln = BasicPen.Make\n    bln.SetColor(theColor1)\n    bln.SetColorLock(true)\n    bln.SetSize(theTotalLineWidth)\n    \n    '** Make the BasicPen for arrow\n    arrowLine = BasicPen.Make\n    arrowLine.SetColor(theColor1)\n    arrowLine.SetColorLock(true)\n    arrowLine.SetSize(theTotalLineWidth)\n\n    '** Make the Dash\n    dash = BasicPen.Make\n    dash.SetSize(theTot
alLineWidth)\n    dash.SetColor(theColor1)\n    dash.SetColorLock(true)\n    dash.SetPattern({8.64,8.64})\n    \n    '** Make the VectorPenHollow\n    vph = VectorPenHollow.Make\n    vph.SetSize(theTotalLineWidth)\n    vph.SetAltSize(2)\n    vph.SetColor(theColor1)\n    vph.SetColorLock(true)\n    \n    '** Make the VectorPenArrow\n    varrow = VectorPenArrow.Make\n    varrow.SetSize(theTotalLineWidth)\n    varrow.SetAltSize(0.1)\n    varrow.SetColor(theColor1)\n    varrow.SetColorLock(true)\n    varrow.SetArrowLen(50)\n\n    
'** Make the VectorPenDot\n    dot = VectorPenDot.Make\n    dot.SetSize(theTotalLineWidth)\n    dot.SetAltSize(2)\n    dot.SetColor(theColor1)\n    dot.SetColorLock(true)\n\n    '** Make the VectorPenHash\n    hash = VectorPenHash.Make\n    hash.SetSize(theTotalLineWidth)\n    hash.SetAltSize(1)\n    hash.SetColor(theColor1)\n    hash.SetColorLock(true)\n\n    '** Make the VectorPenDiamond\n    diamond = VectorPenDiamond.Make\n    diamond.SetSize(theTotalLineWidth)\n    diamond.SetAltSize(1)\n    diamond.SetColor(theColor1)\n
    diamond.SetColorLock(true)\n    diamond.setoffset(30)\n\n    '** Make the VectorPenScallop\n    Scallop = VectorPenScallop.Make\n    Scallop.SetSize(theTotalLineWidth)\n    Scallop.SetAltSize(1)\n    Scallop.SetColor(theColor1)\n    Scallop.SetColorLock(true)\n    Scallop.setoffset(30)\n    \n    '** Make the VectorPenScrub\n    Scrub = VectorPenScrub.Make\n    Scrub.SetSize(theTotalLineWidth)\n    Scrub.SetAltSize(1)\n    Scrub.SetColor(theColor1)\n    Scrub.SetColorLock(true)\n    Scrub.setoffset(30)\n    \n    '** Make
 the VectorPenSlant\n    Slant = VectorPenSlant.Make\n    Slant.SetSize(theTotalLineWidth)\n    Slant.SetAltSize(1)\n    Slant.SetColor(theColor1)\n    Slant.SetColorLock(true)\n    Slant.setoffset(30)\n\n    '** Make the VectorPenZigZag\n    ZigZag = VectorPenZigZag.Make\n    ZigZag.SetSize(theTotalLineWidth)\n    ZigZag.SetAltSize(1)\n    ZigZag.SetColor(theColor1)\n    ZigZag.SetColorLock(true)\n    ZigZag.setoffset(30)\n\n    '** Make the first Marker and VectorPenVertexMarker\n    '** This one will be a solid yellow sq
uare\n    mrk1 = BasicMarker.Make\n    mrk1.SetStyle(#BASICMARKER_STYLE_PATTERN)\n    mrk1.SetFont(Font.Make(\"ESRI Geometric Symbols\",\"Normal\"))\n\n    mrk1.SetCharacter(37)\n    mrk1.SetColor(Color.GetYellow)\n    mrk1.SetColorLock(true)\n    vpv1 = VectorPenVertexMarker.Make(mrk1)\n    vpv1.SetSize(7)\n    \n    '** Make the first Marker and VectorPenVertexMarker\n    '** This one will be a hollow black square\n    mrk2 = BasicMarker.Make\n    mrk2.SetStyle(#BASICMARKER_STYLE_PATTERN)\n    mrk2.SetFont(Font.Make(\"ESRI G
eometric Symbols\",\"Normal\"))\n    mrk2.SetCharacter(67)\n    mrk2.SetColor(Color.GetBlack)\n    mrk2.SetColorLock(true)\n    vpv2 = VectorPenVertexMarker.make(mrk2)\n    vpv2.SetSize(7)\n\n\n\n\n    myArrowList = {arrowLine,varrow}\n    myArrowSymList = SymbolList.FromList(myArrowList)\n    myArrow = CompositeArcInfoPen.Make(myArrowSymList)\n    aSymList = SymbolList.FromList({bln,vph,vpv1,vpv2})  \n    aCAIP = CompositeArcInfoPen.Make(aSymList)\n\ntheVectorStyleTexts = {\"Plain\",\"Arrowheads\",\"Dashes\",\"Diamonds\",\"Dots\",\"Has
h\",\"Hollow\",\"Scallop\",\"Scrub\",\"Slant\",\"ZigZag\"}\ntheStyleChoices = {bln,varrow,myArrow,dash,diamond,dot,hash,vph,Scallop,Scrub,Slant,ZigZag,aCAIP}\n\n  if (theValue = \"Plain\") then\n    theSymbol = {bln}\n  elseif (theValue = \"Dashes\") then\n    theSymbol = {dash}\n  elseif (theValue = \"Arrowheads\") then\n    theSymbol = {varrow}\n  elseif (theValue = \"Diamonds\") then\n    theSymbol = {diamond}\n  elseif (theValue = \"Dots\") then\n    theSymbol = {dot}\n  elseif (theValue = \"Hash\") then\n    theSymbol = {hash}\n  elseif (t
heValue = \"Hollow\") then\n    theSymbol = {vph}\n  elseif (theValue = \"Markers\") then\n    theSymbol = {aCAIP}\n  elseif (theValue = \"Scallop\") then\n    theSymbol = {scallop}\n  elseif (theValue = \"Scrub\") then\n    theSymbol = {scrub}\n  elseif (theValue = \"Slant\") then\n    theSymbol = {slant}\n  'elseif (theValue = \"Vertex Marker\") then\n  '  theSymbol = {vmarker}\n  elseif (theValue = \"ZigZag\") then\n    theSymbol = {ZigZag}\n  end\n  \n\ntheComboBox = theDialog.FindByName(\"ListBox.LineStylePreview3\")\ntheComboBox.Empty
\ntheComboBox.DefineFromList(theSymbol)\ntheComboBox.FitRows(0..(theComboBox.GetRowCount-1),true)\ntheComboBox.FitColumns(0..(theComboBox.GetColumnCount-1),true)\ntheComboBox.SetRowHeight(100)\ntheComboBox.SetColumnWidth(1000)\n\nav.Run(\"LineBuilder.PreviewLine\",nil)"
)

(Script.1184
	Name:	"LineBuilder.Open"
	SourceCode:	"'LineBuilder.Open\ntheSymWin = av.GetSymbolWin \ntheSymWin.Open\ntheSymWin.SetPanel(#SYMBOLWIN_PANEL_PEN)\n\ntheLineBut3 = self.FindByName(\"RadBut_3line\")\ntheLineBut3.Click\ntheLineBut3.Select\n\nthePresetsBox = self.FindByName(\"ComboBox.LinePresets\")\nthePresetsBox.Empty\ntheCurrent = \"None\"\nthePresetsList = {theCurrent,\"State Hwy\",\"State Hwy 2\",\"Interstate Hwy\",\"Railroad 1\",\"Railroad 2\",\"Bungie\"}\nthePresetsBox.DefineFromList(thePresetsList)\n\ntheWidth1Box = self.FindByName(\"ComboBox.Line1Width\")\ntheWidth1Box.Empty\nt
heVisible = (4)\ntheWidth1List = {theVisible,0.1,0.5,1,2,3,4,5,6,7,8,9,10,12,15,20}\ntheWidth1Box.DefineFromList(theWidth1List)\ntheWidth1Box.SetCurrentValue(theWidth1List.Get(6))\n\ntheWidth2Box = self.FindByName(\"ComboBox.Line2Width\")\ntheWidth2Box.Empty\ntheVisible = (4)\ntheWidth2List = {theVisible,0.1,0.5,1,2,3,4,5,6,7,8,9,10,12,15,20}\ntheWidth2Box.DefineFromList(theWidth2List)\ntheWidth2Box.SetCurrentValue(theWidth2List.Get(6))\n\ntheStyleBox2 = self.FindByName(\"ComboBox.LineStyle2\")\ntheVisible = (\"Hollow\")\ntheV
ectorStyleTexts = {theVisible,\"Plain\",\"Arrowheads\",\"Dashes\",\"Diamonds\",\"Dots\",\"Hash\",\"Hollow\",\"Scallop\",\"Scrub\",\"Slant\",\"ZigZag\"}\ntheStyleBox2.DefineFromList(theVectorStyleTexts)\ntheStyleBox2.SetCurrentValue(theVectorStyleTexts.Get(6))\n\ntheStyleBox1 = self.FindByName(\"ComboBox.LineStyle1\")\ntheVisible = (\"Hollow\")\ntheVectorStyleTexts = {theVisible,\"Plain\",\"Arrowheads\",\"Dashes\",\"Diamonds\",\"Dots\",\"Hash\",\"Hollow\",\"Scallop\",\"Scrub\",\"Slant\",\"ZigZag\"}\ntheStyleBox1.DefineFromList(theVectorStyleTexts)\ntheStyleBox1.S
etCurrentValue(theVectorStyleTexts.Get(5))\n\ntheStyleBox3 = self.FindByName(\"ComboBox.LineStyle3\")\ntheVisible = (\"Hollow\")\ntheVectorStyleTexts = {theVisible,\"Plain\",\"Arrowheads\",\"Dashes\",\"Diamonds\",\"Dots\",\"Hash\",\"Hollow\",\"Scallop\",\"Scrub\",\"Slant\",\"ZigZag\"}\ntheStyleBox3.DefineFromList(theVectorStyleTexts)\ntheStyleBox3.SetCurrentValue(theVectorStyleTexts.Get(4))\n\ntheWidth3Box = self.FindByName(\"ComboBox.Line3Width\")\ntheWidth3Box.Empty\ntheVisible = (4)\ntheWidth3List = {theVisible,0.1,0.5,1,2,3,4,5,6,7,8,9,10,12
,15,20}\ntheWidth3Box.DefineFromList(theWidth3List)\ntheWidth3Box.SetCurrentValue(theWidth3List.Get(6))\n\n\ntheRedBox1 = self.FindByName(\"TextLine.Red\")\ntheGreenBox1 = self.FindByName(\"TextLine.Green\")\ntheBlueBox1 = self.FindByName(\"TextLine.Blue\")\ntheRedBox2 = self.FindByName(\"TextLine.Red2\")\ntheGreenBox2 = self.FindByName(\"TextLine.Green2\")\ntheBlueBox2 = self.FindByName(\"TextLine.Blue2\")\ntheRedBox3 = self.FindByName(\"TextLine.Red3\")\ntheGreenBox3 = self.FindByName(\"TextLine.Green3\")\ntheBlueBox3 = self.FindByNa
me(\"TextLine.Blue3\")\n\ntheRGBBoxList = {theRedBox1,theGreenBox1,theBlueBox1,theRedBox2,theGreenBox2,theBlueBox2,theRedBox3,theGreenBox3,theBlueBox3}\nfor each i in theRGBBoxList\n  i.SetText(\"0\")\nend\n\ntheRedBox1.SetText(\"255\")\ntheRedBox3.SetText(\"255\")\ntheGreenBox3.SetText(\"255\")\n\n\ntheColorList = {\"Custom\",\"Red\",\"Black\",\"Blue\",\"Cyan\",\"Gray\",\"Green\",\"Magenta\",\"White\",\"Yellow\"}\ntheListBox = self.FindByName(\"ComboBox_Color\")\ntheListBox.Empty\ntheListBox.DefineFromList(theColorList)\n\ntheColorList2 = {\"Black\",\"Blue\"
,\"Cyan\",\"Gray\",\"Green\",\"Magenta\",\"Red\",\"White\",\"Yellow\",\"Custom\"}\ntheListBox2 = self.FindByName(\"ComboBox_Color2\")\ntheListBox2.Empty\ntheListBox2.DefineFromList(theColorList2)\n\ntheColorList3 = {\"Yellow\",\"Black\",\"Blue\",\"Cyan\",\"Gray\",\"Green\",\"Magenta\",\"Red\",\"White\",\"Custom\"}\ntheListBox3 = self.FindByName(\"ComboBox_Color3\")\ntheListBox3.Empty\ntheListBox3.DefineFromList(theColorList3)\n\n\nav.Run(\"LineBuilder.SwatchUpdater\",nil)\nav.Run(\"LineBuilder.PreviewLine\",nil)\nav.Run(\"LineBuilder.SliderLine1\",nil)\nav.Run(\"Line
Builder.SliderLine2\",nil)\nav.Run(\"LineBuilder.SliderLine3\",nil)\nav.Run(\"LineBuilder.LineStyle1\",nil)\nav.Run(\"LineBuilder.LineStylePreview1\",nil)\nav.Run(\"LineBuilder.LineStyle2\",nil)\nav.Run(\"LineBuilder.LineStylePreview2\",nil)\nav.Run(\"LineBuilder.LineStyle3\",nil)\nav.Run(\"LineBuilder.LineStylePreview3\",nil)\n"
)

(Script.1185
	Name:	"LineBuilder.OpenButton"
	SourceCode:	"theOldCindex=0\nButtonStartIndex=23\nTootlStartIndex=14\nNumControlSpaces=0\nNumToolSpaces=0\n\n\n'LineBuilderOpenButton\ntheDialog = av.FindDialog(\"LineBuilder\")\ntheDialog.Open"
)

(Script.1186
	Name:	"LineBuilder.Presets"
	SourceCode:	"'LineBuilder.Presets\ntheDialog = av.FindDialog(\"LineBuilder\")\n\nthePresetsBox = theDialog.FindByName(\"ComboBox.LinePresets\")\ntheCurrent = thePresetsBox.GetCurrentValue\nif (theCurrent = \"None\") then\n  return nil\nend\n\ntheLineBut1 = theDialog.FindByName(\"RadBut_1line\")\ntheLineBut2 = theDialog.FindByName(\"RadBut_2line\")\ntheLineBut3 = theDialog.FindByName(\"RadBut_3line\")\n\ntheWidth1Box = theDialog.FindByName(\"ComboBox.Line1Width\")\ntheWidth2Box = theDialog.FindByName(\"ComboBox.Line2Width\")\ntheWidth3Box = theDialog.
FindByName(\"ComboBox.Line3Width\")\ntheStyleBox1 = theDialog.FindByName(\"ComboBox.LineStyle1\")\ntheStyleBox2 = theDialog.FindByName(\"ComboBox.LineStyle2\")\ntheStyleBox3 = theDialog.FindByName(\"ComboBox.LineStyle3\")\ntheRedBox1 = theDialog.FindByName(\"TextLine.Red\")\ntheGreenBox1 = theDialog.FindByName(\"TextLine.Green\")\ntheBlueBox1 = theDialog.FindByName(\"TextLine.Blue\")\ntheRedBox2 = theDialog.FindByName(\"TextLine.Red2\")\ntheGreenBox2 = theDialog.FindByName(\"TextLine.Green2\")\ntheBlueBox2 = theDialog.FindByName(\"Tex
tLine.Blue2\")\ntheRedBox3 = theDialog.FindByName(\"TextLine.Red3\")\ntheGreenBox3 = theDialog.FindByName(\"TextLine.Green3\")\ntheBlueBox3 = theDialog.FindByName(\"TextLine.Blue3\")\n\nif (theCurrent = (\"Railroad 1\")) then\n  width1 = 3\n  width2 = 5\n  style1 = \"Hollow\"\n  style2 = \"Hash\"\n  color1 = {0,0,0}\n  color2 = {0,0,0}\n  parts = 2\nend\n\nif (theCurrent = (\"Railroad 2\")) then\n  width1 = 6\n  width2 = 4\n  style1 = \"Hash\"\n  style2 = \"Hollow\"\n  color1 = {160,75,0}\n  color2 = {127,127,127}\n  parts = 2\nend\n\nif (theCurrent 
= (\"Bungie\")) then\n  width1 = 5\n  width2 = 3\n  width3 = 5\n  style1 = \"Plain\"\n  style2 = \"Diamonds\"\n  style3 = \"Hollow\"\n  color1 = {0,0,255}\n  color2 = {255,255,0}\n  color3 = {0,0,0}\n  parts = 3\nend\n\nif (theCurrent = (\"State Hwy\")) then\n  width1 = 4\n  width2 = 2.1\n  width3 = 2.1\n  style1 = \"Plain\"\n  style2 = \"Plain\"\n  style3 = \"Dashes\"\n  color1 = {0,0,0}\n  color2 = {255,255,255}\n  color3 = {255,0,0}\n  parts = 3\nend\n\nif (theCurrent = (\"State Hwy 2\")) then\n  width1 = 3\n  width2 = 3\n  width3 = 3\n  style1 = \"Pla
in\"\n  style2 = \"Dashes\"\n  style3 = \"Hollow\"\n  color1 = {255,255,255}\n  color2 = {255,0,0}\n  color3 = {0,0,0}\n  parts = 3\nend\n\nif (theCurrent = (\"Interstate Hwy\")) then\n  width1 = 4\n  width2 = 2\n  width3 = 0.2\n  style1 = \"Plain\"\n  style2 = \"Plain\"\n  style3 = \"Plain\"\n  color1 = {0,0,0}\n  color2 = {255,0,0}\n  color3 = {0,0,0}\n  parts = 3\nend\n\n\nif (parts = 2) then\n  theWidth1Box.Empty\n  theVisible1 = (width1)\n  theWidth1List = {theVisible1,0.1,0.5,1,2,3,4,5,6,7,8,9,10,12,15,20}\n  theWidth1Box.DefineFromList(the
Width1List)\n  theSlot = theWidth1List.Find(width1)\n  theObject = theWidth1List.Get(theSlot)\n  theWidth1Box.SetCurrentValue(theObject)\n  theStyleBox1.Empty\n  theVisibleStyle1 = (style1)\n  theVectorStyleTexts = {theVisibleStyle1,\"Plain\",\"Arrowheads\",\"Dashes\",\"Diamonds\",\"Dots\",\"Hash\",\"Hollow\",\"Scallop\",\"Scrub\",\"Slant\",\"ZigZag\"}\n  theStyleBox1.DefineFromList(theVectorStyleTexts)\n  theSlot = theVectorStyleTexts.Find(style1)\n  theObject = theVectorStyleTexts.Get(theSlot)\n  theStyleBox1.SetCurrentValue(theObject)\n
  theRedBox1.SetText(color1.Get(0).AsString)\n  theGreenBox1.SetText(color1.Get(1).AsString)\n  theBlueBox1.SetText(color1.Get(2).AsString)\n  theWidth2Box.Empty\n  theVisible2 = (width2)\n  theWidth2List = {theVisible2,0.1,0.5,1,2,3,4,5,6,7,8,9,10,12,15,20}\n  theWidth2Box.DefineFromList(theWidth2List)\n  theSlot = theWidth2List.Find(width2)\n  theObject = theWidth2List.Get(theSlot)\n  theWidth2Box.SetCurrentValue(theObject)\n  theStyleBox2.Empty\n  theVisibleStyle2 = (style2)\n  theVectorStyleTexts = {theVisibleStyle
2,\"Plain\",\"Arrowheads\",\"Dashes\",\"Diamonds\",\"Dots\",\"Hash\",\"Hollow\",\"Scallop\",\"Scrub\",\"Slant\",\"ZigZag\"}\n  theStyleBox2.DefineFromList(theVectorStyleTexts)\n  theSlot = theVectorStyleTexts.Find(style2)\n  theObject = theVectorStyleTexts.Get(theSlot)\n  theStyleBox2.SetCurrentValue(theObject)\n  theRedBox2.SetText(color2.Get(0).AsString)\n  theGreenBox2.SetText(color2.Get(1).AsString)\n  theBlueBox2.SetText(color2.Get(2).AsString)\n  theLineBut2.Click\n  theLineBut2.Select \n  \n elseif (parts = 3) then\n \n  theWidth1Box.
Empty\n  theVisible1 = (width1)\n  theWidth1List = {theVisible1,0.1,0.5,1,2,3,4,5,6,7,8,9,10,12,15,20}\n  theWidth1Box.DefineFromList(theWidth1List)\n  theSlot = theWidth1List.Find(width1)\n  theObject = theWidth1List.Get(theSlot)\n  theWidth1Box.SetCurrentValue(theObject)\n  theStyleBox1.Empty\n  theVisibleStyle1 = (style1)\n  theVectorStyleTexts = {theVisibleStyle1,\"Plain\",\"Arrowheads\",\"Dashes\",\"Diamonds\",\"Dots\",\"Hash\",\"Hollow\",\"Scallop\",\"Scrub\",\"Slant\",\"ZigZag\"}\n  theStyleBox1.DefineFromList(theVectorStyleTexts)\n
  theSlot = theVectorStyleTexts.Find(style1)\n  theObject = theVectorStyleTexts.Get(theSlot)\n  theStyleBox1.SetCurrentValue(theObject)\n  theRedBox1.SetText(color1.Get(0).AsString)\n  theGreenBox1.SetText(color1.Get(1).AsString)\n  theBlueBox1.SetText(color1.Get(2).AsString)\n  theWidth2Box.Empty\n  theVisible2 = (width2)\n  theWidth2List = {theVisible2,0.1,0.5,1,2,3,4,5,6,7,8,9,10,12,15,20}\n  theWidth2Box.DefineFromList(theWidth2List)\n  theSlot = theWidth2List.Find(width2)\n  theObject = theWidth2List.Get(theSlot)
\n  theWidth2Box.SetCurrentValue(theObject)\n  theStyleBox2.Empty\n  theVisibleStyle2 = (style2)\n  theVectorStyleTexts = {theVisibleStyle2,\"Plain\",\"Arrowheads\",\"Dashes\",\"Diamonds\",\"Dots\",\"Hash\",\"Hollow\",\"Scallop\",\"Scrub\",\"Slant\",\"ZigZag\"}\n  theStyleBox2.DefineFromList(theVectorStyleTexts)\n  theSlot = theVectorStyleTexts.Find(style2)\n  theObject = theVectorStyleTexts.Get(theSlot)\n  theStyleBox2.SetCurrentValue(theObject)\n  theRedBox2.SetText(color2.Get(0).AsString)\n  theGreenBox2.SetText(color2.Get(1).AsString)
\n  theBlueBox2.SetText(color2.Get(2).AsString)\n  theWidth3Box.Empty\n  theVisible3 = (width3)\n  theWidth3List = {theVisible3,0.1,0.5,1,2,3,4,5,6,7,8,9,10,12,15,20}\n  theWidth3Box.DefineFromList(theWidth3List)\n  theSlot = theWidth3List.Find(width3)\n  theObject = theWidth3List.Get(theSlot)\n  theWidth3Box.SetCurrentValue(theObject)\n  theStyleBox3.Empty\n  theVisibleStyle3 = (style3)\n  theVectorStyleTexts = {theVisibleStyle3,\"Plain\",\"Arrowheads\",\"Dashes\",\"Diamonds\",\"Dots\",\"Hash\",\"Hollow\",\"Scallop\",\"Scrub\",\"Slant\"
,\"ZigZag\"}\n  theStyleBox3.DefineFromList(theVectorStyleTexts)\n  theSlot = theVectorStyleTexts.Find(style3)\n  theObject = theVectorStyleTexts.Get(theSlot)\n  theStyleBox3.SetCurrentValue(theObject)\n  theRedBox3.SetText(color3.Get(0).AsString)\n  theGreenBox3.SetText(color3.Get(1).AsString)\n  theBlueBox3.SetText(color3.Get(2).AsString)\n  theLineBut3.Click\n  theLineBut3.Select   \n\nend\n\nav.Run(\"LineBuilder.SwatchUpdater\",nil)\nav.Run(\"LineBuilder.PreviewLine\",nil)\nav.Run(\"LineBuilder.LineStylePreview1\",nil)\nav.Run
(\"LineBuilder.LineStylePreview2\",nil)\nav.Run(\"LineBuilder.LineStylePreview3\",nil)\nav.Run(\"LineBuilder.SliderUpdater\",nil)\n"
)

(Script.1187
	Name:	"LineBuilder.PreviewLine"
	SourceCode:	"'LineBuilder.PreviewLine\ntheDialog = av.FindDialog(\"LineBuilder\")\nthePreviewBox = theDialog.FindByName(\"ListBox.LinePreview\")\ntheLineList = {}\n\ntheDialog = av.FindDialog(\"LineBuilder\")\n\ntheLineStyle1 = theDialog.FindByName(\"ListBox.LineStylePreview1\").GetCurrentValue\ntheLineStyle2 = theDialog.FindByName(\"ListBox.LineStylePreview2\").GetCurrentValue\ntheLineStyle3 = theDialog.FindByName(\"ListBox.LineStylePreview3\").GetCurrentValue\n\n'MsgBox.Info(theLineStyle1.AsString,\"\")\n'MsgBox.Info(theLineStyle1.GetClass.Get
ClassName.AsString,\"\")\n\n\ntheLineBut1 = theDialog.FindByName(\"RadBut_1Line\")\ntheLineBut = theDialog.FindByName(\"RadBut_2line\")\ntheLineBut3 = theDialog.FindByName(\"RadBut_3line\")\n\naSymList = nil\n\n  if (theLineBut1.IsSelected) then\n    '** Make the BasicPen for bottom line\n    bln1 = theLineStyle1\n    aSymList = SymbolList.FromList({bln1})  \n  end\n\n\n  if (theLineBut.IsSelected) then\n    '** Make the BasicPen for bottom line\n    bln1 = theLineStyle1\n    \n    vph1 = theLineStyle2\n  \n    aSymList = SymbolList.Fro
mList({bln1,vph1})  \n  end\n\n  if (theLineBut3.IsSelected) then\n    '** Make the BasicPen for bottom line\n    bln1 = theLineStyle1\n    vph1 = theLineStyle2\n    bln2 = theLineStyle3\n  \n    aSymList = SymbolList.FromList({bln1,vph1,bln2})\n  end\n'end\n\n\n'if (theRGBCheckBox.IsSelected) then\n'  if (theLineBut.IsSelected) then\n'    '** Make the BasicPen for bottom line\n'    bln1 = BasicPen.Make\n'    bln1.SetColor(theColor1)\n'    bln1.SetColorLock(true)\n'    bln1.SetSize(theTotalLineWidth)\n'    \n'    '** Make the Ve
ctorPenHollow\n'    vph1 = VectorPenHollow.Make\n'    vph1.SetSize(theOutlineWidth)\n'    vph1.SetAltSize(theAltOutlineWidth)\n'    vph1.SetColor(theColor2)\n'    vph1.SetColorLock(true)\n'  \n'    aSymList = SymbolList.FromList({bln1,vph1})  \n'  end'\n'\n'  if (theLineBut3.IsSelected) then\n'   '** Make the BasicPen for bottom line\n'    bln1 = BasicPen.Make\n'    bln1.SetColor(theColor1)\n'    bln1.SetColorLock(true)\n'    bln1.SetSize(theTotalLineWidth)'''\n'\n'    '** Make the VectorPenHollow\n'    vph1 = VectorPenHollo
w.Make\n'    vph1.SetSize(theOutlineWidth)\n'    vph1.SetAltSize(theAltOutlineWidth)\n'    vph1.SetColor(theColor2)\n'    vph1.SetColorLock(true)\n'  \n'    '** Make the BasicPen for top line\n'    bln2 = BasicPen.Make\n'    bln2.SetColor(theColor3)\n'    bln2.SetColorLock(true)\n'    bln2.SetSize(theCenterlineWidth)\n'  \n'    aSymList = SymbolList.FromList({bln1,vph1,bln2})\n'  end\n'end\n\n\n'** Make a CompositeArcInfoPen which contains\n'** each of the symbols we just made.\n\nif (aSymList <> nil) then\n  aCAIP = CompositeA
rcInfoPen.Make(aSymList)\n  theLineList.Add(aCAIP)\nend\n\nthePreviewBox.SetVisible(TRUE)\nthePreviewBox.Empty\nthePreviewBox.DefineFromList(theLineList)\nthePreviewBox.FitRows(0..(thePreviewBox.GetRowCount-1),true)\nthePreviewBox.FitColumns(0..(thePreviewBox.GetRowCount-1),true)\nthePreviewBox.SetRowHeight(100)\nthePreviewBox.SetColumnWidth(100)\n\n\n"
)

(Script.1188
	Name:	"LineBuilder.RGB1Updater"
	SourceCode:	"'LineBuilder.RGB1Updater\ntheDialog = av.FindDialog(\"LineBuilder\")\n\ntheListBox1 = theDialog.FindByName(\"ComboBox_Color\")\ntheChosenString = theListBox1.GetSelection.AsString\n\n    if (theChosenString = \"Black\") then\n      theColor1 = Color.GetBlack\n      theRGBList = theColor1.GetRGBList\n      elseif (theChosenString = \"Blue\") then\n      theColor1 = Color.GetBlue\n      theRGBList = theColor1.GetRGBList\n      elseif (theChosenString = \"Cyan\") then\n      theColor1 = Color.GetCyan\n      theRGBList = theColor1.Get
RGBList\n      elseif (theChosenString = \"Gray\") then\n      theColor1 = Color.GetGray\n      theRGBList = theColor1.GetRGBList\n      elseif (theChosenString = \"Green\") then\n      theColor1 = Color.GetGreen\n      theRGBList = theColor1.GetRGBList\n      elseif (theChosenString = \"Magenta\") then\n      theColor1 = Color.GetMagenta\n      theRGBList = theColor1.GetRGBList\n      elseif (theChosenString = \"Red\") then\n      theColor1 = Color.GetRed\n      theRGBList = theColor1.GetRGBList\n      elseif (theChosenString 
= \"White\") then\n      theColor1 = Color.GetWhite\n      theRGBList = theColor1.GetRGBList\n      elseif (theChosenString = \"Yellow\") then\n      theColor1 = Color.GetYellow\n      theRGBList = theColor1.GetRGBList\n      elseif (theChosenString = \"Custom\") then\n      theRGBList = {\"0\",\"0\",\"0\"}\n    end\n    \ntheRedText = theRGBList.Get(0).AsString\ntheGreenText = theRGBList.Get(1).AsString\ntheBlueText = theRGBList.Get(2).AsString\n\ntheRedBox1 = theDialog.FindByName(\"TextLine.Red\")\ntheGreenBox1 = theDialog.FindByName
(\"TextLine.Green\")\ntheBlueBox1 = theDialog.FindByName(\"TextLine.Blue\")\n\ntheRedBox1.SetText(theRedText)\ntheGreenBox1.SetText(theGreenText)\ntheBlueBox1.SetText(theBlueText)\n\ntheSliderR1 = theDialog.FindByName(\"Slider.Red1\")\ntheSliderR1.SetValue(theRedText.AsNumber)\ntheSliderG1 = theDialog.FindByName(\"Slider.Green1\")\ntheSliderG1.SetValue(theGreenText.AsNumber)\ntheSliderB1 = theDialog.FindByName(\"Slider.Blue1\")\ntheSliderB1.SetValue(theBlueText.AsNumber)\n\nav.Run(\"LineBuilder.SwatchUpdater\",nil)\nav.Run(\"LineBuild
er.PreviewLine\",nil)\nav.Run(\"LineBuilder.LineStylePreview1\",nil)\nav.Run(\"LineBuilder.LineStylePreview2\",nil)\nav.Run(\"LineBuilder.LineStylePreview3\",nil)\n"
)

(Script.1189
	Name:	"LineBuilder.RGB2Updater"
	SourceCode:	"'LineBuilder.RGB3Updater\ntheDialog = av.FindDialog(\"LineBuilder\")\n\ntheListBox2 = theDialog.FindByName(\"ComboBox_Color2\")\ntheChosenString = theListBox2.GetSelection.AsString\n\n    if (theChosenString = \"Black\") then\n      theColor1 = Color.GetBlack\n      theRGBList = theColor1.GetRGBList\n      elseif (theChosenString = \"Blue\") then\n      theColor1 = Color.GetBlue\n      theRGBList = theColor1.GetRGBList\n      elseif (theChosenString = \"Cyan\") then\n      theColor1 = Color.GetCyan\n      theRGBList = theColor1.Ge
tRGBList\n      elseif (theChosenString = \"Gray\") then\n      theColor1 = Color.GetGray\n      theRGBList = theColor1.GetRGBList\n      elseif (theChosenString = \"Green\") then\n      theColor1 = Color.GetGreen\n      theRGBList = theColor1.GetRGBList\n      elseif (theChosenString = \"Magenta\") then\n      theColor1 = Color.GetMagenta\n      theRGBList = theColor1.GetRGBList\n      elseif (theChosenString = \"Red\") then\n      theColor1 = Color.GetRed\n      theRGBList = theColor1.GetRGBList\n      elseif (theChosenString
 = \"White\") then\n      theColor1 = Color.GetWhite\n      theRGBList = theColor1.GetRGBList\n      elseif (theChosenString = \"Yellow\") then\n      theColor1 = Color.GetYellow\n      theRGBList = theColor1.GetRGBList\n      elseif (theChosenString = \"Custom\") then\n      theRGBList = {\"0\",\"0\",\"0\"}\n    end\n    \ntheRedText = theRGBList.Get(0).AsString\ntheGreenText = theRGBList.Get(1).AsString\ntheBlueText = theRGBList.Get(2).AsString\n\ntheRedBox2 = theDialog.FindByName(\"TextLine.Red2\")\ntheGreenBox2 = theDialog.FindByNa
me(\"TextLine.Green2\")\ntheBlueBox2 = theDialog.FindByName(\"TextLine.Blue2\")\n\ntheRedBox2.SetText(theRedText)\ntheGreenBox2.SetText(theGreenText)\ntheBlueBox2.SetText(theBlueText)\n\ntheSliderR2 = theDialog.FindByName(\"Slider.Red2\")\ntheSliderR2.SetValue(theRedText.AsNumber)\ntheSliderG2 = theDialog.FindByName(\"Slider.Green2\")\ntheSliderG2.SetValue(theGreenText.AsNumber)\ntheSliderB2 = theDialog.FindByName(\"Slider.Blue2\")\ntheSliderB2.SetValue(theBlueText.AsNumber)\n\nav.Run(\"LineBuilder.SwatchUpdater\",nil)\nav.Run(\"LineB
uilder.PreviewLine\",nil)\nav.Run(\"LineBuilder.LineStylePreview2\",nil)"
)

(Script.1190
	Name:	"LineBuilder.RGB3Updater"
	SourceCode:	"'LineBuilder.RGB3Updater\ntheDialog = av.FindDialog(\"LineBuilder\")\n\ntheListBox3 = theDialog.FindByName(\"ComboBox_Color3\")\ntheChosenString = theListBox3.GetSelection.AsString\n\n    if (theChosenString = \"Black\") then\n      theColor1 = Color.GetBlack\n      theRGBList = theColor1.GetRGBList\n      elseif (theChosenString = \"Blue\") then\n      theColor1 = Color.GetBlue\n      theRGBList = theColor1.GetRGBList\n      elseif (theChosenString = \"Cyan\") then\n      theColor1 = Color.GetCyan\n      theRGBList = theColor1.Ge
tRGBList\n      elseif (theChosenString = \"Gray\") then\n      theColor1 = Color.GetGray\n      theRGBList = theColor1.GetRGBList\n      elseif (theChosenString = \"Green\") then\n      theColor1 = Color.GetGreen\n      theRGBList = theColor1.GetRGBList\n      elseif (theChosenString = \"Magenta\") then\n      theColor1 = Color.GetMagenta\n      theRGBList = theColor1.GetRGBList\n      elseif (theChosenString = \"Red\") then\n      theColor1 = Color.GetRed\n      theRGBList = theColor1.GetRGBList\n      elseif (theChosenString
 = \"White\") then\n      theColor1 = Color.GetWhite\n      theRGBList = theColor1.GetRGBList\n      elseif (theChosenString = \"Yellow\") then\n      theColor1 = Color.GetYellow\n      theRGBList = theColor1.GetRGBList\n      elseif (theChosenString = \"Custom\") then\n      theRGBList = {\"0\",\"0\",\"0\"}\n    end\n    \ntheRedText = theRGBList.Get(0).AsString\ntheGreenText = theRGBList.Get(1).AsString\ntheBlueText = theRGBList.Get(2).AsString\n\ntheRedBox3 = theDialog.FindByName(\"TextLine.Red3\")\ntheGreenBox3 = theDialog.FindByNa
me(\"TextLine.Green3\")\ntheBlueBox3 = theDialog.FindByName(\"TextLine.Blue3\")\n\ntheRedBox3.SetText(theRedText)\ntheGreenBox3.SetText(theGreenText)\ntheBlueBox3.SetText(theBlueText)\n\ntheSliderR3 = theDialog.FindByName(\"Slider.Red3\")\ntheSliderR3.SetValue(theRedText.AsNumber)\ntheSliderG3 = theDialog.FindByName(\"Slider.Green3\")\ntheSliderG3.SetValue(theGreenText.AsNumber)\ntheSliderB3 = theDialog.FindByName(\"Slider.Blue3\")\ntheSliderB3.SetValue(theBlueText.AsNumber)\n\nav.Run(\"LineBuilder.SwatchUpdater\",nil)\nav.Run(\"LineB
uilder.PreviewLine\",nil)\nav.Run(\"LineBuilder.LineStylePreview3\",nil)"
)

(Script.1191
	Name:	"LineBuilder.RGBClick"
	SourceCode:	"'LineBuilder.RGBClick\ntheDialog = av.FindDialog(\"LineBuilder\")\ntheCheckBox = theDialog.FindByName(\"CheckBox.StandardColors\")\ntheCheckBox.SetSelected(FALSE)\n\ntheLineBut3 = theDialog.FindByName(\"RadBut_3line\")\n\ntheComboBox1 = theDialog.FindByName(\"ComboBox_Color\")\ntheComboBox2 = theDialog.FindByName(\"ComboBox_Color2\")\ntheComboBox3 = theDialog.FindByName(\"ComboBox_Color3\")\n\ntheBoxList = {theComboBox1,theComboBox2,theComboBox3}\nfor each i in theBoxList\n  i.SetEnabled(FALSE)\nend\n\ntheRedBox1 = theDialog.FindByNam
e(\"TextLine.Red\")\ntheGreenBox1 = theDialog.FindByName(\"TextLine.Green\")\ntheBlueBox1 = theDialog.FindByName(\"TextLine.Blue\")\ntheRedBox2 = theDialog.FindByName(\"TextLine.Red2\")\ntheGreenBox2 = theDialog.FindByName(\"TextLine.Green2\")\ntheBlueBox2 = theDialog.FindByName(\"TextLine.Blue2\")\ntheRedBox3 = theDialog.FindByName(\"TextLine.Red3\")\ntheGreenBox3 = theDialog.FindByName(\"TextLine.Green3\")\ntheBlueBox3 = theDialog.FindByName(\"TextLine.Blue3\")\n\ntheRGBBoxList = {theRedBox1,theGreenBox1,theBlueBox1,theRedBox2,theGr
eenBox2,theBlueBox2,theRedBox3,theGreenBox3,theBlueBox3}\nfor each i in theRGBBoxList\n  i.SetEnabled(TRUE)\nend\n\nif (theLineBut3.IsSelected) then\n  theRGBBoxList = {theRedBox3,theGreenBox3,theBlueBox3}\n  for each i in theRGBBoxList\n  i.SetEnabled(TRUE)\nend\nend\n\nif (theLineBut3.IsSelected.Not) then\n  theRGBBoxList = {theRedBox3,theGreenBox3,theBlueBox3}\n  for each i in theRGBBoxList\n  i.SetEnabled(FALSE)\nend\nend\nav.Run(\"LineBuilder.SwatchUpdater\",nil)\nav.Run(\"LineBuilder.PreviewLine\",nil)"
)

(Script.1192
	Name:	"LineBuilder.SliderLine1"
	SourceCode:	"'LineBuilder.SliderLine1\ntheDialog = av.FindDialog(\"LineBuilder\")\ntheSliderR1 = theDialog.FindByName(\"Slider.Red1\")\ntheSliderG1 = theDialog.FindByName(\"Slider.Green1\")\ntheSliderB1 = theDialog.FindByName(\"Slider.Blue1\")\n\ntheR1Value = theSliderR1.GetValue\ntheG1Value = theSliderG1.GetValue\ntheB1Value = theSliderB1.GetValue\n\ntheRedBox1 = theDialog.FindByName(\"TextLine.Red\")\ntheGreenBox1 = theDialog.FindByName(\"TextLine.Green\")\ntheBlueBox1 = theDialog.FindByName(\"TextLine.Blue\")\n\ntheRedBox1.SetText(theR1Value.As
String)\ntheGreenBox1.SetText(theG1Value.ASstring)\ntheBlueBox1.SetText(theB1Value.AsString)\n\n'theBlackList = {\"Black\",\"Blue\",\"Cyan\",\"Gray\",\"Green\",\"Magenta\",\"Red\",\"White\",\"Yellow\",\"Custom\"}\n'theBlueList = {\"Blue\",\"Black\",\"Cyan\",\"Gray\",\"Green\",\"Magenta\",\"Red\",\"White\",\"Yellow\",\"Custom\"}\n'theCyanList = {\"Cyan\",\"Black\",\"Blue\",\"Gray\",\"Green\",\"Magenta\",\"Red\",\"White\",\"Yellow\",\"Custom\"}\n'theGrayList = {\"Gray\",\"Black\",\"Blue\",\"Cyan\",\"Green\",\"Magenta\",\"Red\",\"White\",\"Yellow\",\"Custom\"}\n'theGreenList = {\"Green\",\"Black\",\"B
lue\",\"Cyan\",\"Gray\",\"Magenta\",\"Red\",\"White\",\"Yellow\",\"Custom\"}\n'theMagentaList = {\"Magenta\",\"Black\",\"Blue\",\"Cyan\",\"Gray\",\"Green\",\"Red\",\"White\",\"Yellow\",\"Custom\"}\n'theRedList = {\"Red\",\"Black\",\"Blue\",\"Cyan\",\"Gray\",\"Green\",\"Magenta\",\"White\",\"Yellow\",\"Custom\"}\n'theWhiteList = {\"White\",\"Black\",\"Blue\",\"Cyan\",\"Gray\",\"Green\",\"Magenta\",\"Red\",\"Yellow\",\"Custom\"}\n'theYellowList = {\"Yellow\",\"Black\",\"Blue\",\"Cyan\",\"Gray\",\"Green\",\"Magenta\",\"Red\",\"White\",\"Custom\"}\n'theCustomList = {\"Custom\",\"Black\",\"Blue\",\"Cyan\",\"Gray\",\"Gree
n\",\"Magenta\",\"Red\",\"White\",\"Yellow\"}\n\ntheColorList = {\"Custom\",\"Black\",\"Blue\",\"Cyan\",\"Gray\",\"Green\",\"Magenta\",\"Red\",\"White\",\"Yellow\"}\n'theColorList = {}\n\ntheListBox1 = theDialog.FindByName(\"ComboBox_Color\")\n'theChosenString = theListBox1.GetSelection.AsString\n'\n'    if (theChosenString = \"Black\") then\n'        theColorList = theBlackList      \n'      elseif (theChosenString = \"Blue\") then \n'        theColorList = theBlueList     \n'      elseif (theChosenString = \"Cyan\") then \n'        theColorList = theCyan
List     \n'      elseif (theChosenString = \"Gray\") then \n'        theColorList = theGrayList     \n'      elseif (theChosenString = \"Green\") then\n'        theColorList = theGreenList      \n'      elseif (theChosenString = \"Magenta\") then \n'        theColorList = theMagentaList     \n'      elseif (theChosenString = \"Red\") then \n'        theColorList = theRedList    \n'      elseif (theChosenString = \"White\") then\n'        theColorList = theWhiteList      \n'      elseif (theChosenString = \"Yellow\") then \n'     
   theColorList = theYellowList     \n'      elseif (theChosenString = \"Custom\") then  \n'        theColorList = theCustomList    \n'    end\n\ntheListBox1.Empty\ntheListBox1.DefineFromList(theColorList)\n\nav.Run(\"LineBuilder.SwatchUpdater\",nil)\nav.Run(\"LineBuilder.PreviewLine\",nil)\nav.Run(\"LineBuilder.LineStylePreview1\",nil)\n"
)

(Script.1193
	Name:	"LineBuilder.SliderLine2"
	SourceCode:	"'LineBuilder.SliderLine2\ntheDialog = av.FindDialog(\"LineBuilder\")\ntheSliderR2 = theDialog.FindByName(\"Slider.Red2\")\ntheSliderG2 = theDialog.FindByName(\"Slider.Green2\")\ntheSliderB2 = theDialog.FindByName(\"Slider.Blue2\")\n\ntheR2Value = theSliderR2.GetValue\ntheG2Value = theSliderG2.GetValue\ntheB2Value = theSliderB2.GetValue\n\ntheRedBox2 = theDialog.FindByName(\"TextLine.Red2\")\ntheGreenBox2 = theDialog.FindByName(\"TextLine.Green2\")\ntheBlueBox2 = theDialog.FindByName(\"TextLine.Blue2\")\n\ntheRedBox2.SetText(theR2Value
.AsString)\ntheGreenBox2.SetText(theG2Value.AsString)\ntheBlueBox2.SetText(theB2Value.AsString)\n\ntheColorList = {\"Custom\",\"Black\",\"Blue\",\"Cyan\",\"Gray\",\"Green\",\"Magenta\",\"Red\",\"White\",\"Yellow\"}\ntheListBox2 = theDialog.FindByName(\"ComboBox_Color2\")\n\ntheListBox2.Empty\ntheListBox2.DefineFromList(theColorList)\n\nav.Run(\"LineBuilder.SwatchUpdater\",nil)\nav.Run(\"LineBuilder.PreviewLine\",nil)\nav.Run(\"LineBuilder.LineStylePreview2\",nil)"
)

(Script.1194
	Name:	"LineBuilder.SliderLine3"
	SourceCode:	"'LineBuilder.SliderLine3\ntheDialog = av.FindDialog(\"LineBuilder\")\ntheSliderR3 = theDialog.FindByName(\"Slider.Red3\")\ntheSliderG3 = theDialog.FindByName(\"Slider.Green3\")\ntheSliderB3 = theDialog.FindByName(\"Slider.Blue3\")\n\ntheR3Value = theSliderR3.GetValue\ntheG3Value = theSliderG3.GetValue\ntheB3Value = theSliderB3.GetValue\n\ntheRedBox3 = theDialog.FindByName(\"TextLine.Red3\")\ntheGreenBox3 = theDialog.FindByName(\"TextLine.Green3\")\ntheBlueBox3 = theDialog.FindByName(\"TextLine.Blue3\")\n\ntheRedBox3.SetText(theR3Value
.AsString)\ntheGreenBox3.SetText(theG3Value.AsString)\ntheBlueBox3.SetText(theB3Value.AsString)\n\ntheColorList = {\"Custom\",\"Black\",\"Blue\",\"Cyan\",\"Gray\",\"Green\",\"Magenta\",\"Red\",\"White\",\"Yellow\"}\ntheListBox3 = theDialog.FindByName(\"ComboBox_Color3\")\n\ntheListBox3.Empty\ntheListBox3.DefineFromList(theColorList)\nav.Run(\"LineBuilder.SwatchUpdater\",nil)\nav.Run(\"LineBuilder.PreviewLine\",nil)\nav.Run(\"LineBuilder.LineStylePreview3\",nil)"
)

(Script.1195
	Name:	"LineBuilder.SliderUpdater"
	SourceCode:	"'LineBuilder.SliderUpdater\ntheDialog = av.FindDialog(\"LineBuilder\")\ntheSliderR1 = theDialog.FindByName(\"Slider.Red1\")\ntheSliderG1 = theDialog.FindByName(\"Slider.Green1\")\ntheSliderB1 = theDialog.FindByName(\"Slider.Blue1\")\ntheSliderR2 = theDialog.FindByName(\"Slider.Red2\")\ntheSliderG2 = theDialog.FindByName(\"Slider.Green2\")\ntheSliderB2 = theDialog.FindByName(\"Slider.Blue2\")\ntheSliderR3 = theDialog.FindByName(\"Slider.Red3\")\ntheSliderG3 = theDialog.FindByName(\"Slider.Green3\")\ntheSliderB3 = theDialog.FindByName(\"
Slider.Blue3\")\n\ntheRedBox1 = theDialog.FindByName(\"TextLine.Red\")\ntheGreenBox1 = theDialog.FindByName(\"TextLine.Green\")\ntheBlueBox1 = theDialog.FindByName(\"TextLine.Blue\")\ntheRedBox2 = theDialog.FindByName(\"TextLine.Red2\")\ntheGreenBox2 = theDialog.FindByName(\"TextLine.Green2\")\ntheBlueBox2 = theDialog.FindByName(\"TextLine.Blue2\")\ntheRedBox3 = theDialog.FindByName(\"TextLine.Red3\")\ntheGreenBox3 = theDialog.FindByName(\"TextLine.Green3\")\ntheBlueBox3 = theDialog.FindByName(\"TextLine.Blue3\")\n\nred1 = theRedBox1.Get
Text.AsNumber\ngreen1 = theGreenBox1.GetText.AsNumber\nblue1 = theBlueBox1.GetText.AsNumber\nred2 = theRedBox2.GetText.AsNumber\ngreen2 = theGreenBox2.GetText.AsNumber\nblue2 = theBlueBox2.GetText.AsNumber\nred3 = theRedBox3.GetText.AsNumber\ngreen3 = theGreenBox3.GetText.AsNumber\nblue3 = theBlueBox3.GetText.AsNumber\n\ntheSliderR1.SetValue(red1)\ntheSliderG1.SetValue(green1)\ntheSliderB1.SetValue(blue1)\ntheSliderR2.SetValue(red2)\ntheSliderG2.SetValue(green2)\ntheSliderB2.SetValue(blue2)\ntheSliderR3.SetValue(red3)\ntheS
liderG3.SetValue(green3)\ntheSliderB3.SetValue(blue3)\n\n"
)

(Script.1196
	Name:	"LineBuilder.StdColClick"
	SourceCode:	"'LineBuilder.StdColClick\ntheDialog = av.FindDialog(\"LineBuilder\")\ntheCheckBox = theDialog.FindByName(\"CheckBox.RGB\")\ntheCheckBox.SetSelected(FALSE)\n\ntheColorList = {\"Black\",\"Blue\",\"Cyan\",\"Gray\",\"Green\",\"Magenta\",\"Red\",\"White\",\"Yellow\",\"Custom\"}\n\ntheListBox = theDialog.FindByName(\"ComboBox_Color\")\ntheState = theListBox.GetSelection\ntheListBox.Empty\ntheListBox.DefineFromList(theColorList)\nif (theState = nil) then\n  theListBox.GoLast\n  else theListBox.SetCurrentValue(theState)\nend\n\ntheListBox2 = theDialog.Find
ByName(\"ComboBox_Color2\")\ntheState = theListBox2.GetSelection\ntheListBox2.Empty\ntheListBox2.DefineFromList(theColorList)\nif (theState = nil) then\n  theListBox2.GoLast\n  else theListBox2.SetCurrentValue(theState)\nend\n\ntheListBox3 = theDialog.FindByName(\"ComboBox_Color3\")\ntheState = theListBox3.GetSelection\ntheListBox3.Empty\ntheListBox3.DefineFromList(theColorList)\nif (theState = nil) then\n  theListBox3.GoLast\n  else theListBox3.SetCurrentValue(theState)\nend\n\n\ntheLineBut3 = theDialog.FindByName(\"RadBut_3line\"
)\n\ntheRedBox1 = theDialog.FindByName(\"TextLine.Red\")\ntheGreenBox1 = theDialog.FindByName(\"TextLine.Green\")\ntheBlueBox1 = theDialog.FindByName(\"TextLine.Blue\")\ntheRedBox2 = theDialog.FindByName(\"TextLine.Red2\")\ntheGreenBox2 = theDialog.FindByName(\"TextLine.Green2\")\ntheBlueBox2 = theDialog.FindByName(\"TextLine.Blue2\")\ntheRedBox3 = theDialog.FindByName(\"TextLine.Red3\")\ntheGreenBox3 = theDialog.FindByName(\"TextLine.Green3\")\ntheBlueBox3 = theDialog.FindByName(\"TextLine.Blue3\")\n\ntheRGBBoxList = {theRedBox1,theGre
enBox1,theBlueBox1,theRedBox2,theGreenBox2,theBlueBox2,theRedBox3,theGreenBox3,theBlueBox3}\nfor each i in theRGBBoxList\n  i.SetEnabled(FALSE)\nend\n\ntheComboBox1 = theDialog.FindByName(\"ComboBox_Color\")\ntheComboBox2 = theDialog.FindByName(\"ComboBox_Color2\")\ntheComboBox3 = theDialog.FindByName(\"ComboBox_Color3\")\n\ntheBoxList = {theComboBox1,theComboBox2,theComboBox3}\nfor each i in theBoxList\n  i.SetEnabled(TRUE)\nend\n\nif (theLineBut3.IsSelected.Not) then\n  theComboBox3.SetEnabled(FALSE)\nend\n\n'if (theLineBut3.IsS
elected) then\n'  theRGBBoxList = {theRedBox3,theGreenBox3,theBlueBox3}\n'  for each i in theRGBBoxList\n'  i.SetEnabled(TRUE)\n'end\n'end\n\nif (theLineBut3.IsSelected.Not) then\n  theRGBBoxList = {theRedBox3,theGreenBox3,theBlueBox3}\n  for each i in theRGBBoxList\n  i.SetEnabled(FALSE)\nend\nend\nav.Run(\"LineBuilder.SwatchUpdater\",nil)\nav.Run(\"LineBuilder.PreviewLine\",nil)"
)

(Script.1197
	Name:	"LineBuilder.SwatchUpdater"
	SourceCode:	"'LineBuilder.SwatchUpdater\ntheDialog = av.FindDialog(\"LineBuilder\")\n\ntheRedBox1 = theDialog.FindByName(\"TextLine.Red\")\ntheGreenBox1 = theDialog.FindByName(\"TextLine.Green\")\ntheBlueBox1 = theDialog.FindByName(\"TextLine.Blue\")\ntheRedBox2 = theDialog.FindByName(\"TextLine.Red2\")\ntheGreenBox2 = theDialog.FindByName(\"TextLine.Green2\")\ntheBlueBox2 = theDialog.FindByName(\"TextLine.Blue2\")\ntheRedBox3 = theDialog.FindByName(\"TextLine.Red3\")\ntheGreenBox3 = theDialog.FindByName(\"TextLine.Green3\")\ntheBlueBox3 = theDialo
g.FindByName(\"TextLine.Blue3\")\n\n  red1 = theRedBox1.GetText.asnumber\n  green1 = theGreenBox1.GetText.asnumber\n  blue1 = theBlueBox1.GetText.asnumber\n  red2 = theRedBox2.GetText.asnumber\n  green2 = theGreenBox2.GetText.asnumber\n  blue2 = theBlueBox2.GetText.asnumber\n  red3 = theRedBox3.GetText.asnumber\n  green3 = theGreenBox3.GetText.asnumber\n  blue3 = theBlueBox3.GetText.asnumber\n\n  theColorList = {red1,green1,blue1,red2,green2,blue2,red3,green3,blue3}\n  for each e in theColorList\n    if ((e > 255) or (e < 
0)) then\n    MsgBox.Warning(\"All RGB values must be between 0 and 255\",\"Value out of range\")\n    return nil\n    end\n    if (e.AsString = \"-\") then\n    MsgBox.Warning(\"All RGB values must be between 0 and 255\",\"Can't use negatives\")\n    end\n  end\n\n  theColor1 = Color.Make\n  theColor2 = Color.Make\n  TheColor3 = Color.Make\n  \n  color1List = {red1,green1,blue1}\n  color2List = {red2,green2,blue2}\n  color3List = {red3,green3,blue3}\n  \n  theColor1.SetRGBList(color1List)\n  theColor2.SetRGBList(color2List)\n  theColo
r3.SetRGBList(color3List)\n\n\n  the1RasterFill = RasterFill.Make\n  the1RasterFill.SetStyle(#RASTERFILL_STYLE_OPAQUESTIPPLE)\n  the1RasterFill.SetBgColor(theColor1)\n  \n  the2RasterFill = RasterFill.Make\n  the2RasterFill.SetStyle(#RASTERFILL_STYLE_OPAQUESTIPPLE)\n  the2RasterFill.SetBgColor(theColor2)\n\n  the3RasterFill = RasterFill.Make\n  the3RasterFill.SetStyle(#RASTERFILL_STYLE_OPAQUESTIPPLE)\n  the3RasterFill.SetBgColor(theColor3)\n\ntheColor1List = {the1RasterFill}\ntheColor2List = {the2RasterFill}\ntheColor3List 
= {the3RasterFill}\n\ntheColor1ListBox = theDialog.FindByName(\"ListBox.Line1Swatch\")\ntheColor1ListBox.Empty\ntheColor1ListBox.DefineFromList(theColor1List)\ntheColor1ListBox.FitRows(0..(theColor1ListBox.GetRowCount-1),true)\ntheColor1ListBox.FitColumns(0..(theColor1ListBox.GetRowCount-1),true)\ntheColor1ListBox.SetRowHeight(100)\ntheColor1ListBox.SetColumnWidth(100)\n\n\ntheColor2ListBox = theDialog.FindByName(\"ListBox.Line2Swatch\")\ntheColor2ListBox.Empty\ntheColor2ListBox.DefineFromList(theColor2List)\ntheColor2ListBo
x.FitRows(0..(theColor2ListBox.GetRowCount-1),true)\ntheColor2ListBox.FitColumns(0..(theColor2ListBox.GetRowCount-1),true)\ntheColor2ListBox.SetRowHeight(100)\ntheColor2ListBox.SetColumnWidth(100)\n\n\ntheColor3ListBox = theDialog.FindByName(\"ListBox.Line3Swatch\")\ntheColor3ListBox.Empty\ntheColor3ListBox.DefineFromList(theColor3List)\ntheColor3ListBox.FitRows(0..(theColor1ListBox.GetRowCount-1),true)\ntheColor3ListBox.FitColumns(0..(theColor1ListBox.GetRowCount-1),true)\ntheColor3ListBox.SetRowHeight(100)\ntheColor3Li
stBox.SetColumnWidth(100)\n\n\n"
)

(Script.1198
	Name:	"MT.Add.All.View"
	SourceCode:	"'lbxListThemes \nDO = av.FindDialog(\"My Themes\")\nAst = \"$AVHOME\\\"\ncbxLists = DO.FindByName(\"cbxLists\")\nlbxListThemes = DO.FindByName(\"lbxListThemes\")\nCurrentListItem = cbxLists.GetCurrentValue\nCurrentSelectedThemeList = lbxListThemes.GetList \n\nTempList = {}\nTC = CurrentSelectedThemeList.Count-1\nFor Each T in TC..0 by -1\nTempList.Add(CurrentSelectedThemeList.Get(T))\nend\nCurrentSelectedThemeList = TempList.DeepClone\n\n' View.Add\ntheView = av.GetActiveDoc\nsrcnames = CurrentSelectedThemeList\nzoom = (theView.GetTh
emes.Count = 0)\nuseDD=TRUE\nisOther=FALSE\n\ntheBox=Rect.makexy(-200,-100,200,100)\nthemeList={}\nif (srcnames.count = 0) then\n  return(nil)\nend\n\nfor each n in CurrentSelectedThemeList\n  theTheme=Theme.Make(n)\n  theleg=thetheme.getlegend.clone\n  if (TheBox.contains(theTheme.returnextent).NOT) then\n    useDD=FALSE    \n  end\n  if (theTheme.Is(FTheme).Not) then\n    isOther=TRUE\n  end\n  theavlname=\" \"\n  if (n.getfilename<>NIL) then\n    if (n.getfilename.getextension<>\"\") then\n      theext=n.getfilename.asstring.righ
t(4)\n      theAVLname=n.getfilename.asstring.substitute(theext,\".avl\")\n    else\n      aFN=n.getfilename\n      afn=aFN.asstring+\".avl\"\n      theAVLname=afn\n    end\n    if ((theTheme.is(FTheme)) and (file.exists(theAVLname.asfilename))) then\n      alinefile=textfile.make(theAVLname.asfilename,#FILE_PERM_READ)\n      asource=alinefile.read(alinefile.getsize)\n      alinefile.close\n      if ((asource.contains(\"LegExt\").Not) or (Extension.Find(\"Spatial Analyst\")<>NIL))then\n        theleg=theTheme.getlegend\n       
 theleg.load(theAVLname.asfilename,#LEGEND_LOADTYPE_ALL)\n        theflds=theleg.getfieldnames\n        for each afld in theflds\n          if (thetheme.getftab.findfield(afld)=NIL) then\n            thetheme.getlegend.setlegendtype(#LEGEND_TYPE_SIMPLE)\n            thetheme.getlegend.singlesymbol\n          end\n        end\n        if ((theflds.count=0) and (theleg.getlegendtype <>#LEGEND_TYPE_SIMPLE)) then\n          thetheme.getlegend.setlegendtype(#LEGEND_TYPE_SIMPLE)\n          thetheme.getlegend.singlesymbol\n 
       end\n  \n      end\n    end      \n  end\n  theView.AddTheme(theTheme)\nend\n\n\n' Test if it is OK to set the Map Units to DD and then also set DistanceUnits to Miles (feet for StreetMap)\n'\nif ((theView.getUnits = #UNITS_LINEAR_UNKNOWN) and (useDD=TRUE)) then\n  theView.setUnits(#UNITS_LINEAR_DEGREES)\n  theView.getDisplay.setDistanceUnits(#UNITS_LINEAR_MILES)\n  theView.InvalidateTOC(theTheme)\nend\n\n' Test if the user added projected data into a projected view\n'\nif ((theView.getProjection.isNull.NOT) and (useDD
=FALSE)) then\n  if (isOther.Not) then\n    msgbox.warning(\"One or more of the data sources you have chosen is not\"++\n      \"in decimal degrees. This data can't be projected to match this\"++\n      \"view's projection. The theme(s) will be added but won't display properly.\",\n      \"Warning: input theme(s) cannot be projected\")\n  end\nend\n\nif ((theView.GetActiveThemes.Count = 0) and (srcnames.Count > 0)) then\n  theView.GetThemes.Get(0).SetActive(TRUE)\nend\n\nif (zoom) then\n  theThemes = theView.GetThemes\n  r = Rect
.MakeEmpty\n  for each t in theThemes\n    r = r.UnionWith(t.ReturnExtent)\n  end\n  if (r.IsEmpty) then\n    return nil\n  elseif ((r.ReturnSize) = (0@0)) then\n    theView.GetDisplay.PanTo(r.ReturnOrigin)\n  else\n    theView.GetDisplay.SetExtent(r.Scale(1.1))\n  end\nend\n\nav.GetProject.SetModified( TRUE )\n\n\n'**************\n\naView = av.GetActiveDoc      'Get the View\n    theThemes = aView.GetThemes  'Get the themes\n    if (theThemes = NIL) then\n      exit\n    end\n    \n    theTypes = {\"point\",\"multipoint\",\"labelpoint
\",\"node\",\"annotation\",\"arc\",\n                \"multiline\",\"route\",\"polygon\",\"poly\",\"region\"}\n    \n    aDictionary = Dictionary.Make(theTypes.Count + 1)\n    for each type in theTypes\n      aDictionary.Add (type,{})\n    end\n    aDictionary.Add(\"other\",{})  ' Store types not in theTypes, eg images\n    \n    ' Sort themes by type\n    '\n    for each thm in theThemes\n      aKey = thm.GetSrcName.GetSubName\n      if (theTypes.FindByValue(aKey) >= 0) then \n        ' Get list out of dictionary and add theme to list\n   
     aValue = aDictionary.Get(aKey) + {thm}\n        aDictionary.Set(aKey,aValue)\n      else\n        ' Regions and routes are handled separately because their SubName\n        ' also contains another component besides the word \"region\" or \"route\".\n        type = \"other\"  'Set default\n        if (aKey.Contains(\"region\")) then\n          type = \"region\" \n        end  'if\n        if (aKey.Contains(\"route\")) then\n          type = \"route\"\n        end  'if\n        aValue = aDictionary.Get(type) + {thm}\n        aDict
ionary.Set(type, aValue)\n      end  'else\n    end  'for\n    \n    ' Reorder the TOC by rebuilding the TOC list\n    '\n    theThemes.Empty\n    for each type in theTypes\n      theThemes.Merge(aDictionary.Get(type))\n    end\n    theThemes.Merge(aDictionary.Get(\"other\"))\n    \n    ' Refresh TOC and View\n    '\n    aView.InvalidateTOC(nil)\n    aView.Invalidate\n\n\n\n'CurrentSelectedThemeList\n\n  '**********\n for each t in theView.GetThemes\n     St = T.GetName \n    for each C in CurrentSelectedThemeList\n      Ct = C.GetNa
me\n      if (Ct.Ucase = St.UCase) then\n      t.SetLegendVisible(False)\n      end\n    end\n end\n\n"
)

(Script.1199
	Name:	"MT.Add.Theme"
	SourceCode:	"DO = av.FindDialog(\"My Themes\")\nAst = \"$AVHOME\\\"\n\ncbxLists = DO.FindByName(\"cbxLists\")\nCurrentListItem = cbxLists.GetCurrentValue\nif (CurrentListItem = nil) then Return nil end\nif (CurrentListItem = \"\") then Return nil end\n\nlbxViews = DO.FindByName(\"lbxViews\")\nCurrentView = lbxViews.GetCurrentValue\nif (CurrentView = nil) then Return nil end\nif (CurrentView = \"\") then Return nil end\n\nlbxThemes = DO.FindByName(\"lbxThemes\")\nCurrentSelectedThemesList = lbxThemes.GetSelection\nif (CurrentSelectedThemesList = nil)
 then Return nil end\nif (CurrentSelectedThemesList = \"\") then Return nil end\nif (CurrentSelectedThemesList.count < 1) then Return nil end\n\n\nFnameout = Ast+CurrentListItem\n' Check for the existence of the file \ntheFileName = Filename.Make(Fnameout)\ntheFileExists = File.Exists(theFileName)\n\n'  If TheThemeList.Txt exists, open it, and read the path to Program\nif (theFileExists = true) then\n  theOldPathList={}\n  theFileName = Filename.Make(Fnameout)\n  af = LineFile.Make( theFileName, #FILE_PERM_READ )\n  \n  whil
e (af.IsAtEnd.Not)\n  currstring = af.ReadElt\n  if (currstring <> \"<None>\") then\n  theOldPathList.Add(currstring)\n  end\n  end\n  af.close\n  theOldPathList.Sort(False)\n  theOldPathList.RemoveDuplicates\nend\n\n\n    \n\n'************** SETUP\ntheProject = av.GetProject\ntheActiveDoc = av.GetActiveDoc \ntheViewsDocsList = {}\ntheThemesSourceList = {}\ntheselectlist = {}\ntheOutFileAllList={}\ntheoutfile = \"nil\"\n\n\ntheOP = av.GetProject.FindDoc (CurrentView.AsString)\nCk = theOP.GetGroupGUI\nif ( Ck <> \"View\" ) then Return nil 
end\n\n\nfor each t in theOP.GetThemes\ntheSRCname = t.GetSrcName  \n'MsgBox.Info( theSRCname.asstring, \"The Title\" )\n    For Each St in CurrentSelectedThemesList  \n      A = (T.AsString).Ucase\n      B = St.Ucase\n      if (A = B) then\n      'MsgBox.Info( \"Here is the information you requested\", \"The Title\" )\n      thesource = theSRCname.GetDataSource\n      if (thesource <> nil) then\n      if (thesource <> \"nil\") then\n      if (thesource <> \"\") then\n      theThemesSourceList.Add(thesource)\n      end\n      end\n   
   end\n      end\n    end  \nend\n\nif(theFileExists = false) then\n      \n    theOldPathList = {}      \n      for each T in theThemesSourceList \n      theOldPathList.Add(T) \n      end \n    theOldPathList.Sort(True)\n    theOldPathList.RemoveDuplicates    \n    FD = Fnameout.AsFileName\n    File.Delete (FD)\n    theFileName = Filename.Make(Fnameout)\n    af = LineFile.Make( theFileName, #FILE_PERM_WRITE )\n      for each TLine in theOldPathList\n      af.WriteElt(TLine)\n      end\n    af.close\nav.run( \"MT.List.Selected\"
,nil)  \nend\n\nif (theFileExists = true) then\n    for each T in theThemesSourceList \n    theOldPathList.Add(T) \n    end \n    theOldPathList.Sort(True)\n    theOldPathList.RemoveDuplicates    \n    \n    FD = Fnameout.AsFileName\n    File.Delete (FD)\n    theFileName = Filename.Make(Fnameout)\n    af = LineFile.Make( theFileName, #FILE_PERM_WRITE )\n    for each TLine in theOldPathList\n    af.WriteElt(TLine)\n    end\n    af.close\nav.run( \"MT.List.Selected\",nil)\n\nend    "
)

(Script.1200
	Name:	"MT.Add.View"
	SourceCode:	"'lbxListThemes \nDO = av.FindDialog(\"My Themes\")\nAst = \"$AVHOME\\\"\ncbxLists = DO.FindByName(\"cbxLists\")\nlbxListThemes = DO.FindByName(\"lbxListThemes\")\nCurrentListItem = cbxLists.GetCurrentValue\nCurrentSelectedThemeList = lbxListThemes.GetSelection\n\nTempList = {}\nTC = CurrentSelectedThemeList.Count-1\nFor Each T in TC..0 by -1\nTempList.Add(CurrentSelectedThemeList.Get(T))\nend\nCurrentSelectedThemeList = TempList.DeepClone\n\n\ntheView = av.GetActiveDoc\n'Script View.Add modified by Pedro J. Garcia\ntheOP = av.GetProj
ect.FindDoc (theView.AsString)\nif (theOP = nil) then \nMsgBox.Info(\"This is not a View - Select a View\", \"Oops\" )\nreturn nil end\nCk = theOP.GetGroupGUI\nif ( Ck <> \"View\" ) then \nMsgBox.Info(\"This is not a View - Select a View\", \"Oops\" )\nReturn nil end\n\n\n' View.Add\ntheView = av.GetActiveDoc\nsrcnames = CurrentSelectedThemeList\nzoom = (theView.GetThemes.Count = 0)\nuseDD=TRUE\nisOther=FALSE\n\ntheBox=Rect.makexy(-200,-100,200,100)\nthemeList={}\nif (srcnames.count = 0) then\n  return(nil)\nend\n\nfor each n in CurrentSel
ectedThemeList\n  theTheme=Theme.Make(n)\n  theleg=thetheme.getlegend.clone\n  if (TheBox.contains(theTheme.returnextent).NOT) then\n    useDD=FALSE    \n  end\n  if (theTheme.Is(FTheme).Not) then\n    isOther=TRUE\n  end\n  theavlname=\" \"\n  if (n.getfilename<>NIL) then\n    if (n.getfilename.getextension<>\"\") then\n      theext=n.getfilename.asstring.right(4)\n      theAVLname=n.getfilename.asstring.substitute(theext,\".avl\")\n    else\n      aFN=n.getfilename\n      afn=aFN.asstring+\".avl\"\n      theAVLname=afn\n    end\n  
  if ((theTheme.is(FTheme)) and (file.exists(theAVLname.asfilename))) then\n      alinefile=textfile.make(theAVLname.asfilename,#FILE_PERM_READ)\n      asource=alinefile.read(alinefile.getsize)\n      alinefile.close\n      if ((asource.contains(\"LegExt\").Not) or (Extension.Find(\"Spatial Analyst\")<>NIL))then\n        theleg=theTheme.getlegend\n        theleg.load(theAVLname.asfilename,#LEGEND_LOADTYPE_ALL)\n        theflds=theleg.getfieldnames\n        for each afld in theflds\n          if (thetheme.getftab.findfie
ld(afld)=NIL) then\n            thetheme.getlegend.setlegendtype(#LEGEND_TYPE_SIMPLE)\n            thetheme.getlegend.singlesymbol\n          end\n        end\n        if ((theflds.count=0) and (theleg.getlegendtype <>#LEGEND_TYPE_SIMPLE)) then\n          thetheme.getlegend.setlegendtype(#LEGEND_TYPE_SIMPLE)\n          thetheme.getlegend.singlesymbol\n        end\n  \n      end\n    end      \n  end\n  theView.AddTheme(theTheme)\nend\n\n\n' Test if it is OK to set the Map Units to DD and then also set DistanceUnits to Miles
 (feet for StreetMap)\n'\nif ((theView.getUnits = #UNITS_LINEAR_UNKNOWN) and (useDD=TRUE)) then\n  theView.setUnits(#UNITS_LINEAR_DEGREES)\n  theView.getDisplay.setDistanceUnits(#UNITS_LINEAR_MILES)\n  theView.InvalidateTOC(theTheme)\nend\n\n' Test if the user added projected data into a projected view\n'\nif ((theView.getProjection.isNull.NOT) and (useDD=FALSE)) then\n  if (isOther.Not) then\n    msgbox.warning(\"One or more of the data sources you have chosen is not\"++\n      \"in decimal degrees. This data can't be pro
jected to match this\"++\n      \"view's projection. The theme(s) will be added but won't display properly.\",\n      \"Warning: input theme(s) cannot be projected\")\n  end\nend\n\nif ((theView.GetActiveThemes.Count = 0) and (srcnames.Count > 0)) then\n  theView.GetThemes.Get(0).SetActive(TRUE)\nend\n\nif (zoom) then\n  theThemes = theView.GetThemes\n  r = Rect.MakeEmpty\n  for each t in theThemes\n    r = r.UnionWith(t.ReturnExtent)\n  end\n  if (r.IsEmpty) then\n    return nil\n  elseif ((r.ReturnSize) = (0@0)) then\n    theVie
w.GetDisplay.PanTo(r.ReturnOrigin)\n  else\n    theView.GetDisplay.SetExtent(r.Scale(1.1))\n  end\nend\n\nav.GetProject.SetModified( TRUE )\n'**************\n\naView = av.GetActiveDoc      'Get the View\n    theThemes = aView.GetThemes  'Get the themes\n    if (theThemes = NIL) then\n      exit\n    end\n    \n    theTypes = {\"point\",\"multipoint\",\"labelpoint\",\"node\",\"annotation\",\"arc\",\n                \"multiline\",\"route\",\"polygon\",\"poly\",\"region\"}\n    \n    aDictionary = Dictionary.Make(theTypes.Count + 1)\n    for each typ
e in theTypes\n      aDictionary.Add (type,{})\n    end\n    aDictionary.Add(\"other\",{})  ' Store types not in theTypes, eg images\n    \n    ' Sort themes by type\n    '\n    for each thm in theThemes\n      aKey = thm.GetSrcName.GetSubName\n      if (theTypes.FindByValue(aKey) >= 0) then \n        ' Get list out of dictionary and add theme to list\n        aValue = aDictionary.Get(aKey) + {thm}\n        aDictionary.Set(aKey,aValue)\n      else\n        ' Regions and routes are handled separately because their SubName\n 
       ' also contains another component besides the word \"region\" or \"route\".\n        type = \"other\"  'Set default\n        if (aKey.Contains(\"region\")) then\n          type = \"region\" \n        end  'if\n        if (aKey.Contains(\"route\")) then\n          type = \"route\"\n        end  'if\n        aValue = aDictionary.Get(type) + {thm}\n        aDictionary.Set(type, aValue)\n      end  'else\n    end  'for\n    \n    ' Reorder the TOC by rebuilding the TOC list\n    '\n    theThemes.Empty\n    for each type in theTypes\n 
     theThemes.Merge(aDictionary.Get(type))\n    end\n    theThemes.Merge(aDictionary.Get(\"other\"))\n    \n    ' Refresh TOC and View\n    '\n    aView.InvalidateTOC(nil)\n    aView.Invalidate\n\n\n '**********\n for each t in theView.GetThemes\n     St = T.GetName \n    for each C in CurrentSelectedThemeList\n      Ct = C.GetName\n      if (Ct.Ucase = St.UCase) then\n      t.SetLegendVisible(False)\n      end\n    end\n end\n"
)

(Script.1201
	Name:	"MT.Close"
	SourceCode:	"DO = av.FindDialog(\"My Themes\")\nDO.Close"
)

(Script.1202
	Name:	"MT.Delete.List"
	SourceCode:	"\n\nDO = av.FindDialog(\"My Themes\")\nblanklist = {\"\"}\nExtText = \".Txt\"\ncbxLists = DO.FindByName(\"cbxLists\")\nCurrentListItem = cbxLists.GetCurrentValue\nmyAnswer = MsgBox.YesNo( \"Delete this list?\"++CurrentListItem,\"\", False )\nif (myAnswer <> True) then return nil end\n\nAst = \"$AVHOME\\\"\nMain = \"MT.cfg\"\nFnameout = Ast+Main \ntheFileName = Filename.Make(Fnameout)\nTheFileExists = File.Exists(theFileName)\n  \nif (theFileExists = true) then\n\n  MTLists={}\n  af = LineFile.Make( theFileName, #FILE_PERM_READ )\n  while (af.I
sAtEnd.Not)\n  currstring = af.ReadElt\n    if (currstring <> \"<None>\") then \n      if (CurrentListItem <> currstring) then\n      if (currstring <> \"\") then\n      MTLists.Add(currstring)\n      end\n      end\n    end\n  end\n  af.close\n  MTLists.Sort(True)\n  MTLists.RemoveDuplicates\n  \n  if (MTLists.count > 0) then\n  cbxLists.DefineFromList(MTLists)\n  cbxLists.GoFirst\n  cbxLists.GoNext \n  cbxLists.GoFirst \n  cbxLists.SelectCurrent\n  else\n  blanklist = {}\n  cbxLists.DefineFromList(blanklist)\n  end\n  \n  af = LineFi
le.Make( theFileName, #FILE_PERM_WRITE )\n  for each TLine in MTLists \n  af.WriteElt(TLine)\n  end\n  af.close\n  if ((CurrentListItem <> nil)or(CurrentListItem <> \" \")or(CurrentListItem <> \"\")) then\n    Fnameout = Ast+CurrentListItem \n    theFileName = Filename.Make(Fnameout)\n    Fndel = Fnameout.AsFileName\n    File.Delete (Fndel)\n  end\nend\nav.run( \"MT.List.Selected\",nil)\n\n"
)

(Script.1203
	Name:	"MT.Delete.Theme"
	SourceCode:	"DO = av.FindDialog(\"My Themes\")\nAst = \"$AVHOME\\\"\n\ncbxLists = DO.FindByName(\"cbxLists\")\nCurrentListItem = cbxLists.GetCurrentValue\nif (CurrentListItem = nil) then Return nil end\nif (CurrentListItem = \"\") then Return nil end\n\nlbxListThemes = DO.FindByName(\"lbxListThemes\")\nTempList = lbxListThemes.GetSelection\nYChoicelist = {}\nFor Each T in TempList\nif (T <> nil) then\nif (T <> \"nil\") then\nif (T <> \"\" ) then\nYChoicelist.Add(T.GetDataSource)\nend\nend\nend\nend\nadth = 0\nAst = \"$AVHOME\\\"\n'choices = MsgBox.MultiListAs
String( YChoicelist, \"\", \"\" )\nFnameout = Ast+CurrentListItem\ntheFileName = Filename.Make(Fnameout)\ntheFileExists = File.Exists(theFileName)\n\n\n\n\nif (theFileExists = true) then\n \n  theOldPathList={}\n  theFileName = Filename.Make(Fnameout)\n  af = LineFile.Make( theFileName, #FILE_PERM_READ )\n  \n  while (af.IsAtEnd.Not)\n  currstring = af.ReadElt\n  theOldPathList.Add(currstring)\n  end\n  \n  af.close\n  theOldPathList.Sort(True)\n  theOldPathList.RemoveDuplicates\n\nend\n\n\n\nif (theFileExists = true) then\n    theOldPath
List.Sort(True)\n    theOldPathList.RemoveDuplicates    \n    thenewlist = {}\n\n    fg = YChoicelist.Count \n    if (not(YChoicelist.Count <= 0 )) then\n     thefixlist  = theOldPathList.DeepClone \n      for each yc in YChoicelist\n        for each op in theOldPathList\n          A = yc.Ucase\n          B = op.Ucase\n          if (A = B) then \n\n          V = thefixlist.FindByValue (op)\n          thefixlist.Remove (V)\n          end\n        end\n      end\n    thenewlist = thefixlist.DeepClone   \n    else\n    thenewlist
 = theOldPathList.DeepClone\n    end\n    thenewlist.Sort(False)\n    thenewlist.RemoveDuplicates \n    FD = Fnameout.AsFileName\n    File.Delete (FD)\n    \n    chk = thenewlist.count\n    if (chk = 0 ) then return nil end\n    theFileName = Filename.Make(Fnameout)\n    af = LineFile.Make( theFileName, #FILE_PERM_WRITE )\n    for each TLine in thenewlist\n    if (TLine <> \"\") then\n    if (TLine <> nil) then\n    \n    Fnameout = TLine\n    theFileName = Filename.Make(Fnameout)\n    theFileExists = File.Exists(theFileName)
\n    if (theFileExists = True) then\n    af.WriteElt(TLine)\n    end\n    end\n    end\n    end\n    af.close\n        \n        \nend ' if true\nav.run( \"MT.List.Selected\",nil)\n"
)

(Script.1204
	Name:	"MT.Done.Edit"
	SourceCode:	"DO = av.FindDialog(\"My Themes\")\nDO.Resize(409,179)'main window"
)

(Script.1205
	Name:	"MT.Edit.Lists"
	SourceCode:	"DO = av.FindDialog(\"My Themes\")\n'DO.Resize(409,355)'all\n'DO.Resize(409,179)'main window\nDO.Resize(409,319)'2nd window\n"
)

(Script.1206
	Name:	"MT.Help.Go"
	SourceCode:	"'lblHelp\nDO = av.FindDialog(\"MT.Help\")\nTXHP = DO.FindByName(\"txtbox.Help\")\nMessage = \n  \"Script Author ( Charles Herbold - Hmanfl@Lycos.com )\"+nl+\n  \"This script maintains Lists Consisting of Theme \"+nl+\n  \"Names and Paths\"+nl+\n  \"The Lists are Writen to Text Files in the AvHome Folder \"+nl+\n  \"Example - C:\\Esri\\Arcview\\MyThemes.txt\"+nl+\n  \" \"+nl+\n  \"If your like me you have 8 or 9 Themes you use All the Time \"+nl+\n  \"Add them to a Lists and the next time you want \"+nl+\n  \"to add them to a View just use thi
s Tool \"+nl+\n  \" \"+nl+\n  \"This works with the Altered system script View.Add \"+nl+\n  \"Writen by Pedro J. Garcia\"+nl+\n  \"that is loaded when this extension loads  \"+nl+\n  \"if you have a saved legend in the same location as \"+nl+\n  \"the theme you are loading and the legend name is the \"+nl+\n  \"same as the theme then View.add will load the legend \"+nl+\n  \"when it loads the theme \"+nl+\n  \" \"+nl+  \n  \"Example file names - theme1.shp & theme1.avl \"+nl+\n  \" \"+nl+\n  \" \"+nl+\n  \" \"+nl+  \n  \"The Tool keeps the list of
 your list names in a file \"+nl+\n  \"named Mt.cfg in the AvHome folder \"+nl+\n  \" \"+nl+\n  \"If you have been using the previous version of this tool \"+nl+\n  \"then you can edit the Mt.cfg file and add these lines to it \"+nl+\n  \"TheThemeList.Txt \"+nl+\n  \"TheThemeList1.Txt \"+nl+\n  \"TheThemeList2.Txt \"+nl+\n  \"TheThemeList3.Txt \"+nl+\n  \"use note pad to edit the file and save as text file \"+nl+\n  \"Tool will now find and use your old theme lists \"+nl+\n  \" \"+nl+\n  \"If you are using this tool for the first time\"+nl+\n  
\" \"+nl+\n  \"first type in a name for your list in the text box \"+nl+\n  \"at the very bottom of the dialog,then check the  \"+nl+\n  \"add name to list box \"+nl+\n  \" \"+nl+\n  \"select the list you just made from the theme list dropdown \"+nl+\n  \"list box at the very top of the dialog \"+nl+\n  \" \"+nl+  \n  \"select a view from the view list box - 3rd down from the top \"+nl+\n  \" \"+nl+\n  \"select some themes from the theme list box - 4th down from the top \"+nl+\n  \" \"+nl+  \n  \"click the add theme button \"+nl+\n  \" \"+nl+\n  \"t
hemes will now be displayed in the 2nd list box from the top \"+nl+\n  \" \"+nl+  \n  \"open a new view \"+nl+\n  \" \"+nl+\n  \"select some themes in the 2nd list box and \"+nl+\n  \"click the add to view button \"+nl+  \n  \"themes will be added to the view \"+nl+\n  \" \"+nl+\n  \" \"+nl+\n  \" \"+nl+\n  \" \"+nl+    \n  \"Thats It \"+nl+\n  \"please send any bug reports to my email address \"+nl+\n  \"at the top of this message  ;-) \"+nl+\n  \"\"+nl\n\nMessage = Message.Proper          \nTXHP.SetText(Message) \nDO.Open\n\n\nAVUpperLeft = av.ReturnOrig
in\nAVCenter = avUpperLeft + (av.ReturnExtent / (2@2))\nhalfDialogWidthHeight = DO.ReturnExtent.ReturnSize / (2@2)\nMovePoint = AVCenter - halfDialogWidthHeight\nDO.MoveTo(MovePoint.GetX, MovePoint.GetY)\n\n\n\n"
)

(Script.1207
	Name:	"MT.List.Selected"
	SourceCode:	"DO = av.FindDialog(\"My Themes\")\nAst = \"$AVHOME\\\"\ncbxLists = DO.FindByName(\"cbxLists\")\nlbxListThemes = DO.FindByName(\"lbxListThemes\")\nlbxListThemes.DefineFromList({{\"\"}})\nCurrentListItem = cbxLists.GetCurrentValue\nif (CurrentListItem <> nil) then\n  if (CurrentListItem <> \"\") then\n    if (CurrentListItem <> \"<None>\") then\n    '*****************lbxListThemes\n      ExtText = \".Txt\"\n      MTFile = Ast+CurrentListItem   '+ExtText\n      theFileName = Filename.Make(MTFile)\n      'MsgBox.Info( MTFile, \"The Title\" )\n
      theFileExists = File.Exists(theFileName)\n      if (theFileExists = true) then\n        MTThemeList ={}\n        af = LineFile.Make( theFileName, #FILE_PERM_READ )\n        \n        while (af.IsAtEnd.Not)\n        currstring = af.ReadElt\n        if (currstring <> \"<None>\") then\n        if (currstring <> \"\") then\n        MTThemeList.Add(currstring)\n        end\n        end\n        end              \n        af.close\n        MTThemeList.Sort(True)\n        MTThemeList.RemoveDuplicates\n        \n        \n        
TempList = {}\n        ck = 0\n        LastName = {}\n        for each T in MTThemeList\n          partlist = T.AsTokens(\"\\\")\n            for each W in Partlist\n            ck = ck + 1\n            LastName = W\n            end\n          \n          if (LastName <> nil) then \n          TempList.Add(LastName)\n          end\n          \n        end\n        TempList.Sort(True)\n        'choices = MsgBox.MultiListAsString( TempList, \"\", \"\" )\n        NewSortedList = {}\n        for each N in TempList\n          for each T i
n MTThemeList\n          partlist = T.AsTokens(\"\\\")\n            for each W in Partlist\n            ck = ck + 1\n            LastName =(W)\n            end\n          if (LastName = N) then\n          NewSortedList.Add(T)\n          end\n          end \n        end\n        \n        'choices = MsgBox.MultiListAsString( NewSortedList, \"\", \"\" )\n        \n        ck = 0\n        SrcNamesList = {}\n        for each T in NewSortedList 'MTThemeList\n          S = SrcName.Make (T)\n          if (S <> nil) then\n          if (S <>
 \"\") then\n          SrcNamesList.Add((S))'.AsString).Proper)\n          end\n          end\n        end\n        lbxListThemes.DefineFromList(SrcNamesList)\n      end\n    end\n  end  \nend"
)

(Script.1208
	Name:	"MT.New.List"
	SourceCode:	"'lblNewList\n'txtNewListName\n\nDO = av.FindDialog(\"My Themes\")\nblanklist = {\"\"}\nExtText = \".Txt\"\ncbxLists = DO.FindByName(\"cbxLists\")\n\n\ntxtNewListName = DO.FindByName(\"txtNewListName\")\nckbAddName = DO.FindByName(\"ckbAddName\")\n\nCheckListItem = cbxLists.GetList\nNewListName = txtNewListName.GetText\nfor each Name in CheckListItem\nif ((Name.Ucase) = ((NewListName+\".Txt\").Ucase)) then\nckbAddName.SetSelected (False)\ntxtNewListName.Focus \ntxtNewListName.SetText(\"\")\nreturn nil\nend\nend\n\nAst = \"$AVHOME\\\"\nMain = \"MT.cfg\"
\nFnameout = Ast+Main \ntheFileName = Filename.Make(Fnameout)\nTheFileExists = File.Exists(theFileName)\n  \nif (theFileExists = true) then\n\n  MTLists={}\n  af = LineFile.Make( theFileName, #FILE_PERM_READ )\n  while (af.IsAtEnd.Not)\n  currstring = af.ReadElt\n    if (currstring <> \"<None>\") then \n    MTLists.Add(currstring)\n    end\n  end\n  af.close\n  MTLists.Sort(True)\n  MTLists.RemoveDuplicates\nNewListName = txtNewListName.GetText\n\nif ((NewListName = \"\")or(NewListName = nil)or(NewListName = \" \")) then\nckbAddName.
SetSelected (False)\ntxtNewListName.Focus \nreturn nil \nend\n\nNewListName = NewListName+ExtText\nMTLists.Add(NewListName)\nMTLists.Sort(True)\nMTLists.RemoveDuplicates\n\nNewListNameOut = Ast+NewListName\ntheFileName = Filename.Make(NewListNameOut)\naf = LineFile.Make( theFileName, #FILE_PERM_WRITE )\nTLine = \"<None>\"\naf.WriteElt(TLine)\naf.close\n\n\n\ntheFileName = Filename.Make(Fnameout)\naf = LineFile.Make( theFileName, #FILE_PERM_WRITE )\nfor each TLine in MTLists \naf.WriteElt(TLine)\nend\naf.close\n\nend\n\n\n\n'**************
**cbxLists\n\nif (MTLists.count > 0) then\ncbxLists = DO.FindByName(\"cbxLists\")\ncbxLists.DefineFromList(MTLists)\ncbxLists.GoFirst\ncbxLists.GoNext\n'cbxLists.GoFirst  \ncbxLists.SelectCurrent\nend\n\nckbAddName.SetSelected (False)\nDO.Resize(409,319)'2nd window\nav.run( \"MT.List.Selected\",nil)\n\n"
)

(Script.1209
	Name:	"MT.New.List.Open"
	SourceCode:	"DO = av.FindDialog(\"My Themes\")\ntxtNewListName = DO.FindByName(\"txtNewListName\")\ntxtNewListName.SetText(\"\")\ntxtNewListName.Focus \nDO.Resize(409,355)'all\n'DO.Resize(409,179)'main window\n'DO.Resize(409,319)'2nd window\n"
)

(Script.1210
	Name:	"MT.Open"
	SourceCode:	"DO = Self\nblanklist = {\"\"}\ncbxLists = DO.FindByName(\"cbxLists\")\ncbxLists.DefineFromList(blanklist)\n\nlbxViews = DO.FindByName(\"lbxViews\")\nlbxViews.DefineFromList(blanklist)\n\nlbxThemes = DO.FindByName(\"lbxThemes\")\nlbxThemes.DefineFromList(blanklist)\n\nlbxListThemes = DO.FindByName(\"lbxListThemes\")\nlbxListThemes.DefineFromList(blanklist)\n\ntxtNewListName = DO.FindByName(\"txtNewListName\")\ntxtNewListName.SetText(\"\")\n\nAst = \"$AVHOME\\\"\nMain = \"MT.cfg\"\nFnameout = Ast+Main \ntheFileName = Filename.Make(Fnameout)\nTheFil
eExists = File.Exists(theFileName)\n  \n'If TheThemeList.Txt exists, open it, and read the path to Program\nif (theFileExists = true) then\n\n  MTLists={}\n  af = LineFile.Make( theFileName, #FILE_PERM_READ )\n  while (af.IsAtEnd.Not)\n  currstring = af.ReadElt\n  if (currstring <> \"\") then\n  MTLists.Add(currstring)\n  end\n  end\n  af.close\n  MTLists.Sort(True)\n  MTLists.RemoveDuplicates\n\nelse\n  TLine = \"<None>\"\n  theFileName = Filename.Make(Fnameout)\n  af = LineFile.Make( theFileName, #FILE_PERM_WRITE )\n  af.WriteElt
(TLine)\n  af.close\n  \n  MTLists={}\n  af = LineFile.Make( theFileName, #FILE_PERM_READ )\n  while (af.IsAtEnd.Not)\n  currstring = af.ReadElt\n  MTLists.Add(currstring)\n  end\n  af.close\n  MTLists.Sort(True)\n  MTLists.RemoveDuplicates\n  \nend\n\n'****************cbxLists\n\nif (MTLists.count > 0) then\ncbxLists = Self.FindByName(\"cbxLists\")\nmessage = \"Select a Theme List//\"\ncbxLists.SetHelp(message)\ncbxLists.DefineFromList(MTLists)\ncbxLists.GoFirst\ncbxLists.GoNext\ncbxLists.GoFirst  \ncbxLists.SelectCurrent \n\nend\n\n\n'***
***********LbxViews\n\nLbxViews = Self.FindByName(\"LbxViews\")\nmessage = \"Select a View//\"\nLbxViews.SetHelp(message)\ntheViewList = list.Make\ntheDocs = av.GetProject.GetDocs\nfor each theDoc in theDocs\n  if (theDoc.is(View)) then  \n    theViewList.Add (theDoc)\n  end\nend\nLbxViews.DefineFromList(theViewList)\nDO.Resize(409,179)'main window\nav.run( \"MT.List.Selected\",nil)\n\nif ((cbxLists.GetCurrentValue = \"<None>\")or(cbxLists.GetCurrentValue = \"\")) then\nav.run( \"MT.Edit.Lists\",nil)\nav.run( \"MT.New.List.Open\",nil)\ntxt
NewListName = Self.FindByName(\"txtNewListName\")\ntxtNewListName.Focus \nend\n\n"
)

(Script.1211
	Name:	"MT.Run"
	SourceCode:	"DO = av.FindDialog(\"My Themes\")\nDO.Open\n\nAVUpperLeft = av.ReturnOrigin\nAVCenter = avUpperLeft + (av.ReturnExtent / (2@2))\nhalfDialogWidthHeight = DO.ReturnExtent.ReturnSize / (2@2)\nMovePoint = AVCenter - halfDialogWidthHeight\nDO.MoveTo(MovePoint.GetX, MovePoint.GetY)\n\n\n\n\nCurntView = av.GetActiveDoc \n\n"
)

(Script.1212
	Name:	"MT.View.Select"
	SourceCode:	"DO = av.FindDialog(\"My Themes\")\n\n'**************lbxThemes\n\nlbxThemes = DO.FindByName (\"lbxThemes\")\n\nLbxViews = DO.FindByName(\"LbxViews\")\n\nSelectedView = LbxViews.GetCurrentValue \n\ntheThemeList = {}\n\nfor each d in av.GetProject.GetDocs\n  if(d.is(View)) then\n    if (d.asString = SelectedView.AsString) then \n    Tmlist = d.getThemes\n      for each T in Tmlist\n        theThemeList.Add(T.GetName)\n      end\n    end\n  end\nend\n           \nlbxThemes.DefineFromList(theThemeList)\n"
)

(Script.1213
	Name:	"Polygon.AllIntersections"
	SourceCode:	"'\n' Polygon.AllIntersections\n'\n' SELF: A nonempty list of {polygon, value} pairs\n'\n' Returns a similar list of {polygon, integer} pairs, where \n' a) if (A,n) is in the list, then:\n'      1. Each polygon P in SELF either entirely contains A or is disjoint from A\n'      2. n equals the number of polygons containing A, if initially all values are unity.\n' b) The union of A's equals the union of the P's.\n' \n' Comments:\n' This algorithm is worst-case exponential in the number of entries in SELF!  It has\n' to be,
 since the result can contain up to 2^(SELF.Count)-1 polygons.  In fact, \n' this algorithm requires exactly 3*(2^n - n - 1) polygon operations, where \n' n = SELF.count, when there are 2^n-1 output polygons.  The number of operations\n' will often approximate the sum of [count] (which can be as large as n*2^(n-1)).\n'\n' AV 3.0a, 10/23/98:\n' ArcView bugs prevent this script from producing correct results in some instances,\n' especially where the original polygons merely touch and do not overlap.  See\n' http://w
ww.odf.state.or.us/SFGIS/Avenbugs/AvenBugs.htm for related information.\n'\n' Uses:\n' a) Ignoring the values entirely, the output is a list of the distinct \n'    components created by all possible mutual intersections of the input\n'    polygons.\n' b) If all original values are unity, the output describes how many input\n'    polygons overlap each output polygon.\n'\n' (c) 2000 Quantitative Decisions.  All rights reserved.  Please contact\n' info@quantdec.com for permission to redistribute, modify, or incorporate\n
' in commercial software.\n'\nstrTitle = \"Polygon Intersections\"\ntheStack = Stack.Make\ntheStack.Push(SELF)\n's = \"Pushing all \" + SELF.Count.AsString\nav.ShowMsg(\"Computing the partition...\")\nav.SetStatus(0)\nav.ShowStopButton\nN = SELF.Count\nMaxDepth = (N*(N-1)/2) max N\nNOps = 0\n'\n' Stack invariants:\n'\n' a) Each element is a list of {polygon, value} pairs.\n' b) Two distinct elements determine two polygonal regions (by unioning the\n'    values in their lists).  These regions are disjoint.\n' c) More recent element
s never have longer lists than older elements\n'    in the stack.\n' d) The output polygons and the union of all polygons in the stack are\n'    always mutually disjoint.\n' e) The union of all polygons output along with all polygons in stack\n'    elements is a constant.\n'\nlstPolys = {} ' Output\nwhile (theStack.IsEmpty.Not) ' Implements tail recursion\n  if(av.SetWorkingStatus.not) then\n    return NIL\n  end\n  \n  lstPV = theStack.Pop\n  's = s + NL + \"Pop\" ++ lstPV.Count.AsString\n  \n  if (lstPV.Count = 0) then\n   
 ' Nothing to do\n  elseif (lstPV.Count = 1) then\n    '\n    ' With one polygon, just move it to output.\n    '\n    if (lstPV.Get(0).Get(0).IsNull.Not) then\n      lstPolys.Add(lstPV.Get(0))\n      's = s + NL + \"Output\"\n    end\n  else\n    '\n    ' With more than one polygon, we have to do some processing.\n    '\n    thePoly = lstPV.Get(0).Get(0)\n    theLevel = lstPV.Get(0).Get(1)\n    '\n    ' First, remove the union of polygons 1.. from polygon 0.\n    ' Output the result.\n    '\n    theUnion = lstPV.Get(1).Get(0)\n 
   if (lstPV.Count > 2) then\n      for each i in 2..(lstPV.Count-1)\n        theUnion = theUnion.ReturnUnion(lstPv.Get(i).Get(0))\n        NOps = NOps + 1\n      end\n    end\n    newPoly = thePoly.ReturnDifference(theUnion)\n    NOps = NOps + 1\n    lstPolys.Add({newPoly, theLevel})\n    's = s + NL + \"Output unique part of poly 0\"\n    '\n    ' Now the recursion step: polygon 0 dissects each remaining\n    ' polygon into at most two pieces (each piece can be disconnected).\n    ' Apply the whole process to the pieces
 inside polygon 0, and then\n    ' to the pieces outside polygon 0.\n    '\n    lstInt = {}\n    lstDiff = {}\n    for each i in 1..(lstPV.Count-1)\n      newPoly = lstPV.Get(i).Get(0)\n      newLevel = lstPV.Get(i).Get(1)\n      \n      intPoly = newPoly.ReturnIntersection(thePoly)\n      NOps = NOps + 1\n      if (intPoly.IsNull.Not) then\n        lstInt.Add({intPoly, newLevel + theLevel})\n      end\n      \n      if (intPoly.IsNull) then ' This strategem avoids one AV 3.0a bug in ReturnDifference\n        diffPoly = ne
wPoly\n      else\n        diffPoly = newPoly.ReturnDifference(thePoly)\n        NOps = NOps + 1\n      end\n      if (diffPoly.IsNull.Not) then\n        lstDiff.Add({diffPoly, newLevel})\n      end\n    end\n    \n    if (lstInt.Count > lstDiff.Count) then ' Keeps stack size down\n      theStack.Push(lstInt)\n      theStack.Push(lstDiff)\n      's = s + NL + \"Push\" ++ lstInt.Count.AsString ++ \"intersections\"\n      's = s + NL + \"Push\" ++ lstDiff.Count.AsString ++ \"differences\"\n    else\n      theStack.Push(lstDiff)\n    
  theStack.Push(lstInt)\n      's = s + NL + \"Push\" ++ lstDiff.Count.AsString ++ \"differences\"\n      's = s + NL + \"Push\" ++ lstInt.Count.AsString ++ \"intersections\"\n    end\n  end\nend\n'MsgBox.Report(s, strTitle)\nav.SetStatus(100)\n'MsgBox.Info(NOps.AsString ++ \"polygon operations were performed\", strTitle)\n\nreturn lstPolys\n' end of script\n"
)

(Script.1214
	Name:	"SE.Add.Extent"
	SourceCode:	"' AddExtent\n'Name\n\nbk = false\ntheView2 = av.GetActiveDoc\nif (theView2.GetGUI = \"View\") then\n  theView = av.GetActiveDoc\n  _TheV = theView\nelseif (theView2.GetGUI = \"Layout\") then\n  if (_TheV <> nil) then\n    theView = _TheV\n    theLayout = av.GetActiveDoc\n    aGraphicList = theLayout.GetGraphics \n    GVList = aGraphicList.FindAllByClass (Frame)\n\n\n    for each G in GVlist\n    V = G.GetView \n    if (V.AsString = theView.AsString) then\n    theOP = av.GetProject.FindDoc (theView.AsString)\n    theOPWin = theOP.G
etWin\n    theOPWin.Activate \n    theView = av.GetActiveDoc\n    bk = true\n    end\n    end\n  else\n  theView = nil\n  end\nelse\nreturn nil\nend\n\nif (theView = nil) then return nil end\n\n\n\n\n'theView = av.GetActiveDoc\n'if (theView.GetGUI <> \"View\") then return nil end\n\nNA = av.FindDialog(\"Name\")\ntxlName = NA.FindByName (\"txlName\")\ntxlName.SetText (\"\")\n\nNA.Open\nAVUpperLeft = av.ReturnOrigin\nAVCenter = avUpperLeft + (av.ReturnExtent / (2@2))\nhalfDialogWidthHeight = NA.ReturnExtent.ReturnSize / (2@2)\nMovePoint = AVCent
er - halfDialogWidthHeight\nNA.MoveTo(MovePoint.GetX, MovePoint.GetY)\n\n\n' get the current extent\n'theView = av.GetActiveDoc\ntheExtent = theView.GetDisplay.ReturnExtent\n\nif (_NamedExt_Extents.Count = 0 ) then\n MsgBox.Info(\"Please Create an Set of Extents\",\"Add Extent\")\n return nil\nend\n\n' get the dictionary of Extents to add extent to\ntheDict = _NamedExt_Extents.Get(0)\ntheName=theDict.GetName\n' name the extent\n\ntxlName.Focus \n\nextentName = txlName.GetText \nif (extentName = nil) then return nil end\nif (extentNa
me = \"\") then return nil end\nif (extentName = \" \") then return nil end\n\ntheDict.Set( extentName, theExtent )\n_theLastExtent = theExtent\n\nSE = av.FindDialog(\"SE\")\nlbxExtentList = SE.FindByName (\"lbxExtentList\")\ntheDict = _NamedExt_Extents.Get(0)\nExtentNameList = theDict.Returnkeys\nExtentNameList.Sort(True)\nlbxExtentList.DefineFromList(ExtentNameList)\n\nav.run(\"SE.Save\",\"\")\n\n\nif (bk = true) then\ntheLayout\ntheOP = av.GetProject.FindDoc (theLayout.AsString)\ntheOPWin = theOP.GetWin\ntheOPWin.Activate \nend\n"
)

(Script.1215
	Name:	"SE.Delete.Extent"
	SourceCode:	"' Delete Extent\ntheView = av.GetActiveDoc\n\nSE = av.FindDialog(\"SE\")\nlbxExtentList = SE.FindByName (\"lbxExtentList\")\n\nSelectedExtentList = lbxExtentList.GetSelection\nif (SelectedExtentList.Count < 1) then Return nil end \nSelectedExtent = SelectedExtentList.Get(0)\n\nif (_NamedExt_Extents.Count = 0 ) then\n MsgBox.Info(\"No Current Set of Extents Defined\",\"Delete Extent\")\n return nil\nend\n\n' Get the dictionary of extents\n' Always the first Element of List\n\ntheDict = _NamedExt_Extents.Get(0)\nif (theDict = nil) then
\n  return nil\nend\n\n' If no extents are defined, exit\n\nif (theDict.Count = 0) then\n return nil\nend\n\n' Select an extent to remove\ntheName=theDict.GetName\nextent = SelectedExtent\nif (extent = nil) then\n  return nil\nend\n\n' REMOVE IT!\n'\ntheDict.Remove( extent )\n\nSE = av.FindDialog(\"SE\")\nlbxExtentList = SE.FindByName (\"lbxExtentList\")\ntheDict = _NamedExt_Extents.Get(0)\nExtentNameList = theDict.Returnkeys\nExtentNameList.Sort(True)\nlbxExtentList.DefineFromList(ExtentNameList)\n\nav.run(\"SE.Save\",\"\")\n"
)

(Script.1216
	Name:	"SE.Draw.Extent"
	SourceCode:	"' NamedExt.DrawExtent\nSE = av.FindDialog(\"SE\")\nlbxExtentList = SE.FindByName (\"lbxExtentList\")\nSelectedExtentList = lbxExtentList.GetSelection\nif (SelectedExtentList.Count < 1) then Return nil end \nSelectedExtent = SelectedExtentList.Get(0)\n\ntheView = av.GetActiveDoc\nif (theView.GetGUI <> \"View\") then return nil end\n\n\n' First In List is Active Extent Dictionary\nif (_NamedExt_Extents.Count = 0 ) then\n  return nil\nend\n\ntheDict = _NamedExt_Extents.Get(0)\n\n'choose an extent to zoom to from the listed ones. if n
o choice, then exit,\n'otherwise zoom to that extent.\ntheName=theDict.GetName\ntheExtList = theDict.Returnkeys\n\n'theExtentName=Msgbox.ListAsString(theDict.Returnkeys,\n'\"Choose an Extent to Zoom to:\",\"Zoom to Extent in\"++theName)\n\ntheExtentName = SelectedExtent.AsString\n\n\n\nif (theExtentName = nil) then\n  return nil\nend\n \ntheExtent=theDict.Get(theExtentName)\nif (theExtent = nil) then return nil end\ntheView.GetDisplay.ZoomToRect( theExtent )\n_theLastExtent = theExtent\n\n\n\ntheView = av.GetActiveDoc\ntheView.GetDisp
lay.ZoomToRect( _theLastExtent )\n\n\n\n\n\n\n\n\n\n\nif (_NamedExt_Extents.Count = 0) then\n return nil\nend\n\ntheDict=_NamedExt_Extents.Get(0)\ntheName = theDict.Getname\ntheExtents = {}\ntheExtents.Add(SelectedExtent)\n             \nif (theExtents = nil) then\n  return nil\nend\n  \naSymbol = RasterFill.Make\naSymbol.SetStyle(#Rasterfill_Style_Empty)\naSymbol.SetOLColor(Color.GetRed)\naSymbol.SetOLWidth(2)\n\naTextSymbol=TextSymbol.Make\naFont=aTextSymbol.GetFont\naFont.SetStyle(\"BOLD\")\naTextSymbol.SetFont(aFont)\n  \naDisplay = av.Ge
tActiveDoc.GetDisplay \n\nfor each theExtent in theExtents\n  \n newextent=theDict.Get(theExtent)\n  \n aOrigin=newextent.ReturnOrigin\n aSize=newextent.ReturnSize\n aCenter=newextent.ReturnCenter\n  \n aExtentRect=Rect.Make(aOrigin,aSize)\n    \n ' Draw Temporary Graphics\n    \n aDisplay.Flush\n aDisplay.BeginClip\n aDisplay.DrawShape(aExtentRect,aSymbol)\n aDisplay.DrawText(aOrigin,theExtent,aTextSymbol)\n aDisplay.EndClip\n\nend\nmyAnswer = MsgBox.YesNo( \"Draw Extent(s) as Reg. Graphic ? Y/N\", \"Draw Extents\", TRUE )\nif (myA
nswer = true) then\ntheView = av.GetActiveDoc\ntheView.GetGraphics.UnselectAll\nfor each theExtent in theExtents\n  \n newextent=theDict.Get(theExtent)\n aOrigin=newextent.ReturnOrigin\n aSize=newextent.ReturnSize\n aCenter=newextent.ReturnCenter\n  \n  aExtentRect=Rect.Make(aOrigin,aSize)\n  theView = av.GetActiveDoc\n  gr = GraphicShape.Make(newextent)\n  'theView.GetGraphics.UnselectAll\n  gr.SetSelected(TRUE)\n  theView.GetGraphics.Add(gr)\n   \n  'shp = gr.GetShape\n    \n\n\nend \nav.GetProject.SetModified(true)\nelse\nretur
n nil\nend"
)

(Script.1217
	Name:	"SE.Help.Go"
	SourceCode:	"'lblHelp\nHP = av.FindDialog(\"SE.Help\")\nTXHP = HP.FindByName(\"txtbox.Help\")\nMessage = \"Script Author ( Charles Herbold - Hmanfl@lycos.com )\"+nl+\n          \" \"+nl+\n          \"This tool saves your extents to a odb file in the \"+nl+\n          \"arcview folder. \"+nl+\n          \" \"+nl+\n          \"You can use this tool in a view or a layout \"+nl+\n          \" \"+nl+\n          \"Clicking the Save Button will Save the Current Extent \"+nl+\n          \"in a View or a layout \"+nl+\n          \" \"+nl+\n          \"Clicking the D
elete Button will Delete the Selected \"+nl+\n          \"Extent from the Saved list \"+nl+\n          \" \"+nl+\n          \"Clicking the zoom to last button will zoom a view \"+nl+\n          \"to the last saved extent used \"+nl+\n          \" \"+nl+\n          \"clicking the draw button will draw the selected saved extent \"+nl+\n          \"as a raster graphic or a ployline graphic \"+nl+\n          \" \"+nl+\n          \"clicking the x box will close the dialog \"+nl+\n          \" \"+nl+\n          \" \"+nl+\n          \" \"+nl+\n       
   \" \"+nl+\n          \" \"+nl+\n          \"please send any bug reports to my email address \"+nl+\n          \"at the top of this message \"+nl+\n          \" ;-) \"+nl\n          \nMessage = Message.Proper          \nTXHP.SetText(Message) \nHP.Open"
)

(Script.1218
	Name:	"SE.Name.Done"
	SourceCode:	"NA = av.FindDialog(\"Name\")\nNA.Close\n"
)

(Script.1219
	Name:	"SE.Open"
	SourceCode:	"SE = av.FindDialog(\"SE\")\nlbxExtentList = SE.FindByName (\"lbxExtentList\")\ntheDict = _NamedExt_Extents.Get(0)\nExtentNameList = theDict.Returnkeys\nExtentNameList.Sort(True)\nlbxExtentList.DefineFromList(ExtentNameList)\nSE.Open\n\nAVUpperLeft = av.ReturnOrigin\nAVCenter = avUpperLeft + (av.ReturnExtent / (2@2))\nhalfDialogWidthHeight = SE.ReturnExtent.ReturnSize / (2@2)\nMovePoint = AVCenter - halfDialogWidthHeight\nSE.MoveTo(MovePoint.GetX, MovePoint.GetY)\n\n\n"
)

(Script.1220
	Name:	"SE.Save"
	SourceCode:	"' Save theDict Extent Dictionary to an ODB file.\n\n\n\nif (_NamedExt_Extents.Count = 0) then\n MsgBox.Info(\"No Sets Exist to Save.\",\"Save Extents\")\n return nil\nend\n\n' Get the current set of named extents\ntheDict = _NamedExt_Extents.Get(0)\naObj = theDict\naName = aObj.GetName  \nAst = \"$AVHOME\\\"\nMain = aName\nEx = \".odb\"\nFnameout = Ast+Main+Ex\ntheFileName = Filename.Make(Fnameout)\nmyODBFile = theFileName\nmyOdb=Odb.Make(myOdbFile)\nmyOdb.Add(aObj)\nmyOdb.Commit\n  \n  \n"
)

(Script.1221
	Name:	"SE.Selected"
	SourceCode:	"'lbxExtentList\nbk = false\ntheView2 = av.GetActiveDoc\nif (theView2.GetGUI = \"View\") then\n  theView = av.GetActiveDoc\n  _TheV = theView\nelseif (theView2.GetGUI = \"Layout\") then\n  if (_TheV <> nil) then\n    theView = _TheV\n    theLayout = av.GetActiveDoc\n    theOP = av.GetProject.FindDoc (theView.AsString)\n    theOPWin = theOP.GetWin\n    theOPWin.Activate \n    theView = av.GetActiveDoc\n    bk = true\n  else\n  theView = nil\n  end\nelse\nreturn nil\nend\n\nif (theView = nil) then return nil end\n\nSE = av.FindDialog(\"SE
\")\nlbxExtentList = SE.FindByName (\"lbxExtentList\")\nSelectedItem = lbxExtentList.GetCurrentValue\n\n\n\n' First In List is Active Extent Dictionary\nif (_NamedExt_Extents.Count = 0 ) then\n  return nil\nend\n\ntheDict = _NamedExt_Extents.Get(0)\n\n'choose an extent to zoom to from the listed ones. if no choice, then exit,\n'otherwise zoom to that extent.\ntheName=theDict.GetName\ntheExtList = theDict.Returnkeys\n\n'theExtentName=Msgbox.ListAsString(theDict.Returnkeys,\n'\"Choose an Extent to Zoom to:\",\"Zoom to Extent in\"++the
Name)\n\ntheExtentName = SelectedItem.AsString\n\n\n\nif (theExtentName = nil) then\n  return nil\nend\n \ntheExtent=theDict.Get(theExtentName)\nif (theExtent = nil) then return nil end\ntheView.GetDisplay.ZoomToRect( theExtent )\n_theLastExtent = theExtent\n\n\n\n'theView = av.GetActiveDoc\ntheView.GetDisplay.ZoomToRect( _theLastExtent )\n\nif (bk = true) then\ntheLayout\ntheOP = av.GetProject.FindDoc (theLayout.AsString)\ntheOPWin = theOP.GetWin\ntheOPWin.Activate \nend\n"
)

(Script.1222
	Name:	"SE.Zoom.Last"
	SourceCode:	"theView = av.GetActiveDoc\nif (theView.GetGUI <> \"View\") then return nil end\nif (_theLastExtent = nil) then return nil end\ntheView.GetDisplay.ZoomToRect( _theLastExtent )\n"
)

(Script.1223
	Name:	"splitTool.Apply"
	SourceCode:	"'SplitTool\n'\n'Split a line or poly theme, without introducing new arcs. Note that you will have to\n'recalculate any Area or Perimeter fields, since they will no longer be valid.\n'\n'Original coding - Stephen Lead, 20 August 1999\n\n'Choose which shapefile we're editing. Get its table and fields.\ntheView = av.GetActiveDoc\ntheThm = theView.GetActiveThemes.Get(0)\ntheFTab = theThm.GetFTab\ntheView.SetEditableTheme(theThm)\nif (theFTab.IsEditable.Not) then\n  msgbox.error(\"Theme \" + theThm.AsString.quote + \" cannot be
 opened for editing\",\"\")\n  return nil\nend\ntheShpFld = theFTab.FindField(\"shape\")\n\n'Add a new field, which we'll use to identity \"original\" arcs.\ntempFld = Field.Make(\"temp\",#FIELD_DECIMAL, 1,1)\ntheFTab.AddFields({tempFld})\nfor each rec in theFTab\n  theFTab.SetValue(tempFld,rec,1)\nend\n\n'We'll use a graphic to split the lines.\ntheLine = theView.ReturnUserPolyLine\ntheThm.Split(theLine)\n\n'Now select out those arcs introduced by our graphic during splitting.\ntheBitMap = theFTab.GetSelection\nexpr = \"([temp] = 0)\"
\ntheFTab.Query(expr,theBitMap,#VTAB_SELTYPE_NEW)\ntheFTab.UpdateSelection\n\n'Delete them. Remove the temporary field.\ntheFTab.BeginTransaction\ntheFTab.RemoveRecords(theFTab.GetSelection.Clone)\ntheFTab.EndTransaction\ntheFTab.RemoveFields({tempFld})\ntheFTab.SetEditable(false)\n\n'Refresh the view.\ntheView.Invalidate"
)

(Script.1224
	Name:	"splitTool.update"
	SourceCode:	"'We want the tool to be available only if we have a single\n'active line or poly theme.\n\ntheView = av.GetActiveDoc\ntheThms = theView.GetActiveThemes\nenabled = false\nif (theThms.Count = 1) then\n  theThm = theThms.Get(0)\n  theClass = theThm.GetFTab.GetShapeClass.GetClassName\n  theClasses = \"polyline polygon\"\n  if (theClasses.IndexOf(theClass) <> -1) then\n    Enabled = true\n  end\nend\n\nself.SetEnabled(enabled)"
)

(Script.1225
	Name:	"Sub.Get3PCircle"
	SourceCode:	"'*Script: Sub.Get3PCircle\na_Point = Self.Get(0)\na_X = a_Point.GetX\na_Y = a_Point.GetY\nb_Point = Self.Get(1)\nb_X = b_Point.GetX\nb_Y = b_Point.GetY\nc_Point = Self.Get(2)\nc_X = c_Point.GetX\nc_Y = c_Point.GetY\ncalcA = b_X - a_X\ncalcB = b_Y - a_Y\ncalcC = c_X - a_X\ncalcD = c_Y - a_Y\ncalcG = 2 * ((calcA * (c_Y - b_Y)) - (calcB * (c_X - b_X)))\nif (calcG = 0) then\n  theCircle = Circle.MakeNull\nelse \n  calcE = (calcA * (a_X + b_X)) + (calcB * (a_Y + b_Y))\n  calcF = (calcC * (a_X + c_X)) + (calcD * (a_Y + c_Y))\n  cent
erX = ((calcD * calcE) - (calcB * calcF)) / calcG\n  centerY = ((calcA * calcF) - (calcC * calcE)) / calcG\n  centerPoint = Point.Make(centerX, centerY)\n  theRadius = a_Point.Distance(centerPoint)\n  theCircle = Circle.Make(centerPoint, theRadius)\nend\nreturn theCircle"
)

(Script.1226
	Name:	"Sub.Get3PDirection"
	SourceCode:	"'*Script: Sub.Get3PDirection\na_Point = Self.Get(0)\na_X = a_Point.GetX\na_Y = a_Point.GetY\nb_Point = Self.Get(1)\nb_X = b_Point.GetX\nb_Y = b_Point.GetY\nc_Point = Self.Get(2)\nc_X = c_Point.GetX\nc_Y = c_Point.GetY\nxStartMid = b_X - a_X 'dx1\nyStartMid = b_Y - a_Y 'dy1\nxStartEnd = c_X - a_X 'dx2\nyStartEnd = c_Y - a_Y 'dy2\n'slopes multiplied by \"xStartMid * xStartEnd\" to avoid divide by 0\nslopeStartMid = xStartEnd * yStartMid\nslopeStartEnd = xStartMid * yStartEnd\nif (slopeStartEnd > slopeStartMid) then\n  return 1 '
counterclockwise\nelseif (slopeStartEnd < slopeStartMid) then\n  return -1 'clockwise\nelse\n  return 0 'coliner\nend"
)

(Script.1227
	Name:	"Sub.GetConvexHull"
	SourceCode:	"'*Script: Sub.GetConvexHull\npointList = Self\n\n'*** geometry subroutines\nsubGet3PDirection = av.FindScript(\"Sub.Get3PDirection\")\nsubRadialPointSort = av.FindScript(\"Sub.RadialPointSort\")\n\n'*** input validation\nif (subGet3PDirection = nil) then\n  MsgBox.Error(\"Subroutine not found: \"\"Sub.Get3PDirection\"\"\", \"Sub.GetConvexHull\")\n  return nil\nelseif (subRadialPointSort = nil) then\n  MsgBox.Error(\"Subroutine not found: \"\"Sub.RadialPointSort\"\"\", \"Sub.GetConvexHull\")\n  return nil\nelseif (pointList.Is(List).Not) the
n\n  MsgBox.Error(\"Invalid point list\", \"Sub.GetConvexHull\")\n  return nil\nelseif (pointList.Count < 3) then\n  MsgBox.Error(\"Point list count < 3\", \"Sub.GetConvexHull\")\n  return nil\nend\n\nav.ClearMsg\nav.ClearStatus\neltCount = pointList.Count\ncurrentElt = 0\nav.ShowMsg(\"Validating point input...\")\nfor each aPoint in pointList\n  if (aPoint.Is(Point).Not) then\n    av.ClearStatus\n    av.ClearMsg\n    MsgBox.Error(\"Input point invalid\", \"Sub.GetConvexHull\")\n    return nil\n  end\n  currentElt = currentElt + 1\n  av.SetS
tatus(currentElt / eltCount * 100)\nend\nav.ClearStatus\n\n'*** begin calcs\nhullBase = Point.MakeNull\nhullTop = Point.MakeNull\nhullLeft = Point.MakeNull\nhullRight = Point.MakeNull\nfor each aPoint in pointList\n  if (hullBase.IsNull) then\n    hullBase = aPoint\n  elseIf (aPoint.GetY < hullBase.GetY) then\n    hullBase = aPoint\n  end\n  if (hullTop.IsNull) then\n    hullTop = aPoint\n  elseIf (aPoint.GetY > hullTop.GetY) then\n    hullTop = aPoint\n  end\n  if (hullLeft.IsNull) then\n    hullLeft = aPoint\n  elseIf (aPoint.
GetX < hullLeft.GetX) then\n    hullLeft = aPoint\n  end\n  if (hullRight.IsNull) then\n    hullRight = aPoint\n  elseIf (aPoint.GetX > hullRight.GetX) then\n    hullRight = aPoint\n  end\nend\n\nexcludeBounds = {hullBase, hullRight, hullTop, hullLeft}\nexcludePoly = Polygon.Make({excludeBounds})\n\nav.ClearStatus\nav.ShowMsg(\"Excluding known interior points...\")\nstatusCount = pointList.Count\neltCount = 0\ncheckList = List.Make\nfor each aPoint in pointList\n  if (\n      (aPoint = hullBase) or \n      (excludePoly.Contains(a
Point) and (excludeBounds.Find(aPoint) = -1))\n     ) then\n    continue\n  end\n  checkList.Add(aPoint)\n  eltCount = eltCount + 1\n  av.SetStatus(eltCount / statusCount * 100)\nend\ncheckList = subRadialPointSort.DoIt({checkList, hullBase})\nav.ClearStatus\nav.ClearMsg  \n\nav.ClearStatus\nav.ShowMsg(\"Locating convex hull...\")\nstatusCount = checkList.Count\neltCount = 0\nhullList = {hullBase}\nfor each checkPoint in checkList\n  if (hullList.Count < 2) then\n    hullList.Add(checkPoint)\n    eltCount = eltCount + 1\n    cont
inue\n  end\n  if (hullList.Get(hullList.Count -1).Distance(checkPoint) = 0) then\n    eltCount = eltCount + 1\n    continue\n  end\n  hullDir = subGet3PDirection.DoIt({hullList.Get(hullList.Count -2), hullList.Get(hullList.Count -1), checkPoint})\n  if (hullDir = 0) then\n    colinerBase = hullList.Get(hullList.Count -2)\n    colinerLast = hullList.Get(hullList.Count -1)\n    if (colinerBase.Distance(checkPoint) < colinerBase.Distance(colinerLast)) then\n      hullList.Set(hullList.Count -1, checkPoint)\n      checkPo
int = colinerLast\n    end\n  end\n  while ((hullDir < 0) and (hullList.Count > 1))\n    hullList.Remove(hullList.Count -1)\n    hullDir = subGet3PDirection.DoIt({hullList.Get(hullList.Count -2), hullList.Get(hullList.Count -1), checkPoint})\n  end\n  hullList.Add(checkPoint)\n  eltCount = eltCount + 1\n  av.SetStatus(eltCount / statusCount * 100)\nend\nav.ClearStatus\nav.ClearMsg  \n\nreturn hullList"
)

(Script.1228
	Name:	"Sub.GetThsnPolygons"
	SourceCode:	"'*Script: Sub.GetThsnPolygons\npointList = Self.Get(0)\nlimitsPG = Self.Get(1)\nlimitsPL = limitsPG.AsPolyLine\n\n'*** geometry subroutines\nsubGet3PCircle = av.FindScript(\"Sub.Get3PCircle\")\nsubRadialPointSort = av.FindScript(\"Sub.RadialPointSort\")\n\n'*** input validation\nif (subGet3PCircle = nil) then\n  MsgBox.Error(\"Subroutine not found: \"\"Sub.Get3PCircle\"\"\", \"Sub.GetThsnPolygons\")\n  return nil\nelseif (subRadialPointSort = nil) then\n  MsgBox.Error(\"Subroutine not found: \"\"Sub.RadialPointSort\"\"\", \"Sub.GetThsnPoly
gons\")\n  return nil\nelseif (pointList.Is(List).Not) then\n  MsgBox.Error(\"Invalid point list\", \"Sub.GetThsnPolygons\")\n  return nil\nelseif (pointList.Count < 2) then\n  MsgBox.Error(\"Point list count < 2\", \"Sub.GetThsnPolygons\")\n  return nil\nelseif (limitsPG.Is(Polygon).Not) then\n  MsgBox.Error(\"Invalid limits polygon\", \"Sub.GetThsnPolygons\")\n  return nil\nend\n\nav.ClearMsg\nav.ClearStatus\neltCount = pointList.Count\ncurrentElt = 0\nav.ShowMsg(\"Validating point input...\")\nfor each aPoint in pointList\n  if (aPoint.I
s(Point).Not or limitsPG.Contains(aPoint).Not) then\n    av.ClearStatus\n    av.ClearMsg\n    MsgBox.Error(\"Input point invalid or outside limits\", \"Sub.GetThsnPolygons\")\n    return nil\n  end\n  currentElt = currentElt + 1\n  av.SetStatus(currentElt / eltCount * 100)\nend\nav.ClearStatus\n\n'*** begin calcs\nlimitsRect = limitsPG.ReturnExtent\nlimitsCenter = limitsRect.ReturnCenter\nlimitsRadius = limitsCenter.Distance(limitsRect.ReturnOrigin) * 2\nworldTop = Point.Make(limitsCenter.GetX, limitsCenter.GetY + (limitsRadi
us * 2))\nworldLeft = Point.Make(limitsCenter.GetX - (limitsRadius * (3.Sqrt)), limitsCenter.GetY - limitsRadius)\nworldRight = Point.Make(limitsCenter.GetX + (limitsRadius * (3.Sqrt)), limitsCenter.GetY - limitsRadius)\n\nworldList = {worldTop, worldLeft, worldRight}\ntinCirList = {{Circle.Make(limitsCenter, limitsRadius * 3.Sqrt), worldList}}\n\ndropDuplicates = False\ndropList = List.Make\n\nav.ClearStatus\nav.ClearMsg\nav.ShowMsg(\"Generating tin...\")\nstatusCount = pointList.Count\neltCount = 0\nbuildList = List.Make\n
tinRemoveList = List.Make\nfor each insPoint in pointList\n  buildList.Empty\n  tinRemoveList.Empty\n  dropPoint = False\n  for each tinSet in tinCirList\n    tinCircle = tinSet.Get(0)\n    insDist = insPoint.Distance(tinCircle.ReturnCenter)\n    if (insDist > tinCircle.GetRadius) then\n      continue\n    end\n    if (tinCircle.GetRadius - insDist <= 1) then\n      for each aPoint in tinSet.Get(1)\n        if ((aPoint.GetX = insPoint.GetX) and (aPoint.GetY = insPoint.GetY)) then\n          if(dropDuplicates) then\n      
      dropPoint = True\n            break\n          else\n            MsgBox.Error(\"Duplicate input points at:\"++aPoint.GetX.AsString+\",\"++aPoint.GetY.AsString, \"Sub.GetThsnPolygons\")\n            if(MsgBox.YesNo(\"Do you want to continue without this point?\", \"Duplicate Point\", False)) then\n              if(MsgBox.YesNo(\"Do you want to drop all other duplicate points?\", \"Drop Duplicate Points\", True)) then\n                dropDuplicates = True\n              end\n              dropPoint = True\n              brea
k\n            else\n              av.ClearMsg\n              av.ClearStatus\n              return nil\n            end\n          end\n        end\n      end\n    end\n    \n    if(dropPoint) then\n      break\n    end\n\n    buildList.Merge(tinSet.Get(1))\n    tinRemoveList.Add(tinSet)\n  end\n  \n  if(buildList.IsEmpty) then\n    if(dropDuplicates) then\n      dropPoint = True\n    else\n      MsgBox.Error(\"Duplicate input points at:\"++insPoint.GetX.AsString+\",\"++insPoint.GetY.AsString, \"Sub.GetThsnPolygons\")\n      if(MsgBox.Y
esNo(\"Do you want to continue without this point?\", \"Duplicate Point\", False)) then\n        if(MsgBox.YesNo(\"Do you want to drop all other duplicate points?\", \"Drop Duplicate Points\", True)) then\n          dropDuplicates = True\n        end\n        dropPoint = True\n      else\n        av.ClearMsg\n        av.ClearStatus\n        return nil\n      end\n    end\n  end\n  \n  if(dropPoint) then\n    dropList.Add(insPoint)\n    eltCount = eltCount + 1\n    av.SetStatus(eltCount / statusCount * 100)\n    continue\n  end\n  \n  
for each tinSet in tinRemoveList\n    tinCirList.RemoveObj(tinSet)\n  end\n  \n  buildList.RemoveDuplicates\n  buildList = subRadialPointSort.DoIt({buildList, insPoint})\n  lastPoint = Point.MakeNull\n  for each buildPoint in buildList\n    if (lastPoint.IsNull) then\n      lastPoint = buildPoint\n      continue\n    end\n    tinDef = {insPoint, lastPoint, buildPoint}\n    tinCircle = subGet3PCircle.DoIt(tinDef)\n    tinCirList.Add({tinCircle, tinDef})\n    lastPoint = buildPoint\n  end\n  \n  tinDef = {insPoint, buildList.G
et(buildList.Count -1), buildList.Get(0)}\n  tinCircle = subGet3PCircle.DoIt(tinDef)\n  tinCirList.Add({tinCircle, tinDef})\n  eltCount = eltCount + 1\n  av.SetStatus(eltCount / statusCount * 100)\nend\nav.ClearStatus\nav.ClearMsg\n\nav.ClearStatus\nav.ShowMsg(\"Calculating polygons...\")\nstatusCount = pointList.Count\neltCount = 0\n\nthsnList = List.Make\npointIndex = List.Make\nthsnSet = List.Make\nfor each aPoint in pointList\n  thsnSet.Empty\n  clipLimits = False\n  \n  for each tinSet in tinCirList\n    tinDef = tinSet.Get(1
)\n    if (tinDef.Find(aPoint) > -1) then\n      tinCircle = tinSet.Get(0)\n      thsnVertex = tinCircle.ReturnCenter\n      thsnSet.Add(thsnVertex)\n      if (clipLimits.Not and limitsPG.Contains(thsnVertex).Not) then\n        clipLimits = True\n      end\n    end\n  end\n  \n  if(thsnSet.IsEmpty) then\n    eltCount = eltCount + 1\n    av.SetStatus(eltCount / statusCount * 100)\n    continue\n  end\n\n  thsnSet = subRadialPointSort.DoIt({thsnSet, aPoint})\n  \n  thsnPolygon = Polygon.Make({thsnSet})\n  \n  if (clipLimits or th
snPolygon.Intersects(limitsPL)) then\n    thsnPolygon = limitsPG.ReturnIntersection(thsnPolygon)\n  end\n\n  thsnList.Add(thsnPolygon)\n  pointIndex.Add(aPoint)\n  eltCount = eltCount + 1\n  av.SetStatus(eltCount / statusCount * 100)\nend\nav.ClearStatus\nav.ClearMsg  \n\nreturn {thsnList, pointIndex}"
)

(Script.1229
	Name:	"Sub.RadialPointSort"
	SourceCode:	"'*Script: Sub.RadialPointSort\npointList = Self.Get(0)\nsortCenter = Self.Get(1)\n\nsortList = List.Make\nfor each aPoint in pointList\n  if(aPoint.IsNull) then\n    continue\n  end\n  distX = aPoint.GetX - sortCenter.GetX\n  distY = aPoint.GetY - sortCenter.GetY\n  if (distX.Abs + distY.Abs = 0) then\n    sortKey = 0\n  else\n    sortKey = distY / (distX.Abs + distY.Abs)\n  end\n  if (distX < 0) then\n    sortKey = 2 - sortKey\n  elseif (distY < 0) then\n    sortKey = 4 + sortKey\n  end\n  sortKey  = sortKey * 90\n\n  if (sortLi
st.IsEmpty) then\n    sortList.Add({sortKey, aPoint})\n    continue\n  end\n\n  newSet = {sortKey, aPoint}\n\n  if (sortKey < sortList.Get(0).Get(0)) then\n    sortList.Insert(newSet)\n  elseif (sortKey = sortList.Get(0).Get(0)) then\n    sortList.Insert(sortList.Get(0))\n    sortList.Set(1, newSet)\n  elseif (sortKey >= sortList.Get(sortList.Count -1).Get(0)) then\n    sortList.Add(newSet)\n  else\n    indexBase = 0\n    indexBound = sortList.Count -1\n    addIndex = Number.MakeNull\n    while (addIndex.IsNull)\n      search
Count = indexBound - indexBase\n      if (searchCount < 4) then\n        for each idxVector in 0 .. searchCount\n          binIndex = indexBound - idxVector\n          binValue = sortList.Get(binIndex).Get(0)\n          if (sortKey >= binValue) then\n            addIndex = binIndex + 1\n            break\n          end\n        end\n        if (addIndex.IsNull) then\n          addIndex = indexBase\n        end\n      else\n        binIndex = indexBase + (searchCount / 2).Round\n        binValue = sortList.Get(binIndex).Ge
t(0)\n        if (sortKey = binValue) then\n          addIndex = binIndex + 1\n        elseif (sortKey < binValue) then\n          indexBound = binIndex\n        elseif (sortKey > binValue) then\n          indexBase = binIndex\n        end\n      end\n    end\n    sortList.Add(newSet)\n    sortList.Shuffle(newSet, addIndex)\n  end\nend\n\nradialList = List.Make\nfor each sortSet in sortList\n   radialList.Add(sortSet.Get(1))\nend\n\nreturn radialList"
)

(Script.1230
	Name:	"Theme.Dissect"
	SourceCode:	"if (System.IsShiftKeyDown) then\n  message =\n  \"Script Author (WAH @ Quantitative Decisions) \"+nl+\n  \"Brief Instructions: \"+nl+\n  \"Dissects overlapping polygonal features in a theme into \"+nl+\n  \"a new theme with overlaps as new shapes\"+nl+nl+\n  \" \"+nl+\n  \" \"+nl+\n  \" \"+nl+\n  \" \"+nl+\n  \" \"+nl+\n  \" \"+nl\n'Title here         \n  msgbox.report(message,\"Theme.Dissect\")\n  return nil\nend\n\n'\n' Theme.Dissect\n'\n' SELF:    none for stand-alone, a theme if called by a script.\n'\n' Returns: A polygon theme within a user-sel
ected view.\n'\n' Context: Run from a view with one active polygon theme.\n'\n' Example: av.Run(\"Theme.Dissect\", aTheme)\n'\n' Dissects overlapping polygonal features in a theme into \n' a \"weighted partition.\"  See the header to \"Polygon.AllIntersections\"\n' for details.\n'\n' WAH @ Quantitative Decisions, 10/23/98.  AV 3.0a\n' WAH 12 February 2000, AV 3.2: Improved the interface.\n'\n' *** WARNING ***\n' Shape operations in ArcView 3.0a are buggy!  See the header to\n' Polygon.AllIntersections for more information.\n'\n' 
Comments:\n' The output theme has [Area] and [Count] (overlap count) fields.\n'\n' (c) 2000 Quantitative Decisions.  All rights reserved.  Please contact\n' info@quantdec.com for permission to redistribute, modify, or incorporate\n' in commercial software.\n'========================================================================'\nstrTitle = \"Dissect\"\n'\n' Obtain the theme to process.\n'\nif (SELF.Is(FTheme)) then\n  if (SELF.GetFTab.GetShapeClass.GetClassName = \"Polygon\") then\n    theTheme = SELF\n  else\n    return N
IL\n  end\nelse\n  theView = av.GetActiveDoc\n  if (theView.Is(View).not) then\n    msgBox.Info(\"Run this script from a view with one theme active.\", strTitle)\n    return NIL\n  end\n  \n  lstThemes = {}\n  for each theTheme in theView.GetActiveThemes\n    if (theTheme.Is(FTheme) and (theTheme.GetFtab.GetShapeClass.GetClassName = \"Polygon\")) then\n      lstThemes.Add(theTheme)\n    end\n  end\n  \n  if (lstThemes.Count <> 1) then\n    msgBox.Info(\"Activate exactly one polygon theme to process.\", strTitle)\n    return NIL\n  
end\n  \n  theTheme = lstThemes.Get(0)\nend\n'\n' Get some objects related to the theme.\n'\ntheFTab = theTheme.GetFTab\ntheBitmap = theFTab.GetSelection\nwasEmptySelection = (theBitmap.Count = 0)\nif (wasEmptySelection) then\n  theBitmap.SetAll\nend\n'\n' Read the shapes.\n'\nav.ShowMsg(\"Reading the shapes...\")\nav.SetStatus(0)\nav.ShowStopButton\nN = 0\n\nlstP = {}\nfldShape = theFTab.FindField(\"shape\")\nfor each r in theBitmap\n  if (av.SetStatus(100*N/(theBitmap.Count)).not) then\n    return NIL\n  end\n  N = N+1\n  \n  theShape = 
theFTab.ReturnValue(fldShape, r)\n  lstP.Add({theShape, 1})\nend\n'\n' Restore the theme's selction bitmap.\n'\nif (wasEmptySelection) then\n  theBitmap.ClearAll\nend\n'\n' Process the shapes.\n'\nlstNew = av.Run(\"Polygon.AllIntersections\", lstP)\nif (lstNew = NIL) then \n  return NIL\nend\n'\n' Put the results into a new shapefile.\n'\ntheProject = av.GetProject\ntheWorkDir = theProject.GetWorkDir\nstrDefault  = theWorkDir.MakeTmp(\"theme\",\"shp\")\nFNOut  = FileDialog.Put(strDefault, \"*.shp\", strTitle + \"--Output Shapefile\")\nif (
FNOut = NIL) then return NIL end\nFNOut.SetExtension(\"shp\")\nFTBOut = FTab.MakeNew(FNOut, Polygon)\nif (FTBOut = NIL) then\n  MsgBox.Error(\"Unable to create an output shape file\", strTitle)\n  return NIL\nend\n\nFTBOut.AddFields({Field.Make(\"Id\", #FIELD_DECIMAL, 8, 0)})\nFTBOut.AddFields({Field.Make(\"Area\", #FIELD_DECIMAL, 19, 6)})\nFTBOut.AddFields({Field.Make(\"Count\", #FIELD_DECIMAL, 8, 0)})\nfldShape = FTBOut.FindField(\"shape\")\nfldCount = FTBOut.FindField(\"count\")\nfldArea  = FTBOut.FindField(\"area\")\nfldId    = FTBO
ut.FindField(\"id\")\n\ndctCount = Dictionary.Make(100)\nfor each i in 0..99\n  dctCount.Set(2^i, i+1)\nend\n\ni = 0\nfor each lstPV in lstNew\n  r = FTBOut.AddRecord\n  FTBOut.SetValue(fldShape, r, lstPV.Get(0))\n  FTBOut.SetValue(fldCount, r, dctCount.Get(lstPV.Get(1)))\n  FTBOut.SetValue(fldArea,  r, lstPV.Get(0).ReturnArea)\n  FTBOut.SetValue(fldId,    r, i)\n  i = i+1\nend\nFTBOut.SetEditable(false)\n'\n' Add the shapefile as a theme to a view.\n'\nlstViews = {}\nfor each d in av.GetProject.GetDocs\n  if (d.Is(View)) then\n   
 lstViews.Add( d )\n  end\nend\n \nif (lstViews.Count = 0) then\n  vueDest = View.Make\nelse\n  vueDest = MsgBox.ListAsString( lstViews, \"Select the destination view:\", strTitle )\n  if (vueDest = NIL) then exit end\nend\n\nthmNew = FTheme.Make(FTBOut)\nif (thmNew = NIL) then return NIL end\nvueDest.AddTheme(thmNew)\nvueDest.GetWin.Activate\nreturn thmNew\n' End of script \n\n\n  "
)

(Script.1231
	Name:	"Theme.Sort.Shape.C"
	SourceCode:	"theView = av.GetActiveDoc\ntList = theView.GetThemes\nthemeList = {}\n\nthemeList = MsgBox.MultiListAsString( tList, \"Select Themes to be Sorted\", \"Sort Shapes\" )\nif (themeList = nil) then  \nreturn nil \nelse\n\nend\n\n\nfor each t in themeList\n\n  theVTab = t.GetFTab\n\n  doStop=false\n  if (theVTab.IsEditable.Not) then\n    doStop=true\n    theVTab.StartEditingWithRecovery\n  end\n  \n  theVTab.AddFields({Field.Make(\"X_tmp\",#FIELD_DECIMAL,16,9),Field.Make(\"Y_tmp\",#FIELD_DECIMAL,16,9)})\n\n  theVTab.Calculate(\"[shape].returnce
nter.gety\",thevtab.findfield(\"Y_tmp\"))\n  theVTab.Calculate(\"[shape].returncenter.getx\",thevtab.findfield(\"X_tmp\"))\n  flist={thevtab.findfield(\"Y_tmp\"),thevtab.findfield(\"X_tmp\")}\n  thevtab.findfield(\"x_tmp\").setvisible(false)\n  thevtab.findfield(\"y_tmp\").setvisible(false)  \n\n  out_fn = FileDialog.Put(FileName.GetCWD.MakeTmp(\"sort\",\"shp\"),\"*.shp\",\"Output File\")\n  if (out_fn = nil) then\n     return nil\n  end\n\n  vs = VTabSort.Make(theVTab,flist,{false,false},true,true)\n  \n  vs.export(out_fn,shape)\n  \n  if (doS
top) then\n    theVTab.StopEditingWithRecovery(false)\n  else\n    theVTab.RemoveFields({thevtab.findfield(\"Y_tmp\"),thevtab.findfield(\"X_tmp\")})\n  end\n  \n  if (msgbox.yesno(\"Add\"++out_fn.asstring.quote++\"to\"++theView.GetNAme,\"Add Theme\",TRUE)) then\n    newF=ftab.make(srcname.make(out_fn.asstring))\n    newF.CreateIndex(newF.GetFields.Get(0))\n    theView.AddTheme(ftheme.make(newF))\n  end\nend\n\n"
)

(Script.1232
	Name:	"Theme.Tools.Whats.New.C"
	SourceCode:	"message =\n  \"10/24/01 Data Overlay Tool\"+nl+\n  \"Located in Spatial Analysis Tools Menu\"+nl+\n  \" \"+nl+\n  \"11/01/01 My Themes \"+nl+\n  \"Located in the Main Drop Down Menu \"+nl+\n  \" \"+nl+\n  \"11/20/01 Saved Extents \"+nl+\n  \"Located in the Main Drop Down Menu\"+nl+\n  \" \"+nl+\n  \"12/21/01 Two New Symbol Tools \"+nl+\n  \"Located in the Main Drop Down Menu \"+nl+\n  \" \"+nl+\n  \"12/21/01 View.New Script \"+nl+\n  \"Shift Click 'New View Button' in Project Window to See Script Work \"+nl+\n  \" \"+nl+\n  \"04/11/02 Export View to AEP
 File \"+nl+\n  \"Located in the Misc Tools Menu \"+nl+\n  \" \"+nl+\n  \"05/03/02 Sort Shapes from Top2Bottom - Left/Right \"+nl+\n  \"Located in the Shape Tools Menu  \"+nl+\n  \"05/03/04 Quick Extents\"+nl+\n  \"Located View Button Bar\"+nl+\n  \"11/03/05 Lat Lon added to Calculate on a Theme \"+nl+\n  \"Located in C-Theme Tools - Spatial Analysis Tools\"+nl+\n  \" \"+nl+\n  \" \"+nl+\n  \" \"+nl+\n  \" \"+nl+\n  \" Bug Reports & Ideas to Hmanfl@lycos.com\"+nl\n'Title here         \n  msgbox.report(message,\"Whats New\")\n  \n  \n\n"
)

(Script.1233
	Name:	"TwoThemeAnalyst.AggData"
	SourceCode:	"if (System.IsShiftKeyDown) then\n\n'INSTRUCTIONS FOR TWO THEME ANALYST EXTENSION 3.1\n'by Kevin O'Malley 4/2/1998\n'=============================================\n'Portions of this work include intellectual property of Kevin O'Malley and are\n'  used herein with permission. Copyright (C) 1998 Kevin O'Malley.\n'  All rights reserved.\n'=============================================\n'\nMsgBox.Report(\n\"    The Two Theme Analyst Extension creates tables based on the\"+NL+\n\"data in two themes in a view, without altering th
ose themes.\"+NL+\n\"There are three functions:\"+NL+NL+\n\"      1) Proximity Table\"+NL+\n\"      2) Aggregate Data\"+NL+\n\"      3) Area Percentage\"+NL+NL+\n\"1. CREATE PROXIMITY TABLE\"+NL+\n\"    A Proximity table is a two column table that has one field\"+NL+\n\"from each theme.  A record in a Proximity table is written when a\"+NL+\n\"feature in the first theme either intersects or is within a distance\"+NL+\n\"of a feature in the second theme.  This allows the user to create a\"+NL+\n\"table of which entities are in or near en
tities in another theme.\"+NL+NL+\n\"    The program will use only those features that are selected.  If\"+NL+\n\"no features are selected then all features will be used.  User can \"+NL+\n\"choose which fields are passed into the output table and can pick\"+NL+\n\"either a dBase or INFO table for output.  Only positive distances,\"+NL+\n\"measured in Miles can be entered.  Enter 0 for just intersecting\"+NL+\n\"results.\"+NL+NL+\n\"2. AGGREGATE DATA BASED ON AREA PROPORTION\"+NL+\n\"    This program can only be used on two POLYGO
N themes.  The\"+NL+\n\"program will aggregate data from one theme, the SOURCE theme.\"+NL+\n\"The data will be written to a record for each feature in the other\"+NL+\n\"theme, the BASE theme.  The aggregation is based on what\"+NL+\n\"portion of the area of each feature in the SOURCE theme overlays\"+NL+\n\"the BASE theme features.  One field from the BASE theme will be\"+NL+\n\"passed to the output table as an ID field.\"+NL+NL+\n\"    For example, if 25% of a SOURCE feature overlays a BASE\"+NL+\n\"feature, 25% of the value of
 the SOURCE theme's numeric fields\"+NL+\n\"will be added to the output table for the record for the BASE\"+NL+\n\"feature.  If another SOURCE feature overlays the same BASE\"+NL+\n\"feature, a portion of its data will be added to the same BASE\"+NL+\n\"record.  Therefore, each BASE record may have data from more\"+NL+\n\"than one SOURCE feature.\"+NL+NL+\n\"    When the process is over, the user can choose to Join the\"+NL+\n\"output table to the BASE theme on the ID field.\"+NL+NL+\n\"3.  CALCULATE AREA PERCENTAGE\"+NL+\n\"    For 
each feature of one theme (the BASE), the program will\"+NL+\n\"calculate the area and percentage of total area that the polygon\"+NL+\n\"contains from the overlayed features of the second theme (SOURCE).\"+NL+NL+\n\"The areas of the SOURCE theme will be summarized on a field, of\"+NL+\n\"the user's choice.  One field from the BASE theme will be put into\"+NL+\n\"the output table.  Only selected records will be processed.  If no\"+NL+\n\"records are selected, all will be used.\"+NL+NL+NL+\n\"KBO 4/7/1998\"\n,\"HELP FOR TWO THEME A
NALYST EXTENSION\")\n  return nil\nend\n\n'TWO THEME ANALYST EXTENSION 3.1\n'AGGREGATE DATA TOOL\n'This program will take the numeric data from one polygon theme (SOURCE) and aggregate\n'them on to another theme (BASE) by the proportion of the SOURCE that covers features in\n'the BASE.   One or all numeric fields from the SOURCE can be aggregated.  One ID field\n'from the BASE can be taken.  Results are put into a table of Users choosing.  Resulting\n'table can be joined to the BASE theme, if so desired.\n'\n'by Kevin O
'Malley 4/2/1998\n'edit made 5/10/1999\n'KevOMalley@juno.com\n'=============================================\n'Portions of this work include intellectual property of Kevin O'Malley and are\n'  used herein with permission. Copyright (C) 1999 Kevin O'Malley.\n'  All rights reserved.\n'=============================================\n'\n'\n' CREATE A LIST OF THEMES IN ACTIVE VIEW THAT ONLY ARE POLYGONS\ntheView = av.GetActiveDoc\ntList = theView.GetThemes\nthemeList = {}\nfor each themeR in tList\n  if (themeR.getFTab.GetShape
Class.GetClassName=\"Polygon\") then\n    themeList.Add(themeR)\n  end\nend\nif (themeList.Count < 2) then\n  MsgBox.Error(\"The view \"+theView.GetName+\" must have at least two polygon themes to run this procedure.\",\"Need 2 Polygon Themes!\")\n  exit\nend\n\n' CHOOSE THE BASE AND SOURCE THEMES\nbaseTheme = MsgBox.Choice(themeList,\"Choose the theme you want data to be aggregated to\",\"Choose BASE Theme\")\nif (baseTheme = nil) then\n  exit\nend\n\nthemelist.RemoveObj(baseTheme)\n\nsourceTheme = MsgBox.Choice(themeList,\"Choose the 
theme the data will come from\",\"Choose SOURCE Theme\")\nif (sourceTheme = nil) then\n  exit\nend\n\nbaseFTab = baseTheme.GetFTab\nsourceFTab = sourceTheme.GetFTab\n\n' GET FIELDS FROM SOURCE THAT WILL BE USED FOR AGGREGATION\nsourceFList = {}\nsrcFList = sourceFTab.GetFields\nfor each srcF in srcFList\n  if ((srcF.IsTypeNumber) AND (srcF.IsVisible)) then\n    sourceFList.Add(srcF)\n  end\nend\nsourceFields = MsgBox.MultiList(sourceFList,\"Choose the numeric fields from the SOURCE theme whose data will be aggregated.\",\"Choose
 Fields from \"+sourceTheme.AsString)\nif ((sourceFields = nil) OR (sourceFields.Count=0)) then\n  exit\nend\n\n' GET FIELD FROM BASE THAT IS THE ID FIELD\nidFList = {}\nbaseFList = baseFTab.GetFields\nfor each baseF in baseFList\n  if (baseF.IsTypeShape.NOT) then\n    idFList.Add(baseF)\n  end\nend    \noldIDField = MsgBox.Choice(idFList,\"Which field in the BASE theme should be put into the OUTPUT table as the ID field?\",\"Choose ID Field from \"+baseTheme.AsString)\n\n' MAKE NEW FIELDS FOR OUTPUT TABLE\nnewIDF = oldIDField.
Clone\noutFields = {newIDF}\nfor each newF in sourceFields\n  newField = Field.Make(newF.GetName,#FIELD_DECIMAL,newF.GetWidth + 4,newF.GetPrecision + 3)\n  outFields.Add(newField) \nend\n\n' MAKE A NEW TABLE BASED ON USER INPUTS\ntableType = MsgBox.ChoiceAsString({\"dBASE (*.dbf)\", \"INFO\"},\n                  \"What type of output table do you prefer?\",\n                  \"Choose a table type.\")          \nif (tableType = \"dBase (*.dbf)\") then\n  newFileName = FileDialog.Put(av.GetProject.MakeFileName(\"AggDat\",\"dbf\"),\"*.
dbf\", \"Output Table Name\")\n  if (newFileName = nil) then\n    exit\n  end\n  newVTab = VTab.MakeNew(newFileName,dBASE)\nelseif (tableType = \"INFO\") then   \n  newFileName = FileDialog.Put(av.GetProject.MakeFileName(\"AggDat\",\"\"),\"arcdr9\", \"Output Table Name\")                               \n  if (newFileName = nil) then\n    exit\n  end\n  newVTab = VTab.MakeNew(newFileName,INFO)\nelse \n  exit\nend\n\n' ADD NEW FIELDS TO OUTPUT TABLE\nnewVTab.AddFields(outFields)\n\n' BASED ON IF FEATURES ARE SELECTED, CREATE COLLECTIONS FO
R THE LOOPS BELOW\nif (baseFTab.GetSelection.Count > 0) then\n  baseSet = baseFTab.GetSelection\nelse\n  baseSet = baseFTab\nend\n\nif (sourceFTab.GetSelection.Count > 0) then\n  sourceSet = sourceFTab.GetSelection\nelse\n  sourceSet = sourceFTab\nend    \n \n' SET STATUS BAR\nav.ShowStopButton\nav.SetStatus(0)\nav.ShowMsg(\"Processing records of \"+baseTheme.GetName+\".  Please wait...\")\nx = 0\nfor each record in baseSet\n  x = x + 1\nend  \n\n' PROCESS RECORDS IN BASE FTAB\nfor each baseRec in baseSet\n  basePoly = baseFTab.Return
Value(baseFTab.FindField(\"Shape\"),baseRec).AsPolygon\n  newRecord = newVTab.AddRecord\n  newVTab.SetValue(newIDF,newRecord,baseFTab.ReturnValue(oldIDField,baseRec))\n  \n  ' PROCESS RECORDS IN SOURCE FTAB\n  for each sourceRec in sourceSet\n  \n    sourceShape = sourceFTab.ReturnValue(sourceFTab.FindField(\"Shape\"),sourceRec)\n    if (basePoly.Intersects(sourceShape)) then\n      sourceShapeArea = sourceShape.ReturnArea\n      intShape = basePoly.ReturnIntersection(sourceShape)\n      intShapeArea = intShape.ReturnArea
\n      if (intShapeArea.IsNull) then\n        intShapeArea = 0\n      end  \n      portionArea = intShapeArea/sourceShapeArea\n\n      ' ADD DATA TO THE CHOSEN FIELDS      \n      fldCnt = FALSE\n      for each outFld in newVTab.GetFields\n        if (fldCnt) then\n          xNewVal = sourceFTab.ReturnValueNumber(sourceFTab.FindField(outFld.GetName),sourceRec)\n          if (xNewVal.IsNull) then xNewVal = 0 end\n          newVTab.SetValueNumber(outFld,newRecord,newVTab.ReturnValueNumber(outFld,newRecord) + (portionAre
a * xNewVal))        \n        else\n          fldCnt = TRUE\n        end\n      end ' for each outFld\n      \n    end ' if (basePoly...\n    \n  end 'for each sourceRec\n  \n  doMore = av.SetStatus(100*(newRecord+1)/x)\n  if (not doMore) then\n    break\n  end\n     \nend 'for each baseRec\n\nav.ClearStatus\nav.ClearMsg\nnewVTab.SetEditable(FALSE)\nnewTable = Table.Make(newVTab)\nnewTable.SetName(newVTab.GetName)\nnewTable.GetWin.Open\n\n' ASK USER IF THEY WOULD LIKE TO JOIN THE NEW TABLE TO THE BASE THEME\nuserJoin = MsgBox.YesN
o(\"Would you like to join the new table to the BASE theme, \"+baseTheme.GetName+\" on the field \"+newIDF.GetName+\"?\",\"Join the Table?\",TRUE)\nif (userJoin) then\n  baseFTab.Join(oldIDField,newVTab,newIDF)\n  newTable.GetWin.Close\n  baseTheme.EditTable\nend  "
)

(Script.1234
	Name:	"TwoThemeAnalyst.AreaPercent"
	SourceCode:	"if (System.IsShiftKeyDown) then\n\n'INSTRUCTIONS FOR TWO THEME ANALYST EXTENSION 3.1\n'by Kevin O'Malley 4/2/1998\n'=============================================\n'Portions of this work include intellectual property of Kevin O'Malley and are\n'  used herein with permission. Copyright (C) 1998 Kevin O'Malley.\n'  All rights reserved.\n'=============================================\n'\nMsgBox.Report(\n\"    The Two Theme Analyst Extension creates tables based on the\"+NL+\n\"data in two themes in a view, without altering th
ose themes.\"+NL+\n\"There are three functions:\"+NL+NL+\n\"      1) Proximity Table\"+NL+\n\"      2) Aggregate Data\"+NL+\n\"      3) Area Percentage\"+NL+NL+\n\"1. CREATE PROXIMITY TABLE\"+NL+\n\"    A Proximity table is a two column table that has one field\"+NL+\n\"from each theme.  A record in a Proximity table is written when a\"+NL+\n\"feature in the first theme either intersects or is within a distance\"+NL+\n\"of a feature in the second theme.  This allows the user to create a\"+NL+\n\"table of which entities are in or near en
tities in another theme.\"+NL+NL+\n\"    The program will use only those features that are selected.  If\"+NL+\n\"no features are selected then all features will be used.  User can \"+NL+\n\"choose which fields are passed into the output table and can pick\"+NL+\n\"either a dBase or INFO table for output.  Only positive distances,\"+NL+\n\"measured in Miles can be entered.  Enter 0 for just intersecting\"+NL+\n\"results.\"+NL+NL+\n\"2. AGGREGATE DATA BASED ON AREA PROPORTION\"+NL+\n\"    This program can only be used on two POLYGO
N themes.  The\"+NL+\n\"program will aggregate data from one theme, the SOURCE theme.\"+NL+\n\"The data will be written to a record for each feature in the other\"+NL+\n\"theme, the BASE theme.  The aggregation is based on what\"+NL+\n\"portion of the area of each feature in the SOURCE theme overlays\"+NL+\n\"the BASE theme features.  One field from the BASE theme will be\"+NL+\n\"passed to the output table as an ID field.\"+NL+NL+\n\"    For example, if 25% of a SOURCE feature overlays a BASE\"+NL+\n\"feature, 25% of the value of
 the SOURCE theme's numeric fields\"+NL+\n\"will be added to the output table for the record for the BASE\"+NL+\n\"feature.  If another SOURCE feature overlays the same BASE\"+NL+\n\"feature, a portion of its data will be added to the same BASE\"+NL+\n\"record.  Therefore, each BASE record may have data from more\"+NL+\n\"than one SOURCE feature.\"+NL+NL+\n\"    When the process is over, the user can choose to Join the\"+NL+\n\"output table to the BASE theme on the ID field.\"+NL+NL+\n\"3.  CALCULATE AREA PERCENTAGE\"+NL+\n\"    For 
each feature of one theme (the BASE), the program will\"+NL+\n\"calculate the area and percentage of total area that the polygon\"+NL+\n\"contains from the overlayed features of the second theme (SOURCE).\"+NL+NL+\n\"The areas of the SOURCE theme will be summarized on a field, of\"+NL+\n\"the user's choice.  One field from the BASE theme will be put into\"+NL+\n\"the output table.  Only selected records will be processed.  If no\"+NL+\n\"records are selected, all will be used.\"+NL+NL+NL+\n\"KBO 4/7/1998\"\n,\"HELP FOR TWO THEME A
NALYST EXTENSION\")\n  return nil\nend\n\n'TWO THEME ANALYST EXTENSION 3\n'AREA PERCENTAGE TOOL\n'Program wil calculate the area and precentage of area of each selected polygon of the BASE\n'theme based on how much area of features of the SOURCE theme overlays the BASE feature \n'polygons.  A field from the BASE gets put into the OUTPUT table.  The user selects a field\n'in the SOURCE theme, and the theme gets summarized on that field, then areas are calculated\n'from there on.\n'\n'by Kevin O'Malley 4/7/1998\n'KevOMalle
y@juno.com\n'\n'=============================================\n'Portions of this work include intellectual property of Kevin O'Malley and are\n'  used herein with permission. Copyright (C) 1998 Kevin O'Malley.\n'  All rights reserved.\n'=============================================\n'\n' CREATE A LIST OF THEMES IN ACTIVE VIEW THAT ONLY ARE POLYGONS\ntheView = av.GetActiveDoc\ntList = theView.GetThemes\nthemeList = {}\nfor each themeR in tList\n  if (themeR.getFTab.GetShapeClass.GetClassName=\"Polygon\") then\n    themeList
.Add(themeR)\n  end\nend\nif (themeList.Count < 2) then\n  MsgBox.Error(\"The view \"+theView.GetName+\" must have at least two polygon themes to run this procedure.\",\"Need 2 Polygon Themes!\")\n  exit\nend\n\n' CHOOSE THE BASE AND SOURCE THEMES\nbaseTheme = MsgBox.Choice(themeList,\"Choose the theme you want areas to be calculated for\",\"Choose BASE Theme\")\nif (baseTheme = nil) then\n  exit\nend\n\nthemelist.RemoveObj(baseTheme)\n\nsourceTheme = MsgBox.Choice(themeList,\"Choose the theme the data will come from\",\"Choose SOURCE 
Theme\")\nif (sourceTheme = nil) then\n  exit\nend\n\nbaseFTab = baseTheme.GetFTab\nsourceFTab = sourceTheme.GetFTab\n\n' GET FIELD FROM BASE THAT IS THE ID FIELD\nidFList = {}\nbaseFList = baseFTab.GetFields\nfor each baseF in baseFList\n  if ((baseF.IsTypeShape.NOT) AND (baseF.IsVisible)) then\n    idFList.Add(baseF)\n  end\nend    \noldIDField = MsgBox.Choice(idFList,\"Which field in the BASE theme should be put into the OUTPUT table as the ID field?\",\"Choose ID Field from \"+baseTheme.GetName)\n\n' GET FIELD FROM SOURCE THA
T WILL BE USED FOR AREA PERCENTAGE\nsourceFList = {}\nsrcFList = sourceFTab.GetFields\nfor each srcF in srcFList\n  if ((srcF.IsTypeShape.NOT) AND (srcF.IsVisible)) then\n    sourceFList.Add(srcF)\n  end\nend\nsourceField = MsgBox.Choice(sourceFList,\"Choose the field from the SOURCE theme (\"+sourceTheme.GetName+\") whose data will be summarized for the BASE theme\",\"Choose Fields from \"+sourceTheme.GetName)\nif (sourceField = nil) then\n  exit\nend\n\n' MAKE NEW FIELDS FOR OUTPUT TABLE\nnewIDF = oldIDField.Clone\nnewSrcF = 
sourceField.Clone\nnewAreaF = Field.Make(\"Area\",#FIELD_DECIMAL,20,6)\nnewPerAreaF = Field.Make(\"Percent\",#FIELD_DECIMAL,10,8)\noutFields = {newIDF,newSrcF,newAreaF,newPerAreaF}\n\n' MAKE A NEW TABLE BASED ON USER INPUTS\ntableType = MsgBox.ChoiceAsString({\"dBASE (*.dbf)\", \"INFO\"},\n                  \"What type of output table do you prefer?\",\n                  \"Choose a table type.\")          \nif (tableType = \"dBase (*.dbf)\") then\n  newFileName = FileDialog.Put(av.GetProject.MakeFileName(\"AreaP\",\"dbf\"),\"*.dbf\", \"O
utput Table Name\")\n  if (newFileName = nil) then\n    exit\n  end\n  newVTab = VTab.MakeNew(newFileName,dBASE)\nelseif (tableType = \"INFO\") then   \n  newFileName = FileDialog.Put(av.GetProject.MakeFileName(\"AreaP\",\"\"),\"arcdr9\", \"Output Table Name\")                               \n  if (newFileName = nil) then\n    exit\n  end\n  newVTab = VTab.MakeNew(newFileName,INFO)\nelse \n  exit\nend\n\n' ADD NEW FIELDS TO OUTPUT TABLE\nnewVTab.AddFields(outFields)\n\n' SUMMARIZE SOURCE FTAB ON CHOSEN FIELD\ngroupFTab = sourceFTab.Summ
arize(\"Group\".AsFileName,Shape,sourceField,{sourceFTab.FindField(\"Shape\")},{#VTAB_SUMMARY_AVG})\ngroupField  = groupFTab.FindField(sourceField.GetName)\n\n' BASED ON IF FEATURES ARE SELECTED, CREATE COLLECTIONS FOR THE LOOPS BELOW\nif (baseFTab.GetSelection.Count > 0) then\n  baseSet = baseFTab.GetSelection\nelse\n  baseSet = baseFTab\nend\n \n' SET STATUS BAR\nav.ShowStopButton\nav.SetStatus(0)\nav.ShowMsg(\"Processing records of \"+baseTheme.GetName+\".  Please wait...\")\nx = 0\nfor each record in baseSet\n  x = x + 1\nend  
\n\n' PROCESS RECORDS IN BASE FTAB\nfor each baseRec in baseSet\n  baseShape = baseFTab.ReturnValue(baseFTab.FindField(\"Shape\"),baseRec)\n  areaBase = baseShape.ReturnArea\n  \n  ' PROCESS RECORDS IN SUMMARIZED THEME\n  for each groupRec in groupFTab\n    groupShape = groupFTab.ReturnValue(groupFTab.FindField(\"Shape\"),groupRec)\n    \n    ' CHECK THAT FEATURES INTERSECT \n    if (baseShape.Intersects(groupShape)) then\n      intShape = baseShape.ReturnIntersection(groupShape)\n      intShapeArea = intShape.ReturnArea\n   
   if (intShapeArea.IsNull) then\n        intShapeArea = 0\n      end  \n      portionArea = intShapeArea/areaBase\n      newRecord = newVTab.AddRecord\n      ' ADD DATA TO THE RECORD AND FIELDS      \n      newVTab.SetValue(newIDF,newRecord,baseFTab.ReturnValue(oldIDField,baseRec))\n      newVTab.SetValue(newSrcF,newRecord,groupFTab.ReturnValue(groupField,groupRec))\n      newVTab.SetValue(newAreaF,newRecord,intShapeArea)\n      newVTab.SetValue(newPerAreaF,newRecord,portionArea)\n    end ' if (baseShape...\n    \n  e
nd 'for each groupRec\n    \n  doMore = av.SetStatus(100*(baseRec+1)/x)\n  if (not doMore) then\n    break\n  end\n\nend 'for each baseRec\n\nav.ClearStatus\nav.ClearMsg\nnewVTab.SetEditable(FALSE)\nnewTable = Table.Make(newVTab)\nnewTable.SetName(newVTab.GetName)\nnewTable.GetWin.Open"
)

(Script.1235
	Name:	"TwoThemeAnalyst.Proximity"
	SourceCode:	"if (System.IsShiftKeyDown) then\n\n'INSTRUCTIONS FOR TWO THEME ANALYST EXTENSION 3.1\n'by Kevin O'Malley 4/2/1998\n'=============================================\n'Portions of this work include intellectual property of Kevin O'Malley and are\n'  used herein with permission. Copyright (C) 1998 Kevin O'Malley.\n'  All rights reserved.\n'=============================================\n'\nMsgBox.Report(\n\"    The Two Theme Analyst Extension creates tables based on the\"+NL+\n\"data in two themes in a view, without altering th
ose themes.\"+NL+\n\"There are three functions:\"+NL+NL+\n\"      1) Proximity Table\"+NL+\n\"      2) Aggregate Data\"+NL+\n\"      3) Area Percentage\"+NL+NL+\n\"1. CREATE PROXIMITY TABLE\"+NL+\n\"    A Proximity table is a two column table that has one field\"+NL+\n\"from each theme.  A record in a Proximity table is written when a\"+NL+\n\"feature in the first theme either intersects or is within a distance\"+NL+\n\"of a feature in the second theme.  This allows the user to create a\"+NL+\n\"table of which entities are in or near en
tities in another theme.\"+NL+NL+\n\"    The program will use only those features that are selected.  If\"+NL+\n\"no features are selected then all features will be used.  User can \"+NL+\n\"choose which fields are passed into the output table and can pick\"+NL+\n\"either a dBase or INFO table for output.  Only positive distances,\"+NL+\n\"measured in Miles can be entered.  Enter 0 for just intersecting\"+NL+\n\"results.\"+NL+NL+\n\"2. AGGREGATE DATA BASED ON AREA PROPORTION\"+NL+\n\"    This program can only be used on two POLYGO
N themes.  The\"+NL+\n\"program will aggregate data from one theme, the SOURCE theme.\"+NL+\n\"The data will be written to a record for each feature in the other\"+NL+\n\"theme, the BASE theme.  The aggregation is based on what\"+NL+\n\"portion of the area of each feature in the SOURCE theme overlays\"+NL+\n\"the BASE theme features.  One field from the BASE theme will be\"+NL+\n\"passed to the output table as an ID field.\"+NL+NL+\n\"    For example, if 25% of a SOURCE feature overlays a BASE\"+NL+\n\"feature, 25% of the value of
 the SOURCE theme's numeric fields\"+NL+\n\"will be added to the output table for the record for the BASE\"+NL+\n\"feature.  If another SOURCE feature overlays the same BASE\"+NL+\n\"feature, a portion of its data will be added to the same BASE\"+NL+\n\"record.  Therefore, each BASE record may have data from more\"+NL+\n\"than one SOURCE feature.\"+NL+NL+\n\"    When the process is over, the user can choose to Join the\"+NL+\n\"output table to the BASE theme on the ID field.\"+NL+NL+\n\"3.  CALCULATE AREA PERCENTAGE\"+NL+\n\"    For 
each feature of one theme (the BASE), the program will\"+NL+\n\"calculate the area and percentage of total area that the polygon\"+NL+\n\"contains from the overlayed features of the second theme (SOURCE).\"+NL+NL+\n\"The areas of the SOURCE theme will be summarized on a field, of\"+NL+\n\"the user's choice.  One field from the BASE theme will be put into\"+NL+\n\"the output table.  Only selected records will be processed.  If no\"+NL+\n\"records are selected, all will be used.\"+NL+NL+NL+\n\"KBO 4/7/1998\"\n,\"HELP FOR TWO THEME A
NALYST EXTENSION\")\n  return nil\nend\n\n'TWO THEME ANALYST EXTENSION 2\n'MAKE PROXIMITY TABLE TOOL\n'This program will take the selected features of two themes and create a two column\n'table, based on the proximity of the features in one theme compared to another theme.\n'User can enter the distance in miles.  If no features in a theme are selected, all\n'features will be processed. User chooses which field from each theme will be passed \n'to the resulting table\n'\n'by Kevin O'Malley 4/2/1998\n'KevOMalley@juno.com\n'
\n'=============================================\n'Portions of this work include intellectual property of Kevin O'Malley and are\n'  used herein with permission. Copyright (C) 1998 Kevin O'Malley.\n'  All rights reserved.\n'=============================================\n'\n' GET THE TWO THEMES FROM USER INPUT\n theView = av.GetActiveDoc\n theThemes = theView.GetThemes\n\nif (theThemes.Count < 2) then\n  MsgBox.Error(\"The view \"+theView.GetName+\" must have at least two themes to run this procedure.\",\"Need 2 Themes!\")\n  
exit\nend\n\nthemeList = {}\nfor each themeR in theThemes\n  themeList.Add(themeR)\nend\n\ntheme1 = MsgBox.Choice(theThemes,\n         \"Which theme of do you want the distance to be computed from?\",\n         \"Pick First Theme\")   \nif (theme1 = nil) then\n  exit\nend\n  \nthemeList.RemoveObj(theme1) \n                              \ntheme2 = MsgBox.Choice(themeList,\n       \"Which theme do you want to compare to \"+theme1.AsString+\"?\",\n       \"Pick second theme.\")\nif (theme2 = nil) then\n   exit\nend\n\n' GET THE FTABS \ntheme1FT
ab = theme1.GetFTab\ntheme2FTab = theme2.GetFTab\n\n' GET A LIST OF FIELDS IN EACH THEME AND PRMPRT USER FOR CHOICE\n'   THEME1        \ntheme1Fields = {}\ntheme1FList = theme1FTab.GetFields\nfor each t1F in theme1FList\n  if ((t1F.IsTypeShape.NOT) AND (t1F.IsVisible)) then\n    theme1Fields.Add(t1F)\n  end\nend   \n\ntheme1Field = MsgBox.Choice(theme1Fields,\"Which field do you want from \"+theme1.GetName+\"?\",\"Pick a field.\")\nif (theme1Field = nil) then\n  exit\nend\n\n'   THEME2\ntheme2Fields = {}\ntheme2FList = theme2FTab.Ge
tFields\nfor each t2F in theme2FList\n  if ((t2F.IsTypeShape.NOT) AND (t2F.IsVisible)) then\n    theme2Fields.Add(t2F)\n  end\nend   \n\ntheme2Field = MsgBox.ChoiceAsString(theme2Fields,\"Which field do you want from \"+theme2.AsString+\"?\",\"Pick a field.\")\nif (theme2Field = nil) then\n  exit\nend\n                            \n' MAKE A NEW VTAB BASED ON USER INPUT\ntableType = MsgBox.ChoiceAsString({\"dBASE (*.dbf)\", \"INFO\"},\n                  \"What type of table do you prefer?\",\n                  \"Choose a table type.\")\n
             \nif (tableType = \"dBase (*.dbf)\") then\n  newFileName = FileDialog.Put(av.GetProject.MakeFileName(\"Prox\",\"dbf\"),\"*.dbf\",\"New Table\")\n  if (newFileName = nil) then\n    exit\n  end\n  newVTab = VTab.MakeNew(newFileName,dBASE)\n  \nelseif (tableType = \"INFO\") then   \n  newFileName = FileDialog.Put(av.GetProject.MakeFileName(\"Prox\",\"\"),\"arcdr9\",\"New Table\")\n  if (newFileName = nil) then\n    exit\n  end\n  newVTab = VTab.MakeNew(newFileName,INFO)\n \nelse \n  exit\nend\n\n' CLONE FIELDS AND ADD THEM TO NEW VTAB\n
'    IF THEY HAVE THE SAME NAME, ADD A 2 TO TH END OF THEME2s\nnewTheme1Field = theme1Field.Clone\nnewTheme2Field = theme2Field.Clone\nif (theme1Field.GetName = theme2Field.GetName) then\n  newTheme2Field.SetName(theme2Field.GetName+\"2\")\n  newTheme2Field.SetAlias(newTheme2Field.GetName)\nend\n\nnewVTab.AddFields({newtheme1Field,newtheme2Field})\n   \n \n' GET BUFFER DISTANCE\nrepFlag = 0\nwhile (repFlag = 0)\n  udist = msgbox.Input(\"Enter the buffer distance\",\"Distance Input\",\"miles only\")\n  if (udist = nil) then\n    ex
it\n  elseif ((udist.IsNumber) AND (udist.AsNumber >= 0)) then\n    repFlag = 1\n  else\n    MsgBox.Warning(\"Please enter a positive number\",\"Bad Entry = \"+udist) \n  end\nend\n \ndistance = Units.Convert(udist.asNumber,#UNITS_LINEAR_MILES,theView.GetDisplay.GetUnits)\n\n' BASED ON IF FEATURES ARE SELECTED, CREATE COLLECTIONS FOR THE LOOPS BELOW\nif (theme1FTab.GetSelection.Count > 0) then\n  t1Set = theme1FTab.GetSelection\nelse\n  t1Set = theme1FTab\nend\n\nif (theme2FTab.GetSelection.Count > 0) then\n  t2Set = theme2FTab.
GetSelection\nelse\n  t2Set = theme2FTab\nend    \n \n' SET STATUS BAR\nav.ShowStopButton\nav.SetStatus(0)\nav.ShowMsg(\"Processing records of \"+theme1.GetName+\".  Please wait...\")\nscT = 0\nxcT = 0\nfor each record in t1Set\n  scT = scT + 1\nend  \n\n' RUN LOOP ON THEME1, GET SHAPE\nfor each r in t1Set\n\n  theme1Shape = theme1FTab.ReturnValue(theme1FTab.FindField(\"Shape\"),r)\n\n  ' RUN LOOP ON THEME2, GET SHAPE AND COMPARE TO THEME1\n\n  for each x in t2Set\n     theme2Shape = theme2FTab.ReturnValue(theme2FTab.FindField(\"Shape\")
,x)\n     if ((theme1Shape.Intersects(theme2Shape)) OR (theme1Shape.IsWithin(theme2Shape,distance))) then\n       newRec = newVTab.AddRecord\n       newVTab.SetValue(newTheme1Field,newRec,theme1FTab.ReturnValue(theme1Field,r))\n       newVTab.SetValue(newTheme2Field,newRec,theme2FTab.ReturnValue(theme2Field,x))\n     end  \n  end\n  \n  xcT = xcT + 1\n  doMore = av.SetStatus(100*xcT/scT)\n  if (not doMore) then\n    break\n  end\n     \nend\n\nav.ClearStatus\nav.ClearMsg\n\n' MAKE NEW VTAB AND OPEN IN PROJECT\nnewVTab.SetEdita
ble(FALSE)\nnewTable=Table.Make(NewVTab)\nnewTable.SetName(newVTab.GetName)\nnewTable.GetWin.Open"
)

(Script.1236
	Name:	"View.Assign.New.Values.C"
	SourceCode:	"'===========================================================\n \n'  Check for the shift key, if the shift key is down, pop up instructions for using this script\n\nif (System.IsControlKeyDown) then\n  message =\n  \" \"+nl+\n  \" Script Author (ESRI)\"+nl+\n  \" \"+nl+\n  \" Brief Instructions:\"+nl+nl+\n  \" Allows the user to assign new values to records in a Theme\"+nl+\n  \" Can be used to create a new field of values in a theme\"+nl+\n  \" or replace existing values in a theme\"+nl+\n  \" Both string or numeric values may be assi
gned to selected records\"+nl+\n  \" New values may be stored in an existing field\"+nl+\n  \" or in a new field specified by the user\"+nl+\n  \" If stored in an existing field all selected records will automatically\"+nl+\n  \" be updated with the new value\"+nl+\n  \" If stored in a new field the user may specify whether\"+nl+\n  \" new field should be of character or numeric type \"+nl+\n  \" Requires: At least one theme in the view\"+nl+\n  \" The theme that is choosen must be a Feature Theme (or Ftheme)\"+nl+\n  \"             
                                \"+nl\n'Title here         \n  msgbox.report(message,\"Assign New Values to selected records in a theme\")\n  \n  Clipboard.The.Empty\n  Clipboard.The.Add(message)\n  Clipboard.The.Update\n    \n  MsgBox.Info(\"These instructions were copied to the system clipboard.  To print them, open a text editor\"++\n  \"(like notepad), paste in the contents of the clipboard, and print them from the text editor.\",\"PRINT INSTRUCTIONS\")\n\n  return nil\nend\n'=================================================
==========\n\n\n'\n'Name: AssignNewValues\n'\n'Title: Assign New Values to selected records in a theme\n'\n'Topic: Tables \n'\n'\n'Description:  Allows the user to assign new values to records in a Theme. \n'Can be used to create a new field of values in a theme or replace existing\n'values in a theme. Both string or numeric values may be assigned to selected \n'records. New values may be stored in an existing field or in a new field \n'specified by the user. If stored in an existing field, all selected records \n'will aut
omatically be updated with the new value. If stored in a new field, \n'the user may specify whether new field should be of character or numeric type.\n'\n'\n'Requires: At least one theme in the view. The theme that is choosen must\n'be a Feature Theme (or Ftheme). \n'  \n'\n'Created by Matt Robinson - February 1998\n'----------------------------------------------\n\ntheView = av.GetActiveDoc\n'theDisplay = theView.GetDisplay\nThemeList = av.GetActiveDoc.GetThemes\n\nif (ThemeList.Count < 1) Then\n msgbox.Error(\"You must ha
ve at least one theme in the View.\",\"\")\n exit\nend\n\naTheme = MsgBox.ListAsString(ThemeList, \"Choose the theme you would like to assign new values to.\",\"SELECT A THEME\")\nif (Nil = aTheme) then\n  exit\nelse\n'*****************ALTERED\nTheTable = aTheme.GetFTab\nTheFields = TheTable.GetFields\nTheTable2 = aTheme.GetFTab\nTheFields2 = TheTable2.GetFields\n'*****************ALTERED\naField = MsgBox.ListAsString(TheFields,\"Choose the field that contains records you would like to assign new values to.\",\"SELECT A FIELD\")\nIf
 ((aField = \"nil\") Or (aField = \"Shape\") ) Then\n  Return MsgBox.Info(\"Bailing Out. Not a Valid field\",\"\")\nend\n\nstart = true\nwhile(start)\n\nRecList = List.Make\n\n' Build list of field contents...\n\nif (TheTable.GetSelection.Count = 0) then\n  theSet = TheTable\nelse\n  theSet = TheTable.GetSelection\nend\n\nfor each rec in theSet \n   q = TheTable.ReturnValue(aField, rec)\n   if (RecList.Count = 0) then\n    RecList.Add(q)\n   else\n    i = RecList.Count - 1\n    p = RecList.Get(i)\n     if (not (q = p)) then\n       RecList
.Add(q)\n      end\n   end    \nend\n\nRecList.Sort(TRUE)\n\n'Make a new list from the sorted first list - so as not to include duplicates\n         \nNewList = List.Make\n\no = 0\nfor each i in RecList\n  a = RecList.Get(0)\n  if (NewList.Count = 0) then\n    NewList.Add(a)\n  else \n    o = o + 1\n    b = RecList.Get(o)\n    n = NewList.Count - 1\n    p = NewList.Get(n)\n      if (not (b = p)) then\n       NewList.Add(b)\n    end\n  end\nend    \n      \nSelRecs = Msgbox.MultiListAsString(NewList,\"(Single click to toggle selection,
\"+nl+\n\" click and drag for multiple selection,\"+nl+\"Press SHIFT + OK to select all records)\",\"SELECT THE RECORDS TO ASSIGN NEW VALUES TO\")\n\nif (SelRecs = nil) then\n  MsgBox.Info(\"You need to choose something for this to work !!\",\"Exitting\")\n  TheTable.SetEditable(FALSE)\n  exit\nend\n\nif (System.IsShiftKeyDown) then\n  SelRecs = NewList\nend\n\nif(NewList = nil) then \n  TheTable.SetEditable(FALSE)\n  exit \nend\n   \n'Get user input on what to classify the selected subclass as\n'****************************************
*************************************************ALTERED\ncriteria2 = MsgBox.Input(\"What new name or value do you want to assign to the selected records?\",\"ENTER NEW NAME OR VALUE\",\"\")\n  if (criteria2 = nil) then\n    MsgBox.Info(\"You Must type something for this to work !!!\",\"Exitting\")\n    TheTable.SetEditable(FALSE)\n    exit\n  end\n'\nCR2 = criteria2.AsString\n\n'Ask user what they would like to call the new field were the values will be stored\n\naField2 = MsgBox.ListAsString(TheFields2,\"Enter the name of the f
ield where you would like to store the new values -- Cancle For New Name\",\"SELECT A FIELD\")\nif (aField2 = nil)\nthen criteria3 = MsgBox.Input(\"Enter the name of the field where you would like to store the new values. OR type a new name (no longer than 10 characters) to create a new field.\",\"ENTER FIELD NAME\",\"\") \n  if (criteria3 = nil) then\n   MsgBox.Info(\"You Must type something for this to work !!!\",\"Exitting\")\n   TheTable.SetEditable(FALSE)\n   exit\n  end\nelse \ncriteria3 = aField2 \nend\n'*******************
***********************************************************************ALTERED       \nCR3 = criteria3.AsString\n\nTheTable.SetEditable(TRUE)\n\n'Search for user choosen Field \n'If no such Field then create one\n\ntheQues = TheTable.FindField(CR3)\n if (theQues = Nil) then\n   TY = MsgBox.Input(\"What type of field would you like the new field to be: Character or Numeric?  Enter  C or N\",\"ENTER NEW FIELD TYPE\",\"\")\n   if ((TY = \"N\") Or (TY = \"n\")) then\n    NewField = Field.Make(CR3,#FIELD_DECIMAL, 25, 5)\n    TheTable.
AddFields({NewField})\n   elseif (TY = nil) then\n     MsgBox.Info(\"You Must type something for this script to work !!!\",\"\")\n     TheTable.SetEditable(FALSE)\n     exit\n   else\n    NewField2 = Field.Make(CR3,#FIELD_CHAR, 25, 0)\n    TheTable.AddFields({NewField2})\n   end\nend\n\nNewField3 = TheTable.FindField(CR3)\n\n' Select records from the Theme's Fields that fit the criteria\n\nMsgBox.Info(\"This script will now add the new value to all selected records and store the results in the specified field.\",\"ASSIGN NEW VAL
UES\")\n\nfor each i in SelRecs\n  recs = i\n\n for each rec in TheTable    \n   val = TheTable.ReturnValue(aField, rec)\n   if (val = recs) then\n    TheTable.SetValue(NewField3, rec, criteria2)\n    end\n end \nend\n\nrun1 = MsgBox.YesNo(\"Would you like to run this script again on the same group of records?\",\"PROCESS COMPLETE\",true)\nif (run1 <> true) then\n' break\n start = false\nend\nend\n\nTheTable.SetEditable(FALSE)\nMsgBox.Info(\"Look in the theme's table to see the results. To assign new values to another group of record
s simply run this script again.\",\"FINISHED\")\nend\n\n\n"
)

(Script.1237
	Name:	"View.Auto.Union.C"
	SourceCode:	"'===========================================================\n \n'  Check for the shift key, if the shift key is down, pop up instructions for using this script\n\nif (System.IsShiftKeyDown) then\n  message =\n  \" \"+nl+\n  \" Script Author ( Andrew Williamson ,http://www.geocities.com/SiliconValley/Haven/2295/,mailto:andrew_williamson@highland.gov.uk \"+nl+\n  \" \"+nl+\n  \" Brief Instructions:\"+nl+nl+\n  \" Auto Unions A Theme based on A Field In The Table \"+nl+\n  \" Very Fast On Large Themes\"+nl+\n  \" \"+nl+\n  \" \"+nl+\n  \" 
\"+nl+\n  \" \"+nl\n'Title here         \n  msgbox.report(message,\"Auto Union\")\n  \n  Clipboard.The.Empty\n  Clipboard.The.Add(message)\n  Clipboard.The.Update\n    \n  MsgBox.Info(\"These instructions were copied to the system clipboard.  To print them, open a text editor\"++\n  \"(like notepad), paste in the contents of the clipboard, and print them from the text editor.\",\"PRINT INSTRUCTIONS\")\n\n  return nil\nend\n'===========================================================\n\n\n\n\n' http://www.geocities.com/SiliconValley/Have
n/2295/\n' mailto:andrew_williamson@highland.gov.uk\n\n' To use this script, attach it to a view button/menu bar\n\n' For this, you'll need to find\n' X The theme\n' X The field to union on\n' X Make a summary table of unique entries\n' X parse through that table selecting the corresponding in source\n' X union selected features in source (if features > 1)\n' X Code an option to skip blank values (saves lochs being unioned) etc\n' X delete the temporary summary table\n\nTheView = av.GetActiveDoc\nFor Each ATheme in TheVie
w.GetActiveThemes\n  If (ATheme.IsActive) Then\n    thmSource = TheView.FindTheme(ATheme.AsString)\n    theFTab = thmSource.GetFTab\n\n    If ((thmSource.CanEdit.Not) Or (theView.GetEditableTheme <> nil) ) Then\n      Msgbox.Info(\"Some file open already, or can't open\",\"Skipping..\")\n    End\n\n    TheFields = theFTab.GetFields\n    TheField = MsgBox.ChoiceAsString(TheFields,\n        \"Choose a field to Auto Union on (NOT a Shape field)\",\"Today, man\").AsString\n        \n    If ( (TheField = \"nil\") Or (TheField = \"Shape
\" ) ) Then\n      Return MsgBox.Info(\"Cancelled (or Shape)\",\"Doh!\")\n    End\n\n    SkipBlanks = MsgBox.YesNo(\"Skip blank field entries?\",\"Hang on\",true)\n\n    If (theFTab.FindField(TheField).IsTypeString) Then\n      FieldIsString = True\n    Else\n      FieldIsString = False\n    End\n\n    summFTab = theFTab.Summarize(\"c:\\awtemp.dbf\".AsFileName,\n        dBase,theFTab.FindField(TheField),{},{})\n\n    bm = theFTab.GetSelection\n        \n    For Each Record in summFTab\n      If (summFTab.ReturnValue(summFTab.FindField(\"
Count\"),Record ) > 1) Then\n        If ( (SkipBlanks) And \n          (summFTab.ReturnValue(summFTab.FindField(TheField),Record).Trim = \"\") ) Then\n         Continue\n        End\n        'It's a goer...\n        If (theFTab.IsEditable.Not) Then ' no theme being currently edited, so..\n          theView.SetEditableTheme(thmSource)\n        End\n        \n        Source = summFTab.ReturnValue(summFTab.FindField(TheField),Record )\n        \n        If (FieldIsString) Then\n          expr = \"([\" + TheField + \"] = \" + Sour
ce.Quote + \")\"\n        Else\n          expr = \"([\" + TheField + \"] = \" + Source.AsString + \")\"\n        End      \n        \n        theFTab.Query(expr , bm , #VTab_SELTYPE_NEW)\n        theFTab.UpdateSelection\n        \n        thmSource.UnionSelected\n        \n        pc = summFTab.ReturnValue(summFTab.FindField(TheField),Record)\n        no = summFTab.ReturnValue(summFTab.FindField(\"Count\"),Record)\n      End ' count is more than 1\n    End ' each record\n\n    If (theFTab.Iseditable) Then\n      thmSource.StopEditin
g(true)\n    End\n    \n    If (File.CanDelete(\"c:\\awtemp.dbf\".AsFilename)) Then\n      summFTab = nil\n      av.PurgeObjects\n      File.Delete(\"c:\\awtemp.dbf\".AsFileName)\n    End\n  End ' if active\nEnd ' each theme\n\n\n\n"
)

(Script.1238
	Name:	"view.bilegend"
	SourceCode:	"'===========================================================\n \n'  Check for the shift key, if the shift key is down, pop up instructions for using this script\n\nif (System.IsShiftKeyDown) then\n  message =\n  \" \"+nl+\n  \" Script Author (ESRI)\"+nl+\n  \" \"+nl+\n  \" Brief Instructions:\"+nl+nl+\n  \" Creates a bivariate legend for the topmost active theme in your view\"+nl+\n  \" You will then be prompted to choose a color ramp for the first attribute \"+nl+\n  \" then a size range for the second symbol\"+nl+\n  \" The size ran
ge is the diameter of a point symbol &\"+nl+\n  \" the width of a line symbol \"+nl+\n  \" and the width of the hatchures in the fill symbol\"+nl\n'Title here         \n  msgbox.report(message,\"Creates a bivariate legend for a theme\")\n  \n  Clipboard.The.Empty\n  Clipboard.The.Add(message)\n  Clipboard.The.Update\n    \n  MsgBox.Info(\"These instructions were copied to the system clipboard.  To print them, open a text editor\"++\n  \"(like notepad), paste in the contents of the clipboard, and print them from the text editor.
\",\"PRINT INSTRUCTIONS\")\n\n  return nil\nend\n' Name:  View.BivariateLegend\n'\n' Title:  Creates a bivariate legend for a theme\n'\n' Topics:  Analysis, Legends, Graphics & Symbols\n'\n' Description:  Creates a bivariate legend for the topmost active theme\n' in your view.  Specifically, it creates a new legend based on the you \n' selecting two data attributes, the classification type for each attribute\n' and the number of classes for the new legend.  You will then be prompted to \n' choose a color ramp for the first 
attribute and then a size range for the \n' second symbol.  The size range is the diameter of a point symbol, the \n' width of a line symbol, and the width of the hatchures in the fill symbol.\n' \n' Requires:  The active document must be a view, with an active feature theme.\n'\n' Self:  \n'\n' Returns:  \n\n    \ntheView = av.GetActiveDoc\ntheTheme = theView.GetActiveThemes.Get(0)\ntheLegend = theTheme.GetLegend\ntheFTab = theTheme.GetFtab\nShapeType = theFTab.GetShapeClass.GetClassName\n\n\n' Check to see if this may be a
 long process\nnx = theTheme.GetFTab.GetNumRecords\nif ((nx > 1500) and (nx < 5000)) then\n  KeepGoing = Msgbox.YesNo (\"Do you wish to continue?\",\"This procedure may take several minutes\",true)\n  if (KeepGoing.not) then exit end\nelseif (nx > 5000) then\n  KeepGoing = Msgbox.YesNo (\"This may take a long time. Do you wish to continue?\",\"Time for coffee or maybe lunch\",true)\n  if (KeepGoing.not) then exit end\nend\n\n'Get a List of Fieldnames that can be used\nValidFields = {}\nfor each f in theFTab.GetFields\n  if ( f.
IsTypeNumber ) then\n    ValidFields.Add(f)\n  end\nend\n\nif (ValidFields.Count < 2) then\n  Msgbox.Info(\"Could not continue because there are less than two valid fields\",\"Will not work for\"++theTHeme.GetName)\n  exit\nend\n\n'Get the first field to be used in bivariate legend and ensure it is indexed\nFirstField = Msgbox.Choice(ValidFields, \"Choose first attribute:\",\"Bivariate Map - Color Field\")\nif (FirstField = nil) then exit end\nif (theFtab.IsFieldIndexed(FirstField) = false) then\n  theFtab.CreateIndex(FirstField
)\nend\nFirstFieldName = FirstField.GetAlias\n\n'Get information about how to treat FirstField\ncltype = {\"Natural Breaks\",\"Quantile\",\"Equal Interval\",\"Equal Area\"}\nClassTypeFirstField = msgbox.ChoiceAsString(cltype,\"Choose a classification type\",\"Bivariate Map: \"+FirstFieldName)\nif (ClassTypeFirstField = nil) then exit end\n\n'Get the second field to be used in bivariate legend and ensure it is indexed \nValidFields.RemoveObj(FirstField)\nSecondField = Msgbox.Choice(ValidFields, \"Choose second attribute:\",\"Bivariat
e Map - Size Field\")\nif (SecondField = nil) then exit end\nif (theFtab.IsFieldIndexed(SecondField) = false) then\n  theFtab.CreateIndex(SecondField)\nend\nSecondFieldName = SecondField.GetName\n\nClassTypeSecondField = msgbox.ChoiceAsString(cltype,\"Choose a classification type\",\"Bivariate Map: \"+SecondFieldName)\nif (ClassTypeSecondField = nil) then exit end\n\nnumcl = {2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18}\nNumClasses = Msgbox.ChoiceAsString(numcl, \"Choose number of classes:\",\"Bivariate Map\")\nif (NumClasses = 
nil) then exit end\n\n\n'Make Dummy legend to get initial size symbolization scheme\n\nSecondDummyLegend = theTheme.GetLegend.Clone\nif (ShapeType = \"Polygon\") then\n  SecondDummyLegend.SetLegendType(#LEGEND_TYPE_COLOR)\nelse\n  SecondDummyLegend.SetLegendType(#LEGEND_TYPE_SYMBOL)\nend  \ntheLegend.SetLegendType(#LEGEND_TYPE_COLOR)\n\n    \nif (ClassTypeFirstField = \"Natural Breaks\") then\n  theLegend.Natural(theTheme,FirstField.GetName,NumClasses)\nelseif (ClassTypeFirstField = \"Quantile\") then\n  theLegend.Quantile(theThe
me,FirstField.GetName,NumClasses)\nelseif(ClassTypeFirstField = \"Equal Interval\") then\n  theLegend.Interval(theTheme,FirstField.GetName,NumClasses)\nelseif(ClassTypeFirstField = \"Equal Area\") then\n  theLegend.Area(theTheme,FirstField.GetName,NumClasses)\nend\n\nif (ClassTypeSecondField = \"Natural Breaks\") then\n  SecondDummyLegend.Natural(theTheme,SecondField.GetName,NumClasses)\nelseif (ClassTypeSecondField = \"Quantile\") then\n  SecondDummyLegend.Quantile(theTheme,SecondField.GetName,NumClasses)\nelseif(ClassTypeSe
condField = \"Equal Interval\") then\n  SecondDummyLegend.Interval(theTheme,SecondField.GetName,NumClasses)\nelseif(ClassTypeSecondField = \"Equal Area\") then\n  SecondDummyLegend.Area(theTheme,SecondField.GetName,NumClasses)\nend\n\ntheLegend.SetLegendType(#LEGEND_TYPE_COLOR)\n\n'Get ColorRamp for colors\nColorRampsODB = ODB.Open(\"$AVHOME/etc/gc_ramps.odb\".AsFileName)\nRampNames = {}\nfor each r in 0..(ColorRampsODB.Count - 1)\n  RampNames.Add(ColorRampsODB.Get(r).GetName) \nend\nColorRampName = Msgbox.ChoiceAsString(RampN
ames,\"Choose a color ramp for\"++FirstFieldName,\"Bivariate Mapper\")\nif (ColorRampName = nil) then \n  exit \nelse\n  rampidx = RampNames.Find(ColorRampName)\n  ColorRamp = ColorRampsODB.Get(rampidx)\nend\n\n\n'Get Sizerange for Sizes\nif ((ShapeType = \"PolyLine\") or (ShapeType = \"Polygon\")) then\n  DefVals = {\"0.2\", \"4\"}\nelse\n  DefVals = {\"4\",\"12\"}\nend\nDefLabels = {\"Minimum Size\",\"Maximum Size\"}\nSizeRange = Msgbox.MultiInput(\"Enter values for size range for \"+SecondFieldName,\"Bivariate Mapper - Size Range\",DefLabels,D
efVals)\nMinSize = SizeRange.Get(0)\nMaxSize = SizeRange.Get(1)\nif ((MinSize = nil) or (MinSize.IsNumber.Not) or (MaxSize = nil) or (MaxSize.IsNumber.Not)) then exit end\nSmallSize = MinSize.AsNumber\nLargeSize = MaxSize.AsNumber\nif (SmallSize > LargeSize) then\n  x = SmallSize.Clone\n  SmallSize = LargeSize.Clone\n  LargeSize = x\nend\n\n\ntheTheme.SetName ( FirstFieldName++\"|\"++SecondFieldName )\nColors = theLegend.GetSymbols\nColors.RampSavedColors(ColorRamp)\n\n'Do sizes independently and then individually apply them\n
\nSizes = SecondDummyLegend.GetSymbols\nSecondSizes = {}\nif (ShapeType = \"Polygon\") then\n  SecondSizes.Add(LargeSize)\n  if (numClasses > 2) then\n    theRange = LargeSize - SmallSize\n    theInterval = theRange/NumClasses\n    s = LargeSize - theInterval\n    for each x in 0..(NumClasses -3)\n      SecondSizes.Insert(s)\n      s = s - theInterval\n    end\n  end\n  SecondSizes.Insert(SmallSize)\n  for each c in 0..(NumClasses - 1)\n    newSym = VectorFill.Make\n    newSym.SetStyle(#VECTORFILL_STYLE_HATCH)\n    newSym.SetA
ngle(45)\n    newSym.SetPenSize(SecondSizes.Get(c))\n    oldSym = theLegend.GetSymbols.Get(c)\n    oldFGColor = oldSym.GetColor\n    newSym.SetBGColor(oldFGColor)    \n    newSym.SetWidth(5)\n    newSym.SetHeight(5)\n    theLegend.GetSymbols.Set(c,newSym)\n    lb = theLegend.GetClassifications.Get(c).GetLabel\n    l = SecondDummyLegend.GetClassifications.Get(c).GetLabel\n    theLegend.GetClassifications.Get(c).SetLabel(lb++\"|\"++l)\n  end\nelse ' Point, MultiPoint, or PolyLine\n  Sizes.RampSizes(SmallSize, LargeSize)\n  f
or each s in Sizes\n    SecondSizes.Add(s.GetSize)\n  end\n  for each c in 0..(NumClasses - 1)\n    s = SecondDummyLegend.GetSymbols.Get(c).GetSize\n    theLegend.GetSymbols.Get(c).SetSize(s)\n    lb = theLegend.GetClassifications.Get(c).GetLabel\n    l = SecondDummyLegend.GetClassifications.Get(c).GetLabel\n    theLegend.GetClassifications.Get(c).SetLabel(lb++\"|\"++l)\n  end\nend\n\n\n\ntheTheme.UpdateLegend"
)

(Script.1239
	Name:	"View.Circle.Line.Snap.C"
	SourceCode:	"' Name:  QuickSnap\n'\n' Title:  \n'\n' Topics:  \n'\n' Description:  This script must be the apply script for a tool.  The user drags \n'a circle on the View's display and any line endpoints within the circle will snap\n'to the line endpoint that is closest to the center of the circle.  If both of a\n'line's endpoints are within the circle, only the closest one will snap (this is\n'consistent with ArcView's approach to snapping--it doesn't like polylines to have\n'the same beginning and end point).  This is a quick a
nd fairly precise way to \n'snap lots of lines together at their endpoints.  \n'\n' Requires:  An editable polyline theme.  This script doesn't work correctly\n'if you have multipart polylines in your shapefile.\n'\n' Self:  \n'\n' Results:  \n'\n\n'by David F. Kimball 6/2000\n\nv = av.GetActiveDoc\nif (v.Is(View).Not) then System.Beep return nil end\nd = v.GetDisplay\n\nc = d.ReturnUserCircle\nif (c = nil) then System.Beep return nil end\nif (c.GetRadius <= 0) then System.Beep return nil end\ncc = c.ReturnCenter\nr = c.GetRadi
us\n\nt = v.GetEditableTheme\nif (t = nil) then System.Beep return nil end\nif (t.Is(FTheme).Not) then System.Beep return nil end\nf = t.GetFTab\nfs = f.FindField(\"shape\")\nif (fs.GetType <> #FIELD_SHAPELINE) then System.Beep return nil end\n\nt.SelectByShapes({c},#VTAB_SELTYPE_NEW)\nif (f.GetSelection.Count <= 1) then System.Beep return nil end\n\nminDist = nil\np0 = nil 'the point to be snapped to\nrecList = List.Make 'a list of lists, each of which contains an FTab rec# and a boolean,\n                    'which if tru
e means snap the first node and if false, snap the last node.\nfor each rec in f.GetSelection\n  if (minDist = nil) then\n    minDist = cc.Distance(f.ReturnValue(fs,rec).AsList.Get(0).Get(0)) + 1\n  end\n'  for each aList in f.ReturnValue(fs,rec).AsList 'REPLACED BY:\n  aList = f.ReturnValue(fs,rec).AsList.Get(0) '(now only does the first part of multipart shapes...)\n    thisDist1 = cc.Distance(aList.Get(0))\n    thisDist2 = cc.Distance(aList.Get(aList.Count - 1))\n    if (thisDist1 < minDist) then\n      minDist = 
thisDist1\n      p0 = aList.Get(0)\n    end\n    if (thisDist2 < minDist) then\n      minDist = thisDist2\n      p0 = aList.Get(aList.Count - 1)\n    end\n    '----\n    snapFirst = nil\n    toAdd = nil\n    if (thisDist1 <= r) then\n      snapFirst = true\n      toAdd = {rec.Clone,snapFirst}\n    end\n    if (thisDist2 <= r) then\n      if (snapFirst = true) then\n        if (thisDist2 < thisDist1) then\n          toAdd = {rec.Clone,false}\n        end\n      else\n        toAdd = {rec.Clone,false}\n      end\n    end\n    if (t
oAdd <> nil) then\n      recList.Add(toAdd)\n    end\n'  end\nend\nif (p0.Is(Point).Not) then System.Beep return nil end\n\n'v.getgraphics.add(graphicshape.make(p0)) 'testing\n'msgbox.info(\"\",reclist.count.asstring)\n\n\nbadLines = 0\n'goodLines = 0\n'recsString = \"\"\n\nf.BeginTransaction '   O-------------------------------------------O\n\nfor each l in recList\n  theRec = l.Get(0)\n'  recsString = recsString ++ theRec.AsString\n  oldLine = f.ReturnValue(fs,theRec)\n'  v.getgraphics.add(graphicshape.make(oldLine)) 'testing\n  o
ldLineList = oldLine.AsList\n  if (l.Get(1) = true) then\n    oldLineList.Get(0).Set(0,p0)\n  else\n    oldLineList.Get(0).Set(oldLineList.Get(0).Count - 1,p0)\n  end\n  newLine = Polyline.Make(oldLineList)\n  if (newLine.Is(Polyline)) then\n    f.SetValue(fs,theRec,newLine)\n'    goodLines = goodLines + 1\n  else\n    badLines = badLines + 1\n  end\nend\n\nf.EndTransaction   '   O-------------------------------------------O\n\nif (badLines > 0) then\n  MsgBox.Warning(badLines.AsString ++ \"lines could not be snapped due to e
rrors.\",\"Snapping errors\")\nend\n\n\n\n\n\n'  O=============================================================O\n'    the following lines are optional--feel free to comment them\n'         out by placing a ' mark at the beginning of them.\n'  O=============================================================O\n\nf.GetSelection.ClearAll  'These two lines unselect all the lines in the theme,\nf.UpdateSelection        'which makes it easy to see what happened.\n\nv.Invalidate        'causes the View to redraw\n\n\n\n\n\n\n"
)

(Script.1240
	Name:	"View.Calculate.Feature.C"
	SourceCode:	"' Name:  View.Calculate.Feature.C   \n' \n' Title:  Update Area, Perimeter, Acres, and Length\n'        \n' Topics:  GeoData\n'\n' Description:  Calculates \n\n'  Check for the shift key, if the shift key is down, pop up instructions for using this script\n\nif (System.IsShiftKeyDown) then \n  message =\n  \" Script Author: Mike DeLaune (Email: mike.g.delaune@state.or.us)\"+nl+\n  \"\"+nl+\n  \"Instructions:\"+nl+nl+\n  \"This script calculates the Area/Perimeter/Acres/Length/Mile/Sq.Yards/Sq.Miles/X,Y Cord/ulX,ulY lrX,lrY Cord 
and MORE\"+nl+\n  \"Calculations are in the map units of each theme.\"+nl+\n  \"The script will add the fields as necessary.\"+nl+\n  \"Select from a list of themes in the active view \"+nl+\n  \"to perform the calculations on \"+nl+\n  \"Select All or a Type of Calculation you want to perform \"+nl+\n  \"Thats it \"+nl+\n  \" \"+nl+\n  \" \"+nl+\n  \" \"+nl+\n  \" \"+nl \n  msgbox.report(message,\"Calculates Instructions\")\n  \n  Clipboard.The.Empty\n  Clipboard.The.Add(message)\n  Clipboard.The.Update\n    \n  MsgBox.Info(\"These instructions w
ere copied to the system clipboard.  To print them, open a text editor\"++\n  \"(like notepad), paste in the contents of the clipboard, and print them from the text editor.\",\"PRINT INSTRUCTIONS\")\n  \n  exit\nend\n\n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''\n'  Begin Initial Setup:\n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''' \n\n'  Get the active document, which should be a view.  Bail if not a view:\ntheView=av.GetActiveDoc\nif (theView.Is(View).Not) then\n  MsgBox.Error(\"This script must
 be run from a view. Exiting\",\"Error\")\n  return nil\nend\n\n'  Build a list of fthemes from the theme list.  The user will be asked to select from the list.\nppthms=List.Make\nfor each t in theView.GetThemes\n  if (t.Is(Ftheme)) then\n    shapetype = t.GetFtab.FindField(\"Shape\").GetType\n    if ((shapetype = #FIELD_SHAPELINE) or (shapetype = #FIELD_SHAPEPOLY) or (shapetype = #FIELD_SHAPEPOINT)) then\n      ppthms.Add(t)\n    end\n  end\nend\n\n'  If < 1 themes are Polyline or polygon fthemes, bail out.\nif (ppthms.Count <
 1) then\n  System.Beep\n  MsgBox.Error(\"There must be at least one polyline or polygon feature theme in the View to proceed!  Exiting.\",\"Error\")\n  exit\nend\n\n              \n'  END OF THE INITIAL SETUP \n\n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''\n'  Ask for User input:\n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''   \n\n'  Ask the user which themes to update:\nselList = Msgbox.MultiList(ppthms,\"Select Themes To Calulate Feature Size\"+nl+\"(single click to toggle selection,\"+nl+\n\" click
 and drag for multiple selection)\",\"CALCULATE FEATURE SIZE\")\n\n'  Check to see if some themes were selected, bail if not:\nif ((nil = selList) or (sellist.count = 0)) then\n  msgbox.info(\"No themes were selected, bailing.\",\"CALCULATE FEATURE SIZE\")\n  exit\nend\n\ntheCAlList = {\"All\", \"Area\", \"Perimeter\", \"Acres\", \"Length\",\"Mile\",\"Sq.Yards\",\"Sq.Miles\",\n\"Lat / Lon Dd Mm Ss\",\"Lat / Lon Decimal\",\"X,Y Cord\",\"ulX,ulY lrX,lrY Cord\",\n\"Record Number\",\"Fnode - Tnode\",\"FStreet - TStreet\",\"Polyline X,Y - Startpoint\",\n\"Polyli
ne X,Y - Midpoint\",\"Polyline X,Y - Endpoint\",\"Lat / Lon Decimal - Startpoint\",\n\"Lat / Lon Dd Mm Ss - Startpoint\",\"Lat / Lon Decimal - Endpoint\",\"Lat / Lon Dd Mm Ss - Endpoint\"}\n\nchoices = MsgBox.MultiListAsString( theCAlList, \"Select Calculations to Perform\", \"SELECT\" )\nif (choices = nil) then exit end\ncString = \"\"\nfor each c in choices\ncString = cString++c\nend\n'  END OF USER INPUT.\n\n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''\n'  Begin the calculation process\n''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''\n\n\n' Loop through the list of selected themes. If you can't the theme is not editable, inform the user.\nFor Each thetheme in selList\n  theFTab = thetheme.GetFTab\n  if (theFTab.CanEdit.Not) then\n    MsgBox.Info(\"The feature table (FTab) for theme:\"++thetheme.AsString++\" is not editable.\",\n    \"CALCULATE FEATURE \")\n    Continue\n  end\n  \n  ' Make the FTAB editable, and find out which type of feature it is.\n  theFTab.SetEditable(TRUE)\n  theType = theFTab.FindField(\"shape\").Get
Type\n  \n  if (theType = #FIELD_SHAPEPOLY) then\n   \n    ' if it's polygonal check for the existence of the fields \"Area\", \"Perimeter\", And \"Acres\"and \"ect..\".\n    ' If they do not exist, create them.\n    \n    '  Area Add / Calculate:**********************************\n    if ((cString.Contains (\"Area\") = True)or(cString.Contains (\"All\") = True)) then\n        if (theFTab.FindField(\"Area\") = nil) then\n          theAreaField = Field.Make(\"Area\",#FIELD_DOUBLE,16,3)\n          theFTab.AddFields({theAreaField})\n    
    else\n          theAreaField = theFTab.FindField(\"Area\")\n        end\n        theFtab.Calculate(\"[Shape].ReturnArea\",theAreaField)\n    end\n    \n    \n    '  Perimeter Add / Calculate:******************************\n    if ((cString.Contains (\"Perimeter\") = True)or(cString.Contains (\"All\") = True)) then\n        if (theFTab.FindField(\"Perimeter\") = nil) then\n          thePerimeterField = Field.Make(\"Perimeter\",#FIELD_DOUBLE,16,3)\n          theFTab.AddFields({thePerimeterField})\n        else\n          thePerim
eterField = theFTab.FindField(\"Perimeter\")\n        end\n        theFtab.Calculate(\"[Shape].ReturnLength\",thePerimeterField)\n    end\n \n    \n    \n    '  Acres Add / Calculate:**********************************\n    if ((cString.Contains (\"Acres\") = True)or(cString.Contains (\"All\") = True)) then\n        if (theFTab.FindField(\"Acres\") = nil) then\n          theAcresField = Field.Make(\"Acres\",#FIELD_DOUBLE,16,3)\n          theFTab.AddFields({theAcresField})\n        else\n          theAcresField = theFTab.FindField(\"A
cres\")\n        end\n        theFtab.Calculate(\"[Shape].ReturnArea / 43560\",theAcresField)\n    end\n    \n    \n    '  Sq.Yards Add / Calculate:**********************************\n    if ((cString.Contains (\"Sq.Yards\") = True)or(cString.Contains (\"All\") = True)) then\n        if (theFTab.FindField(\"Sq_Yards\") = nil) then\n          theSqYardsField = Field.Make(\"Sq_Yards\",#FIELD_DOUBLE,16,3)\n          theFTab.AddFields({theSqYardsField})\n        else\n          theSqYardsField = theFTab.FindField(\"Sq_Yards\")\n        
end\n        theFtab.Calculate(\"[Shape].ReturnArea / 9\",theSqYardsField)\n    end\n\n\n    '  Sq.Miles Add / Calculate:**********************************\n    if ((cString.Contains (\"Sq.Miles\") = True)or(cString.Contains (\"All\") = True)) then\n        if (theFTab.FindField(\"Sq_Miles\") = nil) then\n          theSqMilesField = Field.Make(\"Sq_Miles\",#FIELD_DOUBLE,16,5)\n          theFTab.AddFields({theSqMilesField})\n        else\n          theSqMilesField = theFTab.FindField(\"Sq_Miles\")\n        end\n        theFtab.Calcu
late(\"[Shape].ReturnArea / 27878400\",theSqMilesField)\n    end\n\n    '  X,Y Cord Add / Calculate:**********************************\n    if ((cString.Contains (\"X,Y Cord\") = True)or(cString.Contains (\"All\") = True)) then\n        if ((theFTab.FindField(\"X_coord\") = nil)or(theFTab.FindField(\"Y_coord\") = nil)) then\n          theX_coordField = Field.Make(\"X_coord\",#FIELD_DOUBLE,18,5)\n          theY_coordField = Field.Make(\"Y_coord\",#FIELD_DOUBLE,18,5)\n          theFTab.AddFields({theX_coordField})\n          theFTa
b.AddFields({theY_coordField})\n        else\n          theX_coordField = theFTab.FindField(\"X_coord\")\n          theFtab.Calculate(\"[Shape].ReturnCenter.GetX \",theX_coordField)\n          theY_coordField = theFTab.FindField(\"Y_coord\")\n          theFtab.Calculate(\"[Shape].ReturnCenter.GetY \",theY_coordField)\n        end\n        theFtab.Calculate(\"[Shape].ReturnCenter.GetX \",theX_coordField)\n        theFtab.Calculate(\"[Shape].ReturnCenter.GetY \",theY_coordField)\n    end\n\n  \n  \n    '  ulX,ulY,lrX,lrY Cord Add / C
alculate:**********************************\n    if ((cString.Contains (\"ulX,ulY lrX,lrY Cord\") = True)or(cString.Contains (\"All\") = True)) then\n        if ((theFTab.FindField(\"Xul_cord\") = nil)or(theFTab.FindField(\"Yul_cord\") = nil)) then\n        if ((theFTab.FindField(\"Xlr_cord\") = nil)or(theFTab.FindField(\"Ylr_cord\") = nil)) then  \n          theUlXcoordField = Field.Make(\"Xul_cord\",#FIELD_DOUBLE,18,5)\n          theUlYcoordField = Field.Make(\"Yul_cord\",#FIELD_DOUBLE,18,5)\n          theLrXcoordField = Field
.Make(\"Xlr_cord\",#FIELD_DOUBLE,18,5)\n          theLrYcoordField = Field.Make(\"Ylr_cord\",#FIELD_DOUBLE,18,5)\n          theFTab.AddFields({theUlXcoordField})\n          theFTab.AddFields({theUlYcoordField})\n          theFTab.AddFields({theLrXcoordField})\n          theFTab.AddFields({theLrYcoordField})\n        else\n          theUlXcoordField = theFTab.FindField(\"Xul_cord\")\n          theFtab.Calculate(\"[Shape].ReturnExtent.GetLeft\",theUlXcoordField)\n          theUlYcoordField = theFTab.FindField(\"Yul_cord\")\n    
      theFtab.Calculate(\"[Shape].ReturnExtent.GetTop\",theUlYcoordField)\n          theLrXcoordField = theFTab.FindField(\"Xlr_cord\")\n          theFtab.Calculate(\"[Shape].ReturnExtent.GetRight\",theLrXcoordField)\n          theLrYcoordField = theFTab.FindField(\"Ylr_cord\")\n          theFtab.Calculate(\"[Shape].ReturnExtent.GetBottom\",theLrYcoordField)\n        end\n        end\n        theUlXcoordField = theFTab.FindField(\"Xul_cord\")\n        theUlYcoordField = theFTab.FindField(\"Yul_cord\")\n        theLrXcoordField = 
theFTab.FindField(\"Xlr_cord\")\n        theLrYcoordField = theFTab.FindField(\"Ylr_cord\")\n        theFtab.Calculate(\"[Shape].ReturnExtent.GetLeft\",theUlXcoordField)\n        theFtab.Calculate(\"[Shape].ReturnExtent.GetTop\",theUlYcoordField)\n        theFtab.Calculate(\"[Shape].ReturnExtent.GetRight\",theLrXcoordField)\n        theFtab.Calculate(\"[Shape].ReturnExtent.GetBottom\",theLrYcoordField)\n    \n    end\n    \n    \n    if ((cString.Contains (\"Record Number\") = True)or(cString.Contains (\"All\") = True)) then\n       
 if (theFTab.FindField(\"RecNum\") = nil) then\n        theRecNumField = Field.Make(\"RecNum\",#FIELD_DOUBLE,8,0)\n        theFTab.AddFields({theRecNumField})\n        else\n          theRecNumField = theFTab.FindField(\"RecNum\")\n        end\n        numRecs = theFtab.GetNumRecords\n        for each recNum in theFtab\n        recno = ( recNum + 1 ).SetFormat(\"d\").AsString\n        theFtab.SetValue(theRecNumField, recNum, recno )\n        end\n    end   \n  \n \n   '  Lat / Lon Dd Mm Ss / Calculate:***************************
*******\n      \n      \n    if ((cString.Contains (\"Lat / Lon Dd Mm Ss\") = True)or(cString.Contains (\"All\") = True)) then\n        if ((theFTab.FindField(\"LatD\") = nil)or(theFTab.FindField(\"LonD\") = nil)) then\n          theLonDField = Field.Make(\"LatD\",#FIELD_CHAR,20,0)\n          theLatDField = Field.Make(\"LonD\",#FIELD_CHAR,20,0)\n          theFTab.AddFields({theLonDField})\n          theFTab.AddFields({theLatDField})\n        else\n          theLonDField = theFTab.FindField(\"LatD\")\n          theLatDField = theFTa
b.FindField(\"LonD\")\n        end\n        \n        theMapUnits = theView.GetUnits.AsString\n        \n        If (theMapUnits = \"UNITS_LINEAR_UNKNOWN\") Then\n          MsgBox.Error (\"Set the Map Distance Units before continuing.\",\"Set Map Units\")\n        theView.Edit  \n        exit  \n        End\n        \n        \n        if (_aPrj = nil) then\n           inputPrj = ProjectionDialog.Show (theView, theView.GetUnits)\n           _aPrj = inputPRJ\n        else\n           \n           status = msgbox.yesno(\"Current Proje
ction\" ++ _aPRJ.asstring + nl + \"Change Projection Information ?\",\"Projection Information For Lat / Lon\",True)\n           if (status = true) then\n              inputPrj = ProjectionDialog.Show (theView, theView.GetUnits)\n              _aPrj = inputPRJ\n           else\n              inputPrj = _aPRJ\n           end    \n        end\n      \n        if (NIL = inputPrj) Then\n           exit\n        end\n        \n        \n       shapeField  = theFTab.FindField( \"Shape\" )\n       for each recNum in theFTab\n       \n    
      currentShape1 = theFTab.ReturnValue(shapeField, recNum ) \n          currentShape2 = currentShape1.ReturnUnProjected(inputprj)\n          currentShapeU = currentShape2.ReturnCenter\n          theLonDoutputnumber = currentShapeU.GetX\n          theLonDoutputnumber = theLonDoutputnumber.SetFormat(\"dd.dddddddd\")\n          theLonDoutputstring = theLonDoutputnumber.AsString\n          theLatDoutputnumber = currentShapeU.GetY\n          theLatDoutputnumber = theLatDoutputnumber.SetFormat(\"dd.dddddddd\")\n          
theLatDoutputstring = theLatDoutputnumber.AsString\n          \n          'THIS PUTS IT IN DDMMSS FORMAT\n          loc = {theLonDoutputstring,theLatDoutputstring}\n            longdd = loc.get(1).asnumber\n            latdd = loc.get(0).asnumber\n            longd = longdd.Truncate\n            longm = (longdd.Abs - longd.Abs) * 60\n            longs = (longm - longm.Truncate) * 60\n            longm = longm.truncate\n            latd = latdd.Truncate\n            latm = (latdd.Abs - latd.Abs) * 60\n            lats =
 (latm - latm.Truncate) * 60\n            latm = latm.truncate\n            latds = latd.AsString\n            longds = longd.AsString\n            latms = latm.asstring\n            latss = lats.setformat(\"dd.dd\").asstring\n            longms = longm.asstring\n            longss = longs.setformat(\"dd.dd\").asstring\n          \n          if (latms.Count = 1) then\n               latms = \"0\"+latms\n          end\n          if (latss.Count = 1) then\n               latss = \"0\"+latss\n          end\n          if (longms.Coun
t = 1) then\n               longms = \"0\"+longms\n          end\n          if (longss.Count = 1) then\n               longss = \"0\"+longss\n          end\n          \n          theLonDoutputstring = longds+\"d \"+longms+\"m \"+longss+\"s\"\n          theLatDoutputstring = latds+\"d \"+latms+\"m \"+latss+\"s\"\n\n          \n          theFtab.SetValue(theLonDField, recNum, theLonDoutputstring )\n          theFtab.SetValue(theLatDField, recNum, theLatDoutputstring )\n          \n          \n          \n          \n                 \n       
end \n    end\n\n\n   '  Lat / Lon Decimal / Calculate:**********************************\n      \n      \n    if ((cString.Contains (\"Lat / Lon Decimal\") = True)or(cString.Contains (\"All\") = True)) then\n        if ((theFTab.FindField(\"Lat\") = nil)or(theFTab.FindField(\"Lon\") = nil)) then\n          theLonField = Field.Make(\"Lat\",#FIELD_CHAR,20,0)\n          theLatField = Field.Make(\"Lon\",#FIELD_CHAR,20,0)\n          theFTab.AddFields({theLonField})\n          theFTab.AddFields({theLatField})\n        else\n          the
LonField = theFTab.FindField(\"Lat\")\n          theLatField = theFTab.FindField(\"Lon\")\n        end\n        \n        theMapUnits = theView.GetUnits.AsString\n        \n        If (theMapUnits = \"UNITS_LINEAR_UNKNOWN\") Then\n          MsgBox.Error (\"Set the Map Distance Units before continuing.\",\"Set Map Units\")\n        theView.Edit  \n        exit  \n        End\n        \n        \n        if (_aPrj = nil) then\n           inputPrj = ProjectionDialog.Show (theView, theView.GetUnits)\n           _aPrj = inputPRJ\n       
 else\n           \n           status = msgbox.yesno(\"Current Projection\" ++ _aPRJ.asstring + nl + \"Change Projection Information ?\",\"Projection Information For Lat / Lon\",True)\n           if (status = true) then\n              inputPrj = ProjectionDialog.Show (theView, theView.GetUnits)\n              _aPrj = inputPRJ\n           else\n              inputPrj = _aPRJ\n           end    \n        end\n      \n        if (NIL = inputPrj) Then\n           exit\n        end\n        \n        \n       shapeField  = theFTab.Fi
ndField( \"Shape\" )\n       for each recNum in theFTab\n          currentShape1 = theFTab.ReturnValue(shapeField, recNum ) \n          currentShape2 = currentShape1.ReturnUnProjected(inputprj)\n          currentShapeU = currentShape2.ReturnCenter\n          theLonoutputnumber = currentShapeU.GetY\n          theLonoutputnumber = theLonoutputnumber.SetFormat(\"dd.dddddddd\")\n          theLonoutputstring = theLonoutputnumber.AsString\n          theLatoutputnumber = currentShapeU.GetX\n          theLatoutputnumber = theLa
toutputnumber.SetFormat(\"dd.dddddddd\")\n          theLatoutputstring = theLatoutputnumber.AsString\n          \n          \n          theFtab.SetValue(theLonField, recNum, theLonoutputstring )\n          theFtab.SetValue(theLatField, recNum, theLatoutputstring )\n          \n          \n          \n          \n                 \n       end \n    end\n    '*************************************************************************************\n \n  elseif (theType = #FIELD_SHAPELINE) then\n  \n    '  Length Add / Calculate\n   
 if ((cString.Contains (\"Length\") = True)or(cString.Contains (\"All\") = True)) then    \n        if (theFTab.FindField(\"Length\") = nil) then\n          theLengthField = Field.Make(\"Length\",#FIELD_DOUBLE,16,3)\n          theFTab.AddFields({theLengthField})\n        else\n          theLengthField = theFTab.FindField(\"Length\")\n        end\n        theFtab.Calculate(\"[Shape].ReturnLength\",theLengthField)\n    end\n    \n    '  Polyline X,Y - Startpoint *********************\n    if ((cString.Contains (\"Polyline X,Y - Star
tpoint\") = True)or(cString.Contains (\"All\") = True)) then    \n        if (theFTab.FindField(\"Start_X\") = nil) then\n          theMXField = Field.Make(\"Start_X\",#FIELD_DOUBLE,18,5)\n          theMYField = Field.Make(\"Start_Y\",#FIELD_DOUBLE,18,5)\n          theFTab.AddFields({theMXField})\n          theFTab.AddFields({theMYField})\n        else\n          theMXField = theFTab.FindField(\"Start_X\")\n          theMYField = theFTab.FindField(\"Start_Y\")\n        end\n        thmPolyLine = thetheme\n        ftbPolyLine = thm
PolyLine.GetFtab\n        \n        for each recNum in theFtab\n        fldShape = ftbPolyLine.FindField(\"Shape\")\n        shpPolyLine = ftbPolyLine.ReturnValue(fldShape, recNum)\n                 \n        pntStartPoint = shpPolyLine.Along(0)\n        \n        numPointX = pntStartPoint.GetX\n        numPointY = pntStartPoint.GetY\n        \n        theFtab.SetValueNumber(theMXField,recNum, numPointX)\n        theFtab.SetValueNumber(theMYField,recNum, numPointY)\n        \n        \n      \n        end\n     end \n    \n    
\n      '****************************************************************************************************\n      '  Lat / Lon Dd Mm Ss - Startpoint / Calculate:**********************************\n      \n      \n    if ((cString.Contains (\"Lat / Lon Dd Mm Ss - Startpoint\") = True)or(cString.Contains (\"All\") = True)) then\n        if ((theFTab.FindField(\"Start_LatD\") = nil)or(theFTab.FindField(\"Start_LonD\") = nil)) then\n          theLonDField = Field.Make(\"Start_LatD\",#FIELD_CHAR,20,0)\n          theLatDField =
 Field.Make(\"Start_LonD\",#FIELD_CHAR,20,0)\n          theFTab.AddFields({theLonDField})\n          theFTab.AddFields({theLatDField})\n        else\n          theLonDField = theFTab.FindField(\"Start_LatD\")\n          theLatDField = theFTab.FindField(\"Start_LonD\")\n        end\n        \n        theMapUnits = theView.GetUnits.AsString\n        \n        If (theMapUnits = \"UNITS_LINEAR_UNKNOWN\") Then\n          MsgBox.Error (\"Set the Map Distance Units before continuing.\",\"Set Map Units\")\n        theView.Edit  \n        e
xit  \n        End\n        \n        \n        if (_aPrj = nil) then\n           inputPrj = ProjectionDialog.Show (theView, theView.GetUnits)\n           _aPrj = inputPRJ\n        else\n           \n           status = msgbox.yesno(\"Current Projection\" ++ _aPRJ.asstring + nl + \"Change Projection Information ?\",\"Projection Information For Lat / Lon\",True)\n           if (status = true) then\n              inputPrj = ProjectionDialog.Show (theView, theView.GetUnits)\n              _aPrj = inputPRJ\n           else\n      
        inputPrj = _aPRJ\n           end    \n        end\n      \n        if (NIL = inputPrj) Then\n           exit\n        end\n        \n        \n       'theFTab     = t.GetFTab\n       shapeField  = theFTab.FindField( \"Shape\" )\n       for each recNum in theFTab\n          currentShape1 = theFTab.ReturnValue(shapeField, recNum ) \n          currentShape2 = currentShape1.ReturnUnProjected(inputprj)\n          currentShapeU = currentShape2.Along(0)\n          theLonDoutputnumber = currentShapeU.GetX\n          theLonDo
utputnumber = theLonDoutputnumber.SetFormat(\"dd.dddddddd\")\n          theLonDoutputstring = theLonDoutputnumber.AsString\n          theLatDoutputnumber = currentShapeU.GetY\n          theLatDoutputnumber = theLatDoutputnumber.SetFormat(\"dd.dddddddd\")\n          theLatDoutputstring = theLatDoutputnumber.AsString\n          \n          'THIS PUTS IT IN DDMMSS FORMAT\n          loc = {theLonDoutputstring,theLatDoutputstring}\n            longdd = loc.get(1).asnumber\n            latdd = loc.get(0).asnumber\n            
longd = longdd.Truncate\n            longm = (longdd.Abs - longd.Abs) * 60\n            longs = (longm - longm.Truncate) * 60\n            longm = longm.truncate\n            latd = latdd.Truncate\n            latm = (latdd.Abs - latd.Abs) * 60\n            lats = (latm - latm.Truncate) * 60\n            latm = latm.truncate\n            latds = latd.AsString\n            longds = longd.AsString\n            latms = latm.asstring\n            latss = lats.setformat(\"dd.dd\").asstring\n            longms = longm.asstring
\n            longss = longs.setformat(\"dd.dd\").asstring\n          \n          if (latms.Count = 1) then\n               latms = \"0\"+latms\n          end\n          if (latss.Count = 1) then\n               latss = \"0\"+latss\n          end\n          if (longms.Count = 1) then\n               longms = \"0\"+longms\n          end\n          if (longss.Count = 1) then\n               longss = \"0\"+longss\n          end\n          \n          theLonDoutputstring = longds+\"d \"+longms+\"m \"+longss+\"s\"\n          theLatDoutputstring
 = latds+\"d \"+latms+\"m \"+latss+\"s\"\n\n          \n          theFtab.SetValue(theLonDField, recNum, theLonDoutputstring )\n          theFtab.SetValue(theLatDField, recNum, theLatDoutputstring )\n          \n          \n          \n          \n                 \n       end \n    end\n\n\n   '  Lat / Lon Decimal - Startpoint / Calculate:**********************************\n      \n      \n    if ((cString.Contains (\"Lat / Lon Decimal - Startpoint\") = True)or(cString.Contains (\"All\") = True)) then\n        if ((theFTab.FindField(
\"Start_Lat\") = nil)or(theFTab.FindField(\"Start_Lon\") = nil)) then\n          theLonField = Field.Make(\"Start_Lat\",#FIELD_CHAR,20,0)\n          theLatField = Field.Make(\"Start_Lon\",#FIELD_CHAR,20,0)\n          theFTab.AddFields({theLonField})\n          theFTab.AddFields({theLatField})\n        else\n          theLonField = theFTab.FindField(\"Start_Lat\")\n          theLatField = theFTab.FindField(\"Start_Lon\")\n        end\n        \n        theMapUnits = theView.GetUnits.AsString\n        \n        If (theMapUnits = \"UN
ITS_LINEAR_UNKNOWN\") Then\n          MsgBox.Error (\"Set the Map Distance Units before continuing.\",\"Set Map Units\")\n        theView.Edit  \n        exit  \n        End\n        \n        \n        if (_aPrj = nil) then\n           inputPrj = ProjectionDialog.Show (theView, theView.GetUnits)\n           _aPrj = inputPRJ\n        else\n           \n           status = msgbox.yesno(\"Current Projection\" ++ _aPRJ.asstring + nl + \"Change Projection Information ?\",\"Projection Information For Lat / Lon\",True)\n           if (s
tatus = true) then\n              inputPrj = ProjectionDialog.Show (theView, theView.GetUnits)\n              _aPrj = inputPRJ\n           else\n              inputPrj = _aPRJ\n           end    \n        end\n      \n        if (NIL = inputPrj) Then\n           exit\n        end\n        \n        \n       'theFTab     = t.GetFTab\n       shapeField  = theFTab.FindField( \"Shape\" )\n       for each recNum in theFTab\n          currentShape1 = theFTab.ReturnValue(shapeField, recNum ) \n          currentShape2 = currentShape1
.ReturnUnProjected(inputprj)\n          currentShapeU = currentShape2.Along(0)\n          theLonoutputnumber = currentShapeU.GetY\n          theLonoutputnumber = theLonoutputnumber.SetFormat(\"dd.dddddddd\")\n          theLonoutputstring = theLonoutputnumber.AsString\n          theLatoutputnumber = currentShapeU.GetX\n          theLatoutputnumber = theLatoutputnumber.SetFormat(\"dd.dddddddd\")\n          theLatoutputstring = theLatoutputnumber.AsString\n          \n          \n          theFtab.SetValue(theLonField, recN
um, theLonoutputstring )\n          theFtab.SetValue(theLatField, recNum, theLatoutputstring )\n          \n          \n          \n          \n                 \n       end \n    end\n    '*************************************************************************************\n    \n        \n    '  Polyline X,Y - Midpoint *********************\n    if ((cString.Contains (\"Polyline X,Y - Midpoint\") = True)or(cString.Contains (\"All\") = True)) then    \n        if (theFTab.FindField(\"Mid_X\") = nil) then\n          theMXField
 = Field.Make(\"Mid_X\",#FIELD_DOUBLE,18,5)\n          theMYField = Field.Make(\"Mid_Y\",#FIELD_DOUBLE,18,5)\n          theFTab.AddFields({theMXField})\n          theFTab.AddFields({theMYField})\n        else\n          theMXField = theFTab.FindField(\"Mid_X\")\n          theMYField = theFTab.FindField(\"Mid_Y\")\n        end\n        thmPolyLine = thetheme\n        ftbPolyLine = thmPolyLine.GetFtab\n        \n        for each recNum in theFtab\n        fldShape = ftbPolyLine.FindField(\"Shape\")\n        shpPolyLine = ftbPolyLin
e.ReturnValue(fldShape, recNum)\n                 \n        pntMidPoint = shpPolyLine.ReturnCenter'Along(50)\n        \n        numPointX = pntMidPoint.GetX\n        numPointY = pntMidPoint.GetY\n        \n                \n        theFtab.SetValueNumber(theMXField,recNum, numPointX)\n        theFtab.SetValueNumber(theMYField,recNum, numPointY)\n        \n        \n      \n        end\n     end \n\n    '  Polyline X,Y - Endpoint *********************\n    if ((cString.Contains (\"Polyline X,Y - Endpoint\") = True)or(cString.C
ontains (\"All\") = True)) then    \n        if (theFTab.FindField(\"End_X\") = nil) then\n          theMXField = Field.Make(\"End_X\",#FIELD_DOUBLE,18,5)\n          theMYField = Field.Make(\"End_Y\",#FIELD_DOUBLE,18,5)\n          theFTab.AddFields({theMXField})\n          theFTab.AddFields({theMYField})\n        else\n          theMXField = theFTab.FindField(\"End_X\")\n          theMYField = theFTab.FindField(\"End_Y\")\n        end\n        thmPolyLine = thetheme\n        ftbPolyLine = thmPolyLine.GetFtab\n        \n        for 
each recNum in theFtab\n        fldShape = ftbPolyLine.FindField(\"Shape\")\n        shpPolyLine = ftbPolyLine.ReturnValue(fldShape, recNum)\n                 \n        pntEndPoint = shpPolyLine.Along(100)\n        \n        numPointX = pntEndPoint.GetX\n        numPointY = pntEndPoint.GetY\n        \n        theFtab.SetValueNumber(theMXField,recNum, numPointX)\n        theFtab.SetValueNumber(theMYField,recNum, numPointY)\n        \n        \n      \n        end\n     end \n  \n    \n      '************************************
****************************************************************\n      '  Lat / Lon Dd Mm Ss - Endpoint / Calculate:**********************************\n      \n      \n    if ((cString.Contains (\"Lat / Lon Dd Mm Ss - Endpoint\") = True)or(cString.Contains (\"All\") = True)) then\n        if ((theFTab.FindField(\"End_LatD\") = nil)or(theFTab.FindField(\"End_LonD\") = nil)) then\n          theLonDField = Field.Make(\"End_LatD\",#FIELD_CHAR,20,0)\n          theLatDField = Field.Make(\"End_LonD\",#FIELD_CHAR,20,0)\n          the
FTab.AddFields({theLonDField})\n          theFTab.AddFields({theLatDField})\n        else\n          theLonDField = theFTab.FindField(\"End_LatD\")\n          theLatDField = theFTab.FindField(\"End_LonD\")\n        end\n        \n        theMapUnits = theView.GetUnits.AsString\n        \n        If (theMapUnits = \"UNITS_LINEAR_UNKNOWN\") Then\n          MsgBox.Error (\"Set the Map Distance Units before continuing.\",\"Set Map Units\")\n        theView.Edit  \n        exit  \n        End\n        \n        \n        if (_aPrj = nil)
 then\n           inputPrj = ProjectionDialog.Show (theView, theView.GetUnits)\n           _aPrj = inputPRJ\n        else\n           \n           status = msgbox.yesno(\"Current Projection\" ++ _aPRJ.asstring + nl + \"Change Projection Information ?\",\"Projection Information For Lat / Lon\",True)\n           if (status = true) then\n              inputPrj = ProjectionDialog.Show (theView, theView.GetUnits)\n              _aPrj = inputPRJ\n           else\n              inputPrj = _aPRJ\n           end    \n        end\n    
  \n        if (NIL = inputPrj) Then\n           exit\n        end\n        \n        \n       'theFTab     = t.GetFTab\n       shapeField  = theFTab.FindField( \"Shape\" )\n       for each recNum in theFTab\n          currentShape1 = theFTab.ReturnValue(shapeField, recNum ) \n          currentShape2 = currentShape1.ReturnUnProjected(inputprj)\n          currentShapeU = currentShape2.Along(100)\n          theLonDoutputnumber = currentShapeU.GetX\n          theLonDoutputnumber = theLonDoutputnumber.SetFormat(\"dd.dddddddd\")
\n          theLonDoutputstring = theLonDoutputnumber.AsString\n          theLatDoutputnumber = currentShapeU.GetY\n          theLatDoutputnumber = theLatDoutputnumber.SetFormat(\"dd.dddddddd\")\n          theLatDoutputstring = theLatDoutputnumber.AsString\n          \n          'THIS PUTS IT IN DDMMSS FORMAT\n          loc = {theLonDoutputstring,theLatDoutputstring}\n            longdd = loc.get(1).asnumber\n            latdd = loc.get(0).asnumber\n            longd = longdd.Truncate\n            longm = (longdd.Abs - 
longd.Abs) * 60\n            longs = (longm - longm.Truncate) * 60\n            longm = longm.truncate\n            latd = latdd.Truncate\n            latm = (latdd.Abs - latd.Abs) * 60\n            lats = (latm - latm.Truncate) * 60\n            latm = latm.truncate\n            latds = latd.AsString\n            longds = longd.AsString\n            latms = latm.asstring\n            latss = lats.setformat(\"dd.dd\").asstring\n            longms = longm.asstring\n            longss = longs.setformat(\"dd.dd\").asstring\n  
        \n          if (latms.Count = 1) then\n               latms = \"0\"+latms\n          end\n          if (latss.Count = 1) then\n               latss = \"0\"+latss\n          end\n          if (longms.Count = 1) then\n               longms = \"0\"+longms\n          end\n          if (longss.Count = 1) then\n               longss = \"0\"+longss\n          end\n          \n          theLonDoutputstring = longds+\"d \"+longms+\"m \"+longss+\"s\"\n          theLatDoutputstring = latds+\"d \"+latms+\"m \"+latss+\"s\"\n\n          \n          t
heFtab.SetValue(theLonDField, recNum, theLonDoutputstring )\n          theFtab.SetValue(theLatDField, recNum, theLatDoutputstring )\n          \n          \n          \n          \n                 \n       end \n    end\n\n\n   '  Lat / Lon Decimal - Startpoint / Calculate:**********************************\n      \n      \n    if ((cString.Contains (\"Lat / Lon Decimal - Endpoint\") = True)or(cString.Contains (\"All\") = True)) then\n        if ((theFTab.FindField(\"End_Lat\") = nil)or(theFTab.FindField(\"End_Lon\") = nil)) the
n\n          theLonField = Field.Make(\"End_Lat\",#FIELD_CHAR,20,0)\n          theLatField = Field.Make(\"End_Lon\",#FIELD_CHAR,20,0)\n          theFTab.AddFields({theLonField})\n          theFTab.AddFields({theLatField})\n        else\n          theLonField = theFTab.FindField(\"End_Lat\")\n          theLatField = theFTab.FindField(\"End_Lon\")\n        end\n        \n        theMapUnits = theView.GetUnits.AsString\n        \n        If (theMapUnits = \"UNITS_LINEAR_UNKNOWN\") Then\n          MsgBox.Error (\"Set the Map Distance 
Units before continuing.\",\"Set Map Units\")\n        theView.Edit  \n        exit  \n        End\n        \n        \n        if (_aPrj = nil) then\n           inputPrj = ProjectionDialog.Show (theView, theView.GetUnits)\n           _aPrj = inputPRJ\n        else\n           \n           status = msgbox.yesno(\"Current Projection\" ++ _aPRJ.asstring + nl + \"Change Projection Information ?\",\"Projection Information For Lat / Lon\",True)\n           if (status = true) then\n              inputPrj = ProjectionDialog.Show (theVi
ew, theView.GetUnits)\n              _aPrj = inputPRJ\n           else\n              inputPrj = _aPRJ\n           end    \n        end\n      \n        if (NIL = inputPrj) Then\n           exit\n        end\n        \n        \n       'theFTab     = t.GetFTab\n       shapeField  = theFTab.FindField( \"Shape\" )\n       for each recNum in theFTab\n          currentShape1 = theFTab.ReturnValue(shapeField, recNum ) \n          currentShape2 = currentShape1.ReturnUnProjected(inputprj)\n          currentShapeU = currentShape2.Alo
ng(100)\n          theLonoutputnumber = currentShapeU.GetY\n          theLonoutputnumber = theLonoutputnumber.SetFormat(\"dd.dddddddd\")\n          theLonoutputstring = theLonoutputnumber.AsString\n          theLatoutputnumber = currentShapeU.GetX\n          theLatoutputnumber = theLatoutputnumber.SetFormat(\"dd.dddddddd\")\n          theLatoutputstring = theLatoutputnumber.AsString\n          \n          \n          theFtab.SetValue(theLonField, recNum, theLonoutputstring )\n          theFtab.SetValue(theLatField, recNu
m, theLatoutputstring )\n          \n          \n          \n          \n                 \n       end \n    end\n    '*************************************************************************************\n    \n\n    \n    'Record Number\n    if ((cString.Contains (\"Record Number\") = True)or(cString.Contains (\"All\") = True)) then\n        if (theFTab.FindField(\"RecNum\") = nil) then\n        theRecNumField = Field.Make(\"RecNum\",#FIELD_DOUBLE,8,0)\n        theFTab.AddFields({theRecNumField})\n        else\n          theRecNum
Field = theFTab.FindField(\"RecNum\")\n        end\n        numRecs = theFtab.GetNumRecords\n        for each recNum in theFtab\n        recno = ( recNum + 1 ).SetFormat(\"d\").AsString\n        theFtab.SetValue(theRecNumField, recNum, recno )\n        end\n    end   \n    \n    '  Mile Add / Calculate\n    if ((cString.Contains (\"Mile\") = True)or(cString.Contains (\"All\") = True)) then    \n        if (theFTab.FindField(\"Mile\") = nil) then\n          theMileField = Field.Make(\"Mile\",#FIELD_DOUBLE,16,3)\n          theFTab.Ad
dFields({theMileField})\n        else\n          theMileField = theFTab.FindField(\"Mile\")\n        end\n        theFtab.Calculate(\"[Shape].ReturnLength /5280\",theMileField)\n     end \n  \n    'Record Number\n    if ((cString.Contains (\"Record Number\") = True)or(cString.Contains (\"All\") = True)) then\n        if (theFTab.FindField(\"RecNum\") = nil) then\n        theRecNumField = Field.Make(\"RecNum\",#FIELD_DOUBLE,8,0)\n        theFTab.AddFields({theRecNumField})\n        else\n          theRecNumField = theFTab.FindField(
\"RecNum\")\n        end\n        numRecs = theFtab.GetNumRecords\n        for each recNum in theFtab\n        recno = ( recNum + 1 ).SetFormat(\"d\").AsString\n        theFtab.SetValue(theRecNumField, recNum, recno )\n        end\n    end \n  \n  \n    'Fnode - Tnode\n    if ((cString.Contains (\"Fnode - Tnode\") = True)or(cString.Contains (\"All\") = True)) then\n        ' List to hold node locations:\n        NodeX = List.Make\n        NodeY = List.Make\n        t  = thetheme\n        theFTab     = t.GetFTab\n        shapeField 
 = theFTab.FindField( \"Shape\" )\n        shapeType   = shapeField.GetType\n        numRecs     = theFTab.GetNumRecords\n        ' if it's polyline check for the existence of the fields \"FromNode\" and\n        ' \"ToNode\". if they do not exist, create them.\n          if (theFTab.FindField(\"FromNode\") = nil) then\n            theFromNodeField = Field.Make(\"FromNode\",#FIELD_DOUBLE,12,0)\n            theFTab.AddFields({theFromNodeField})\n          else\n             theFromNodeField = theFTab.FindField(\"FromNode\")\n    
      end\n    \n          if (theFTab.FindField(\"ToNode\") = nil) then\n            theToNodeField = Field.Make(\"ToNode\",#FIELD_DOUBLE,12,0)\n            theFTab.AddFields({theToNodeField})\n          else\n             theToNodeField = theFTab.FindField(\"ToNode\")\n          end\n    \n       \n        for each recNum in theFTab\n          currentShape = theFTab.ReturnValue( shapeField, recNum )\n          id = recnum\n          IdCount = id.AsString.Count\n          IdSpace = 15 - IdCount\n          IdBlank = String.Make
Buffer( IdSpace )\n          shapeList = currentShape.AsList\n          for each shapePart in shapeList\n             X1 = shapePart.Get(0).GetX\n             Y1 = shapePart.Get(0).GetY\n             X2 = shapePart.Get(shapePart.count-1).GetX\n             Y2 = shapePart.Get(shapePart.count-1).GetY\n             ' Find out if end point of line is connected to another line by\n             ' matching coordinates:\n             \n             'From node check:\n             XNodeCheck = NodeX.FindByValue(X1)\n           
  YNodeCheck = NodeY.FindByValue(Y1)\n                     \n             if (XNodeCheck > -1) then\n    \n               if ((YNodeCheck > -1) and (XNodeCheck = YNodeCheck)) then\n                 'Node exist:\n                 FromNode = XNodeCheck\n               else\n                 'Node does not exist create it:\n                 NodeX.Add(X1)\n                 NodeY.Add(Y1)\n                 FromNode = NodeX.Count-1\n               end\n             else\n              'Node does not exist create it:\n           
    NodeX.Add(X1)\n               NodeY.Add(Y1)\n               FromNode = NodeX.Count-1\n             end\n             \n             ' To node check:\n             XNodeCheck = NodeX.FindByValue(X2)\n             YNodeCheck = NodeY.FindByValue(Y2)\n                      \n             if (XNodeCheck > -1) then\n    \n               if ((YNodeCheck > -1) and ( XNodeCheck = YNodeCheck)) then\n                 'Node exist:\n                 ToNode = XNodeCheck\n               else\n                 'Node does not exist cr
eate it:\n                 NodeX.Add(X2)\n                 NodeY.Add(Y2)\n                 ToNode = NodeX.Count-1\n               end\n             else\n               'Node does not exist create it:\n               NodeX.Add(X2)\n               NodeY.Add(Y2)\n               ToNode = NodeX.Count-1\n             end\n               \n                   \n             ' Add values to theFtab:\n              theFTab.SetValue(theFromNodeField,recNum,FromNode)\n              theFTab.SetValue(theToNodefield,recNum,ToNode)\n    
      end\n        end\n    end      \n    \n    'FStreet - TStreet\n    if ((cString.Contains (\"FStreet - TStreet\") = True)or(cString.Contains (\"All\") = True)) then\n      message = \"This Script is VERY slow running\"+nl+\n      \"It took 6 hours to process 4000 records\"+nl+\n      \"You might want to run it at night ??\"+nl\n      myA = MsgBox.Input(Message, \"Run Script Now ??\", \"No\" )\n      if (myA = \"No\") then return nil end\n      if (myA = nil ) then return nil end  \n      theAllFieldList = theFTab.GetFields\n      
theFList = {}\n      cklist = {} \n        for each f in theAllFieldList\n          if (Not(f.AsString = \"Shape\")) then \n          theFList.Add(f)\n          end  \n        end\n        \n        \n        \n        NameField = MsgBox.ChoiceAsString( theFList, \"Choose the Street Name Field\", \"Fields\")\n        \n\n        \n        namewidth = theFTab.FindField(NameField.asstring).getWidth\n\n        \n        \n        t  = thetheme\n        theFTab     = t.GetFTab\n        StreetName = theFTab.FindField( NameField.asstring 
)\n        if (StreetName = nil) then return nil end \n        \n        \n        ' if it's polyline check for the existence of the fields \"FStreet\" and\n        ' \"TStreet\". if they do not exist, create them.\n          if (theFTab.FindField(\"FStreet\") = nil) then\n            theFStreetField = Field.Make(\"FStreet\",#FIELD_CHAR,namewidth,0)\n            theFTab.AddFields({theFStreetField})\n          else\n             theFStreetField = theFTab.FindField(\"FStreet\")\n          end\n    \n          if (theFTab.FindField(
\"TStreet\") = nil) then\n            theTStreetField = Field.Make(\"TStreet\",#FIELD_CHAR,namewidth,0)\n            theFTab.AddFields({theTStreetField})\n          else\n             theTStreetField = theFTab.FindField(\"TStreet\")\n          end\n        I = 0    \n        numRecs     = theFTab.GetNumRecords\n        for each recNum in theFTab\n              progress = (I/numRecs) * 100\n              doMore = av.SetStatus( progress )\n              I = I+1\n              FNameList = {}\n              TNameList = {}\n       
               \n              fldShape = theFTab.FindField(\"Shape\")\n              shpPolyLine = theFTab.ReturnValue(fldShape, recNum)\n              pntStartPoint = shpPolyLine.Along(0)         \n              pntEndPoint = shpPolyLine.Along(100)\n              StartName = theFTab.ReturnValue(StreetName, recNum)\n                      FFCount = 0\n                      TTCount = 0\n                      for each recNum2 in theFTab\n                        checkShape = theFTab.ReturnValue(fldShape, recNum2)\n       
                 checkName =  theFTab.ReturnValue(StreetName, recNum2 )\n                        checkStartPoint = checkShape.Along(0)         \n                        checkEndPoint = checkShape.Along(100)\n                                                \n                        if (recNum2 = recNum) then\n                        'skip\n                        else\n                          \n                          if (pntStartPoint = checkStartPoint) then\n                          FNameList.add(checkName)\n  
                        FFCount = FFCount + 1\n                          end\n                          \n                          if (pntStartPoint = checkEndPoint) then\n                          FNameList.add(checkName)\n                          FFCount = FFCount + 1\n                          end\n\n                          \n                          if (pntEndPoint = checkEndPoint) then\n                          TNameList.add(checkName)\n                          TTCount = TTCount + 1  \n                     
     end\n                          \n                          if (pntEndPoint = checkStartPoint) then\n                          TNameList.add(checkName)\n                          TTCount = TTCount + 1  \n                          end\n                          \n                        if ((TTCount > 1)and(FFCount > 1)) then\n                        break\n                        end\n                        end\n                                  \n                    \n                  end \n                       
             \n               \n               \n               TNameList.RemoveDuplicates\n               TNameList.sort(true)\n               FNameList.RemoveDuplicates\n               FNameList.sort(true)      \n               \n                              \n               templist = {}\n               for each S in FNameList\n               if (S = StartName) then\n                 if (FNameList.count < 2) then tempList.add(S) end\n               else\n               tempList.add(S)\n               end\n             
  end\n               FNameList = {}\n               FNameList = tempList.DeepClone \n \n               \n               templist = {}\n               for each S in TNameList\n               if (S = StartName) then\n                 if (TNameList.count < 2) then tempList.add(S) end\n               else\n               tempList.add(S)\n               end\n               end\n               TNameList = {}\n               TNameList = tempList.DeepClone \n               \n       \n             ' Add values to theFtab:\n         
     if (FNameList.count < 1) then\n              FromStreet = \"End\"\n              else\n              FromStreet = FNameList.get(FNameList.count-1)\n              end\n              if (TNameList.count < 1 ) then\n              ToStreet   = \"End\"\n              else\n              ToStreet   = TNameList.get(TNameList.count-1)\n              end\n              if (FromStreet = nil) then\n              FromStreet = \"End\"\n              end\n              \n              if (ToStreet = nil) then\n              ToStreet = \"
End\"\n              end\n              \n              theFTab.SetValue(theFStreetField,recNum,FromStreet)\n              theFTab.SetValue(theTStreetField,recNum,ToStreet)\n              TNameList = {}\n              FNameList = {}\n              end\n              \n          \n          \n        end      \n   av.ClearStatus\n  elseif (theType = #FIELD_SHAPEPOINT) then\n  \n    '  X,Y Cord Add / Calculate:**********************************\n    if ((cString.Contains (\"X,Y Cord\") = True)or(cString.Contains (\"All\") = True)
) then\n        if ((theFTab.FindField(\"X_coord\") = nil)or(theFTab.FindField(\"Y_coord\") = nil)) then\n          theX_coordField = Field.Make(\"X_coord\",#FIELD_DOUBLE,18,5)\n          theY_coordField = Field.Make(\"Y_coord\",#FIELD_DOUBLE,18,5)\n          theFTab.AddFields({theX_coordField})\n          theFTab.AddFields({theY_coordField})\n        else\n          theX_coordField = theFTab.FindField(\"X_coord\")\n          theFtab.Calculate(\"[Shape].GetX \",theX_coordField)\n          theY_coordField = theFTab.FindField(\"Y_
coord\")\n          theFtab.Calculate(\"[Shape].GetY \",theY_coordField)\n        end\n        theFtab.Calculate(\"[Shape].GetX \",theX_coordField)\n        theFtab.Calculate(\"[Shape].GetY \",theY_coordField)\n    end\n\n      '****************************************************************************************************\n      '  Lat / Lon Dd Mm Ss / Calculate:**********************************\n      \n      \n    if ((cString.Contains (\"Lat / Lon Dd Mm Ss\") = True)or(cString.Contains (\"All\") = True)) then\n        i
f ((theFTab.FindField(\"LatD\") = nil)or(theFTab.FindField(\"LonD\") = nil)) then\n          theLonDField = Field.Make(\"LatD\",#FIELD_CHAR,20,0)\n          theLatDField = Field.Make(\"LonD\",#FIELD_CHAR,20,0)\n          theFTab.AddFields({theLonDField})\n          theFTab.AddFields({theLatDField})\n        else\n          theLonDField = theFTab.FindField(\"LatD\")\n          theLatDField = theFTab.FindField(\"LonD\")\n        end\n        \n        theMapUnits = theView.GetUnits.AsString\n        \n        If (theMapUnits = \"UNIT
S_LINEAR_UNKNOWN\") Then\n          MsgBox.Error (\"Set the Map Distance Units before continuing.\",\"Set Map Units\")\n        theView.Edit  \n        exit  \n        End\n        \n        \n        if (_aPrj = nil) then\n           inputPrj = ProjectionDialog.Show (theView, theView.GetUnits)\n           _aPrj = inputPRJ\n        else\n           \n           status = msgbox.yesno(\"Current Projection\" ++ _aPRJ.asstring + nl + \"Change Projection Information ?\",\"Projection Information For Lat / Lon\",True)\n           if (sta
tus = true) then\n              inputPrj = ProjectionDialog.Show (theView, theView.GetUnits)\n              _aPrj = inputPRJ\n           else\n              inputPrj = _aPRJ\n           end    \n        end\n      \n        if (NIL = inputPrj) Then\n           exit\n        end\n        \n        \n       'theFTab     = t.GetFTab\n       shapeField  = theFTab.FindField( \"Shape\" )\n       for each recNum in theFTab\n          currentShape = theFTab.ReturnValue(shapeField, recNum ) \n          currentShapeU = currentShape.Ret
urnUnProjected(inputprj)\n          theLonDoutputnumber = currentShapeU.GetX\n          theLonDoutputnumber = theLonDoutputnumber.SetFormat(\"dd.dddddddd\")\n          theLonDoutputstring = theLonDoutputnumber.AsString\n          theLatDoutputnumber = currentShapeU.GetY\n          theLatDoutputnumber = theLatDoutputnumber.SetFormat(\"dd.dddddddd\")\n          theLatDoutputstring = theLatDoutputnumber.AsString\n          \n          'THIS PUTS IT IN DDMMSS FORMAT\n          loc = {theLonDoutputstring,theLatDoutputstring}
\n            longdd = loc.get(1).asnumber\n            latdd = loc.get(0).asnumber\n            longd = longdd.Truncate\n            longm = (longdd.Abs - longd.Abs) * 60\n            longs = (longm - longm.Truncate) * 60\n            longm = longm.truncate\n            latd = latdd.Truncate\n            latm = (latdd.Abs - latd.Abs) * 60\n            lats = (latm - latm.Truncate) * 60\n            latm = latm.truncate\n            latds = latd.AsString\n            longds = longd.AsString\n            latms = latm.ass
tring\n            latss = lats.setformat(\"dd.dd\").asstring\n            longms = longm.asstring\n            longss = longs.setformat(\"dd.dd\").asstring\n          \n          if (latms.Count = 1) then\n               latms = \"0\"+latms\n          end\n          if (latss.Count = 1) then\n               latss = \"0\"+latss\n          end\n          if (longms.Count = 1) then\n               longms = \"0\"+longms\n          end\n          if (longss.Count = 1) then\n               longss = \"0\"+longss\n          end\n          \n  
        theLonDoutputstring = longds+\"d \"+longms+\"m \"+longss+\"s\"\n          theLatDoutputstring = latds+\"d \"+latms+\"m \"+latss+\"s\"\n\n          \n          theFtab.SetValue(theLonDField, recNum, theLonDoutputstring )\n          theFtab.SetValue(theLatDField, recNum, theLatDoutputstring )\n          \n          \n          \n          \n                 \n       end \n    end\n\n\n   '  Lat / Lon Decimal / Calculate:**********************************\n      \n      \n    if ((cString.Contains (\"Lat / Lon Decimal\") = True)or(cS
tring.Contains (\"All\") = True)) then\n        if ((theFTab.FindField(\"Lat\") = nil)or(theFTab.FindField(\"Lon\") = nil)) then\n          theLonField = Field.Make(\"Lat\",#FIELD_CHAR,20,0)\n          theLatField = Field.Make(\"Lon\",#FIELD_CHAR,20,0)\n          theFTab.AddFields({theLonField})\n          theFTab.AddFields({theLatField})\n        else\n          theLonField = theFTab.FindField(\"Lat\")\n          theLatField = theFTab.FindField(\"Lon\")\n        end\n        \n        theMapUnits = theView.GetUnits.AsString\n      
  \n        If (theMapUnits = \"UNITS_LINEAR_UNKNOWN\") Then\n          MsgBox.Error (\"Set the Map Distance Units before continuing.\",\"Set Map Units\")\n        theView.Edit  \n        exit  \n        End\n        \n        \n        if (_aPrj = nil) then\n           inputPrj = ProjectionDialog.Show (theView, theView.GetUnits)\n           _aPrj = inputPRJ\n        else\n           \n           status = msgbox.yesno(\"Current Projection\" ++ _aPRJ.asstring + nl + \"Change Projection Information ?\",\"Projection Information For L
at / Lon\",True)\n           if (status = true) then\n              inputPrj = ProjectionDialog.Show (theView, theView.GetUnits)\n              _aPrj = inputPRJ\n           else\n              inputPrj = _aPRJ\n           end    \n        end\n      \n        if (NIL = inputPrj) Then\n           exit\n        end\n        \n        \n       'theFTab     = t.GetFTab\n       shapeField  = theFTab.FindField( \"Shape\" )\n       for each recNum in theFTab\n          currentShape = theFTab.ReturnValue(shapeField, recNum ) \n        
  currentShapeU = currentShape.ReturnUnProjected(inputprj)\n          theLonoutputnumber = currentShapeU.GetY\n          theLonoutputnumber = theLonoutputnumber.SetFormat(\"dd.dddddddd\")\n          theLonoutputstring = theLonoutputnumber.AsString\n          theLatoutputnumber = currentShapeU.GetX\n          theLatoutputnumber = theLatoutputnumber.SetFormat(\"dd.dddddddd\")\n          theLatoutputstring = theLatoutputnumber.AsString\n          \n          \n          theFtab.SetValue(theLonField, recNum, theLonoutputstr
ing )\n          theFtab.SetValue(theLatField, recNum, theLatoutputstring )\n          \n          \n          \n          \n                 \n       end \n    end\n    '*************************************************************************************\n    \n    \n    \n    if ((cString.Contains (\"Record Number\") = True)or(cString.Contains (\"All\") = True)) then\n        if (theFTab.FindField(\"RecNum\") = nil) then\n        theRecNumField = Field.Make(\"RecNum\",#FIELD_DOUBLE,8,0)\n        theFTab.AddFields({theRecNumFiel
d})\n        else\n          theRecNumField = theFTab.FindField(\"RecNum\")\n        end\n        numRecs = theFtab.GetNumRecords\n        for each recNum in theFtab\n        recno = ( recNum + 1 ).SetFormat(\"d\").AsString\n        theFtab.SetValue(theRecNumField, recNum, recno )\n        end\n    end   \n\n  \n  \n  \n  \n  \n  end  '  End the if theType = ...\n\ntheFTab.SetEditable(FALSE)\n  \nav.PurgeObjects\n  \nend  '  End the for each thetheme in selList\n\n\n\n\n"
)

(Script.1241
	Name:	"View.Clear.All"
	SourceCode:	"'===========================================================\n \n'  Check for the shift key, if the shift key is down, pop up instructions for using this script\n\nif (System.IsShiftKeyDown) then\n  message =\n  \" \"+nl+\n  \" Script Author (ESRI)\"+nl+\n  \" \"+nl+\n  \" Brief Instructions:\"+nl+nl+\n  \" Clears All Selected Shapes in All Themes in Current View \"+nl+\n  \" \"+nl+\n  \" \"+nl+\n  \" \"+nl+\n  \" \"+nl+\n  \" \"+nl+\n  \" \"+nl+\n  \" \"+nl+\n  \" \"+nl+\n  \" \"+nl+\n  \" \"+nl+\n  \" \"+nl+\n  \" \"+nl\n'Title here         \nmsgbox.report(messa
ge,\"Clear All Selected\")\n  \n  Clipboard.The.Empty\n  Clipboard.The.Add(message)\n  Clipboard.The.Update\n    \n  MsgBox.Info(\"These instructions were copied to the system clipboard.  To print them, open a text editor\"++\n  \"(like notepad), paste in the contents of the clipboard, and print them from the text editor.\",\"PRINT INSTRUCTIONS\")\n\n  return nil\nend\n\n\n\ntheView = av.GetActiveDoc\nfor each t in theView.GetThemes\n  t.ClearSelection\n end\nav.GetProject.SetModified(true)\ntheView = av.GetActiveDoc\ntheView.GetDispl
ay.ZoomOut(125)\ntheView.GetDisplay.UndoZoom\n\n"
)

(Script.1242
	Name:	"View.Clip.From.Graphic.C"
	SourceCode:	"'===========================================================\n \n'  Check for the shift key, if the shift key is down, pop up instructions for using this script\n\nif (System.IsShiftKeyDown) then\n  message =\n  \" \"+nl+\n  \" Script Author (ESRI)\"+nl+\n  \" \"+nl+\n  \" Brief Instructions:\"+nl+nl+\n  \" Using the selected graphics this script will\"+nl+\n  \" extract all features of the active theme and \"+nl+\n  \" clip their boundary to the graphic.\"+nl+\n  \" All theme attributes are extracted as well.\"+nl+\n  \"                
                            \"+nl+\n  \"                                            \"+nl+\n  \"                                            \"+nl+\n  \"                                            \"+nl+\n  \"                                            \"+nl+\n  \"                                            \"+nl+\n  \"                                            \"+nl+\n  \"                                            \"+nl+\n  \"                                             \"+nl\n'Title here         \n  msgbox.report(message,\"Extract 
and clip features by graphics\")\n  \n  Clipboard.The.Empty\n  Clipboard.The.Add(message)\n  Clipboard.The.Update\n    \n  MsgBox.Info(\"These instructions were copied to the system clipboard.  To print them, open a text editor\"++\n  \"(like notepad), paste in the contents of the clipboard, and print them from the text editor.\",\"PRINT INSTRUCTIONS\")\n\n  return nil\nend\n'===========================================================\n' Name:  Graphic.ClipFromGraphic\n'\n' Title:  Extract and clip features by graphics\n'\n' Topi
cs:  Geodata, Graphics & Symbols\n'\n' Description:  Using the selected graphics this script will\n' extract all features of the active theme and clip their boundary \n' to the graphic.  All theme attributes are extracted as well.\n'\n' Requires:  An update script which enables this only if a theme is\n' active and poly graphic shapes are selected.\n'\n' Self:  \n'\n' Returns:  \n'\n\n\ntheView=av.getactiveDoc\n\nthemelist=theView.getthemes\nif (TheView.getactiveThemes.count=0) then exit end\n\n\nSRCTheme=TheView.getactiveTheme
s.get(0)\n\ntheGraphics=theView.getGraphics\nif (theGraphics.Hasselected.Not) then \n msgbox.error(\"No selected graphics\",\"Error\")\n exit \nend\n\ntheselGraphics = theGraphics.getselected\n\n\n\n\n' Specify the output shapefile...\noutFName = av.GetProject.MakeFileName(\"theme\", \"shp\")\noutFName = FileDialog.Put(outFName, \"*.shp\", \"Output Clipped Shapefile\")\nif (outFName = Nil) then\n  exit\nend\n  \nshapeType = SRCTheme.GetFTab.FindField(\"Shape\").GetType\n\nif (shapeType = #FIELD_SHAPELINE) then \n  outClass = POLYLINE\nelseif (s
hapeType = #FIELD_SHAPEMULTIPOINT) then\n  outClass = MULTIPOINT\nelseif (shapeType = #FIELD_SHAPEPOINT) then\n  outClass = POINT\nelseif (shapeType = #FIELD_SHAPEPOLY) then\n  outClass = POLYGON\nelse\n  MsgBox.Error(\"Invalid shape field type.\", \"Clip Theme\")\n  exit\nend\n\n\n'-------------------------------------------------------\n'Set the variables\n'-------------------------------------------------------\n\nOutputFTab = FTab.MakeNew( outFName, outClass )\nSRCfields = List.Make\n\nfor each f in SRCTheme.GetFTab.GetFields
\n  if (f.GetName = \"Shape\") then\n    continue\n  else \n    fCopy = f.Clone\n    SRCfields.Add(fCopy)\n  end\nend\n\n'-------------------------------------------------------\n'add the fields to the output file\n'-------------------------------------------------------\nif (SRCFields.Count > 0) then\n OutputFTab.AddFields( SRCFields )\nend\n\n\noutshpfld = OutputFtab.findfield(\"Shape\")\n\nTheme1 = SRCTheme\nftab1=Theme1.getftab\nshpfld1=ftab1.findfield(\"Shape\")\ntherecs1 = ftab1.getselection\ntheoldsel = ftab1.getselection.clone\n
 \n if (therecs1.count=0) then\n   therecs1=ftab1\n end\n\nOutputFtab.seteditable(False)\nOutputFtab.seteditable(True)\n\nacount=0    'A counter variable\n\n'-------------------------------------------------------\n'Start processing each record in the selected overaly polys\n'-------------------------------------------------------\n\nfor each arec2 in theselgraphics\n\n 'get the polygon shape and select all records within that shape\n \n theSRCshape1 = arec2.getshape\n \n if (theView.getprojection.isNull) then\n  theSRCshape = 
arec2.getshape\n else\n  theSRCshape = arec2.getshape.returnunprojected(theview.getprojection)\n end\n \nTheme1.SelectbyShapes({theSRCshape1}, #VTAB_SELTYPE_NEW)\nftab1.updateselection\n\n 'For each selected record \nrecordCount = 0\n \n \nfor each Selrec in ftab1.getselection\n\nrecordcount=recordcount +1\nav.showmsg(\"Spliting Shapes...\")\nav.setstatus((recordCount / ftab1.getselection.count) * 100)\n'Get the shape of the record\n \n    SelectedShape = ftab1.returnvalue(shpfld1,Selrec)\n\n'If the output is a line\n\n    if (outs
hpfld.getType = #FIELD_SHAPELINE) then\n'If the line is wholely within the polygon (no intersection) then\n     msgbox.report(selectedshape.asstring,\"\")  \n\n     \n       if (SelectedShape.iscontainedin(theSRCShape)) then\n         alineshp = SelectedShape\n msgbox.info(\"contains\",\"\")\n'Else split the line using the polygon\n       else         \n          alineshp = SelectedShape.LineIntersection(theSRCshape)\n       end\n\n'Add the new record \n          theoutrec=outputftab.addrecord\n'Set the shape value\n          ou
tputFtab.SetValue(outshpfld,theoutrec,alineshp)\n\n'Set the field values             \n             for each afield in SRCfields\n               oldfield=ftab1.findfield(afield.getname)\n               oldvalue=ftab1.returnvalue(oldfield,selrec)\n               outputftab.setValue(afield, theoutrec, oldvalue)\n             end\n\n       \n        \n \n 'This enters into the polygon loop\n else\n       shpIntersect = SelectedShape.ReturnIntersection(theSRCshape.aspolygon)\n                    \n       if (shpintersect.isemp
ty) then \n         continue \n       end\n \n       'theview.getgraphics.add(graphicshape.make(shpintersect.returnprojected(theview.getprojection)))\n       \n        theoutrec=outputftab.addrecord\n        outputFtab.SetValue(outshpfld,theoutrec,shpIntersect)\n       \n       \n       for each afield in SRCfields\n         oldfield=ftab1.findfield(afield.getname)\n         oldvalue=ftab1.returnvalue(oldfield,selrec)\n         outputftab.setValue(afield, theoutrec, oldvalue)\n       end\n       \n       \n      end\n     ' 
acount=acount+1\n      av.purgeobjects\n   \n   end \n\nend 'ends the for each on arec1\n\n\n'Set editing OFF\n\nOutputftab.seteditable(false)\n\ntheview.getgraphics.endbatch\n\nftab1.setselection(theoldsel)\nftab1.updateselection\n\nif (MsgBox.YesNo(\"Add shapefile as theme to a view?\",\n  \"Clip Theme\", true).Not) then \n  exit \nend\n\n\n' Create a list of views and allow the user to choose which view to\n' add the new theme to... \n\nviewList = {}\nfor each d in av.GetProject.GetDocs\n  if (d.Is(View)) then\n    viewList.Add( d )\n  e
nd\nend\n  \n' Include a choice for a new view...\nviewList.Add(\"<New View>\")\n  \naddToView = MsgBox.ListAsString( viewList,\"Add Theme to:\", \"Clip Theme\" ) \n  \n\n' Get the specified view, make the theme, and add it...\nif (addToView <> nil) then\n\n  if (addToView = \"<New View>\") then\n    addToView = View.Make\n    addToView.GetWin.Open\n  end\n  \n  mergeTheme = FTheme.Make( OutputFTab )\n  addToView.AddTheme( mergeTheme )\n\n  ' Bring the View to the front...\n  addToView.GetWin.Activate\nend\n\n       \nav.clearstatus\n\n\n"
)

(Script.1243
	Name:	"View.Clip.Shp.C"
	SourceCode:	"'===========================================================\n \n'  Check for the shift key, if the shift key is down, pop up instructions for using this script\n\nif (System.IsShiftKeyDown) then\n  message =\n  \" \"+nl+\n  \" Script Author (27.7.2000 / Pasi)\"+nl+\n  \" \"+nl+\n  \" Brief Instructions:\"+nl+nl+\n  \" Clips Selected Themes by View Extent\"+nl+\n  \" Select Themes to Clip\"+nl+\n  \" Select output Folder\"+nl+\n  \" Themes will be Cliped and Exported to Folder\"+nl+\n  \" with same Names as Originals\"+nl+\n  \" \"+nl\n'Title
 here         \n  msgbox.report(message,\"Clip Active Themes by View Extent\")\n  \n  Clipboard.The.Empty\n  Clipboard.The.Add(message)\n  Clipboard.The.Update\n    \n  MsgBox.Info(\"These instructions were copied to the system clipboard.  To print them, open a text editor\"++\n  \"(like notepad), paste in the contents of the clipboard, and print them from the text editor.\",\"PRINT INSTRUCTIONS\")\n\n  return nil\nend\n'===========================================================\n\n\n\n'\n' view.ClipActiveThemes\n'\n' Creates new sh
apefiles of active themes and clips them using\n' the current view extent. New shapefiles are stored into $TEMP directory.\n'\n' 27.7.2000 / Pasi\n' --------------------------------------------------------------------------\ntheView = av.GetActiveDoc\ntheThemeList = {}\nfor each T in theView.GetThemes\n\ntheThemeList.Add(T)  \n  \nend\n\n  \nTChoiceList = MsgBox.MultiListAsString(theThemeList, \"Select Themes You Want to Clip:\", \"Select Themes(s)\")\nif (TChoiceList = nil) then return nil end\nif (TChoiceList.Count <=0 ) the
n return nil end\n\nshpExtent = theView.GetDisplay.ReturnVisExtent\n\ndefFN = FileName.Merge(FileName.GetCWD.AsString, \"~\")\naveDir = FileDialog.Put(defFN, \"*.ave\", \"Choose a Directory to Export Cliped Themes to\")\nif (aveDir = NIL) then return nil end\nthePath = aveDir.ReturnDir\nif (thePath = nil) then exit end \nthePath2 = thePath.AsString\n\nmyA = MsgBox.YesNo( \"Add Cliped Themes to View?\", \"ArcView\", TRUE )\n\nfor each T in TChoiceList\n\n\n\n  if (T.Is(FTheme)) then  \n    ftbTheme = T.GetFTab\n        \n    ' Select fea
tures that intersect the view extent and export the selected ones into new shapefile.\n    ftbTheme.SelectByRect(shpExtent, #VTAB_SELTYPE_NEW)\n    ftbExport = ftbTheme.ExportClean((thePath2 + \"\\\" + ftbTheme.GetSrcName.GetFileName.GetBaseName ).AsFileName, TRUE)\n  \n    strClass = ftbTheme.GetShapeClass.GetClassName\n    if ((strClass = \"Polygon\") or (strClass = \"PolyLine\")) then    \n      ' Clip polygon and polyline themes\n      thmTemp = FTheme.Make(ftbExport)\n      theView.AddTheme(thmTemp)\n      theView.Set
EditableTheme(thmTemp)\n      if (thmTemp.GetFTab.IsEditable) then\n        thmTemp.GetFTab.GetSelection.SetAll\n        thmTemp.ClipSelected(shpExtent)\n      end\n      thmTemp.GetFTab.SetEditable(FALSE)\n      theView.SetEditableTheme(nil)\n      if (myA = False) then\n      theView.DeleteTheme(thmTemp)\n      end\n    end  \n  end\n\n\n\n\n\nend\n"
)

(Script.1244
	Name:	"View.Demographics.Analysis.C"
	SourceCode:	"'===========================================================\n \n'  Check for the shift key, if the shift key is down, pop up instructions for using this script\n\nif (System.IsShiftKeyDown) then\n  message =\n  \" \"+nl+\n  \" Script Author Tim Johnson - (tjohnson@risc.maricopa.gov)\"+nl+\n  \" Maricopa County Elections Department\"+nl+\n  \" \"+nl+\n  \" Instructions:\"+nl+nl+\n  \" \"+nl+\n  \" Topics: Geodata - Census - Analysis - Weighted Average\"+nl+\n  \" \"+nl+\n  \" This computes the demographics of selected polygons \"+nl+\n  \" 
or a polygon theme from another theme's data.\"+nl+\n  \" Adds fields to the destination theme if they do not\"+nl+\n  \" already exist. Attributes are assigned proportionally \"+nl+\n  \" based on their area of intersection i.e. a source polygon \"+nl+\n  \" 100% within the destination polygon will transfer \"+nl+\n  \" 100% of the values, a source polygon 93% contained \"+nl+\n  \" will transfer 93% and so on.\"+nl+\n  \" \"+nl+\n  \" Requires:  two polygon themes in a view: \"+nl+\n  \" a source and a destination\"+nl+\n  \" \"+nl+\n  
\" \"+nl+  \n  \" \"+nl\n  'Title here         \n  msgbox.report(message,\"Demographics Analysis\")\n  \n  Clipboard.The.Empty\n  Clipboard.The.Add(message)\n  Clipboard.The.Update\n    \n  MsgBox.Info(\"These instructions were copied to the system clipboard.  To print them, open a text editor\"++\n  \"(like notepad), paste in the contents of the clipboard, and print them from the text editor.\",\"PRINT INSTRUCTIONS\")\n\n  return nil\nend\n\n'  Name:  Calculate_demographics\n'\n'  Topics:  Geodata, Census, Analysis, Weighted Average\n'
\n'  Description:  This computes the demographics of selected polygons or a polygon \n'  theme from another theme's data.  Adds fields to the destination theme if they do \n'  not already exist.  Attributes are assigned proportionally based on their \n'  area of intersection i.e. a source polygon 100% within the destination polygon will transfer 100% \n'  of the values, a source polygon 93% contained will transfer 93% and so on. \n' \n'  Requires:  two polygon themes in a view: a source and a destination\n'        
     \n'  Self:\n'\n'  Returns:\n'\n'  Author:  Tim Johnson, Maricopa County Elections Department (tjohnson@risc.maricopa.gov)\n'\n'  Date Modified 8/17/99  \n\n'Get the view \ntheView = av.GetActiveDoc\nif(theView.Is(View).Not)then\n  system.Beep\n  MsgBox.Warning(\"You must run this script from a View.\",\"No View\")\n  return nil\nend\n\n'make a list of polygon themes\nthePolyThemes = {}\nfor each aTheme in theView.GetThemes\n  if(aTheme.CanEdit = True) then\n  if(aTheme.getftab.findfield(\"Shape\").gettype = #FIELD_SHAPEPOLY) the
n\n    thePolyThemes.Add(aTheme)\n  end\n  else\n  'skip\n  end\nend\n\n'make sure there are at least 2 polygon themes in the view\nif((thePolyThemes.IsEmpty) or (thePolyThemes.Count < 2))then\n  MsgBox.Error(\"You need two polygon themes in the view - a Source and a Destination\",\"Stopping\")\n  exit\nend\n\n'get the source theme\nSRCTheme = MsgBox.ListAsString(thePolyThemes,\"Select the source theme:\",\"Select Source\")\nif (SRCTheme = NIL) then \n  return nil \nend\n\n'get the destination theme\ntheTheme = MsgBox.ListAsString(theP
olyThemes,\"Select the destination theme:\",\"Select Destination\")\nif (theTheme = NIL) then \n  return nil \nend\n\n'make sure the source and destination aren't the same\nif(SRCTheme = theTheme)then\n  MsgBox.Error(\"Source and Destination are the same\",\"Stopping\")\n  return nil\nend\n\n'get the destinations theme's FTab\naVtab = theTheme.GetFtab\n\n'Check if we have a selection, if not, use the whole theme\nTheBitmap = aVtab.GetSelection\nif (TheBitmap.Count > 0) then\n  TheRecsToProcess = TheBitmap\nelse\n  TheRecstoProcess = 
aVTab\nend\n\n'Make a list of numeric fields in the source theme\nenumFields = List.Make\nSRCFields = SRCTheme.GetFTab.GetFields\nfor each f in SRCFields\n  if ((f.GetName = \"Shape\") or (f.GetName = \"Area\") or (f.GetName = \"Perimeter\"))then\n    continue\n  else\n    if(f.GetType = #FIELD_DECIMAL) then   'use numeric fields only\n      fCopy = f.Clone\n      dCopy = F.Clone\n      fcopy.Seteditable(TRUE)\n      enumFields.Add(fCopy)\n      dcopy.SetEditable(TRUE)\n    end\n  end\nend\n\n'Make sure we have some numeric fields\ni
f(enumFields.IsEmpty)then\n  MsgBox.Error(\"The Source theme has no numeric fields\"+NL+\"This only works on numeric datra\",\"\")\n  return nil\nend\n\n'Select the fields to use in the calculations\ntheInputFields = MsgBox.MultiListAsString(enumfields, \"Select Fields to Use for Calculations\",\"\")\nif (theInputFields = NIL) then\n  return nil\nend\n  \n'check to see if the fields already exist in the destination theme     \ntheFieldstoAdd = List.Make\nfor each fld in theInputFields\n  if (fld.GetName = \"Shape\") then\n    continu
e\n  else \n    fCopy = fld.Clone\n    dCopy = Fld.Clone\n  end\n  if (aVTab.FindField(fCopy.AsString)=NIL) then\n    fcopy.Seteditable(TRUE)\n    theFieldstoAdd.Add(fCopy)\n    dcopy.SetEditable(TRUE)\n  end\nend    \n\n'If there are new fields, verify that we want to add them to the destination\nif(theFieldstoAdd.Count>0)then\n  if(MsgBox.ListAsString(theFieldstoAdd,\"Add These Fields to the Destination Table?\",\"\")=NIL)then\n    return nil\n  else\n    aVTab.Seteditable(TRUE)\n    aVTab.AddFields( theFieldstoAdd )\n    aVTab
.SetEditable(FALSE)\n  end\nend\n\ninterTheme= theTheme\n\n' Make the output shapefile...this will remain in the working directory\n' in case the user wants to work with it at all\nDirName = av.GetProject.GetWorkDir.AsString\noutFName = FileName.Make(DirName+\"\\\"+\"tmpedist.shp\")\nif (outFName = Nil) then\n  exit\nend\n\noutClass = POLYGON\n \nOutputFTab = FTab.MakeNew( outFName, outClass )\n\nSRCfields = List.Make\nInterFields = List.Make\n\nfor each f in SRCTheme.GetFTab.GetFields\n  if (f.GetName = \"Shape\") then\n    continue\n  
else \n    fCopy = f.Clone\n    SRCfields.Add(fCopy)\n  end\nend\n\ninterfieldlist=list.make\n\nfor each f in interTheme.GetFTab.GetFields\n  if (f.GetName = \"Shape\") then\n    continue\n  else \n    fCopy = f.Clone\n    dCopy = F.Clone\n  end\n  for each thefield in SRCfields\n    if (thefield.getname = fcopy.getname) then\n      if(theField.GetName<> \"Area\")then\n        'if (fcopy.getname.count > 7) then\n          fcopy.setname((fcopy.getname.left(1))+\"N_\")\n        'else\n          'fcopy.setname(fcopy.getname+\"b\")\n       
 'end\n      end\n    end\n  end\n  fcopy.Seteditable(TRUE)\n  interFields.Add(fCopy)\n  dcopy.SetEditable(TRUE)\n  interfieldList.add({fCopy,dCopy})\nend\n\nif (SRCFields.Count > 0) then\n  OutputFTab.AddFields( SRCFields )\nend\n\nTempTheme = FTheme.Make( OutputFTab )\nTempFTab = TempTheme.GetFTab\nTempShapeField = TempFTab.FindField(\"Shape\")\nTempAreaField = TempFTab.FindField(\"Area\")\nif(TempAreaField = NIL)then\n  MsgBox.Error(\"Area field not found\",\"\")\n  return nil\nend\n\nTheme1 = SRCTheme\nftab1=Theme1.getftab\nshpfld1=fta
b1.findfield(\"Shape\")\ntheoldsel = ftab1.getselection.clone\n \nTheme2 = InterTheme\nftab2=Theme2.getFtab\nshpfld2=ftab2.findfield(\"Shape\")\n\n'Loop through the destination theme\nfor each rec in TheRecstoProcess\n    \n  'begin calculating \n  TempFtab.seteditable(False)\n  TempFtab.seteditable(True)\n\n  acount=0    'A counter variable\n\n  'get the polygon shape and select all records within that shape\n   theSRCshape = ftab2.returnvalue(shpfld2, rec)\n   if (theView.getprojection.isNull) then\n      Theme1.SelectbyShapes(
{theSRCshape}, #VTAB_SELTYPE_NEW)\n   else\n      pshp=theSRCShape.returnProjected(theView.getprojection)\n      Theme1.SelectbyShapes({pshp}, #VTAB_SELTYPE_NEW)\n   end\n   \n  recordcount = 0       \n \n  'clear the selection in the TempFTab\n  TempFTab.GetSelection.ClearAll\n  TempFTab.UpdateSelection\n  \n  for each Selrec in ftab1.getselection\n    recordcount = recordcount + 1\n    av.showmsg(\"Spliting Shapes...\")\n    av.setstatus((recordCount / ftab1.getselection.count) * 100)\n\n    'Get the shape of the record\n   
 SelectedShape = ftab1.returnvalue(shpfld1,Selrec)\n    shpIntersect = SelectedShape.ReturnIntersection(theSRCshape)\n    if (shpintersect.isempty) then \n      continue \n    end\n    theoutrec = TempFTab.addrecord\n    TempFTab.GetSelection.Set(theoutrec)\n    TempFtab.SetValue(TempShapeField,theoutrec,shpIntersect)\n      \n    for each afield in SRCfields\n      oldfield=ftab1.findfield((afield.getname))\n      oldvalue=ftab1.returnvalue(oldfield,selrec)\n      TempFTab.setValue(afield, theoutrec, oldvalue)\n    end
\n     \n    av.purgeobjects\n  end  'end for each selected record\n  \n  'Set editing OFF\n  'Outputftab.seteditable(false)\n  aVTab.Seteditable(TRUE)\n  \n  'Find & calculate the intersected values\n  for each Fld in theInputFields\n    totValue = 0\n    theFromField = TempFTab.FindField(Fld.GetName)\n    theToField = aVTab.FindField(Fld.GetName)\n  \n    for each rec in TempFTab.GetSelection\n      theShape = TempFTab.ReturnValue(TempShapeField, rec)\n      theArea = TempFTab.ReturnValue(TempAreaField, rec)\n      theNare
a = theShape.ReturnArea\n      eRatio = theNarea / theArea\n      oldValue = TempFTab.ReturnValue(theFromField, rec)\n      newValue = oldValue * eRatio\n        if(newValue.IsNull.Not)then\n          totValue = totValue + newValue\n        end \n    end\n        \n    aVTab.SetValue(theToField, rec, totValue) \n  end  \nend\n\n'clear selection in temporary FTab\nTempFTab.GetSelection.ClearAll\nTempFTab.UpdateSelection\n\n'stop editing  \naVTab.EndTransaction\naVTab.SetEditable(False)    \n\n' Reset the initial selection to the
 Ftab1\nftab1.setselection(theoldsel)\nftab1.updateselection\n\n'*** Uncomment the line below if you want to add the intermediate theme to the view \n'theView.AddTheme( TempTheme )\n  \n' Bring the View to the front...\ntheView.GetWin.Activate\n\nmsgBox.Info(\"Done\",\"\")\n\n\n\n"
)

(Script.1245
	Name:	"View.DetectHolesPolygons"
	SourceCode:	"if (System.IsShiftKeyDown) then\n  message =\n  \" Script Author () \"+nl+\n  \" Brief Instructions: \"+nl+\n  \" \"+nl+\n  \"Works off the 1st Active Polygon Theme \"+nl+\n  \"Creates a new Polygon Theme of Just the Holes \"+nl+\n  \"Now you can zoom to selected on each record \"+nl+\n  \"of the Hole Theme to find and Fix the Holes \"+nl+\n  \"in your Polygon Theme \"+nl+\n  \" \"+nl+\n  \" \"+nl\n'Title here         \n  msgbox.report(message,\"View.DetectHolesPolygons\")\n  return nil\nend\n\nmavue =av.getactivedoc\nmontheme = mavue.getactiveth
emes.get(0)\nmaftab = montheme.getftab\nshpfld = maftab.findfield(\"shape\")\n\ntrous_detectes = false\nnb_trous = 0\nliste_trous = {}\n\nif (maftab.getselection.count=0) then\n\nmaftab.getselection.setall\nmaftab.updateselection\n\nend 'if\n\n\nfor each elt in maftab.getselection\n\nmonpolygon = maftab.returnvalue(shpfld,elt)\n\nmalisteavtexplode = monpolygon.aslist\nmalisteapresexplode = monpolygon.explode\n\nIf (malisteavtexplode.count > malisteapresexplode.count) then\n\n  trous_detectes = true\n  \n  nb_trous = malisteavtexplode.c
ount - 1\n  \n  liste_areas = {}\n  \n  for each i in 0..nb_trous\n  \n    liste_areas.add(polygon.make({malisteavtexplode.get(i)}).returnarea)\n  \n  end 'for\n  \n  liste_areas.sort(false)\n  max_area = liste_areas.get(0)\n  \n  for each i in 0..nb_trous\n  \n    If ((polygon.make({malisteavtexplode.get(i)})).returnarea < max_area) then\n  \n      liste_trous.add(polygon.make({malisteavtexplode.get(i)}))\n   \n    end 'if\n\n  end 'for\n\nend 'if\n\nend 'for\n\nif (trous_detectes = false) then\n\n  Msgbox.info(\"No holes in the active
 theme.\",\"Warning\")\n\nelse\n\n  'Create an output shapefile\n  def = av.GetProject.MakeFileName(\"Holes\", \"shp\")\n  def = FileDialog.Put(def, \"*.shp\", \"New shapefile\")\n  if (def = nil) then\n    exit\n  end\n\n  theClass = Polygon\n\n  theOutFTab = FTab.MakeNew(def, theClass)\n  fld  = Field.Make(\"Index\", #FIELD_DOUBLE, 10, 0)\n  theOutFTab.AddFields({fld})\n\n  theOutFTab.SetEditable(TRUE)\n  shapeField = theOutFTab.FindField(\"Shape\")\n  theOutFTab.BeginTransaction\n\n  for each elt in liste_trous\n  \n    nb = theOutFTab.addre
cord\n    theOutFTab.setvalue(shapefield,nb,elt)  \n  \n  end 'for\n\n  theOutFTab.EndTransaction\n  theOutFTab.SetEditable(FALSE)\n\n  fthm = FTheme.Make(theOutFTab)\n  mavue.AddTheme(fthm)\n\nend 'if\n\n\n"
)

(Script.1246
	Name:	"View.DetectIntersectPolygons"
	SourceCode:	"if (System.IsShiftKeyDown) then\n  message =\n  \"Copyright 1999 Eugene W. Martin All Rights Reserved \"+nl+\n  \" Brief Instructions: \"+nl+\n  \"Use is granted only for non-profit, educational or community service applications. \"+nl+\n  \"Commercial use requires author's concent. \"+nl+\n  \" \"+nl+\n  \" \"+nl+\n  \" \"+nl+\n  \" \"+nl+\n  \" \"+nl+\n  \" \"+nl\n'Title here         \n  msgbox.report(message,\"View.DetectIntersectPolygons \")\n  return nil\nend\n\n' Name: View.DetectIntersectPolygons\n'\n' Title:  DetectIntersectPolygons\n'\n' To
pics: GeoData, shapefiles, error detection\n'\n' Description:  \n'\n' Requires: A view with one active polygon theme.\n'\n' Self:\n'\n' Returns:\n'\n'Copyright 1999 Eugene W. Martin All Rights Reserved\n'eugene@commenspace.org\n'www.commenspace.org\n'Use is granted only for non-profit, educational or community service applications.\n'Distribution is prohibited.  Commercial use requires author's concent.\n\ntheView = av.getactivedoc\nif (theView.GetActiveThemes.Count < 1) then\n  MsgBox.Error(\"You must have one polygon theme 
active in the View.\",\n               \"Error\")\n  return nil\nend\n\ninTheme = theView.GetActiveThemes.Get(0)  \ninFtab = inTheme.GetFtab\ninShpFld = inFtab.FindField(\"Shape\")\n\nif (inShpFld.GetType <> #FIELD_SHAPEPOLY) then\n  MsgBox.Error(\"The active theme in the View must be a polygon theme.\",\n               \"Error\")\n  return nil\nend\n\n'make a list of all the polygons in the input ftab\napolylist=list.make\nfor each rec in inFtab\napoly=inFtab.returnvalue(inshpfld, rec)\n apolylist.add(apoly)\nend\n\nbpolylist=apolylist.
deepclone\n\noutpolylist=list.make\n\n'collect intersecting polygons in a list\nfor each apoly in apolylist\n  for each bpoly in bpolylist\n    if (apoly=bpoly) then continue end\n   if (apoly.returnintersection(bpoly).returnarea>0) then\n      outpolylist.add(apoly)\n    end\n  end\nend\n\n\noutpolylist.removeduplicates\n\n\ntheBM=inFtab.getselection\ntheBM.clearall\n\nfor each rec in inFtab\n  chkpoly=inftab.returnvalue(inshpfld, rec)\n  for each opoly in outpolylist\n    if (opoly=chkpoly) then\n    thebm.set(rec)\n    end\n  end\n
end\n    \ntheView.invalidate\n' End of Script\n\n\n\n\n\n"
)

(Script.1247
	Name:	"View.Dissolve.Shape.C"
	SourceCode:	"'===========================================================\n \n'  Check for the shift key, if the shift key is down, pop up instructions for using this script\n\nif (System.IsShiftKeyDown) then\n  message =\n  \" \"+nl+\n  \" Script Author (Michael Herter - ESRI Germany - Support and Services - email: m.herter@esri-germany.deESRI)\"+nl+\n  \" \"+nl+\n  \" Brief Instructions:\"+nl+nl+\n  \" This script dissolves common lines of polygon boundaries.\"+nl+\n  \" The way how this script works is quite tricky :-)\"+nl+\n  \" It collect
s all parts of ingoing polygons that have\"+nl+\n  \" the same field value.\"+nl+\n  \" After collection is done an overall polygon\"+nl+\n  \" will be generated using all parts.\"+nl+\n  \" the inner topology of structure dissolves the common\"+nl+\n  \" boundaries automatically - isn't this tricky?\"+nl+\n  \" You dont have to care about intersection or union\"+nl+\n  \" polygons that are not intersecting will stay as a part\"+nl+\n  \" in the polygon thus every result is handeled\"+nl+\n  \" as a multipart polygon so that at the e
nd all parts are exploded\"+nl+\n  \" and written to the new shapefile.\"+nl\n'Title here         \n  msgbox.report(message,\"Shape to Graphic Convertor\")\n  \n  Clipboard.The.Empty\n  Clipboard.The.Add(message)\n  Clipboard.The.Update\n    \n  MsgBox.Info(\"These instructions were copied to the system clipboard.  To print them, open a text editor\"++\n  \"(like notepad), paste in the contents of the clipboard, and print them from the text editor.\",\"PRINT INSTRUCTIONS\")\n\n  return nil\nend\n'===================================
========================\n'###############################################################################################\n'# THE TRICKY DISSOLVE: This script dissolves common lines of polygon boundaries. The way how  #\n'#           this script works is quite tricky :-). It collects all parts of ingoing polygons  # \n'#           that have the same field value. After collection is done, an overall polygon      #\n'#           will be generated using all parts. The inner topology of structure dissolves      #\n'
#           the common boundaries automatically - isn't this tricky? You dont have to care    #\n'#           about intersection or union - polygons that are not intersecting will stay as     #\n'#           a part in the polygon, thus every result is handeled as a multipart polygon so    #\n'#           that at the end all parts are exploded and written to the new shapefile.          #\n'#           For me this way is amazing because it fast, comfortable and precise. Have FUN and #\n'#           think about the
 way it works!!!                                                   #                                                   \n'#                                                                                             #\n'#           Michael Herter                                                                    #   \n'#           ESRI Germany                                                                      #\n'#           Support and Services                                                              #\n'
#           email: m.herter@esri-germany.de                                                   #  \n'#                                                                                             #\n'###############################################################################################\n\n\n\ntheView = av.GetActiveDoc\ntheThemes = theView.GetActiveThemes\nIf (theThemes.Count > 1) then\n  Msgbox.Error(\"Please activate only one theme\",\"More than one active themes\")\n  exit\nend\n\ntheTheme = theThemes.Get(0)\n\naFile
Name = av.GetProject.MakeFileName(\"Theme\",\"shp\")\nNewFile = FileDialog.put(aFileName,\"*.shp\",\"Save shapefile to\")\nif (NewFile = nil)\n  then\n  exit\nend\n\ntheVTab = theTheme.GetFTab\nshpfld = theVTab.FindField(\"Shape\")\ndissfld = MsgBox.Choice(theVTab.GetFields, \"Choose a numeric field to dissolve\", \"Select values\")\nNewFTab = FTab.MakeNew (newfile, Polygon)\nNewShpFld = NewFTab.FindField (\"Shape\") \nIdFld = Field.Make (\"ID\", #FIELD_LONG, 6, 0)\nNewFTab.AddFields ({Idfld})\n\next = MsgBox.YESNO(\"Do you want to explode 
the multipolygon?\", \"Explode\", true)\n\nvallist = {}\n'collect values\n\nfor each rec in theVTab\n\n  val =  theVTab.ReturnValue(dissfld, rec)\n  vallist.add(val)\n \nend\n\nvallist.removeduplicates\ntheBitMap = theVTab.GetSelection\n\nfor each val in vallist\n  \n  theTheme.ClearSelection\n  theQueryString = \"([\"+dissfld.getname+\"] = \"+val.AsString+\")\"\n  theVTab.Query (theQueryString, theBitmap, #VTAB_SELTYPE_NEW)\n  theVTab.UpdateSelection\n  \n  listofparts = {}\n  \n  \n  for each selrec in theVTab.GetSelection\n  \n    shp = th
eVTab.ReturnValue(shpfld, selrec)\n    partlist = shp.clone.aspolyline.aslist\n    \n    for each part in partlist\n      listofparts.add(part) \n    end  \n  \n  end  \n  \n  unionpoly = Polygon.Make(listofparts)\n  \n  singleparts = unionpoly.explode\n \n  if(ext) then\n  \n    for each part in singleparts\n    \n      rec = NewFTab.AddRecord\n      NewFTab.SetValue(NewShpFld, rec, part)\n      NewFTab.SetValue(Idfld, rec, val   )\n    \n    end  \n   \n  else\n    \n     rec = NewFTab.AddRecord\n     NewFTab.SetValue(NewShpFld, r
ec, unionpoly)\n     NewFTab.SetValue(Idfld, rec, val   )\n\n  end\n   \nend\n\n' create a theme and add it to the View\nfthm = FTheme.Make(NewFTab)\ntheView.AddTheme(fthm)\n\n \n\ntheTheme.ClearSelection\ntheView.Invalidate\n\n"
)

(Script.1248
	Name:	"View.DXF.Menu.C"
	SourceCode:	"if (System.IsShiftKeyDown) then\nthetest = 1\nav.run( \"View.Menu.Help.C\", thetest )\nreturn nil\nend\n\n\n\nthetest = 1\ntheMenu = { \"Help\",\"Cad Layer Extractor\", \"Shape 2 DXF - 1\",\"Shape 2 DXF - 2\",\"DWG Text 2 Point\"}\ntheMenuChoice = msgbox.ListAsString( theMenu, \"Chose a Menu Item? \", \"Tools\")\nif (theMenuChoice = nil) then exit end\n\n\n'Help\nif (theMenuChoice = \"Help\") then\nav.run( \"View.Menu.Help.C\", thetest )\nend\n\n'Cad Layer Extractor\nif (theMenuChoice = \"Cad Layer Extractor\") then\nav.run( \"Cad.Extractor.C\", thete
st )\nend\n\n'Shape 2 DXF - 1\nif (theMenuChoice = \"Shape 2 DXF - 1\") then\nav.run( \"View.Shapes.2.DXF.C\", thetest )\nend\n\n'Shape 2 DXF - 2\nif (theMenuChoice = \"Shape 2 DXF - 2\") then\nav.run( \"DT.DXF.Out.Attrib.C\", thetest )\nend\n\n'DWG Text 2 Point\nif (theMenuChoice = \"DWG Text 2 Point\") then\nav.run( \"View.Dxf.Txt.2.Point.C\", thetest )\nend\n\n'\nif (theMenuChoice = \"\") then\nav.run( \"\", thetest )\nend\n\n'\nif (theMenuChoice = \"\") then\nav.run( \"\", thetest )\nend\n\n'\nif (theMenuChoice = \"\") then\nav.run( \"\", thetest )\nend\n\n"
)

(Script.1249
	Name:	"View.Dxf.Txt.2.Point.C"
	SourceCode:	"'This script converts the selected text from the active theme into\n'point shapes with the text as attributes. This is designed\n'to work with CAD text, though anywill do and creates an item called CADText in\n'its FAT.  If no text is found an error message is returned.\n\n'Updated to AV3 for DGN 8/22/96.  ABS\n'Updated to let user determine where to put new theme, per Bill S.\n\n'First make sure the active theme is an annotation theme\ntheView = av.GetActiveDoc\ntheTextTheme=av.getactivedoc.getactivethemes.get(0)\nif
 (theTextTheme.getsrcname.getsubname <> \"annotation\") then\nmsgbox.warning(\"Sorry, the active theme is not an annotation theme!  Try again!\",\"\")\nexit\nend\n\n'Get the number of selected text guys\ntheTextTable=theTextTheme.GetFtab\ntheOrigBitmap=theTextTheme.GetFtab.GetLastSelection\n'msgbox.info(theTextTable.GetSelection.Count.asstring,\"Number selected\")\n\n'Check if there is a selection set\nif (theTextTable.GetSelection.Count = 0) then doall=true else doall=false end\n\n'if there is grab all of the text in the theme
\nif (doall) then\n  theTextTable.query(\"([Entity]=\"\"Text\"\")\",theTextTable.GetSelection,#VTAB_SELTYPE_NEW)\n    if (theTextTable.GetSelection.Count = 0) then\n      msgbox.info (\"Sorry, no text features in the theme!\",\"\")\n      exit\n    end\n'if there is a selected set find all the text in it\nelse\n  theTextTable.query(\"([Entity]=\"\"Text\"\")\",theTextTable.GetSelection,#VTAB_SELTYPE_AND)\n    if (theTextTable.GetSelection.Count = 0) then\n      msgbox.info (\"Sorry, no text features in selected set!\",\"\")\n      exit\n   
 end\nend\n\n'Find and report the total number of text entities to be converted\ntheNumRec=theTextTable.GetSelection.Count\ntheanswer=msgbox.yesno(theNumRec.asstring++\"text elements to be converted!\"+nl+\"(Some may have been block attributes!)\"+nl+\"Label new point theme and turn of annotation?\", \"\",true)\n\n'if (theanswer) then msgbox.info(\"yes\",\"\") else (msgbox.info(\"no\",\"\")) end\n\n'Make a new shape theme\ntype =\"Point\"\nclass = Point\n'Make sure to get a new name for it\n\n'This is where we write all the extra needed f
iles:\nthemepath=thetexttheme.getsrcname.getfilename.returndir\n\n'Get a new file name, but make a suggestions of thetexttheme.shp\nnewfilename=themepath.maketmp(theTextTheme.asstring,\"shp\")\nshapethemename=FileDialog.Put (newfilename, \"shp\", \"Save\")\n    \n    \nif (shapethemename = nil ) then   \n    exit \nend\n'msgbox.info(newfilename.asstring,\"\")\n\n\n\n'def=av.getproject.getworkdir.maketmp(theTextTheme.asstring,\"shp\")\ndef=shapethemename\nif (def <> nil) then\n  tbl = FTab.MakeNew(def, class)\n  'fld = Field.Make(\"ID\", 
#FIELD_DECIMAL, 8, 0)\n  'fld.SetVisible( FALSE )\n  'tbl.AddFields({fld})\n  theTheme = FTheme.Make(tbl)\n  theView.AddTheme(theTheme)\n  theTheme.SetActive(TRUE)\n  theTheme.SetVisible(TRUE)\n  theView.SetEditableTheme(theTheme)\n  av.GetProject.SetModified(true)\nend\n\n'Add the TEXT field to the new theme\ntheme1table=av.getactivedoc.findtheme(def.getbasename).getftab\nthenewfield=field.make(\"CADText\", #FIELD_CHAR, 25, 0)\ntheme1table.addfields({thenewfield})\n\n\n\n'Walk through each record and pull out the text value a
nd\n'the shape.  Stuff each into the new theme.\nfor each n in theTextTable.GetSelection\n  'msgbox.info(n.asstring,\"N\")\n  theTextValue=theTextTable.returnvalue(theTextTable.findfield(\"Text\"),n)\n  theShapeValue=theTextTable.returnvalue(theTextTable.findfield(\"Shape\"),n)\n  theShapeCoors=theShapeValue.ReturnCenter\n  thePointTable=av.getactivedoc.findtheme(DEF.getbasename).getftab\n  theNewPoint=point.make(theShapeCoors.getx,theshapecoors.gety)\n  theRecordNum=thePointTable.addrecord\n  thePointTable.setvalue(thepoi
ntTable.findfield(\"CADTEXT\"),theRecordNum,theTextvalue)\n  thePointTable.setvalue(thepointTable.findfield(\"Shape\"),theRecordNum, theNewPoint)\nend\n\nif (theanswer) then\n  'thetheme\n  theview=av.getactivedoc\n  thetexttheme.setactive(false)\n  thetheme.setlabelfield(thetheme.getftab.findfield(\"CADtext\"))\n  theview.labelthemes(false)\n  thetexttheme.setvisible(false)\n  'thetexttheme.getgraphics.delete\n  \nend\n\n  \n\n  \n'Turn the pointtable editing off and update the bitmap to the one we started with  \nthepointtable.se
teditable(false)\ntheTheme.setactive(false)\nthetexttheme.setactive(true)\ntheTextTable.Setselection(TheOrigBitmap.clone)\ntheTextTable.UpdateSelection\n\n"
)

(Script.1250
	Name:	"View.Explode.Shape.C"
	SourceCode:	"'===========================================================\n \n'  Check for the shift key, if the shift key is down, pop up instructions for using this script\n\nif (System.IsShiftKeyDown) then\n  message =\n  \" \"+nl+\n  \" Script Author (Holly Gaudet 8/17/1999)\"+nl+\n  \" \"+nl+\n  \" Brief Instructions:\"+nl+nl+\n  \" Explodes a multi-polygon into individual polygons.\"+nl+\n  \" The resulting polygons replace the multi-polygon\"+nl+\n  \" and retain its attributes according to user specifications\"+nl+\n  \" This script does n
ot create a new shapefile\"+nl+\n  \" but rather edits an existing shapefile\"+nl+\n  \"                                             \"+nl\n'Title here         \n  msgbox.report(message,\"Explodes a multi-polygon into individual polygons\")\n  \n  Clipboard.The.Empty\n  Clipboard.The.Add(message)\n  Clipboard.The.Update\n    \n  MsgBox.Info(\"These instructions were copied to the system clipboard.  To print them, open a text editor\"++\n  \"(like notepad), paste in the contents of the clipboard, and print them from the text edi
tor.\",\"PRINT INSTRUCTIONS\")\n\n  return nil\nend\n'===========================================================\n\n\n' Name: explode.ave\n'\n' Topics: multi-polygon, polygon, explode \n'\n' Author: Holly Gaudet 8/17/1999\n'\n' Description: Explodes a multi-polygon into individual polygons.  The resulting polygons\n'              replace the multi-polygon and retain its attributes according to user \n'              specifications.  This script does not create a new shapefile, but rather \n'              edits an existing sha
pefile.\n'\n' Requires: Prompts user for view name, theme name, and attributes to be retained.\n'\n\n'get a list of views\ntheDocs  = av.GetProject.GetDocs\n theViews = {}\n for each theDoc in theDocs\n   if (theDoc.GetGui = \"View\") then\n     theViews.Add (theDoc)\n   end\n end\n \n 'prompt the user to choose the view containing the theme to be edited\n theView = msgBox.Choice (theViews, \"Choose the view containing the theme you want to explode...\", \"Views\")\n if (theView = nil) then\n   exit\n end\n \n 'get a list of themes\n
 theThemes = theView.GetThemes \n if (theThemes.count < 1) then\n   msgBox.info (theView.asString.Quote + \" doesn't contain any themes.\", \"Error\")\n   exit\n end\n \n'prompt the user to choose the theme to explode\n theTheme = msgBox.choice (theThemes, \"Select the theme you want to explode...\", \"Themes\")\n if (theTheme = nil) then\n   exit\n end\n theFTab = theTheme.GetFTab\n theFTab.setEditable (true)\n \n 'get a list of fields in the theme's attribute table, excluding the shape field\n theFields = theFTab.GetFields\n the
FieldsList = {}\n for each theField in theFields\n   if ((theField.asString <> \"Shape\") or (theField.asString <> \"SHAPE\") or (theField.asString <> \"shape\")) then\n     theFieldsList.Add (theField)\n   end\n end\n \n 'find out which attributes the user wants the exploded polygons to retain\n theKeepFields = msgBox.Multilist (theFieldsList, \"Select the attributes you want the exploded polygons to retain...\", \"Attributes\")\n if ((theKeepFields = nil) or (theKeepFields.count = 0)) then\n   exit\n end\n fldShape = theFTab.F
indField (\"Shape\")\n theFTab.BeginTransaction\n theBitmap = theFTab.GetSelection\n \n 'select all records\n theQuery = \"[Shape] <> 9\"\n theFTab.query (theQuery, theBitmap, #VTAB_SELTYPE_NEW)\n theValues = {}\n theIndexA = 0\n \n 'copy the attributes of each record\n for each theRec in theBitmap\n   theShp = theFtab.ReturnValue (fldShape, theRec)\n   theSubValues = {}\n   for each theField in theKeepFields\n     theSubValues.Add (theFTab.ReturnValue (theField, theRec))\n   end\n   theValues.Add (theSubValues)\n   \n'explode th
e shape \n   theNewShpList = theShp.Explode\n   for each theNewShp in theNewShpList\n\n'add a record for each new shape and attribute it\n     rec = theFTab.AddRecord\n     theFTab.SetValue (fldShape, rec, theNewShp)\n     theIndexB = 0\n     for each theField in theKeepFields\n       theFtab.SetValue (theField, rec, theValues.Get(theIndexA).Get(theIndexB))\n       theIndexB = theIndexB + 1\n     end\n   end\n   \n'remove the record for the multi-part shape   \n   theFTab.RemoveRecord(theRec)\n   theFTab.UpdateSelection\n  
 theIndexA = theIndexA + 1\n end\n theFTab.EndTransaction\n theFTab.SetEditable (false)\n theTheme.Invalidate(TRUE)\n msgBox.info (\"Finished exploding \" + theTheme.asString, \"\")\n\n\n\n\n"
)

(Script.1251
	Name:	"View.Export.Clean.C"
	SourceCode:	"'===========================================================\n \n'  Check for the shift key, if the shift key is down, pop up instructions for using this script\n\nif (System.IsShiftKeyDown) then\n  message =\n  \" \"+nl+\n  \" Script Author (Unknown)\"+nl+\n  \" \"+nl+\n  \" Brief Instructions:\"+nl+nl+\n  \" Cleans the shapes of the active themes \"+nl+\n  \" & exports to a new shapefile\"+nl+\n  \" A symptom that your polygon shapefiles are dirty\"+nl+\n  \" is if they shade the entire view window\"+nl+\n  \" or bleed when you zoom in
.                 \"+nl+\n  \" However, dirty shapefiles will also produce odd\"+nl+\n  \" effects with overlay requests \"+nl+\n  \" area calculations or spatial joins    \"+nl+\n  \" This script is similar to the script used by \"+nl+\n  \" Convert to Shapefile however\"+nl+\n  \" this script runs slower because it\"+nl+\n  \" takes time to clean each shape.                                           \"+nl+\n  \" Also Check the new file for missing shapes ,it loses any that are bad , (silvers)\"+nl\n'Title here         \n  msgbox.re
port(message,\"Cleans and exports shapes of themes\")\n  \n  Clipboard.The.Empty\n  Clipboard.The.Add(message)\n  Clipboard.The.Update\n    \n  MsgBox.Info(\"These instructions were copied to the system clipboard.  To print them, open a text editor\"++\n  \"(like notepad), paste in the contents of the clipboard, and print them from the text editor.\",\"PRINT INSTRUCTIONS\")\n\n  return nil\nend\n'===========================================================\n\n' Name:  View.CleanShape\n'\n' Title:   Cleans and exports shapes of the
mes.\n'\n' Topics:  Views\n'\n' Description:  Cleans the shapes of the active themes & exports to a new shapefile.\n'\n' A symptom that your polygon shapefiles are \"dirty\" is if they shade\n' the entire view window or bleed when you zoom in. However, dirty shapefiles\n' will also produce odd effects with overlay requests, area calculations,\n' spatial joins, etc.\n' \n' This script is similar to the script used by Convert to Shapefile;\n' however, this script runs slower because it takes time to\n' clean each shape.\n'\n'
 Requires:  The active document must be a view, with at least one active theme.\n'\n' Self:  \n'\n' Returns:  \n\ntheView = av.GetActiveDoc\nfor each t in theView.GetActiveThemes\n    if (t.Is( FTHEME ).Not) then \n      if (t.CanExportToFTab.Not) then \n        continue\n      end\n    end\n    if (t.Is (FTHEME).Not) then  \n      def = av.GetProject.MakeFileName(\"theme\", \"shp\")\n      def = FileDialog.Put(def, \"*.shp\", \"Convert \" + t.getName)\n      if (def = NIL) then \n        return NIL \n      end\n      anFTab = t.Expo
rtToFTab(def)\n    else\n      tbl = t.GetFTab\n      attribVis = FALSE\n      for each f in tbl.GetFields\n      if ((f.IsVisible) and not (f.IsTypeShape)) then\n        attribVis = TRUE\n        break\n      end\n    end\n    shapeVis = tbl.FindField(\"Shape\").IsVisible\n    if ((attribVis and shapeVis).Not) then\n      continue\n    end \n    def = av.GetProject.MakeFileName(\"theme\", \"shp\")\n    def = FileDialog.Put(def, \"*.shp\", \"Convert \" + t.getName)   \n    if (def = NIL) then \n      return nil \n    end\n    shpfld = 
(tbl.FindField(\"Shape\"))\n    if (shpfld.IsVisible.Not) then\n      shpfld.SetVisible(shpfld.IsVisible.Not)\n      WasNotVisible = TRUE\n    else\n      WasNotVisible =FALSE\n    end\n  \n    anFTab = tbl.ExportClean(def, tbl.GetSelection.Count > 0)\n  \n    if (WasNotVisible) then\n      shpfld.SetVisible(FALSE)\n    end\n  \n  end\n\n  if (MsgBox.YesNo(\"Add shapefile as theme to the view?\",\"Convert to Shapefile\",true).Not) then \n    continue\n  end\n\n  'create a theme and add it to the View\n  fthm = FTheme.Make(anFTab)\n  t
heView.AddTheme(fthm)\n  'bring the View to the front\n  theView.GetWin.Activate\nend\n"
)

(Script.1252
	Name:	"View.Graphic.2.Shp.C"
	SourceCode:	"'===========================================================\n \n'  Check for the shift key, if the shift key is down, pop up instructions for using this script\n\nif (System.IsShiftKeyDown) then\n  message =\n  \" \"+nl+\n  \" Script Author (Isaac Oshima California Department of Fish  and Game Technical Service Branch)\"+nl+\n  \" \"+nl+\n  \" Brief Instructions:\"+nl+nl+\n  \" Converts selected graphic(s) to a shapefile \"+nl+\n  \" Adds the new Shapefile to the active view \"+nl+\n  \" from which the Graphic(s) originated\"+nl+\n 
 \"                                            \"+nl+\n  \"                                            \"+nl+\n  \"                                            \"+nl+\n  \"                                            \"+nl+\n  \"                                            \"+nl+\n  \"                                            \"+nl+\n  \"                                            \"+nl+\n  \"                                            \"+nl+\n  \"                                            \"+nl+\n  \"                                 
            \"+nl\n'Title here         \n  msgbox.report(message,\"Converts selected graphic(s) to a shapefile \")\n  \n  Clipboard.The.Empty\n  Clipboard.The.Add(message)\n  Clipboard.The.Update\n    \n  MsgBox.Info(\"These instructions were copied to the system clipboard.  To print them, open a text editor\"++\n  \"(like notepad), paste in the contents of the clipboard, and print them from the text editor.\",\"PRINT INSTRUCTIONS\")\n\n  return nil\nend\n'===========================================================\n\n' Name:  Vie
w.Gra2shp.ave \n'\n' Title: Converts selected graphic(s) to a shapefile\n'\n' Topics: View, Graphic, Shape\n'\n' Description: Converts selected graphic(s) to a shapefile\n'\n' This script \n'\n' Requires: Attach this script to the apply property of a\n' button on the VIEW GUI.\n'\n' Self:\n'\n' Returns: Adds the new Shapefile to the active view from which\n' the Graphic(s) originated.\n'\n' Author: Isaac Oshima\n' California Department of Fish and Game, Technical Service Branch\n' February 11, 1998 (revised)\n' ioshima@maphost.
dfg.ca.gov\n' 916-323-1635\n'\n' Notes: Revised 2/11/1998\n'\n'\n' End: View.Gra2shp.ave\n\n\ntheProject = av.GetProject\ntheView = av.GetActiveDoc\n\ntheNewFtab = Nil\n\nif (theView.Is(View).Not) then\n  MsgBox.Error(\"Active Document is not a View\",\"Active Document\")\n  exit\nend\n\n\ntheGraphicsList = theView.GetGraphics\ntheSelectedGraphics = theGraphicsList.GetSelected\n\nif (theSelectedGraphics.Count = 0) then\n  MsgBox.Info(\"Please, select graphics to convert to shapefile\",\"Select Graphics\")\n  exit\nend\n\nftPoint = False\nftLin
e = False\nftPolygon = False\nftUnknown = False\nftKount = 0\nftList = List.Make\ntheClass = Nil\n\nfor each gs in theSelectedGraphics\n  s = gs.GetShape\n  if (s.GetDimension = 0) then\n    ftPoint = True\n    ftList.Add(\"Point\")\n  elseif (s.GetDimension = 1) then\n    ftLine = True\n    ftList.Add(\"Line\")\n  elseif (s.getDimension = 2) then\n    ftPolygon = True\n    ftList.Add(\"Polygon\")\n  else \n    ftUnknown = True\n    ftList.Add(\"Unknown\")\n    MsgBox.Info(\"Unknown feature option\",\"See Isaac\")\n    exit\n  end\nend\n\nftLis
t.RemoveDuplicates\n\n\n\nif (ftList.Count <> 1) then\n  MsgBox.Error(\"Feature Type Mismatches\",\"Select Only One Feature Type: Point, Line or Polygon\")\n  Return Nil\nend\n\ntheClass = ftList.Get(0).asString.Trim\n\n\n'If a theme in the view is being edited, Stop Editing it before creating new theme\neditThm = theView.GetEditableTheme\nif (editThm <> nil) then\n  doSave = MsgBox.YesNoCancel(\"Save edits to \"+editThm.GetName+\"?\",\"Stop Editing\",true)\n  if (doSave = nil) then\n    return nil\n  end\n  if (editThm.StopEditing(doS
ave).Not) then\n      MsgBox.Info(\"Unable to Save Edits to \"\n                   + editThm.GetName +\n                  \", please use the Save Edits As option\", \"\")\n      return nil\n  else\n      theView.SetEditableTheme(NIL)\n  end\nend  \n\nif (ftPoint = True) then\n  class = Point\n\nelseif (ftLine = True) then\n  class = PolyLine\n\nelseif (ftPolygon = True) then\n  class = Polygon\n\nelse\n  class = Nil\nend\n\n\n\ndef = av.GetProject.MakeFileName(\"shape\", \"shp\")\n\ndef = FileDialog.Put(def, \"*.shp\", \"New Theme\")\n\nif (def <> n
il) then\n  tbl = FTab.MakeNew(def, class)\n  if (tbl.HasError) then\n     if (tbl.HasLockError) then\n        MsgBox.Error(\"Unable to acquire Write Lock for file \" + def.GetBaseName, \"\")\n     else\n        MsgBox.Error(\"Unable to create \" + def.GetBaseName, \"\")\n     end\n     return nil\n  end\n  theIdField = Field.Make(\"ID\", #FIELD_DECIMAL, 8, 0)\n\n  theIdField.SetVisible( TRUE )\n  tbl.AddFields({theIdField})\n  tbl.SetEditable(False)\n  theNewTheme = FTheme.Make(tbl)\n  theNewFtab = theNewTheme.GetFtab\n  theNewShape
Field = theNewFtab.FindField(\"Shape\")\n  theView.AddTheme(theNewTheme)\n  theNewTheme.SetActive(TRUE)\n  theNewTheme.SetVisible(TRUE)\n  theView.SetEditableTheme(theNewTheme)\n  av.GetProject.SetModified(true)\nend\n\nif (theNewFtab = Nil) then\n  exit\nend\n\ntheKount = 0\n\nfor each g in theSelectedGraphics\n  theKount = theKount + 1\n  \n  theShape = g.GetShape\n  \n  \n  if (theClass = \"Point\") then  \n    theNewRec = theNewFtab.AddRecord\n    thePoint = theShape\n    theNewFtab.SetValue(theNewShapeField,theNewRec,thePoint)\n 
   theNewFtab.SetValueNumber(theIdField,theNewRec,(theKount))\n  elseif (theClass = \"Line\") then  \n    theNewRec = theNewFtab.AddRecord\n    thePolyLine = theShape.asPolyLine\n    theNewFtab.SetValue(theNewShapeField,theNewRec,thePolyLine)\n    theNewFtab.SetValueNumber(theIdField,theNewRec,(theKount))\n  elseif (theClass = \"Polygon\") then  \n    theNewRec = theNewFtab.AddRecord\n    thePolygon = theShape.asPolygon\n    theNewFtab.SetValue(theNewShapeField,theNewRec,thePolygon)\n    theNewFtab.SetValueNumber(theIdFi
eld,theNewRec,(theKount))\n  end\n  \nend\n\ntheNewFtab.SetEditable(false)\ntbl.SetEditable(false)\n\n\n\n\n"
)

(Script.1253
	Name:	"View.Import.711.C"
	SourceCode:	"'===========================================================\n \n'  Check for the shift key, if the shift key is down, pop up instructions for using this script\n\nif (System.IsShiftKeyDown) then\n  message =\n  \" \"+nl+\n  \" Script Author (Tim Johnson, Maricopa County Elections Department)\"+nl+\n  \" \"+nl+\n  \" Brief Instructions:\"+nl+nl+\n  \" Allows batch conversion of Arc/INFO e00 files from ArcView\"+nl+\n  \" Using the Import71 Utility included in ArcView\"+nl+\n  \" from which the Graphic(s) originated\"+nl+\n  \" User is
 shown a file dialog to select e00 files to import\"+nl+\n  \" then a file dialog to select the output directory ONLY\"+nl+\n  \" for the new Arc/INFO coverages\"+nl+\n  \" The script will then convert each selected e00 to an Arc/INFO coverage\"+nl+\n  \"                                            \"+nl+\n  \"                                            \"+nl+\n  \"                                            \"+nl+\n  \"                                            \"+nl+\n  \"                                            \"+nl+\n  \"    
                                         \"+nl\n'Title here         \n  msgbox.report(message,\"Batch Conversion of Arc/INFO e00 files to Shape Files\")\n  \n  Clipboard.The.Empty\n  Clipboard.The.Add(message)\n  Clipboard.The.Update\n    \n  MsgBox.Info(\"These instructions were copied to the system clipboard.  To print them, open a text editor\"++\n  \"(like notepad), paste in the contents of the clipboard, and print them from the text editor.\",\"PRINT INSTRUCTIONS\")\n\n  return nil\nend\n'  View.BatchImportE00\n'\n'  Allows b
atch conversion of Arc/INFO e00 files from ArcView\n'  Using the Import71 Utility included in ArcView\n'\n'  User is shown a file dialog to select e00 files to import,\n'  then a file dialog to select the output directory (only) for\n'  the new Arc/INFO coverages.  The script will then convert each \n'  selected e00 to an Arc/INFO coverage.  If run from a view,\n'  the user will be given the choice of adding the new coverages\n'  via the \"Add Theme\" dialog.  May take a long time to run.\n'\n'  Requires the Import71 u
tility to exist in the \\..\\arcview\\bin32 directory\n'\n'  Windows 95,98, or NT only\n'\n'  Author:  Tim Johnson, Maricopa County Elections Department\n'            (the backbone of this script is from the \"E00 Importer\" script\n'             from Bill Dollins but it uses 'system.ExecuteSynchronous' instead of\n'             a call to the dll to avoid segmentation violations and allow batch conversions)\n\n\n'Find the Import71 Utility\nBinLoc = System.GetEnvVar(\"AVBIN\")\nexePath = BinLoc + \"\\import71\"\nif (File.Exists((e
xePath+\".exe\").AsFileName).Not)then\n  MsgBox.Error(exePath+\" does not exist\",\"\")\n  return nil\nend\n\n\n'Get the import files\nInFileList = FileDialog.ReturnFiles({\"*.e00\"}, {\"Arc/Info Export Files (*.e00)\"}, \"Select File(s) To Import\", 0)\nif (InFileList.Count <= 0) then\n   return nil\nend\n\n'Get the output directory for the coverage(s), make sure it exists\ntheZone = FileDialog.put(\"_\".AsFileName,\"*.*\", \"Select the Output Directory\")\n'MsgBox.Info( \"test\",theZone, \"The Title\" )\nif (theZone = NIL)then\n  return nil\ne
nd\n\ntheZone = theZone.ReturnDir\nif (File.Exists(theZone).Not)then\n  MsgBox.Error(theZone+\" Directory does not exist\",\"\")\n  return nil\nend\n\n'Process each selected e00 file\nProcessing = TRUE\ntheCount = 0\nav.ShowStopButton\n\nwhile(Processing)\n  for each InFile in InFileList\n    theCount = theCount + 1\n    progress = (theCount / InFileList.Count) * 100\n    av.ShowMsg(\"Processing \"+InFileList.Count.AsString+\" e00 files.  This could take a while . . .\")\n    doMore = av.SetStatus( progress )\n    if (not doMore) the
n\n      break\n    end\n\n    InFileBase = InFile.GetBaseName\n    InFileBase = InFileBase.Substitute(\".e00\", \"\")\n    InFileBase = InFileBase.Substitute(\".\", \"_\")\n    OutCov = theZone.AsString+\"\\\"+InFileBase\n    system.ExecuteSynchronous(exePath++InFile.AsString++OutCov.AsString+\" /T\")\n  end\n  Processing = FALSE\nend\nav.ClearMsg\n\n'if this is run from a view, ask the user if they want to add the coverage(s)\n'they'll still have to navigate for them, but the dialog will open to their output directory\ntheDoc = av.Ge
tActiveDoc\nif(theDoc.Is(View))then\n  if(MsgBox.MiniYesNo(\"Add Arc/INFO coverage to View?\",TRUE))then\n    av.Run(\"View.Add\",{})\n  end\nend\n"
)

(Script.1254
	Name:	"View.Label.Menu.Branch.C"
	SourceCode:	"\nthetest = 1\ntheMenu = { \"Help\",\"Saves Graphic Text\", \"Loads Graphic Text\",\"Saves Selected Text as Shape File\",\"Export Text as Point File\",\"Import Text From Point File\" ,\"Move Labels\"}\ntheMenuChoice = msgbox.ListAsString( theMenu, \"Chose a Menu Item?\", \"Label Tools\")\nif (theMenuChoice = nil) then exit end\n\n'Help\nif (theMenuChoice = \"Help\") then\nav.run( \"View.LabelTools.Help.C\", thetest )\nend\n\n\n'Saves Graphic Text\nif (theMenuChoice = \"Saves Graphic Text\") then\nav.run( \"View.SaveGraphicText\", thetest )\nend\n\n 
   \n'Loads Graphic Text\nif (theMenuChoice = \"Loads Graphic Text\") then\nav.run( \"View.LoadGraphicText\", thetest )\nend\n    \n'Saves Selected Text as Shape File\nif (theMenuChoice = \"Saves Selected Text as Shape File\") then\nav.run( \"View.Labels.AsShapefile.C\", thetest )\nend\n        \n         \n'Export Text as Point File\nif (theMenuChoice = \"Export Text as Point File\") then\nav.run( \"LabelTheme.RunExport\", thetest )\nend\n           \n'Import Text From Point File\nif (theMenuChoice = \"Import Text From Point File\") then
\nav.run( \"LabelTheme.RunImport\", thetest )\nend\n\n'Move Labels\nif (theMenuChoice = \"Move Labels\") then\nav.run( \"zLabMove.MoverRun\", thetest )\nend\n\n'\nif (theMenuChoice = \"\") then\nav.run( \"\", thetest )\nend\n"
)

(Script.1255
	Name:	"View.Labels.AsShapefile.C"
	SourceCode:	"'===========================================================\n \n'  Check for the shift key, if the shift key is down, pop up instructions for using this script\n\nif (System.IsShiftKeyDown) then\n  message =\n  \" \"+nl+\n  \"Script Author (William Huber Quantitative Decisions,whuber@quantdec.com)\"+nl+\n  \" \"+nl+\n  \" Brief Instructions:\"+nl+nl+\n  \" Converts selected Text to a shapefile \"+nl+\n  \" Adds the new Shapefile to the active view \"+nl+\n  \" from which the Text originated\"+nl+\n  \" Converts all selected text in a
 view into a polyline shapefile\"+nl+\n  \" which when labeled effectively reproduces the selected text\"+nl+\n  \" The polylines exactly underline the original labels\"+nl+\n  \" Make the polylines invisible with the legend editor to see just the labels\"+nl+\n  \" This provides a mechanism to capture labels etc.within a shapefile format\"+nl+\n  \" \"+nl+\n  \" \"+nl+\n  \" \"+nl+\n  \" \"+nl+\n  \" \"+nl\n'Title here         \n  msgbox.report(message,\"Saves Selected Text as Shape File\")\n  \n  Clipboard.The.Empty\n  Clipboard.The.Add(me
ssage)\n  Clipboard.The.Update\n    \n  MsgBox.Info(\"These instructions were copied to the system clipboard.  To print them, open a text editor\"++\n  \"(like notepad), paste in the contents of the clipboard, and print them from the text editor.\",\"PRINT INSTRUCTIONS\")\n\n  return nil\nend\n'===========================================================\n'\n' Labels.AsShapefile\n' \n' Converts all selected text in a view into a polyline shapefile\n' which, when labeled, effectively reproduces the selected text.\n' (The polylin
es exactly underline the original labels.  Make the \n' polylines invisible with the legend editor to see just the labels.)\n' This provides a mechanism to capture labels, etc., within a \n' shapefile format.\n'\n' Running this script successfully will create a new shapefile\n' (location specified by the user) and a theme visualizing that\n' shapefile will appear at the top of the view's TOC.\n'\n' Developed in ArcView 3.1 on 17 March 1999 by William Huber\n' at Quantitative Decisions, Merion, PA.  whuber@quantdec.co
m\n'\n' Updated 10 December 1999 to handle projected views.  Works in AV 3.2.\n' Updated 13 January 2000 to field user errors better.\n' Updated 20 January 2000 (thanks to Donna Hawley) to capture text within graphic\n' groups.  Output attributes now include a unique text identifier (reflecting the\n' group hierarchy) and a group identifier.\n'\n' Comments:\n' (1) This script has not been tested with labels of more than 254 characters.\n' (2) It appears to work fairly quickly.\n' (3) We can do nothing special with spl
ined text because Avenue will not provide the\n'     original polyline, nor any decent approximation to it.  Complain to ESRI!\n' (4) Shadowed text is really a pair of slightly offset text values.  In other words,\n'     it's created using a trick.  There's no apparent reliable way to distinguish\n'     this from other constructs, so we don't bother: you get both copies of the text.\n'\n' Requires script \"View.ReturnSelectedGraphicText\"\n'============================================================================
=========='\nstrTitle = \"Labels into Shapefile\"\ntheView = av.GetActiveDoc\nif (theView.Is(View).Not) then	' Inserted 13 Jan 2000\n  MsgBox.Info(\"This script needs to be run from a view.\" ++\n    \"Open your view, then go directly to this script and re-run it.\",\n    strTitle)\n  return NIL\nend \nthePrj = theView.GetProjection  ' Updated 10 Dec 1999\n'\n' Find all graphicText objects.\n' (Converted to a subroutine 20 January 2000.)\n'\nsFindData = \"View.ReturnSelectedGraphicText.C\"\nFindData = av.FindScript(sFindData)\nif 
(FindData = NIL) then\n  MsgBox.Error(\"Cannot find auxiliary script\" ++ sFindData + \n    \"; perhaps the extension file was corrupted?\", strTitle)\n  return NIL\nend\n\nlstData = FindData.Doit(theView)\nif (lstData.Count < 1) then \n  MsgBox.Info(\"No labels were found--try selecting the ones you want to save.\", \n    strTitle) ' 13 January 2000\n  return NIL\nend\n'\n' Find the longest string so we can determine minimum field widths.\n'\nnMinLen = 0\nnMinIDLen = 0 ' 20 Jan 2000\nfor each objData in lstData\n  theGText = objD
ata.Get(0)\n  sPartId = objData.Get(1)\n  if (theGText.GetText.Count > nMinLen) then\n    nMinLen = theGText.GetText.Count\n  end\n  if (sPartId.Count > nMinIdLen) then  ' 20 Jan 2000\n    nMinIDLen = sPartId.Count\n  end\nend\n'\n' Create a shapefile from the data.\n'\ntheProject = av.GetProject\ntheWorkDir = theProject.GetWorkDir\n'\n' Specify the output shapefile.\n'\nstrDefault  = theWorkDir.MakeTmp(\"theme\",\"shp\")\nFNshpFile  = FileDialog.Put( strDefault,\"*.shp\", strTitle + \"--Output Shapefile\")\nif (FNshpFile = Nil) then
 return NIL end\nFNshpFile.SetExtension(\"shp\")\n'\n' Create an appropriate FTab.\n'\nFTBOut = FTab.MakeNew( FNshpFile, Polyline )\nif (FTBOut = NIL) then\n  MsgBox.Error(\"Unable to create a shape file\", strTitle)\n  return NIL\nend\n'\n' Create fields.\n'(Slightly modified 13 Jan 2000.)\n'\nfldText = Field.Make(\"Text\", #FIELD_CHAR, ((nMinLen+8) min 254), 0)\nfldId = Field.Make(\"Graphic Id\", #FIELD_CHAR, nMinIdLen, 0)  ' 20 Jan 2000\nfldGId = Field.Make(\"Group Id\", #FIELD_CHAR, 8, 0)           ' 20 Jan 2000\n\nFTBOut.AddField
s({fldText, fldId, fldGId})\nfldShape = FTBOut.FindField(\"Shape\")\n'\n' Populate the FTab.\n'\nfor each objData in lstData\n  theGText = objData.Get(0)\n  sId = objData.Get(1)     ' Text id\n  sGId = objData.Get(2)    ' Group id\n  '\n  ' Create an underline:\n  ' First find (a) the origin of the text's extent and\n  ' (b) the sides of its extent.\n  '\n  ptO = theGText.GetOrigin\n  a = theGText.GetAngle\n  theGText.SetAngle(0)\n  ptE = theGText.GetExtent\n  theGText.SetAngle(a)\n  '\n  ' Now find the origin of the underline.\n
  ' There are four cases, depending on the quadrant of the text\n  ' angle, because the origin may be at any one of the four corners\n  ' of the text's bounding box.\n  '\n  a = a mod 360\n  if (a < 0) then ' (This happens when a originally is negative)\n    a = 360 + a\n  end\n  Q = (a/90).Floor + 1 ' Quadrant\n  a = a.AsRadians\n  if (Q = 4) then     ' Fourth quadrant\n    ptO = ptO - (0 @ (a.Sin * ptE.GetX))\n  elseif (Q = 3) then 'Third quadrant\n    ptO = ptO - ((ptE.GetX * a.Cos) @ (ptE.GetX * a.Sin + (ptE.GetY * 
a.Cos)))\n  elseif (Q = 2) then ' Second quadrant\n    ptO = ptO - ((ptE.GetX * a.Cos - (ptE.GetY * a.Sin)) @ (ptE.GetY * a.Cos))\n  else\n    ptO = (a.Sin * ptE.GetY)@0 + ptO\n  end\n  '\n  ' Finally, compute the terminus of the underline.\n  '\n  c = a.Cos * ptE.GetX\n  s = a.Sin * ptE.GetX\n  ptZ = c@s + ptO\n  '\n  ' Create the underline\n  '\n  plyLine = Polyline.Make({{ptO, ptZ}})\n  if (thePrj.IsNull.Not) then\n    plyLine = plyLine.ReturnUnprojected(thePrj)  ' Updated 10 Dec 1999\n  end\n  '\n  ' Create the record.\n  '
\n  r = FTBOut.AddRecord\n  FTBOut.SetValue( fldShape, r, plyLine )\n  FTBOut.SetValue( fldText, r, theGText.GetText )\n  FTBOut.SetValue( fldId, r, sId )    ' 20 Jan 2000\n  FTBOut.SetValue( fldGId, r, sGId )  ' 20 Jan 2000\nend\n\nFTBOut.Flush\nFTBOut.Refresh\n'\n' Create a theme.\n'\nFThmOut = FTheme.Make(FTBOut)\nFThmOut.SetLabelField(fldText)\nFThmOut.SetName(\"Labels\")\ntheView.AddTheme(FThmOut)\n' end of script\n\n\n"
)

(Script.1256
	Name:	"View.LabelTools.Help.C"
	SourceCode:	"'===========================================================\n \n  message =\n  \" \"+nl+\n  \"Brief Instructions:\"+nl+\n  \"Menu For Label Tools\"+nl+\n  \" \"+nl+\n  \"Menu Choices \"+nl+\n  \"\"+nl+\n  \"Help -- This Window \"+nl+\n  \"\"+nl+\n  \"Loads Saved Graphic Text into the active theme \"+nl+\n  \"Script Author (Unknown) \"+nl+\n  \" \"+nl+\n  \"This script Saves all Graphic Text in active theme to a Odb file\"+nl+\n  \"Script Author (Unknown) \"+nl+\n  \" \"+nl+\n  \"Creates a bivariate legend \"+nl+\n  \"Script Author (ESRI) \"+nl+\n  \" \"+nl+\n
  \"Saves Selected Text as Shape File \"+nl+\n  \"Script Author (William Huber Quantitative Decisions,whuber@quantdec.com )  \"+nl+\n  \" \"+nl+\n  \"If you hold down Shift key While selecting a Menu Item you will \"+nl+\n  \"get the Help Screen for that Item \"+nl\n  'Title here         \nmsgbox.report(message,\"Menu Choices\")\n  \n  Clipboard.The.Empty\n  Clipboard.The.Add(message)\n  Clipboard.The.Update\n    \n  MsgBox.Info(\"These instructions were copied to the system clipboard.  To print them, open a text editor\"++\n  \"(like
 notepad), paste in the contents of the clipboard, and print them from the text editor.\",\"PRINT INSTRUCTIONS\")\n\n"
)

(Script.1257
	Name:	"View.Legend.Add.Colors.To.Palette.C"
	SourceCode:	"'===========================================================\n \n'  Check for the shift key, if the shift key is down, pop up instructions for using this script\n\nif (System.IsShiftKeyDown) then\n  message =\n  \" \"+nl+\n  \" Script Author (William A. Huber @ Quantitative Decisions Merion PA. / whuber@QuantDec.com / http://www.quantdec.com)\"+nl+\n  \" \"+nl+\n  \" Brief Instructions:\"+nl+nl+\n  \" Adds the colors of the active theme's legend\"+nl+\n  \" to the current color palette\"+nl+\n  \" You will need to save the Palette 
to keep the Colors\"+nl+\n  \" \"+nl+\n  \" \"+nl+\n  \" \"+nl+\n  \" \"+nl+\n  \"                                            \"+nl+\n  \"                                            \"+nl+\n  \"                                            \"+nl+\n  \"                                            \"+nl+\n  \"                                            \"+nl+\n  \"                                             \"+nl\n'Title here         \n  msgbox.report(message,\"Legend.AddColorsToPalette\")\n  \n  Clipboard.The.Empty\n  Clipboard.The.Add(message)\n  
Clipboard.The.Update\n    \n  MsgBox.Info(\"These instructions were copied to the system clipboard.  To print them, open a text editor\"++\n  \"(like notepad), paste in the contents of the clipboard, and print them from the text editor.\",\"PRINT INSTRUCTIONS\")\n\n  return nil\nend\n'===========================================================\n\n\n\n' Name:  Legend.AddColorsToPalette\n'\n' Title:  Adds the colors of the active theme's legend to the current color palette\n'\n' Topics:  Legends,  Symbols, Palettes\n'\n' Requires: 
 An active theme\n'\n\nssa = av.GetSymbolWin\nif (ssa.IsOpen.Not) then\n  ssa.Open\nend\nssa.SetPanel(#SYMBOLWIN_PANEL_COLOR)\np = ssa.GetPalette.GetList(#PALETTE_LIST_COLOR)\n\nv = av.GetActiveDoc \nt = v.GetActiveThemes.Get(0)\nl = t.GetLegend\n\nif((t.GetClass.GetClassName = \"FTheme\") or\n   (t.GetClass.GetClassName = \"GTheme\") or\n   (t.GetClass.GetClassName = \"DBTheme\") or\n   (t.GetClass.GetClassName = \"TTTheme\")) then\n   \n  s = l.GetSymbols\n  for each x in s\n    p.Add(x.GetColor.Clone)\n  end\nelseif (t.GetClass.GetCla
ssName = \"ITheme\") then\n  if (l.GetClass.GetClassName = \"SingleBandLegend\") then\n    s = l.GetColorMap\n  end\n  for each x in 1..(s.Count)\n    p.Add(s.Get(x).Clone)\n  end\nend\n\n\n\n\nssa.RefreshPalette(#PALETTE_LIST_COLOR)\n\n"
)

(Script.1258
	Name:	"View.Legend.Desaturate.C"
	SourceCode:	"'===========================================================\n \n'  Check for the shift key, if the shift key is down, pop up instructions for using this script\n\nif (System.IsShiftKeyDown) then\n  message =\n  \" \"+nl+\n  \" Script Author (William A. Huber @ Quantitative Decisions Merion PA. / whuber@QuantDec.com / http://www.quantdec.com)\"+nl+\n  \" \"+nl+\n  \" Brief Instructions:\"+nl+nl+\n  \" This script Loops over all active themes\"+nl+\n  \" Within a theme loops over all symbols in its legend\"+nl+\n  \" Averages the sy
mbol's color with white to desaturate it\"+nl+\n  \" This script is unusually generous in how it interprets \"+nl+\n  \" user input.  Specify percentages or decimals.  Values\"+nl+\n  \" larger than 1.00 are automatically interpreted as\"+nl+\n  \" percentages.  Diagnostic messages are emitted\"+nl+\n  \"                                            \"+nl+\n  \"                                            \"+nl+\n  \"                                            \"+nl+\n  \"                                            \"+nl+\n  \"         
                                   \"+nl+\n  \"                                             \"+nl\n'Title here         \n  msgbox.report(message,\"Desaturates all colors in a legend\")\n  \n  Clipboard.The.Empty\n  Clipboard.The.Add(message)\n  Clipboard.The.Update\n    \n  MsgBox.Info(\"These instructions were copied to the system clipboard.  To print them, open a text editor\"++\n  \"(like notepad), paste in the contents of the clipboard, and print them from the text editor.\",\"PRINT INSTRUCTIONS\")\n\n  return nil\nend\n'======
=====================================================\n\n' Name:      Legend.Desaturate\n'\n' Headline:  Desaturates all colors in a legend.\n'\n' Description:Loops over all active themes.\n'             Within a theme, loops over all symbols in its legend.\n'             Averages the symbol's color with white to \"desaturate\" it.\n'\n' Topics:    Legend, saturation, RGB\n'\n' History:   AV 3.0a, 23 Aug 1998.\n'	           AV 3.2 25 Nov 1999--Transparent color fix suggested by Robert Chasan\n'            AV 3.2 25 Nov 199
9--Option to use a non-white mixing color.\n'            AV 3.2  2 Mar 2000--Change BG and OL colors, too.  Avoid\n'                                image themes.\n'\n' Author:    William A. Huber @ Quantitative Decisions, Merion, PA.\n'            whuber@QuantDec.com\n'\n'		          http://www.quantdec.com\n'\n' Comments:	 Tested successfully with AV 3.1, AV 3.2\n'            Does not affect charts--their legends are different.\n'\n'	This script is unusually generous in how it interprets \n' user input.  Specify percen
tages or decimals.  Values \n' larger than 1.00 are automatically interpreted as \n' percentages.  Diagnostic messages are emitted.\n'=========================================================================='\ntheTitle = \"Legend.Desaturate\"\n'--------------------------------------------------------------------------'\n'\n' Find at least one active theme.\n'\ntheView = av.GetActiveDoc\nif (theView.Is(View).not) then\n  MsgBox.Info(\"Please run this script from a view.\", theTitle)\n  exit\nend\nlstThemes = {}\nfor each t in
 theView.GetActiveThemes\n  if (t.GetLegend.Is(Legend)) then\n    lstThemes.Add(t)\n  end\nend\nif (lstThemes.Count <= 0) then \n  MsgBox.Info(\"This script works only on active feature themes.\" ++\n    \"Activate a theme...\", theTitle)\n  exit\nend\n'--------------------------------------------------------------------------'\n'\n' Inquire about the type and amount of saturation.\n'\nlstWhite = {255,255,255}  ' The color to mix with each symbol's color.\nstrWhite = \"all white\"\n'\n' To use the current palette color instead of
 white, enable the following \n' lines by changing \"false\" to \"true\":\n'\nuseWhite = MsgBox.YesNoCancel(\"Desaturate with white (yes)\" ++\n           \"or use the palette color (no)?\", theTitle, true)\nif (useWhite = NIL) then return NIL end\n\nif (useWhite.Not) then\n  theSym = av.GetSymbolWin.ReturnCurrentSymbol(#SYMBOL_FILL)\n  lstWhite = theSym.GetColor.GetRGBList\n  strWhite = \"\"\n  for each c in lstWhite\n    strWhite = strWhite ++ c.SetFormatPrecision(0).AsString\n  end\n  strWhite = \"[\" + strWhite.Trim + \"]\"\nend\n'\n
' NB: by specifying lstWhite yourself you can create even more mixings; for\n' example, negative values of color in lstWhite will cause color components\n' to be subtracted from each legend color rather than added.  Try removing\n' white components, for example:\n'\n'lstWhite = {-255, -255, -255}\n'strWhite = \"anti-white\"\n'(End of optional lines.)\n'\n' Allow Gentle User to specify how much desaturation.\n' The sole purpose of the next 20 lines or so is to establish the value of x,\n' the amount of \"white\" to mix wit
h each legend color.\n'\ns = \"50%\"  ' Default\nt = MsgBox.Input(\"How much desaturation (0%=none to 100%=\" ++ strWhite + \")?\", \n                 theTitle, s)\ns = t\nif (s = NIL) then return NIL end\n\nif (s.Contains(\"%\")) then ' Percentage explicitly specified\n  s = s.Substitute(\"%\", \"\")\n  xMult = 0.01\nelse\n  xMult = 1.00\nend\n\nif (s.IsNumber.Not) then\n  system.beep\n  MsgBox.Error(s.Quote + \" is not a recognizable number.\", theTitle)\n  return NIL\nend\n\nif ((xMult = 1.00) and (s.AsNumber > 1)) then\n  xMult = 0.01 ' A
ssume a percentage was meant\nend\n'\n' Check that the number is between 0% and 100%.\n'\nx = s.AsNumber * xMult\nx = (((10000 * x) + 0.5).Floor)/10000  ' Round to four places\nif ((x < 0) or (x > 1)) then\n  system.beep\n  msgBox.Error(t.Quote + \" was interpreted as \" + \n               (100*x).SetFormatPrecision(2).AsString + \"%.\" + NL +\n               \"The value must be between 0% and 100%\", theTitle)\n  exit\nend\n'\n' Prepare for linear interpolation of colors.\n'\nfor each i in 0..2\n  lstWhite.Set(i, x * lstWhite.Get
(i))\nend\nxKeep = 1 - x\n'\n' Do it for each theme in turn.\n'\ntheStack = Stack.Make  ' Needed for composite markers\nfor each theTheme in lstThemes\n  '\n  ' Stack the symbols.\n  '\n  lstSymbols = theTheme.GetLegend.GetSymbols\n  for each theSymbol in theTheme.GetLegend.GetSymbols\n    theStack.Push(theSymbol)\n  end\n  '\n  ' Process the stack.\n  '\n  while(theStack.IsEmpty.Not)\n    theSymbol = theStack.Pop\n    '\n    ' Put the symbol components back on the stack whenever it \n    ' is a composite symbol.\n    '\n    if (t
heSymbol.Is(CompositeFill) or \n        theSymbol.Is(CompositeMarker) or \n        theSymbol.Is(CompositePen)) then\n      for each S in theSymbol.GetSymbols\n        theStack.Push(S)\n      end\n      continue\n    end\n    '\n    ' Select the colors to change according to the requests \n    ' that this symbol may recognize.\n    '\n    lstColors = {theSymbol.GetColor}\n    if (theSymbol.Is(RasterFill) or theSymbol.Is(VectorFill) or\n        theSymbol.Is(Pen) or theSymbol.Is(Marker) or \n        theSymbol.Is(ChartSymbol)
) then\n      lstColors.Add(theSymbol.GetBGColor)\n    end\n    if (theSymbol.is(Fill) or theSymbol.Is(ChartSymbol)) then\n      lstColors.Add(theSymbol.GetOLColor)\n    end\n    '\n    ' Desaturate each relevant color.\n    '\n    for each theColor in lstColors\n      '\n      ' Double-check that there is a color.  Do not modify\n      ' transparent colors.\n      '\n      if (theColor <> NIL and theColor.isTransparent.not) then ' (Thanks to R.C.)\n        lstRGB = theColor.GetRGBList\n        for each i in 0..(lstRGB.Cou
nt-1)\n          lstRGB.Set(i, lstRGB.Get(i)*xKeep + lstWhite.Get(i) max 0 min 255)\n        end\n        theColor.SetRGBList(lstRGB)\n      end\n    end\n  end\n  theTheme.UpdateLegend\nend\n' end of script\n\n\n"
)

(Script.1259
	Name:	"View.Legend.Export.C"
	SourceCode:	"if ((System.IsControlKeyDown = False) and (System.IsShiftKeyDown = True)) then\n  message =\n  \" Script Author ( Charles Herbold)\"+nl+\n  \" \"+nl+\n  \"Exports Legends to their Home Directorys \"+nl+\n  \"or to a Folder of your Choice \"+nl+\n  \" \"+nl+\n  \"Click -- works on Active Themes Only \"+nl+\n  \" \"+nl+\n  \"Control & Click works on all Themes in Current View \"+nl+\n  \" \"+nl+\n  \"Control & Shift & Click works on All Views/Themes \"+nl+\n  \" \"+nl+\n  \"Script will Prompt you for Legend order  \"+nl+\n  \"Main / 1st / 2nd / 3r
d \"+nl+\n  \"Main is the one View.add looks for \"+nl+\n  \"1-2-3 are there for alternate legends you might want \"+nl+\n  \"to save. All of them can be loaded with \"+nl+\n  \"Import Legend Tool or the Normal way using \"+nl+\n  \"the legend propertys dialog \"+nl+\n  \" \"+nl+\n  \" \"+nl+\n  \"Script will Prompt you if the Legend file Exists  \"+nl+\n  \"Saves the Legends with the same name as Themes \"+nl+\n  \"Mytheme.shp will have a legend named Mytheme.avl \"+nl+\n  \"or Mytheme1.avl / Mytheme2.avl / Mytheme3.avl  \"+nl+\n  \" \"+nl+\n 
 \" \"+nl+\n  \"This works with the Altered system script View.Add \"+nl+\n  \"Writen by Pedro J. Garcia\"+nl+\n  \"that is loaded when this extension loads  \"+nl+\n  \"As you add Themes to a View the Script looks for \"+nl+\n  \"a Legend file with the same name and Loads it if Found \"+nl+\n  \"If Not found then you get the usual symbols for your themes \"+nl+\n  \" \"+nl+\n  \" \"+nl\n'Title here         \n  msgbox.report(message,\"Export Legends\")\n  \n  Clipboard.The.Empty\n  Clipboard.The.Add(message)\n  Clipboard.The.Update\n    \n  M
sgBox.Info(\"These instructions were copied to the system clipboard.  To print them, open a text editor\"++\n  \"(like notepad), paste in the contents of the clipboard, and print them from the text editor.\",\"PRINT INSTRUCTIONS\")\n\n  return nil\nend\n\n\n\n\n\n\n\n\nif ((System.IsControlKeyDown = True) and (System.IsShiftKeyDown = True)) then 'CCCCCCCCCCCCCCC\n    \n    inpstr = \"\"\n    mList={\"Main\", \"1st\",\"2nd\",\"3rd\"}\n    YChoice = MsgBox.ChoiceAsString( mList, \"Legend Order\", \"Export Legends\") \n    if (YChoice = \"1st\") the
n inpstr = \"1\" end\n    if (YChoice = \"2nd\") then inpstr = \"2\" end\n    if (YChoice = \"3rd\") then inpstr = \"3\" end\n    if (YChoice = \"Main\") then inpstr = \"\" end\n    if (YChoice = nil) then inpstr = \"\" end\n\n    \n    \n    \n    \n    \n    \n    theViewsDocsList = {}      \n    for each theDoc in av.GetProject.GetDocs\n    if ( theDoc.Is(View)) then theViewsDocsList.Add(theDoc) end  \n    end\n\n   \n          \n    myList={\"Export to Themes Home Directory\", \"Choose a Folder to Export to\"}\n    YourChoice = MsgBox.ChoiceA
sString( myList, \"Choose Export Location\", \"Export Legends\")  \n    if (YourChoice = nil) then return nil end\n    if (YourChoice = \"Choose a Folder to Export to\") then\n      '  User designates where the output will be stored.\n      defFN = FileName.Merge(FileName.GetCWD.AsString, \"~\")\n      aveDir = FileDialog.Put(defFN, \"*.ave\", \"Choose a Directory to Export Legends to\")\n      if (aveDir = NIL) then return nil end\n      thePath = aveDir.ReturnDir\n      if (thePath = nil) then exit end \n      thePath = thePa
th.Asstring\n      thePath2 = thePath\n      thePP = True\n    \n    else\n    ThePP = False\n    end\n          \n    for each theDoc in theViewsDocsList ' loop thru each view        \n          theOP = av.GetProject.FindDoc (theDoc.AsString)\n          theOPWin = theOP.GetWin\n          theOPWin.Activate\n\n          \n          theView = av.GetActiveDoc\n          theThemesList = {}\n          thetemplist = {}\n\n          \n          for each t in theView.GetThemes\n            \n            \n            \n            theSRC
name = t.GetSrcName  \n            thesource = theSRCname.GetDataSource\n            thetemplist = thesource.AsTokens(\"\\\")\n            for each Tkn in thetemplist\n              thethemename = Tkn\n            end\n            thepath = \"\"\n            ch = 1\n            theB = thetemplist.count\n            for each Tkn in thetemplist\n             if (ch = theB) then \n             break\n             end\n             if (ch = 1) then\n               thePath = Tkn\n              ch = 2\n             else\n             
 thePath = thePath+\"\\\"+Tkn\n             ch = ch + 1\n             end\n            end\n            \n            theFileName = (thethemename.Left(thethemename.Count-4)+inpstr+\".avl\")\n              if ( thePP = False ) then\n                  theoutname = thePath+\"\\\"+theFileName\n                  theoutfile = theoutname.AsFileName\n                  theL = t.GetLegend \n                  if (File.Exists(theoutfile)) then\n                    myA = MsgBox.YesNo( \"File Exist Continue?\", theoutname, TRUE )\n           
         if (myA = True) then \n                      done = theL.Save (theoutfile)\n                    end      \n                  else\n                    done = theL.Save (theoutfile)\n                  end     \n              else\n                  theoutname = thePath2+\"\\\"+theFileName\n                  theoutfile = theoutname.AsFileName\n                  theL = t.GetLegend \n                  if (File.Exists(theoutfile)) then\n                    myA = MsgBox.YesNo( \"File Exist Continue?\", theoutname, TRUE 
)\n                    if (myA = True) then \n                      done = theL.Save (theoutfile)\n                    end      \n                  else\n                    done = theL.Save (theoutfile)\n                  end     \n              end\n          \n          end ' of for each t in theView.GetThemes\n\n\n\n    end 'for each theDoc in theViewsDocsList ' loop thru each view\n\nreturn nil\nend ' CCCCCCCCCCC\n    \n    \nif (System.IsControlKeyDown) then '***************\n\n      inpstr = \"\"\n      mList={\"Main\", \"1st\"
,\"2nd\",\"3rd\"}\n      YChoice = MsgBox.ChoiceAsString( mList, \"Legend Order\", \"Export Legends\") \n      if (YChoice = \"1st\") then inpstr = \"1\" end\n      if (YChoice = \"2nd\") then inpstr = \"2\" end\n      if (YChoice = \"3rd\") then inpstr = \"3\" end\n      if (YChoice = \"Main\") then inpstr = \"\" end\n      if (YChoice = nil) then inpstr = \"\" end\n\n      theView = av.GetActiveDoc\n      theThemesList = {}\n      thetemplist = {}\n      \n      \n      myList={\"Export to Themes Home Directory\", \"Choose a Folder to Export to\"}
\n      YourChoice = MsgBox.ChoiceAsString( myList, \"Choose Export Location\", \"Export All Legends\")  \n      if (YourChoice = nil) then return nil end\n      if (YourChoice = \"Choose a Folder to Export to\") then\n        '  User designates where the output will be stored.\n        defFN = FileName.Merge(FileName.GetCWD.AsString, \"~\")\n        aveDir = FileDialog.Put(defFN, \"*.ave\", \"Choose a Directory to Export Legends to\")\n        if (aveDir = NIL) then return nil end\n        thePath = aveDir.ReturnDir\n        i
f (thePath = nil) then exit end \n        thePath = thePath.Asstring\n        thePath2 = thePath\n        thePP = True\n      \n      else\n      ThePP = False\n      end\n      \n        \n      for each t in theView.GetThemes\n        \n        \n        \n        theSRCname = t.GetSrcName  \n        thesource = theSRCname.GetDataSource\n        thetemplist = thesource.AsTokens(\"\\\")\n        for each Tkn in thetemplist\n          thethemename = Tkn\n        end\n        thepath = \"\"\n        ch = 1\n        theB = thetemplist.
count\n        for each Tkn in thetemplist\n         if (ch = theB) then \n         break\n         end\n         if (ch = 1) then\n           thePath = Tkn\n          ch = 2\n         else\n          thePath = thePath+\"\\\"+Tkn\n         ch = ch + 1\n         end\n        end\n        \n        theFileName = (thethemename.Left(thethemename.Count-4)+inpstr+\".avl\")\n          if ( thePP = False ) then\n              theoutname = thePath+\"\\\"+theFileName\n              theoutfile = theoutname.AsFileName\n              theL = t.Ge
tLegend \n              if (File.Exists(theoutfile)) then\n                myA = MsgBox.YesNo( \"File Exist Continue?\", theoutname, TRUE )\n                if (myA = True) then \n                  done = theL.Save (theoutfile)\n                end      \n              else\n                done = theL.Save (theoutfile)\n              end     \n          else\n              theoutname = thePath2+\"\\\"+theFileName\n              theoutfile = theoutname.AsFileName\n              theL = t.GetLegend \n              if (File.Exi
sts(theoutfile)) then\n                myA = MsgBox.YesNo( \"File Exist Continue?\", theoutname, TRUE )\n                if (myA = True) then \n                  done = theL.Save (theoutfile)\n                end      \n              else\n                done = theL.Save (theoutfile)\n              end     \n          end\n      \n      end ' of for each t in theView.GetThemes\n\n\n\n\nelse ' *****************************************\n\n      inpstr = \"\"\n      mList={\"Main\", \"1st\",\"2nd\",\"3rd\"}\n      YChoice = MsgBox.ChoiceAs
String( mList, \"Legend Order\", \"Export Legends\") \n      if (YChoice = \"1st\") then inpstr = \"1\" end\n      if (YChoice = \"2nd\") then inpstr = \"2\" end\n      if (YChoice = \"3rd\") then inpstr = \"3\" end\n      if (YChoice = \"Main\") then inpstr = \"\" end\n      if (YChoice = nil) then inpstr = \"\" end\n\n      theView = av.GetActiveDoc\n      theThemesList = {}\n      thetemplist = {}\n      \n      \n      myList={\"Export to Themes Home Directory\", \"Choose a Folder to Export to\"}\n      YourChoice = MsgBox.ChoiceAsString( my
List, \"Choose Export Location\", \"Export All Legends\")  \n      if (YourChoice = nil) then return nil end\n      if (YourChoice = \"Choose a Folder to Export to\") then\n        '  User designates where the output will be stored.\n        defFN = FileName.Merge(FileName.GetCWD.AsString, \"~\")\n        aveDir = FileDialog.Put(defFN, \"*.ave\", \"Choose a Directory to Export Legends to\")\n        if (aveDir = NIL) then return nil end\n        thePath = aveDir.ReturnDir\n        if (thePath = nil) then exit end \n        theP
ath = thePath.Asstring\n        thePath2 = thePath\n        thePP = True\n      \n      else\n      ThePP = False\n      end\n      \n        \n      for each t in theView.GetActiveThemes\n        \n        \n        \n        theSRCname = t.GetSrcName  \n        thesource = theSRCname.GetDataSource\n        thetemplist = thesource.AsTokens(\"\\\")\n        for each Tkn in thetemplist\n          thethemename = Tkn\n        end\n        thepath = \"\"\n        ch = 1\n        theB = thetemplist.count\n        for each Tkn in thetempli
st\n         if (ch = theB) then \n         break\n         end\n         if (ch = 1) then\n           thePath = Tkn\n          ch = 2\n         else\n          thePath = thePath+\"\\\"+Tkn\n         ch = ch + 1\n         end\n        end\n        \n        theFileName = (thethemename.Left(thethemename.Count-4)+inpstr+\".avl\")\n          if ( thePP = False ) then\n              theoutname = thePath+\"\\\"+theFileName\n              theoutfile = theoutname.AsFileName\n              theL = t.GetLegend \n              if (File.Exists(
theoutfile)) then\n                myA = MsgBox.YesNo( \"File Exist Continue?\", theoutname, TRUE )\n                if (myA = True) then \n                  done = theL.Save (theoutfile)\n                end      \n              else\n                done = theL.Save (theoutfile)\n              end     \n          else\n              theoutname = thePath2+\"\\\"+theFileName\n              theoutfile = theoutname.AsFileName\n              theL = t.GetLegend \n              if (File.Exists(theoutfile)) then\n                m
yA = MsgBox.YesNo( \"File Exist Continue?\", theoutname, TRUE )\n                if (myA = True) then \n                  done = theL.Save (theoutfile)\n                end      \n              else\n                done = theL.Save (theoutfile)\n              end     \n          end\n      \n      end ' of for each t in theView.GetThemes\n\n\n\nend '*****************\n\n\n\n\n\n\n\n\n\n\n"
)

(Script.1260
	Name:	"View.Legend.Help.C"
	SourceCode:	"\n\nmessage =\n\"Help for Legend Tools \"+nl+\n\" \"+nl+\n\"Exports Legends to their Home Directorys \"+nl+\n\"or to a Folder of your Choice \"+nl+\n\" \"+nl+\n\"Imports Legends from their Home Directorys \"+nl+\n\" \"+nl+\n\"Add Legend Colors To Palette / Gets the Colors and \"+nl+\n\"Adds them to the Palette  \"+nl+\n\" \"+nl+\n\"Add Field Text to Legend / Lets you add linked or \"+nl+\n\"joined Fields to a Legends Label Field  \"+nl+\n\" \"+nl+\n\"Legend Desaturate / Lightens up the Legend Colors\"+nl+\n\" \"+nl+\n\" \"+nl+\n\" \"+nl+\n\" \"+nl+\n\"You can get 
help for each tool by holding down \"+nl+\n\"the shift key as you select it from the tools menu \"+nl+\n\" \"+nl+\n\" \"+nl+\n\" \"+nl\n'Title here         \nmsgbox.report(message,\"Help for Legend Tools\")\n\nClipboard.The.Empty\nClipboard.The.Add(message)\nClipboard.The.Update\n  \nMsgBox.Info(\"These instructions were copied to the system clipboard.  To print them, open a text editor\"++\n\"(like notepad), paste in the contents of the clipboard, and print them from the text editor.\",\"PRINT INSTRUCTIONS\")\n\n"
)

(Script.1261
	Name:	"View.Legend.Icon.Fill.C"
	SourceCode:	"'===========================================================\n \n'  Check for the shift  key, if the shift key is down, pop up instructions for using this script\n\nif (System.IsShiftKeyDown) then\n  message =\n  \" Script Author (Heinz Reitner 113177.353@compuserve.com)\"+nl+\n  \" \"+nl+\n  \" Create Icon Fill\"+nl+\n  \" If You want to make RasterFills out of the ArcView Icon - Pictures\"+nl+\n  \" Run this Script now, then look at the Symbol Managers Fill Palette\"+nl+\n  \" You can reset the Symbol Manager at the Palette Ic
on \"+nl+\n  \" If You do not like what You see\"+nl+\n  \" \"+nl+\n  \" \"+nl+\n  \" \"+nl+\n  \" \"+nl+\n  \" \"+nl+\n  \" \"+nl+\n  \" \"+nl+\n  \" \"+nl\n'Title here         \n  msgbox.report(message,\"Create Icon Fill Palette\")\n  \n  Clipboard.The.Empty\n  Clipboard.The.Add(message)\n  Clipboard.The.Update\n    \n  MsgBox.Info(\"These instructions were copied to the system clipboard.  To print them, open a text editor\"++\n  \"(like notepad), paste in the contents of the clipboard, and print them from the text editor.\",\"PRINT INSTRUCTIONS\")\n
\n  return nil\nend\n\nmy_icon_list = IconMgr.GetIcons \nmy_symbollist = SymbolList.GetPredefined (#SYMLIST_TYPE_RANDOMFILLS ).Get(0)\nav.GetSymbolWin.Open\nav.GetSymbolWin.SetPanel(#SYMBOLWIN_PANEL_FILL)\np = av.GetSymbolWin.GetPalette\npl = p.GetList(#PALETTE_LIST_FILL)\n\nfor each i in my_icon_list\n\n    aRFill = RasterFill.Make\n    aRFill.SetStyle(#RASTERFILL_STYLE_STIPPLE)\n    aRFill.SetStipple(stipple.make(i ))\n        \n    \n    pl.Add(aRFill)\n    av.GetSymbolwin.RefreshPalette(#PALETTE_LIST_FILL)\n    \nend\n\n\n\n"
)

(Script.1262
	Name:	"View.Legend.Import.C"
	SourceCode:	"if ((System.IsControlKeyDown = False) and (System.IsShiftKeyDown = True)) then\n  message =\n  \" Script Author ( Charles Herbold)\"+nl+\n  \"Imports Legends from their Home Directorys \"+nl+\n  \"and Restores the to their themes\"+nl+\n  \" \"+nl+\n  \"Click -- works on Active Themes Only \"+nl+\n  \" \"+nl+\n  \"Control & Click works on all Themes in Current View \"+nl+\n  \" \"+nl+\n  \"Control & Shift & Click works on All Views/Themes \"+nl+\n  \" \"+nl+\n  \"Script will Prompt you for what legend you want\"+nl+\n  \"Main - 1st - 2nd - 3r
d \"+nl+\n  \"Main is the one that View.add Looks for\"+nl+\n  \"\"+nl+\n  \"\"+nl+\n  \"This works with the Altered system script View.Add \"+nl+\n  \"Writen by Pedro J. Garcia\"+nl+\n  \" \"+nl+\n  \"As you add Themes to a View the Script looks for \"+nl+\n  \"a Legend file with the same name and Loads it if Found \"+nl+\n  \"If Not found then you get the usual symbols for your themes \"+nl+\n  \" \"+nl+\n  \" \"+nl+\n  \" \"+nl+\n  \" \"+nl+\n  \" \"+nl+\n  \" \"+nl+\n  \" \"+nl+\n  \" \"+nl\n'Title here         \n  msgbox.report(message,\"Import Legends\")\n 
 \n  Clipboard.The.Empty\n  Clipboard.The.Add(message)\n  Clipboard.The.Update\n    \n  MsgBox.Info(\"These instructions were copied to the system clipboard.  To print them, open a text editor\"++\n  \"(like notepad), paste in the contents of the clipboard, and print them from the text editor.\",\"PRINT INSTRUCTIONS\")\n\n  return nil\nend\n\n\n\n\n\n\n\n\nif ((System.IsControlKeyDown = True) and (System.IsShiftKeyDown = True)) then 'CCCCCCCCCCCCCCC\n    \n    theViewsDocsList = {}      \n    for each theDoc in av.GetProject.GetDocs\n
    if ( theDoc.Is(View)) then theViewsDocsList.Add(theDoc) end  \n    end\n    mList={\"Main\", \"1st\",\"2nd\",\"3rd\"}\n    YChoice = MsgBox.ChoiceAsString( mList, \"Legend Order\", \"Restore Legends\") \n    if (YChoice = \"1st\") then inpstr = \"1\" end\n    if (YChoice = \"2nd\") then inpstr = \"2\" end\n    if (YChoice = \"3rd\") then inpstr = \"3\" end\n    if (YChoice = \"Main\") then inpstr = \"\" end\n    if (YChoice = nil) then inpstr = \"\" end\n          \n    \n    for each theDoc in theViewsDocsList ' loop thru each view        \n  
        theOP = av.GetProject.FindDoc (theDoc.AsString)\n          theOPWin = theOP.GetWin\n          theOPWin.Activate\n          theView = av.GetActiveDoc\n          thetemplist = {}\n          for each t in theView.GetThemes\n            theSRCname = t.GetSrcName  \n            thesource = theSRCname.GetDataSource\n            thetemplist = thesource.AsTokens(\"\\\")\n            for each Tkn in thetemplist\n              thethemename = Tkn\n            end\n            thepath = \"\"\n            ch = 1\n            theB 
= thetemplist.count\n            for each Tkn in thetemplist\n             if (ch = theB) then \n             break\n             end\n             if (ch = 1) then\n               thePath = Tkn\n              ch = 2\n             else\n              thePath = thePath+\"\\\"+Tkn\n             ch = ch + 1\n             end\n            end\n            \n            theFileName = (thethemename.Left(thethemename.Count-4)+inpstr+\".avl\")\n            theoutname = thePath+\"\\\"+theFileName\n            theoutfile = theoutname.AsFile
Name\n             if (File.Exists(theoutfile)) then\n             theLegend = t.GetLegend\n             theLegend.Load (theoutfile, #LEGEND_LOADTYPE_ALL)\n             end\n            theView.InvalidateTOC (t)\n          end' t in theView.GetActiveThemes\n    theView.Invalidate \n    end 'for each theDoc in theViewsDocsList ' loop thru each view\n\nreturn nil\nend ' CCCCCCCCCCC\n    \n    \nif (System.IsControlKeyDown) then '***************\n\n      inpstr = \"\"\n      mList={\"Main\", \"1st\",\"2nd\",\"3rd\"}\n      YChoice = MsgB
ox.ChoiceAsString( mList, \"Legend Order\", \"Restore Legends\") \n      if (YChoice = \"1st\") then inpstr = \"1\" end\n      if (YChoice = \"2nd\") then inpstr = \"2\" end\n      if (YChoice = \"3rd\") then inpstr = \"3\" end\n      if (YChoice = \"Main\") then inpstr = \"\" end\n      if (YChoice = nil) then inpstr = \"\" end\n      theView = av.GetActiveDoc\n      thetemplist = {}\n      for each t in theView.GetThemes\n        theSRCname = t.GetSrcName  \n        thesource = theSRCname.GetDataSource\n        thetemplist = thesource.As
Tokens(\"\\\")\n        for each Tkn in thetemplist\n          thethemename = Tkn\n        end\n        thepath = \"\"\n        ch = 1\n        theB = thetemplist.count\n        for each Tkn in thetemplist\n         if (ch = theB) then \n         break\n         end\n         if (ch = 1) then\n           thePath = Tkn\n          ch = 2\n         else\n          thePath = thePath+\"\\\"+Tkn\n         ch = ch + 1\n         end\n        end\n        theFileName = (thethemename.Left(thethemename.Count-4)+inpstr+\".avl\")\n        theoutname
 = thePath+\"\\\"+theFileName\n        theoutfile = theoutname.AsFileName\n         if (File.Exists(theoutfile)) then\n         theLegend = t.GetLegend\n         theLegend.Load (theoutfile, #LEGEND_LOADTYPE_ALL)\n         end\n\n    theView.InvalidateTOC (t)\n    end 'each t in theView.GetThemes\n\ntheView.Invalidate \n\n\n\n\n\nelse ' *****************************************\n\n      inpstr = \"\"\n      mList={\"Main\", \"1st\",\"2nd\",\"3rd\"}\n      YChoice = MsgBox.ChoiceAsString( mList, \"Legend Order\", \"Restore Legends\") \n      if (
YChoice = \"1st\") then inpstr = \"1\" end\n      if (YChoice = \"2nd\") then inpstr = \"2\" end\n      if (YChoice = \"3rd\") then inpstr = \"3\" end\n      if (YChoice = \"Main\") then inpstr = \"\" end\n      if (YChoice = nil) then inpstr = \"\" end\n      theView = av.GetActiveDoc\n      thetemplist = {}\n      for each t in theView.GetActiveThemes\n        theSRCname = t.GetSrcName  \n        thesource = theSRCname.GetDataSource\n        thetemplist = thesource.AsTokens(\"\\\")\n        for each Tkn in thetemplist\n          thetheme
name = Tkn\n        end\n        thepath = \"\"\n        ch = 1\n        theB = thetemplist.count\n        for each Tkn in thetemplist\n         if (ch = theB) then \n         break\n         end\n         if (ch = 1) then\n           thePath = Tkn\n          ch = 2\n         else\n          thePath = thePath+\"\\\"+Tkn\n         ch = ch + 1\n         end\n        end\n        theFileName = (thethemename.Left(thethemename.Count-4)+inpstr+\".avl\")\n        theoutname = thePath+\"\\\"+theFileName\n        theoutfile = theoutname.AsFileN
ame\n         if (File.Exists(theoutfile)) then\n         theLegend = t.GetLegend\n         theLegend.Load (theoutfile, #LEGEND_LOADTYPE_ALL)\n         end\n\n     theView.InvalidateTOC (t)\n     end ' each t in theView.GetActiveThemes\n     theView.Invalidate \n\nend'****************\n"
)

(Script.1263
	Name:	"View.Legend.Swap.Symbols.C"
	SourceCode:	"if (System.IsShiftKeyDown) then\n  message =\n  \" Script Author: (ESRI Web Site)\"+nl+\n  \"\"+nl+\n  \"Instructions:\"+nl+nl+\n  \"This script Alters the Legend of Polygon Themes\"+nl+\n  \"Changes the Polygon Symbos set to the Polyline\"+nl+\n  \"Symbol set \"+nl+\n  \"Run it again and they are Switched Back \"+nl+\n  \" \"+nl+\n  \" \"+nl+\n  \" \"+nl+\n  \" \"+nl+\n  \" \"+nl+\n  \" \"+nl+\n  \" \"+nl \n  msgbox.report(message,\"Swap Polygon Symbol Set\")\n  \n  Clipboard.The.Empty\n  Clipboard.The.Add(message)\n  Clipboard.The.Update\n    \n  MsgBox.In
fo(\"These instructions were copied to the system clipboard.  To print them, open a text editor\"++\n  \"(like notepad), paste in the contents of the clipboard, and print them from the text editor.\",\"PRINT INSTRUCTIONS\")\n  \n  exit\nend\n\n\n\n\n\n\n\n\ntheThemeList= {}\ntheView = av.GetActiveDoc\nfor each t in theView.GetThemes\n  if (t.Is(Ftheme)) then\n    shapetype = t.GetFtab.FindField(\"Shape\").GetType\n    if (shapetype = #FIELD_SHAPEPOLY) then\n      theThemeList.Add(t)\n    end\n  end\nend\nif (theThemeList.count=0) then Ex
it End\n\nchoices = MsgBox.MultiListAsString( theThemeList, \"Select Themes to Alter \", \"SELECT\" )\n\nfor each T in choices\n\ntheTheme = T\noldSymbolType=theTheme.Getlegend.GetSymbols.Get(0).Gettype\ntheFeature=theTheme.GetFtab.GetShapeClass.MakeNull.GetDimension\n\nIf ((oldSymbolType = #SYMBOL_PEN) and (theFeature=2)) then\n  newSymbolType=#SYMBOL_FILL\n  theLegend=Legend.Make(newSymbolType)\n  theTheme.setlegend(theLegend)\n  theTheme.UpdateLegend\n  Else \n  If ((oldSymbolType = #SYMBOL_FILL) and (theFeature=2)) then\n  
  newSymbolType=#SYMBOL_PEN\n    theLegend=Legend.Make(newSymbolType)\n    theTheme.setlegend(theLegend)\n    theTheme.UpdateLegend\n  End\nEnd\n\nend ' choices"
)

(Script.1264
	Name:	"View.Legend.Text.Item.C"
	SourceCode:	"'===========================================================\n \n'  Check for the shift key, if the shift key is down, pop up instructions for using this script\n\nif (System.IsShiftKeyDown) then\n  message =\n  \" \"+nl+\n  \" Script Author (Unknown - Esri Web Site)\"+nl+\n  \" \"+nl+\n  \" Brief Instructions:\"+nl+nl+\n  \" Allows user to assign attribute item values to 'Text' field of legend\"+nl+\n  \" that correspond to the values of the item used for the 'Value' field\"+nl+\n  \" Works for joined (lookup table) items too!\"+nl
+\n  \" If a one-to-many relationship exists between the value field and the\"+nl+\n  \" text field, the first value encountered will be used\"+nl+\n  \" \"+nl+\n  \" \"+nl+\n  \"                                            \"+nl+\n  \"                                            \"+nl+\n  \"                                            \"+nl+\n  \"                                            \"+nl+\n  \"                                            \"+nl+\n  \"                                             \"+nl\n'Title here         \n  msgbox.re
port(message,\"Legend Text Item\")\n  \n  Clipboard.The.Empty\n  Clipboard.The.Add(message)\n  Clipboard.The.Update\n    \n  MsgBox.Info(\"These instructions were copied to the system clipboard.  To print them, open a text editor\"++\n  \"(like notepad), paste in the contents of the clipboard, and print them from the text editor.\",\"PRINT INSTRUCTIONS\")\n\n  return nil\nend\n'===========================================================\n\n' View.LegendTextItem\n\n' Allows user to assign attribute item values to 'Text' field of l
egend\n' that correspond to the values of the item used for the 'Value' field.\n' Works for joined (lookup table) items too!\n\n' If a one-to-many relationship exists between the value field and the\n' text field, the first value encountered will be used.\n\n' Use View.ActiveThemesUpdate for the update script\n\ntheTitle = \"Legend Text Item\"\ntheView = av.GetActiveDoc\ntheTheme = theView.GetActiveThemes.Get(0)\nif (theTheme.Is(FTheme).Not) then\n   MsgBox.Error(\"Active theme is not FTheme\",theTitle)\n   return nil\nend\nth
eLegend = theTheme.GetLegend\ntheFTab = theTheme.GetFTab\nflist = List.Make\nfor each f in theFTab.GetFields\n   if ((f.IsTypeShape.Not) and (f.IsVisible)) then\n      flist.Add(f)\n   end\nend\nTextField = MsgBox.Choice(flist,\"Select Field:\",theTitle)\nif (TextField = nil) then\n   return nil\nend\nnum_c = theLegend.GetNumClasses\nvfname = theLegend.ReturnFieldNames.Get(0)\nValueField = theFTab.FindField(vfname)\n\n'**** create summary table for value and text fields\n\nt_name = FileName.GetTmpDir.MakeTmp(\"sum\",\"dbf\")\nt = t
heFTab.Summarize(t_name,dBASE,ValueField,{TextField},{#VTAB_SUMMARY_FIRST})\nvf = t.GetFields.Get(0)\nvf_name = vf.GetName\ntf = t.GetFields.Get(2)\nbm = t.GetSelection\n\n'**** update legend\n\nfor each i in 0..(num_c - 1)\n   clist = theLegend.ReturnClassInfo(i)\n   val_s = clist.Get(1)\n   if (vf.IsTypeString) then\n      val_s = val_s.Quote\n   end\n\n   '**** perform query for value\n\n   q = \"[\" + vf_name + \"] =\" ++ val_s\n   t.Query(q,bm,#VTAB_SELTYPE_NEW)\n\n   '**** retrieve text item value and insert into legent\n\n   
r = bm.GetNextSet(-1)\n   if (r = -1) then\n      continue\n   end\n   theText = t.ReturnValue(tf,r).AsString\n   clist.Set(0,theText)\n   theLegend.SetClassInfo(i,clist)\nend\n\n'**** clean up\n\nbm = nil\nvf = nil\ntf = nil\nt = nil\nav.PurgeObjects\nFile.Delete(t_name)\ntheView.InvalidateTOC(theTheme)\nav.GetProject.SetModified(true)\n\nreturn nil\n\n\n"
)

(Script.1265
	Name:	"View.Legend.Tools.Menu.C"
	SourceCode:	"thetest = 1\ntheMenu = { \"Help\",\"Loads Legends\", \"Exports Legends\",\"Legend Desaturate\",\"Swap Polygon Symbols to Polyline Symbols\",\"Add Field Text to Legend\",\"Add Legend Colors To Palette\",\"Edit Fill Symbols\"}\ntheMenuChoice = msgbox.ListAsString( theMenu, \"Chose a Menu Item? -- Hold Shift & Pick for Help\", \"Manage Your Legends\")\nif (theMenuChoice = nil) then exit end\n\n'Help\nif (theMenuChoice = \"Help\") then\nav.run( \"View.Legend.Help.C\", thetest )\nend\n\n'Load a Legend\nif (theMenuChoice = \"Loads Legends\") then\nav
.run( \"View.Legend.Import.C\", thetest )\nend\n\n'Export a Legend\nif (theMenuChoice = \"Exports Legends\") then\nav.run( \"View.Legend.Export.C\", thetest )\nend\n\n'Add Legend Colors To Palette\nif (theMenuChoice = \"Add Legend Colors To Palette\") then\nav.run( \"View.Legend.Add.Colors.To.Palette.C\", thetest )\nend\n\n'Add Field Text to Legend\nif (theMenuChoice = \"Add Field Text to Legend\") then\nav.run( \"View.Legend.Text.Item.C\", thetest )\nend\n\n'Add Legend Desaturate\nif (theMenuChoice = \"Legend Desaturate\") then\nav.run( \"Vie
w.Legend.Desaturate.C\", thetest )\nend\n\n'Add Legend Desaturate\nif (theMenuChoice = \"Swap Polygon Symbols to Polyline Symbols\") then\nav.run( \"View.Legend.Swap.Symbols.C\", thetest )\nend\n\n'Edit Fill Symbols\nif (theMenuChoice = \"Edit Fill Symbols\") then\nav.run( \"Fill.Start\", thetest )\nend\n"
)

(Script.1266
	Name:	"View.LoadGraphicText"
	SourceCode:	"'===========================================================\n \n'  Check for the shift key, if the shift key is down, pop up instructions for using this script\n\nif (System.IsShiftKeyDown) then\n  message =\n  \" \"+nl+\n  \" Script Author (Unknown)\"+nl+\n  \" \"+nl+\n  \" Brief Instructions:\"+nl+nl+\n  \" This script Loads all Saved Graphic Text\"+nl+\n  \" into the active theme.\"+nl+\n  \" The Files that are Loaded are *.avt\"+nl+\n  \"                                            \"+nl+\n  \"                                        
    \"+nl+\n  \"                                            \"+nl+\n  \"                                            \"+nl+\n  \"                                            \"+nl+\n  \"                                            \"+nl+\n  \"                                            \"+nl+\n  \"                                            \"+nl+\n  \"                                            \"+nl+\n  \"                                             \"+nl\n'Title here         \n  msgbox.report(message,\"Load Graphic Text\")\n  \n  Clipboa
rd.The.Empty\n  Clipboard.The.Add(message)\n  Clipboard.The.Update\n    \n  MsgBox.Info(\"These instructions were copied to the system clipboard.  To print them, open a text editor\"++\n  \"(like notepad), paste in the contents of the clipboard, and print them from the text editor.\",\"PRINT INSTRUCTIONS\")\n\n  return nil\nend\n'===========================================================\n\n\ntheView = av.GetActiveDoc\ntheprojection=theview.getprojection\nthegraphics=theview.getgraphics\n\ndef = FileDialog.Show(\"*.avt\",\"Saved G
raphic Text\",\"Load Graphic Text\")\nif (def=NIl) then\n  return(nil)\nend\nhooked=FALSE\nitisProjected=FALSE\n\nanODB=ODB.open(def)\n\ntextlist=anODB.get(0).get(0)\noldscale=anODB.get(0).get(1)\nitCanProject=anODB.get(0).get(2)\nitwasprojected=anODB.get(0).get(3)\n\nnewcanProject=TRUE\nfor each atheme in theView.getthemes\n  if (atheme.canproject.not) then\n    newcanProject=FALSE\n    break\n  end\nend\n\nif ((newcanProject=FALSE) and (itCanProject=TRUE)) then\n   msgbox.error(\"The text file is based on data in lat/long. This vie
w does not appear to be. \",\"Error\")\nend\n\nnewscale=theview.returnscale\n\nif (theprojection.isNull.Not) then\n if (itCanProject=FALSE) then\n   msgbox.error(\"This text cannot be projected.  Text is based on projected source data.\",\"Load Graphic Text\")\n   return(nil)\n end\n \n itIsProjected=TRUE\n if ((newscale <> 0) and (oldscale <> 0)) then\n  theview.getdisplay.zoomtoscale(oldscale)\n end\n newtextlist={}\n  for each atxt in textlist\n    newtext=atxt.clone\n    oldpt=atxt.getorigin\n    newpt=oldpt.returnprojected(thep
rojection)\n    newtext.setorigin(newpt)\n    therect=atxt.getbounds\n    prjcent=(therect.returncenter).returnprojected(theprojection)\n    \n    \n    if (newtext.getsymbol.ishooked) then\n      hooked=TRUE\n      newtext.getsymbol.unhook\n      theview.getdisplay.hookupsymbol(newtext.getsymbol)      \n    end\n\n    newtextlist.add(newtext)\n  end    \n  textlist=newtextlist \nelse\n\n  if (itwasprojected) then\n    newtextlist={}\n    for each atxt in textlist\n      newtext=atxt.clone\n      if (newtext.getsymbol.ishooked)
 then\n        hooked=TRUE\n        newtext.getsymbol.unhook\n        theview.getdisplay.hookupsymbol(newtext.getsymbol)      \n      end\n  \n      newtextlist.add(newtext)\n    end\n      textlist=newtextlist \n  end\nend\n\ndefaultFont=Font.getDefault\nfor each atxt in textlist\n  afamily=atxt.getsymbol.getfont.getfamily\n  astyle=atxt.getsymbol.getfont.getstyle\n  afont=Font.make(afamily, astyle)\n  if (afont=nil) then\n    atxt.getsymbol.setfont(defaultFont)\n  end\n    \n  thegraphics.addbatch(atxt)\nend\nthegraphics.endbat
ch\nif (newscale <> 0) then\n' theview.getdisplay.zoomtoscale(newscale)\nend\n\n\nif (hooked=TRUE) then\n  Msgbox.warning(\"The text that was loaded has a set scaling factor, you may need to zoom to see the text placed correctly.\",\"Load Graphic Text\")\nend\n \nif (itIsProjected=TRUE) then\n  Msgbox.warning(\"Because the shape of features change between projections, you text may need to be aligned.\",\"Load Graphic Text\")\nend\n "
)

(Script.1267
	Name:	"View.MakePointPolygons"
	SourceCode:	"'*Script: View.MakePointPolygons\ntheView = av.GetActiveDoc\nthePrj = theView.GetProjection\npointTheme = nil\n\n\n'*** define point input\nactThemes = theView.GetActiveThemes\nif (actThemes.Count = 1) then\n  theTheme = actThemes.Get(0)\n  if (theTheme.Is(FTheme)) then\n    if (theTheme.GetFTab.GetShapeClass.GetClassName = \"Point\") then\n      if (theTheme.GetFTab.GetNumRecords < 2) then\n        MsgBox.Error(\"There must be at least 3 points in a theme for calculation!\", \"Build Thiessen Polygons\")\n        return nil\n  
    end\n      pointTheme = theTheme\n    end\n  end\nend\n\nif (pointTheme = nil) then\n  MsgBox.Error(\"Single active \"\"point\"\" theme not found!\", \"Build Thiessen Polygons\")\n  return nil\nend\n\npointFTab = pointTheme.GetFTab\npointSelection = nil\nif (pointTheme.CanSelect) then\n  pointSelection = pointFTab.GetSelection\n  if (pointSelection.Count <= 0) then\n    pointSelection = nil\n  elseif (pointSelection.Count < 2) then\n    MsgBox.Error(\"To calculate on a subset, a minimum of 2 points must be selected.\"++\n          
       \"Please reselect or clear the selection to use the entire theme.\",\n                 \"Build Thiessen Polygons\")\n    return nil\n  end\nend\n\n\n'*** define point-polygon ID link field\npointFieldList = List.Make\nfor each aField in pointFTab.GetFields\n  if (aField.IsVisible and aField.IsTypeShape.Not) then\n    pointFieldList.Add(aField)\n  end\nend\n\nif (pointFieldList.Count = 0) then\n  idField = nil\nelse\n  idField = MsgBox.List(pointFieldList, \"Select point field for polygon ID link:\", \"Build Thiessen Polygons
\")\nend\n\nbuildDictionary = True\nif (idField = nil) then\n  if(MsgBox.YesNo(\"There was no point ID field was defined.  Do you want to continue without an ID link?\", \"Build Thiessen Polygons\", False).Not) then\n    return nil\n  else\n    buildDictionary = False\n    pointIdDict = nil\n  end\nend\n\n\n'*** define polygon boundry    \npgThemeList = List.Make\nfor each aTheme in theView.GetThemes\n  if (aTheme.Is(FTheme) and aTheme.CanSelect and (aTheme.GetFTab.GetShapeClass.GetClassName = \"Polygon\")) then\n    pgThemeList.Ad
d(aTheme)\n  end\nend\n\nlimitsPG = Polygon.MakeNull\nif (pgThemeList.Count > 0) then\n  pgTheme = MsgBox.List(pgThemeList, \"Select polygon theme for boundry or \"\"Cancel\"\" to use a buffered point area:\", \"Build Thiessen Polygons\")\n  if (pgTheme <> nil) then\n    pgFTab = pgTheme.GetFTab\n    pgShapeField = pgFTab.FindField(\"Shape\")\n    pgSelection = pgFTab.GetSelection\n    \n    if(pgSelection.Count > 0) then\n      statusCount = pgSelection.Count\n    else\n      statusCount = pgFTab.GetNumRecords\n    end\n    \n    if 
(pgFTab.GetNumRecords = 1) then\n      for each pgRec in pgFTab\n        limitsPG = pgFTab.ReturnValue(pgShapeField, pgRec)\n      end\n    elseif (pgSelection.Count = 1) then\n      limitsPG = pgFTab.ReturnValue(pgShapeField, pgSelection.GetNextSet(-1))\n    elseif (pgSelection.Count = 0) then\n      if (MsgBox.YesNo(\"There are no selected records in the boundry theme.  Would you like to merge all features and use the entire theme?\", \"Build Thiessen Polygons\", True)) then\n        av.ShowMsg(\"Merging boundry polyg
ons...\")\n        eltCount = 0\n        for each pgRec in pgFTab\n          if (limitsPG.IsNull) then\n            limitsPG = pgFTab.ReturnValue(pgShapeField, pgRec)\n          else\n            limitsPG = limitsPG.ReturnUnion(pgFTab.ReturnValue(pgShapeField, pgRec))\n          end\n          eltCount = eltCount + 1\n          av.SetStatus(eltCount / statusCount * 100)\n        end\n        av.ClearStatus\n        av.ClearMsg\n      else\n        return nil\n      end\n    else\n      if (MsgBox.YesNo(\"There are multiple re
cords selected in the boundry theme.  Would you like to merge the selected features and continue?\", \"Build Thiessen Polygons\", True)) then\n        av.ShowMsg(\"Merging boundry polygons...\")\n        eltCount = 0\n        pgRec = pgSelection.GetNextSet(-1)\n        while (pgRec > -1)\n          if (limitsPG.IsNull) then\n            limitsPG = pgFTab.ReturnValue(pgShapeField, pgRec)\n          else\n            limitsPG = limitsPG.ReturnUnion(pgFTab.ReturnValue(pgShapeField, pgRec))\n          end\n          pgRec = p
gSelection.GetNextSet(pgRec)\n          eltCount = eltCount + 1\n          av.SetStatus(eltCount / statusCount * 100)\n        end\n        av.ClearStatus\n        av.ClearMsg\n      end\n    end\n  end\nend\n\nif (limitsPG.IsNull) then\n  if (MsgBox.YesNo(\"There is no polygon boundry defined.  Would you like to continue with a buffered point area?\", \"Build Thiessen Polygons\", False).Not) then\n    return nil\n  end\nelse\n  limitsPG = limitsPG.ReturnProjected(thePrj)\nend\n\n\n'*** build and verify point input list\npointList 
= List.Make\npointShapeField = pointFTab.FindField(\"Shape\")\n\nav.ClearStatus\nav.ShowMsg(\"Building point input list...\")\ncurrentElt = 0\nexcludeCount = 0\nif (pointSelection = nil) then\n  if (buildDictionary) then\n    pointIdDict = Dictionary.Make(pointFTab.GetNumRecords / 2)\n  end\n  \n  eltCount = pointFTab.GetNumRecords\n  for each pointRec in pointFTab\n    aPoint = pointFTab.ReturnValue(pointShapeField, pointRec)\n    thePrj.ProjectPt(aPoint)\n\n    if (limitsPG.IsNull) then\n      pointList.Add(aPoint)\n      if (b
uildDictionary) then\n        pointIdDict.Add(aPoint, pointFTab.ReturnValue(idField, pointRec))\n      end\n    elseif (limitsPG.Contains(aPoint)) then\n      pointList.Add(aPoint)\n      if (buildDictionary) then\n        pointIdDict.Add(aPoint, pointFTab.ReturnValue(idField, pointRec))\n      end\n    else\n      excludeCount = excludeCount + 1\n    end\n\n    currentElt = currentElt + 1\n    av.SetStatus(currentElt / eltCount * 100)\n  end\nelse\n  if (buildDictionary) then\n    pointIdDict = Dictionary.Make(pointSelecti
on.Count / 2)\n  end\n  \n  eltCount = pointSelection.Count\n  pointRec = pointSelection.GetNextSet(-1)\n  while (pointRec <> -1)\n    aPoint = pointFTab.ReturnValue(pointShapeField, pointRec)\n\n    if (limitsPG.IsNull) then\n      pointList.Add(aPoint)\n      if (buildDictionary) then\n        pointIdDict.Add(aPoint, pointFTab.ReturnValue(idField, pointRec))\n      end\n    elseif (limitsPG.Contains(aPoint)) then\n      pointList.Add(aPoint)\n      if (buildDictionary) then\n        pointIdDict.Add(aPoint, pointFTab.Retu
rnValue(idField, pointRec))\n      end\n    else\n      excludeCount = excludeCount + 1\n    end\n\n    pointRec = pointSelection.GetNextSet(pointRec)\n    currentElt = currentElt + 1\n    av.SetStatus(currentElt / eltCount * 100)\n  end          \nend\nif (excludeCount > 0) then\n  if (MsgBox.YesNo(\"There were\"++excludeCount.AsString++\"points excluded outside the boundry limits.  Would you like to continue?\", \"Build Thiessen Polygons\", True).Not) then\n    return nil\n  end\nend\nav.ClearStatus\nav.ClearMsg\n\n\n'*** build bu
ffered point area boundry\nif (limitsPG.IsNull) then\n  buffPercent = MsgBox.Input(\"Enter percentage to buffer point area with for boundry:\", \"Build Thiessen Polygons\", \"\")\n  if (buffPercent = nil) then return nil end\n  while (buffPercent.IsNumber.Not or (buffPercent.AsNumber <= 0))\n    buffPercent = MsgBox.Input(\"Buffer percentage must be a positive number:\", \"Build Thiessen Polygons\", buffPercent)\n    if (buffPercent = nil) then return nil end\n  end\n  \n  buffFactor = buffPercent.AsNumber / 100\n  hullList = 
av.Run(\"Sub.GetConvexHull\", pointList)\n  if (hullList = nil) then return nil end\n  hullPG = Polygon.Make({hullList})\n  hullExtent = hullPG.ReturnExtent\n  buffDistance = hullExtent.ReturnCenter.Distance(hullExtent.ReturnOrigin) * buffFactor\n  limitsPG = hullPG.ReturnBuffered(buffDistance)\n\n  if (limitsPG = nil) then return nil end\nend\n\n\n'*** define output theme file\ntype = \"Polygon\"\nclass = Polygon\n\noutThemeFile = FileName.GetCWD.MakeTmp(\"thiesn\", \"shp\")\noutThemeFile = FileDialog.Put(outThemeFile, \"*.shp\", \"
Output Theme File\")\nif (outThemeFile = nil) then return nil end\noutTable = FTab.MakeNew(outThemeFile, class)\nif (outTable.HasError) then\n   if (outTable.HasLockError) then\n      MsgBox.Error(\"Unable to acquire write lock for file \" + outThemeFile.GetBaseName, \"Build Thiessen Polygons\")\n   else\n      MsgBox.Error(\"Unable to create \" + outThemeFile.GetBaseName, \"Build Thiessen Polygons\")\n   end\n   return nil\nend\n\n\n'*** build thiessen polygons\nthsnList = av.Run(\"Sub.GetThsnPolygons\", {pointList, limitsPG})\nif 
(thsnList = nil) then\n  MsgBox.Error(\"Error in polygon calculation!\", \"Build Thiessen Polygons\")\n  return nil\nend\npointIndex = thsnList.Get(1)\nthsnList = thsnList.Get(0)\n\n\n'*** write output theme file\noutShapeField = outTable.FindField(\"Shape\")\nareaField = Field.Make(\"Area\", #FIELD_DECIMAL, 16, 16)\npercentField = Field.Make(\"Prcnt_tot\", #FIELD_DECIMAL, 16, 16)\noutTable.AddFields({areaField, percentField})\ntotalArea = limitsPG.ReturnArea\nif (idField = nil) then\n  for each thsnPolygon in thsnList\n    addRec =
 outTable.AddRecord\n    outTable.SetValue(outShapeField, addRec, thsnPolygon.ReturnUnprojected(thePrj))\n    outTable.SetValue(areaField, addRec, thsnPolygon.ReturnArea)\n    outTable.SetValue(percentField, addRec, thsnPolygon.ReturnArea / totalArea * 100)\n  end\nelse\n  pgIDField = idField.Clone\n  outTable.AddFields({pgIDField})\n  currentElt = 0\n  while (currentElt < thsnList.Count)\n    thsnPolygon = thsnList.Get(currentElt)\n    idValue = pointIdDict.Get(pointIndex.Get(currentElt))\n    addRec = outTable.AddRec
ord\n    outTable.SetValue(outShapeField, addRec, thsnPolygon.ReturnUnprojected(thePrj))\n    outTable.SetValue(pgIDField, addRec, idValue)\n    outTable.SetValue(areaField, addRec, thsnPolygon.ReturnArea)\n    outTable.SetValue(percentField, addRec, thsnPolygon.ReturnArea / totalArea * 100)\n    currentElt = currentElt + 1\n  end\nend\n\n\n'*** add theme to view\noutTable.SetEditable(False)\noutTheme = FTheme.Make(outTable)\ntheView.AddTheme(outTheme)\noutTheme.SetVisible(True)"
)

(Script.1268
	Name:	"View.Menu.Help.C"
	SourceCode:	"  message =\n  \"Brief Instructions:\"+nl+nl+\n  \"Select a Menu\"+nl+\n  \"Hold Down Shift Key\"+nl+\n  \"Select an Item From the Menu\"+nl+\n  \"Help for That Item Will Open \"+nl+\n  \" \"+nl\n      'Title here         \n  msgbox.report(message,\"Help For Menu\")\n  \n"
)

(Script.1269
	Name:	"View.Misc.Tools.Menu.C"
	SourceCode:	"if (System.IsShiftKeyDown) then\nthetest = 1\nav.run( \"View.Menu.Help.C\", thetest )\nreturn nil\nend\n\n\n\nthetest = 1\ntheMenu = {\"Help\",\"Shape File Index Creator\",\"Batch Imports E00 files\",\"Batch Import Shapes\",\"Batch Copy Shapes\",\"Batch Copy Projections\",\"Simplifies a shape / Remove vertrices\",\"Clip Theme with a Graphic\",\"Shapes 2 Graphics\",\"Graphic 2 Shape\",\"Clip Themes By a View Extent\",\"Cleans / Exports a Theme\",\"Bivarit Ledgend Maker\",\"Create AEP File\",\"Scripts in this Extension\" }\ntheMenuChoice = msgbox.Lis
tAsString( theMenu, \"Chose a Menu Item? \", \"Misc Tools\")\nif (theMenuChoice = nil) then exit end\n\n'Help\nif (theMenuChoice = \"Help\") then\nav.run( \"View.Menu.Help.C\", thetest )\nend\n\n'Shape File Index Creator\nif (theMenuChoice = \"Shape File Index Creator\") then\nav.run( \"Data.Create.Spatial.Index.C\", thetest )\nend\n\n'Batch Imports E00 files\nif (theMenuChoice = \"Batch Imports E00 files\") then\nav.run( \"View.Import.711.C\", thetest )\nend\n\n'Simplifies a shape / Remove vertrices \nif (theMenuChoice = \"Simplifies a shape
 / Remove vertrices\") then\nav.run( \"View.Remove.Vertices\", thetest )\nend\n\n'Clip Theme with a Graphic\nif (theMenuChoice = \"Clip Theme with a Graphic\") then\nav.run( \"View.Clip.From.Graphic.C\", thetest )\nend\n\n'Shapes 2 Graphics\nif (theMenuChoice = \"Shapes 2 Graphics\") then\nav.run( \"View.Shape.2.Graphic.C\", thetest )\nend\n\n'Graphic 2 Shape\nif (theMenuChoice = \"Graphic 2 Shape\") then\nav.run( \"View.Graphic.2.Shp.C\", thetest )\nend\n\n'Clip Themes By a View Extent\nif (theMenuChoice = \"Clip Themes By a View Extent\") th
en\nav.run( \"View.Clip.Shp.C\", thetest )\nend\n\n'Cleans / Exports a Theme\nif (theMenuChoice = \"Cleans / Exports a Theme\") then\nav.run( \"View.Export.Clean.C\", thetest )\nend\n\n'Bivarit Ledgend Maker\nif (theMenuChoice = \"Bivarit Ledgend Maker\") then\nav.run( \"view.bilegend\", thetest )\nend\n\n'Scripts in this Extension\nif (theMenuChoice = \"Scripts in this Extension\") then\nav.run( \"compiled theme tools.apr.Script.List\", thetest )\nend\n\n'View.CreateAEPFile\nif (theMenuChoice = \"Create AEP File\") then\nav.run( \"View.CreateA
EPFile\", thetest )\nend\n\n'Batch Import Shapes\nif (theMenuChoice = \"Batch Import Shapes\") then\nav.run( \"Batch.Import.2.Shape\", thetest )\nend\n\n'Batch.Copy.Shapes\nif (theMenuChoice = \"Batch Copy Shapes\") then\nav.run( \"Batch.Copy.Shapes\", thetest )\nend\n\n'Batch.Copy.Projections\nif (theMenuChoice = \"Batch Copy Projections\") then\nav.run( \"Batch.Copy.Projections\", thetest )\nend\n\n'\nif (theMenuChoice = \"\") then\nav.run( \"\", thetest )\nend\n\n'\nif (theMenuChoice = \"\") then\nav.run( \"\", thetest )\nend\n\n'\nif (theMenuChoice = \"
\") then\nav.run( \"\", thetest )\nend\n"
)

(Script.1270
	Name:	"View.MV.Add.C"
	SourceCode:	"' Check $Home for a text file named TheViewList.Txt containing the path to the program.  If not there, \n' ask the user where program is located, then make and store a file named TheViewList.Txt\nadth = 0\nAst = \"$AVHOME\\\"\nMain = \"TheViewList.Txt\"\nFnameout = Ast+Main\n\n' Check for the existence of the file named TheViewList.Txt:\ntheFileName = Filename.Make(Fnameout)\ntheFileExists = File.Exists(theFileName)\n\n'  If TheViewList.Txt exists, open it, and read the path to Program\nif (theFileExists = true) then\n  theO
ldPathList={}\n  theFileName = Filename.Make(Fnameout)\n  af = LineFile.Make( theFileName, #FILE_PERM_READ )\n  \n  while (af.IsAtEnd.Not)\n  currstring = af.ReadElt\n  if(not(currstring = \"\")) then\n  theOldPathList.Add(currstring)\n  end\n  end\n  \n  af.close\n  theOldPathList.Sort(False)\n  theOldPathList.RemoveDuplicates\n  'YourChoice = MsgBox.ChoiceAsString( theOldPathList, \"\", \"\" )\nend\n\n\n\nav.PurgeObjects\n    \n\n'************** SETUP\ntheProject = av.GetProject\ntheActiveDoc = av.GetActiveDoc \ntheViewsDocsList = {}\nt
heThemesSourceList = {}\ntheselectlist = {}\ntheOutFileAllList={}\ntheoutfile = \"nil\"\n\n'************* GET THE DOCS\nfor each theDoc in av.GetProject.GetDocs\n  \n  if ( theDoc.Is(View)) then theViewsDocsList.Add(theDoc) end  \n  \nend\n\n\n\n\n\n  \n    \nVChoiceList = MsgBox.MultiListAsString( theViewsDocsList, \"Select View(s)You Want to add to Your List:\", \"Select View(s)\")\nif (VChoiceList = nil) then return nil end\nif (VChoiceList.Count <=0 ) then return nil end\nfor each V in VChoiceList\n'***************\n  theODBlist = 
{}\n  theOP = av.GetProject.FindDoc (V.AsString)\n  theOPWin = theOP.GetWin\n  theOPWin.Activate\n  theView = av.Getactivedoc\n  theGUI = av.GetActiveDoc.GetGUI\n  theWinTitle = \"Export/Import\"++theGUI\n\n  theDoc = av.GetActiveDoc\n  theDefFileName=theDoc.asString+\".odb\"\n\n  theWinTitle = \"Export\"++theGUI++\", Save the ArcView document as an ODB file\"\n\n  theODBfileName = FileDialog.Put(theDefFileName.asFileName,\"*.odb\",theWinTitle)\n  if (theODBfileName = nil) then MsgBox.Info(\"Nothing exported !\",\"Export\"++theGUI) ex
it end\n  theODB = ODB.Make(theODBfileName)\n  \n  theODBlist.ADD(theODBfileName.AsString)\n  \n  if (theODB = nil) then MsgBox.Info(\"Nothing exported !\",\"Export\"++theGUI) exit end\n  theDict = Dictionary.Make(1)\n  theDict.Set(\"MyDoc\", theDoc)\n  theODB.Add(theDict)\n  if (theODB.Commit) then\n    if (MsgBox.LongYesNo (theDoc.asString++\"successfully exported to '\"+theODBfileName.asString+\"'\"+NL+\"Do you want to export additional information?\", \"Export\"++theGUI, true)) then\n      theDepsFileName = theODBfileName.asStr
ing.AsFileName\n      theDepsFileName.SetExtension(\"txt\")\n      MsgBox.Info(\"Will now write additional information to '\"+theDepsFileName.asString+\"'.\"+NL+NL+\"This could take some time!\",\"Export\"++theGUI)\n      theDepsFile = LineFile.Make (theDepsFileName, #FILE_PERM_WRITE)\n      theDepsFile.WriteElt(\"Additional information for file:\"+NL+theODBfileName.asString\n                            +NL+NL+\"Source project:            \"++av.GetProject.asString\n                            +NL+\"Document type (GUI):       \"
++theGUI\n                            +NL+\"Document name:             \"++theDoc.asString\n                            +NL)\n  \n      theProjDepends = av.GetProject.GetDependencies\n      if (theProjDepends.Count > 0) then\n        theDepsFile.WriteElt(\"Extentions of source project were:\")\n        for each rec in theProjDepends\n          theDepsFile.WriteElt(rec.asString)\n        end\n        end\n      theDepsFile.WriteElt(nl+\"the ODB file uses the following files:\")\n      theRFile = LineFile.Make ( theODBfileName
, #FILE_PERM_READ )\n      myPathList = {}\n      theRFileSize=theRFile.GetSize\n      i=0\n      av.ClearStatus\n      av.ShowStopButton\n      while ( theRFile.IsAtEnd.Not)  \n        i = i + 1\n        av.ShowMsg(\"looking through line\"++i.asString++\"of\"++theRFileSize.asString++\"lines\")\n        progress = (i/theRFileSize) * 100\n        doMore = av.SetStatus( progress )\n        if (not doMore) then  break  end\n        buf = theRFile.ReadElt\n        if ( buf.Contains(\"Path:\") ) then\n          aPath = buf.extract(1)
\n          myPathList.Add (aPath)\n        end\n      end\n      myPathList.RemoveDuplicates\n      for each rec in myPathList\n        theDepsFile.WriteElt(rec.unquote)\n      end\n    end\n  else\n    MsgBox.Error(\"could not export\"++theGUI,\"Export\"++theGUI)\n  end\n\n\n\n\n'************************\nend'for each V in VChoiceList\n\n\n\n\n\nif(theFileExists = false) then\n      \n    theOldPathList = {}      \n    for each T in theODBlist \n    theOldPathList.Add(T) \n    end \n    theOldPathList.Sort(False)\n    theOldPathList.Remov
eDuplicates    \n    FD = Fnameout.AsFileName\n    File.Delete (FD)\n    theFileName = Filename.Make(Fnameout)\n    af = LineFile.Make( theFileName, #FILE_PERM_WRITE )\n    for each TLine in theOldPathList\n    af.WriteElt(TLine)\n    end\n    af.close\n  \nend\nif (theFileExists = true) then\n    for each T in theODBlist \n    theOldPathList.Add(T) \n    end \n    theOldPathList.Sort(False)\n    theOldPathList.RemoveDuplicates    \n    FD = Fnameout.AsFileName\n    File.Delete (FD)\n    theFileName = Filename.Make(Fnameout)\n
    af = LineFile.Make( theFileName, #FILE_PERM_WRITE )\n    for each TLine in theOldPathList\n    af.WriteElt(TLine)\n    end\n    af.close\nend    "
)

(Script.1271
	Name:	"View.MV.Add2.C"
	SourceCode:	"\nAst = \"$AVHOME\\\"\nMain = \"TheViewList.Txt\"\nFnameout = Ast+Main    \n    \n    \n  ' Check $Home for a text file named TheViewList.Txt containing the path to the program.  If not there, \n  ' ask the user where program is located, then make and store a file named TheViewList.Txt\n  \n  ' Check for the existence of the file named TheViewList.Txt:\n  theFileName = Filename.Make(Fnameout)\n  theFileExists = File.Exists(theFileName)\n  \n  '  If TheViewList.Txt exists, open it, and read the path to Program\n  if (theFileEx
ists = true) then\n    \n    theOldPathList={}\n    theFileName = Filename.Make(Fnameout)\n    af = LineFile.Make( theFileName, #FILE_PERM_READ )\n    ck = 0\n    while (af.IsAtEnd.Not)\n    currstring = af.ReadElt\n    theOldPathList.Add(currstring)\n    end\n    \n    af.close\n    theOldPathList.Sort(True)\n    theOldPathList.RemoveDuplicates\n  end ' if (theFileExists = true) then   \n\n\n\npatterns = {\"*.Odb\"}\nlabels = {\"Object Data Base (*.odb)\"}\n\nInFileList = FileDialog.ReturnFiles(patterns,labels, \"Select some Files 
to Rename \", 0)\nif (InFileList.Count <= 0) then return nil end\n\nnewlist = {}\nfor each I in InFileList\nnewlist.Add(I.AsString)\nend\n\n'TheChoice = MsgBox.ChoiceAsString (newlist, \"Please Choose:\", \" \")\n\nfor each N in newlist\ntheOldPathList.Add(N)\nend\ntheOldPathList.Sort(True)\ntheOldPathList.RemoveDuplicates\nFD = Fnameout.AsFileName\nFile.Delete (FD)\ntheFileName = Filename.Make(Fnameout)\naf = LineFile.Make( theFileName, #FILE_PERM_WRITE )\nfor each TLine in theOldPathList\nif (not(TLine = \"\")) then\naf.WriteElt(TLi
ne)\nend\nend\naf.close\n\n\n\n\n\n\n"
)

(Script.1272
	Name:	"View.MV.Del.C"
	SourceCode:	"\nAst = \"$AVHOME\\\"\nMain = \"TheViewList.Txt\"\nFnameout = Ast+Main    \n    \n    \n  ' Check $Home for a text file named TheViewList.Txt containing the path to the program.  If not there, \n  ' ask the user where program is located, then make and store a file named TheViewList.Txt\n  \n  ' Check for the existence of the file named TheViewList.Txt:\n  theFileName = Filename.Make(Fnameout)\n  theFileExists = File.Exists(theFileName)\n  \n  '  If TheViewList.Txt exists, open it, and read the path to Program\n  if (theFileEx
ists = true) then\n    \n    theOldPathList={}\n    theFileName = Filename.Make(Fnameout)\n    af = LineFile.Make( theFileName, #FILE_PERM_READ )\n    ck = 0\n    while (af.IsAtEnd.Not)\n    currstring = af.ReadElt\n    theOldPathList.Add(currstring)\n    end\n    \n    af.close\n    theOldPathList.Sort(True)\n    theOldPathList.RemoveDuplicates\n    choices = MsgBox.MultiListAsString( theOldPathList, \"Select Views to Delete from List \", \"Select View(s)\" )\n    if (choices = \"\" ) then \n    return nil\n    end\n    if (choic
es = nil ) then\n    return nil \n    end\n    ck = choices.count\n    if (ck < 1) then return nil end\nend ' if (theFileExists = true) then   \n\n\n\n\n    newlist = {}     \n    for each V in theOldPathList \n      for each C in choices\n          if (C = V ) then\n          'skip\n          else\n          newlist.Add(V)\n          end    \n      end\n    end \n    newlist.Sort(True)\n    newlist.RemoveDuplicates    \n    FD = Fnameout.AsFileName\n    File.Delete (FD)\n    theFileName = Filename.Make(Fnameout)\n    af = LineFile
.Make( theFileName, #FILE_PERM_WRITE )\n    for each TLine in newlist\n    if (not(TLine = \"\")) then\n    af.WriteElt(TLine)\n    end\n    end\n    af.close\n"
)

(Script.1273
	Name:	"View.MV.Del.File.C"
	SourceCode:	"Ast = \"$AVHOME\\\"\nMain = \"TheViewList.Txt\"\nFnameout = Ast+Main \nFndel = Fnameout.AsFileName\nmyAnswer = MsgBox.YesNo( \"Continue?\", \"Delete MyViewList.Txt\", False )\nif (myAnswer = True) then\nFile.Delete (Fndel)\nMsgBox.Info( \"The File \"+Fnameout++\"has been Deleted\", \"Finshed\" )\nreturn nil\nelse\nreturn nil\nend"
)

(Script.1274
	Name:	"View.MV.Help.C"
	SourceCode:	"  message =\n  \"Script Author(s) ( Jan Stemmler Email: EAHerdecke@csi.com)&(Charles Herbold)\"+nl+\n  \"This script maintains a List Consisting of View's \"+nl+\n  \"Names and Paths Saved as ODB Files\"+nl+\n  \" \"+nl+\n  \"Click -- Loads Views from the Selected List \"+nl+\n  \" \"+nl+\n  \"Control & Click Adds or Deletes Views From the Select List \"+nl+\n  \" \"+nl+\n  \"The List is Writen to a Text File in the AvHome Folder \"+nl+\n  \"with the name of MyViewList.txt\"+nl+\n  \" \"+nl+\n  \"If your like me you have 3 or 4 Views you use
 All the Time \"+nl+\n  \"Add them to this List and the next time you want \"+nl+\n  \"to add them to a Project just use this Tool \"+nl+\n  \" \"+nl+\n  \"This works with the Import/Export Views script\"+nl+\n  \"Writen by Jan Stemmler\"+nl+\n  \"that is loaded when this extension loads  \"+nl+\n  \" \"+nl+\n  \"To Add Views to the List --- Control and Click this Tool\"+nl+\n  \"Select from the Menu Choices \"+nl+\n  \"Then Select the View(s) you want to add to the List\"+nl+\n  \"Select a Location to Save The View.odb file to\"+nl+\n  \"and
 then your done \"+nl+\n  \" \"+nl+\n  \"To Delete Themes From the Lists --- Control and Click this Tool \"+nl+\n  \"Select from the Menu Choices \"+nl+\n  \"Then Select some Views to Delete From the List  \"+nl+\n  \"and then your done\"+nl+\n  \"Odb File Will Not be Deleted - You must do this Manually  \"+nl+\n  \" \"+nl+\n  \"The More Labels you have in a View - the Larger the Odb file will be \"+nl+\n  \"and the Longer it will take to Save or Load \"+nl+\n  \"Thats It ;-) \"+nl+\n  \" \"+nl+\n  \" \"+nl\n'Title here         \n  msgbox.report
(message,\"My View List\")\n  \n  Clipboard.The.Empty\n  Clipboard.The.Add(message)\n  Clipboard.The.Update\n    \n  MsgBox.Info(\"These instructions were copied to the system clipboard.  To print them, open a text editor\"++\n  \"(like notepad), paste in the contents of the clipboard, and print them from the text editor.\",\"PRINT INSTRUCTIONS\")\n\n  return nil\n\n"
)

(Script.1275
	Name:	"View.MV.Load.C"
	SourceCode:	"\nAst = \"$AVHOME\\\"\nMain = \"TheViewList.Txt\"\nFnameout = Ast+Main    \n    \n    \n  ' Check $Home for a text file named TheViewList.Txt containing the path to the program.  If not there, \n  ' ask the user where program is located, then make and store a file named TheViewList.Txt\n  \n  ' Check for the existence of the file named TheViewList.Txt:\n  theFileName = Filename.Make(Fnameout)\n  theFileExists = File.Exists(theFileName)\n  \n  '  If TheViewList.Txt exists, open it, and read the path to Program\n  if (theFileEx
ists = true) then\n    \n    theOldPathList={}\n    theFileName = Filename.Make(Fnameout)\n    af = LineFile.Make( theFileName, #FILE_PERM_READ )\n    ck = 0\n    while (af.IsAtEnd.Not)\n    currstring = af.ReadElt\n    theOldPathList.Add(currstring)\n    end\n    \n    af.close\n    theOldPathList.Sort(True)\n    theOldPathList.RemoveDuplicates\n    choices = MsgBox.MultiListAsString( theOldPathList, \"Select Views to Add to Current Project \", \"Select View(s)\" )\n    if (choices = \"\" ) then \n    return nil\n    end\n    if 
(choices = nil ) then\n    return nil \n    end\n  end ' if (theFileExists = true) then   \n  \n  \n  if (theFileExists = true) then\n  \n  for each C in choices\n  theWinTitle = \"Import an ArcView document from an ODB file\"\n  theODBfile = C.AsFileName\n  if (theODBfile = nil) then exit end\n  theODB = ODB.Open(theODBfile)\n  theODBDepends = theODB.GetDependencies\n  for each rec in theODBDepends\n    if ((MsgBox.LongYesNo (theODBfile.asString++\"needs\"++rec.asString , theWinTitle, true)).not) then exit end\n  end\n  theObj
 = theODB.Get(0)\n  theClassName = theObj.GetClass.GetClassName\n  if (theClassName = \"Dictionary\") then\n    theKeyList = theObj.ReturnKeys\n    if (theKeyList.Count = 1) then\n      theKey = theKeyList.Get (0)\n    else\n      theKey = msgBox.ListAsString (theKeyList, \"Select one Object\", theWinTitle)\n    end\n    theDoc = theObj.Get(theKey)\n    av.GetProject.AddDoc(theDoc)\n  else\n    av.GetProject.AddDoc(theObj)\n  end  \n  \n  \n  \n  \n  \n  end'for each C in choices\n  \n  \n  \n  end ' if (theFileExists = true) then\n"
)

(Script.1276
	Name:	"View.MV.Menu.C"
	SourceCode:	"if (System.IsShiftKeyDown) then\nthetest = 1\nav.run( \"View.MV.Help.C\", thetest )\nreturn nil\nend\n\nif (System.IsControlKeyDown) then\n\nthetest = 1\ntheMenu = { \"Help\",\"Load View(s) From My View List\", \"Add Current View(s) to My View List\",\"Add a Previously Saved View to My View List\",\"Delete View(s) From My View List\",\"Delete My View List.Txt From AvHome Folder\"}\ntheMenuChoice = msgbox.ListAsString( theMenu, \"Chose a Menu Item? \", \"Manage Your Theme Lists\")\nif (theMenuChoice = nil) then exit end\n\n'Load View(s) F
rom My View List\nif (theMenuChoice = \"Load View(s) From My View List\") then\nav.run( \"View.MV.Load.C\", thetest )\nend\n\n'Help\nif (theMenuChoice = \"Help\") then\nav.run( \"View.MV.Help.C\", thetest )\nend\n\n'Add Current View(s) to My View List\nif (theMenuChoice = \"Add Current View(s) to My View List\") then\nav.run( \"View.MV.Add.C\", thetest )\nend\n\n'Delete View(s) From My View List\nif (theMenuChoice = \"Delete View(s) From My View List\") then\nav.run( \"View.MV.Del.C\", thetest )\nend\n\n'Add a Previously Saved View to My View
 List\nif (theMenuChoice = \"Add a Previously Saved View to My View List\") then\nav.run( \"View.MV.Add2.C\", thetest )\nend\n\n'Delete a List From AvHome Folder\nif (theMenuChoice = \"Delete My View List.Txt From AvHome Folder\") then\nav.run( \"View.MV.Del.File.C\", thetest )\nend\n\nelse\nthetest = 1\nav.run( \"View.MV.Load.C\", thetest )\nend"
)

(Script.1277
	Name:	"View.Nearest.C"
	SourceCode:	"'===========================================================\n \n'  Check for the shift key, if the shift key is down, pop up instructions for using this script\n\nif (System.IsShiftKeyDown) then\n  message =\n  \" \"+nl+\n  \" Script Author (Timothy J Fox Date 4/28/98)\"+nl+\n  \" \"+nl+\n  \"Brief Instructions:\"+nl+nl+\n  \"The script prompts the user for a From theme and a To theme \"+nl+\n  \"Distances are measured for only those features selected in the two themes\"+nl+\n  \"If no selection is made all features are used in th
e analysis\"+nl+\n  \"The user is prompted to select one field from each theme to be used as an\"+nl+\n  \"unique ID so that the table can later be linked or joined to the input themes\"+nl+\n  \"The product of this script is a new Table with the following items:\"+nl+\n  \"a From field - a To field - and a distance to nearest feature field\"+nl+\n  \" \"+nl\n'Title here         \n  msgbox.report(message,\"Nearest Feature Analysis Tool\")\n  \n  Clipboard.The.Empty\n  Clipboard.The.Add(message)\n  Clipboard.The.Update\n    \n  MsgBo
x.Info(\"These instructions were copied to the system clipboard.  To print them, open a text editor\"++\n  \"(like notepad), paste in the contents of the clipboard, and print them from the text editor.\",\"PRINT INSTRUCTIONS\")\n\n  return nil\nend\n\n\n\n' Name:  Nearest Feature Analysis Tool \n' Title:  Finds the nearest feature to points in a point theme\n' Written by: Timothy J Fox\n' Date 4/28/98\n' Topics:  Nearest Feature Analysis \n' Description:  A major improvment over the ESRI tool.  The script \n' prompts the user 
for a 'From' theme and a 'To' theme.  Distances to the \n' nearest feature in the 'To' theme are measured for each feature in the 'From'   \n' theme. You be sub-set the 'From' and 'To' themes by selecting features.       \n' Distances are measured for only those features selected in the two themes.  If \n' no selection is made all 'features are used in the analysis.  \n'      The user is prompted to select one field from each theme to be used as an \n' unique ID so that the table can later be linked or joined to 
the input themes. \n' The product of this script is a new Table with the following items: a     \n' 'From' field, a'To' field, and a distance to nearest feature field.\n' Requires:  a View must be the active document, the view must contain at least \n' two feature themes\n'  \n' Returns:  Table with the following items: a 'From' field, a 'To' field, and a \n' distance to nearest feature field\n'''''''''''''''''''''''''''''''''''''''''''''''''\n' Set search radius and other vars...\n'''''''''''''''''''''''''''''''''''
''''''''''''''\nshortDist = 1000000000\nv = av.GetActiveDoc\ntl = v.getThemes\nshortTRec = 0\ntheCount = 0\nw = \"Warning\"\n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''\n'Get 'From' theme and field - check for 'From' selection, and field\n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''\nf = msgbox.list (tl, \"Select the theme that contains\" + NL + \"the 'From' features.\" ,\"'From' theme\")\nif (f = nil) then\n  exit\nend\nfromName = f.GetName\nfromShpFld = f.GetFTab.FindField(\"Shape\")\n
fFieldList = f.GetFTab.GetFields\nff = msgbox.list (fFieldList, \"Select 'From' field to preserve\" ,\"'From' field\")\nif (ff = nil) then\n  msgbox.warning(\"you must select a field\" ,w)\n  exit\nend\nif (f.GetFTab.GetSelection.Count = 0) then\n    fromFeatures = f.GetFTab\n    fromTotal = f.GetFTab.GetNumRecords\n  else\n    fromFeatures = f.GetFTab.GetSelection\n    fromTotal = fromFeatures.Count\nend\n\n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''\n'get 'To' theme and field\n''''''''''''''''''''''''''''''''
''''''''''''''''''''''''''''''\nt = msgbox.list (tl, \"Select 'To' theme\", \"'To' theme\")\nif (t = nil) then\n  exit\nend\ntoName = t.GetName\ntoShpFld  = t.GetFTab.FindField(\"Shape\")\ntFieldList = t.GetFTab.GetFields\ntf = msgbox.list (tFieldList, \"Select field to preserve\", \"'To' field\")\nif (tf = nil) then\n  msgbox.warning(\"you must select a field\", w)\n  exit\nend\n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''\n'get 'To' Theme's selection\n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''\n
if (t.GetFTab.GetSelection.Count = 0) then\n  toFeatures = t.GetFTab\n  else\n  toFeatures = t.GetFTab.GetSelection\nend\n'''''''''''''''''''''''''''''''''''''''''''''''''''''''\n'create new table\n'''''''''''''''''''''''''''''''''''''''''''''''''''''''\ntempFilename = FileName.Make(\"C:\\near.dbf\")\ntheFilename  = FileDialog.Put(tempFilename, \"*.dbf\", \"Save Table where?\")\nif (theFilename = nil) then \n  exit\nend\ntheFilename.SetExtension(\"dbf\")\nnewVTab = VTab.MakeNew (theFilename, dBASE)\nfID = ff.clone\ntID = tf.clone\nd
istField = Field.Make(\"NF Dist\",#FIELD_DECIMAL,8,2)\nnewFields = {fID, tID, distField}\nnewVTab.AddFields(newFields)\n''''''''''''''''''''''''''''''''''''''''''''''''''\n' Find the closest feature to the point...\n''''''''''''''''''''''''''''''''''''''''''''''''''\nav.ShowMsg(\"NF analysis: From\"+ fromName + \" To \" + toName )\nfor each frec in fromFeatures\n  fPoint = f.GetFTab.ReturnValue(fromShpFld,frec)\n  theCount = theCount + 1\n  for each trec in ToFeatures\n    tShape = t.GetFTab.ReturnValue(toShpFld,trec)\n    d
ist = tShape.Distance(fPoint)\n    if (dist < shortDist) then\n      shortDist = dist\n      shortTRec = trec.Clone\n    end  \n  end \n  '''''''''''''''''''''''''''''''''''''''''''''''''''''\n  'Write to table: 'distance','From' and 'To' fields\n  '''''''''''''''''''''''''''''''''''''''''''''''''''''\n  tempTid = t.GetFTab.ReturnValue(tf,shortTRec)\n  tempFid = f.GetFTab.ReturnValue(ff,frec)\n  newVTab.SetEditable (true)\n  newRec = newVTab.AddRecord\n  newVTab.SetValue(fID,newRec,tempFid)\n  newVTab.SetValue(tID,newRec
,tempTid)\n  newVTab.SetValue(distField,newRec,shortDist)\n  shortDist = 1000000000\n  av.SetStatus((theCount / fromTotal) * 100) \nend\nav.ClearStatus\nav.ClearMsg\nnewVTab.SetEditable (false)\n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''\n' create table from VTab & dispaly table\n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''\nnewTab = table.Make (newVTab)\nnewTab.setName (\"NF from \" + fromName + \" to \" + toName)\nnewTabWin = newTab.GetWin\nnewTabWin.Resize (350, 250)\nnewTabWin.Open\n"
)

(Script.1278
	Name:	"View.Points.2.Polygons.C"
	SourceCode:	"' ===========================================================================\n'                         Golly GIS, Richard Butgereit\n'\n'            rdbutger@tfn.net                       850/412-0071\n'            214 Britt Street                       Tallahassee,FL 32301\n'        \n'\n'            Matthew John Rantala                  715/824-5058\n'            GEOCODE, Inc.                         Eau Claire, WI 54703\n'            mrantala@geocodeinc.com\n' ====================================================
========================\n'\n'\n' Name: ViewTools.PointsToPolygon\n'\n' Description: Takes points from a selected theme and converts them into a polygon.\n'              Will add polygon to a polygon theme is one is editable, otherwise adds\n'              graphic to view.  Install as control on View.\n'\n' History: RDB 03/99 - adapted from ESRI Sample Points.ConvertToPolygon\n'\n'          MJR 03/2000 - Made modifications so that it should work everytime.\n'          The problem was the use of dictionaries only allows
 a single entry\n'          per key.  So if you have points (1,1) and (1,3), only can be in\n'          the \"X dictionary\" (because both need to have a key of 1)\n'          I modified the script so that relavent entry is added.  Halfway\n'          through running, the dictionaries are updated.\n' ...........................................................................\n\n'  Check for the shift key, if the shift key is down, pop up instructions for using this script\n \nif (System.IsShiftKeyDown) then\n  message 
=\n  \"Instructions For Point to Polygons:\"+nl+nl+\n  \"This script makes a polygon feature representing the connection of the outermost points from a cluster of selected featues in a point theme.\"+nl+nl+\n  \"Script by Richard Butgereit (rdbutger@tfn.net), GollyGIS.\"+nl+nl+\n  \" Brief Instructions:\"+nl+nl+\n  \"1. Select at least 3 features in a point theme.\"+nl+nl+\n  \"2. Click this button.\"+nl+nl+\n  \"3. A polygon respresenting the outermost points of the point cluster is made.\"+nl+nl+\"If a polygon theme is editabl
e within the view, the new polygon is added to that theme.  Additionally, values for fields of the same name within the point theme are populated for the new polygon record.  NOTE: these values come from ONE of the records selected (in fact, from the last record in the selected records list) and a pop-up allows the user to edit and input attributes for the new record.\"+nl+nl+\"If a polygon theme is not editable in the view, the polygon is added a graphic.\"+nl\n  \n  msgbox.report(message,\"Point to Polygon Inst
ructions\")\n  \n  Clipboard.The.Empty\n  Clipboard.The.Add(message)\n  Clipboard.The.Update\n    \n  MsgBox.Info(\"These instructions were copied to the system clipboard.  To print them, open a text editor\"++\n  \"(like notepad), paste in the contents of the clipboard, and print them from the text editor.\",\"PRINT INSTRUCTIONS\")\n  \n  return nil\nend\n\n' ...........................................................................\n\n\ntheView = av.GetActivedoc\n\nlstThm = List.Make\nfor each thm in theView.GetThemes\n if (thm.I
s(FTheme)) then\n   thmFtab = thm.GetFtab\n   theShapeField = thmFtab.FindField(\"Shape\")\n   shapetype = theShapeField.GetType\n   theSelrecs = thmFtab.GetSelection\n  if ((shapetype = #FIELD_SHAPEPOINT) or (shapetype = #FIELD_SHAPEMULTIPOINT) and (theSelrecs.Count > 2)) then\n   lstThm.Add(thm)\n  end\n end\nend   \n\nif (lstThm.Count = 0) then\n MsgBox.Warning(\"A point theme with at least 3 selected features is required.\",\"NO POINT THEMES WITH SELECTED FEATURES\")\n exit\nend\n\nif (lstThm.Count > 1) then\n theTheme = MsgB
ox.ListAsString(lstThm,\"Choose only one point theme with selected features:\",\"MULTIPLE POINT THEMES WITH SELECTED FEATURES\")\n  if (theTheme = nil) then\n     MsgBox.Error(\"You didn't pick a theme.  You gotta pick a theme.\",\"SCRIPT TERMINATED\")\n   exit\n  end\nelse\n theTheme = lstThm.Get(0)\nend\n\nthmFtab = theTheme.GetFTab\nshpFld = thmFtab.FindField(\"Shape\")\n\ndicX = dictionary.make(11)\ndicY = dictionary.make(11)\n\nlistPoly = {}\n\nfor each rec in thmFtab.GetSelection\n  pt = thmFtab.ReturnValue(shpFld,rec)\n   if (pt
.Is(Point)) then\n    dicX.Add(pt.GetX,pt)\n    if (dicX.Get(pt.GetX).GetY > Pt.GetY) then      'These three lines added by Matt\n     dicX.Set(pt.GetX,pt)                           'They update dictionary as needed\n    end                                             '   \n    dicY.Add(pt.GetY,pt)                            \n    if (dicY.Get(pt.GetY).GetX < Pt.GetX) then      'Same thing for these three lines\n     dicY.Set(pt.GetY,pt)                           '\n    end                                          
   ' \n  end\nend\n\n'Matt Rantala remarked out the following 3 lines.  Because it is possible to \n'have a polygon with multiple points but only two dictionary entries.\n'if (dicX.Count < 3) then\n'  msgbox.info(\"Please have at least 3 points selected on view to make polygon\",\"\")\n'  exit\n'end\n\nlistX = dicX.ReturnKeys\nlistY = dicY.ReturnKeys\n\nlistX.Sort(true)\n\npt0 = dicX.Get(listX.Get(0))\nlistPoly.Add(pt0)\n\n'listX.Remove(0)              This was remarked out by Matt Rantala\nfor each X in listX\n  pt = dicX.Get(X)\n 
 if (pt.GetY <= pt0.GetY) then \n    pt0 = pt \n    listPoly.Add(pt0)\n  end\nend\n\nlistY.Sort(true)\n'listY.Remove(0)              This was remarked out by Matt Rantala\nfor each Y in listY\n  pt = dicY.Get(Y)\n    if (pt.GetX >= pt0.GetX) then\n    pt0 = pt \n    listPoly.Add(pt0)\n  end\nend\n\nfor each rec in thmFtab.GetSelection                'The following 11 Lines were added by Matt Rantala\n  pt = thmFtab.ReturnValue(shpFld,rec)              '\n   if (pt.Is(Point)) then                           'This reorganizes t
e dictionarys as needed\n    if (dicX.Get(pt.GetX).GetY < Pt.GetY) then      '\n     dicX.Set(pt.GetX,pt)                           '\n    end                                             '\n    if (dicY.Get(pt.GetY).GetX > Pt.GetX) then      '\n     dicY.Set(pt.GetY,pt)                           '   \n    end                                             '\n  end                                               '\nend                                                 '\n\nlistX.Sort(false)\n'listX.Remove(0)              This
 was remarked out by Matt Rantala\nfor each X in listX\n  pt = dicX.Get(X)\n  if (pt.GetY >= pt0.GetY) then \n    pt0 = pt \n    listPoly.Add(pt0)\n  end\nend\n\nlistY.Sort(false)\n'listY.Remove(0)              This was remarked out by Matt Rantala\nfor each Y in listY\n  pt = dicY.Get(Y)\n    if (pt.GetX <= pt0.GetX) then \n    pt0 = pt \n    listPoly.Add(pt0)\n  end\nend\n\nlistPoly.Add(listPoly.Get(0))\npoly = polygon.make({listPoly})\n if (poly.IsNull) then\n  MsgBox.Warning(\"Sometimes I don't work.  Please try selecting som
e other points and see if I work for you then.\",\"Sorry...\")\n exit\n end\ntheEditTheme = theView.GetEditableTheme\nIF (Not(theEditTheme = Nil)) THEN\n    theFTab = theEditTheme.GetFTab\n    theShpField = theFTab.FindField(\"Shape\")\n    theFTab.BeginTransaction\n    newRecno = theFTab.AddRecord\n    theFTab.SetValue(theShpField,newRecno,poly)\n\n     lstFields = {}\n     lstLabels = {}\n      for each fld in theFtab.GetFields\n        if (fld <> theShpField) then\n         lstFields.Add(fld.AsString)\n         lstLabels.Add
(fld.AsString++\" (\"+fld.GetType.AsString++fld.GetWidth.AsString+\") \")\n        end\n      end\n\n     lstValues = {}\n       for each fld in lstFields\n          if (thmFtab.FindField(fld.AsString) <> nil) then\n           for each rec in thmFtab.GetSelection\n            theFtab.SetValue(theFtab.FindField(fld), newRecno, thmFtab.ReturnValue(thmFtab.FindField(fld),rec))\n           end\n          end\n        aVal = (theFtab.ReturnValue(theFtab.FindField(fld),newRecno))\n         if (aVal.Is(Number)) then\n          aVa
l = aVal.AsString\n         end\n        lstValues.Add(aVal)\n       end\n       \n    \n       for each val in 0..(lstValues.Count-1)\n        aVal = lstValues.Get(val)\n         if (aVal = \"\") then\n          aVal = \" \"\n           lstValues.Set(val,aVal)\n         end\n       end\n       \n       fldUpdate = MsgBox.MultiInput(\"Note: attributes populated from fields of point theme\",\"ENTER OR EDIT VALUES\",lstLabels,lstValues)\n    \n     if (fldUpdate.Count <> 0) then\n      for each val in 0..(fldUpdate.Count-1)\n       th
eFtab.SetValue(theFtab.FindField(lstFields.Get(val)),newRecNo,fldUpdate.Get(val))\n      end\n     else\n      theFTab.RemoveRecord(newRecNo)\n     end\n\n     theFTab.EndTransaction\n     theFTab.Refresh\n     \nELSE\n theView.GetGraphics.Add(GraphicShape.Make(poly))\nEND\n"
)

(Script.1279
	Name:	"View.Poly.2.Line.C"
	SourceCode:	"'===========================================================\n \n'  Check for the shift key, if the shift key is down, pop up instructions for using this script\n\nif (System.IsShiftKeyDown) then\n  message =\n  \" \"+nl+\n  \" Script Author (Sergei Vystavnoi vsa@uiggm.nsc.ru Origin: )\"+nl+\n  \" \"+nl+\n  \" Brief Instructions:\"+nl+nl+\n  \" Explodes a multi-polygon or Polyline into individual Lines.\"+nl+\n  \" The resulting Lines replace the multi-poly(gon,line)\"+nl+\n  \" and retain its attributes according to user specifica
tions\"+nl+\n  \" This script does create a new shapefile\"+nl+\n  \" Lines break at each vertices\"+nl+\n  \" \"+nl\n'Title here         \n  msgbox.report(message,\"Explodes a multi-polygon into individual polygons\")\n  \n  Clipboard.The.Empty\n  Clipboard.The.Add(message)\n  Clipboard.The.Update\n    \n  MsgBox.Info(\"These instructions were copied to the system clipboard.  To print them, open a text editor\"++\n  \"(like notepad), paste in the contents of the clipboard, and print them from the text editor.\",\"PRINT INSTRUCTIONS
\")\n\n  return nil\nend\n'===========================================================\n\n'This script will break polygon and polyline theme (active theme)\n'into simple node-to-node lines.\n'Sergei Vystavnoi\n'vsa@uiggm.nsc.ru\n'Origin: N54 50' 34\" E83 06' 30\"\n\ntheView = av.GetActiveDoc\ntheFtab = theView.GetActiveThemes.Get(0).GetFtab\nt = theFtab.ReturnValue(theFtab.GetFields.Get(0), 0)\nif (t.GetDimension = 0) then\n  MsgBox.Error(\"Wrong theme! Need Line or Polygon.\", \"Quitting\")\n  return nil\nEnd\nDefaultFN = av.GetPro
ject.GetWorkDir.MakeTmp(\"line\",\"shp\")\nOutFN  = FileDialog.Put( DefaultFN,\"*.shp\",\"Output Shape File\" )\nif (OutFN = nil) then exit end\nOutFN.SetExtension(\"shp\")\nOutFtab = FTab.MakeNew(OutFN, POLYLINE)\nOutFtab.SetEditable(true)\nFldList = theFtab.GetFields.DeepClone\nFldList.Remove(0)\nOutFtab.AddFields(FldList)\nLastField = OutFtab.GetFields.Count-1\n\nav.ShowMsg(\"Exploding...\")\nn = theFtab.GetNumRecords\nFor each aRec in theFtab\n  av.SetStatus(aRec/n*100)\n  theShape = theFtab.ReturnValue(theFtab.GetFields.Get(0), 
aRec).AsList\n  For each aPart in theShape\n    i = 0\n    While (i < (aPart.Count - 1))\n      aPnt1 = aPart.Get(i)\n      aPnt2 = aPart.Get(i+1)\n      NewLine = Polyline.Make({{aPnt1, aPnt2}})\n      NewRec = OutFtab.AddRecord\n      OutFtab.SetValue(OutFtab.GetFields.Get(0), NewRec, NewLine)\n      \n      'Adding attribute information\n        For each aFld in 1..LastField\n          theValue = theFtab.ReturnValue(theFtab.GetFields.Get(aFld), aRec)\n          OutFtab.SetValue(OutFtab.GetFields.Get(aFld), NewRec, th
eValue)\n        End\n      i = i+1\n    End\n  End\nEnd\nav.SetStatus(100)\n\nOutFtab.SetEditable(False)\nOutTheme  = Ftheme.Make(OutFtab)\ntheView.AddTheme(outTheme)\nn = OutFtab.GetNumRecords.AsString\nMsgBox.Info(\"Finished! Created \"+n+\" lines\", \"\")\n\n\n"
)

(Script.1280
	Name:	"View.Poly.2.Point.C"
	SourceCode:	"' File name:  poly2point.ave       \n'\n' Remember, it will take 1 minute to process 25,000 vertexes.\n' If the ID of your shapefile can not be converted to string, you may get wrong result.\n'\n' Author:  Shuai Jiangping\n'          Department of geography\n'          University of Guelph\n'\n' Emai:    jpshuai@hotmail.com\n'          jshuai@uoguelph.ca\n'\n' URL:     shuaijp.friendpages.com\n'          www.geocities.com/shuai_jp\n'\n' Description:  Converts selected Polygon/Polyline to Points to create a new shapefile. 
 \n' If no features are currently selected all Polygon/Polyline will be processed.\n' This script did not check projection. Please use it correctly.\n'\n'\ntheView    = av.GetActiveDoc\nthmThemeIn = theView.GetActiveThemes.Get(0)\n\n' Specify the output shapefile...\n \n  fnDefault = FileName.Make(\"c:\\temp\\\").MakeTmp(\"shape\",\"shp\")\n  fnOutput  = FileDialog.Put( fnDefault,\"*.shp\",\"Output Shape File\" )\n  if (fnOutput = nil) then exit end\n  fnOutput.SetExtension(\"shp\")\n  ftbOutput = FTab.MakeNew( fnOutput, POINT )\n  ftb
Output.AddFields({Field.Make(\"ID\", #FIELD_LONG, 8, 0)})\n  ftbOutput.AddFields({Field.Make(\"New-ID\", #FIELD_LONG, 8, 0)})\n  ftbOutput.AddFields({Field.Make(\"X-Coord\", #FIELD_DECIMAL, 18, 5)})\n  ftbOutput.AddFields({Field.Make(\"Y-Coord\", #FIELD_DECIMAL, 18, 5)})\n\n' Check if having selection\n \n  if (thmThemeIn.GetFTab.GetSelection.Count > 0) then\n      FtbToProcess = thmThemeIn.GetFTab.GetSelection\n      nRecs = FtbToProcess.Count\n    else\n      FtbToProcess = thmThemeIn.GetFTab\n      nRecs = FtbToProcess.GetN
umRecords\n  end\n\n'Get a List of Fieldnames that can be used\n\n  aFields = {}\n   for each f in thmThemeIn.GetFtab.GetFields\n    if ( f.IsTypeNumber ) then\n       aFields.Add(f)\n     end\n   end\n\n' Confirming selection\n\n  thisfield= MsgBox.ListAsString (aFields, \"Available fields in \"++thmThemeIn.AsString, \n             \"Field List\")\n  if (MsgBox.YesNo(\" Are you sure to selecte this field ---> \" ++thisfield.AsString, \n                   \"Field Selection Confirming\", true).Not) then \n  exit \n  end\n\n\n  ftbOutput.
AddFields({Field.Make(thisfield.AsString, #FIELD_DECIMAL, 18, 5)})\n  \n  nCount = 0\n  nRecsAdded = 0\n  newid1 = 0\n\n  thisFtab = thmThemeIn.GetFTab\n  shpFldIn = thmThemeIn.GetFTab.FindField(\"shape\")\n  shpFldOut = ftbOutput.FindField(\"shape\")\n  fldIDOut    = ftbOutput.FindField(\"id\")  \n  fldnewidOut   = ftbOutput.FindField(\"New-ID\")  \n  fldselectedOut = ftbOutput.FindField(thisfield.AsString)  \n  fldselectedIn  = thmThemeIn.GetFTab.FindField(thisfield.AsString)\n  fldXOut  = ftbOutput.FindField(\"X-Coord\")\n  fld
yOut  = ftbOutput.FindField(\"Y-Coord\")\n\n' Processing \n\nfor each rec in FtbToProcess\n\n    nCount = nCount + 1\n     av.SetStatus(nCount * 100/ nRecs)\n     shp = thisFTab.ReturnValue(shpFldIn, rec)\n     selectedvalue = thmThemeIn.GetFTab.ReturnValue(fldselectedIn, rec)\n     id = thisFTab.ReturnValue(fldselectedIn, rec)\n    \n     if (id.Is(String).Not) then\n             id = id.AsString\n     end        ' if id          \n   \n  For each part in shp.AsList\n    For each p in part\n       newid1 = newid1 + 1\n       s
hpNew = Point.Make(p.GetX, p.GetY)\n      nRecNew = ftbOutput.AddRecord\n      ftbOutput.SetValue(shpFldOut,nRecNew,shpNew)\n      ftbOutput.SetValue(fldIDOut,nRecNew,nCount)\n      ftbOutput.SetValue(fldnewidOut,nRecNew,newid1)\n      ftbOutput.SetValue(fldXout,nRecNew,p.GetX)\n      ftbOutput.SetValue(fldYout,nRecNew,p.GetY)\n      ftbOutput.SetValue(fldselectedOut,nRecNew,selectedvalue)\n      nRecsAdded = nRecsAdded + 1\n      \n       end   ' for each p\n    end      ' for each part\n end         ' for each rec\n\na
v.SetStatus(100)\n\n' Report process result\n\nif (nRecsAdded = 0) then\n   MsgBox.Info(\" Unable to convert shapes \", \"Convert Polygon/Polyline to Point\")\n  exit  \n else\n  MsgBox.Info(nRecsAdded.AsString++\"shapes converted.\",\n    \"Convert Polygon/Polyline to Point\")\nend\n\n' Decide next step\n\nif (MsgBox.YesNo(\"Add shapefile as theme to a view?\",\n  \"Convert Polygon/Polyline to PolyLine\", true).Not) then \n  exit \nend\n\n' Create a list of views and allow the user to choose to add theme \n\n  lstViews = {}\n   for each d 
in av.GetProject.GetDocs\n    if (d.Is(View)) then\n      lstViews.Add( d )\n     end\n   end\n  lstViews.Add(\"<New View>\")\n  \n vweAddTo = MsgBox.ListAsString( lstViews,\"Add Theme to:\",  \"Please choose view\" ) \n  \n' Get the specified view, make the new them, and add it to the selected view\n\n if (vweAddTo <> nil) then\n  if (vweAddTo = \"<New View>\") then\n    vweAddTo = View.Make\n    vweAddTo.GetWin.Open\n  end \n  thmNew = FTheme.Make( ftbOutput )\n  vweAddTo.AddTheme( thmNew )\n  vweAddTo.GetWin.Activate\n end\n\n\n\n"
)

(Script.1281
	Name:	"View.Poly.Int.2.Pnt.C"
	SourceCode:	"' Name: view.polyint2pnt \n'\n' Title:  Locate intersections points of polylines or polygon boundaries. \n'\n' Topics:  Analysis\n'\n' Description:  Calculates the location of intersections points of two\n'                themes: polylines and/or polygon. Feature attributes for\n'                both input feature themes are included in the new point\n'                theme attrubute table.\n'\n' Requires:  A ViewGUI Buttonbar button or Menu item\n'\n' Self:  NIL\n'\n' Returns: NIL \n\n'------ snag the themes -------\ntheTit
le = \"Polyline Intersections to Points\"\ntheThemes = av.getActiveDoc.GetThemes\n\nif (theThemes.Count < 2 ) then\n  Return NIL\nend\ntheLineThemes = {}\nfor each thm in theThemes\n  if ((thm.GetFTab.FindField(\"shape\").GetType = #FIELD_SHAPELINE) OR (thm.GetFTab.FindField(\"shape\").GetType = #FIELD_SHAPEPOLY)) then\n    theLineThemes.Add(thm)\n  end\nend\nif (theLineThemes.Count < 2 ) then\n  Return NIL\nend\nthe2Themes = MsgBox.MultiList(theLineThemes,\"Select two polyline themes:\",theTitle)\nif (the2Themes = NIL) then Retur
n NIL end\nif (the2Themes.Count <> 2 )  then\n  Return NIL\nend\nfTab0 = the2Themes.Get(0).GetFTab\nshpFld0 = fTab0.FindField(\"shape\")\n    fList0 = {}\n    for each f in fTab0.GetFields\n      if (f.IsTypeShape.not) then\n        fList0.Add(f.Clone)\n      end\n    end\n    if (fTab0.GetSelection.Count > 0) then\n      colToProc0 = fTab0.GetSelection\n      nRecs0 = colToProc0.Count\n    else\n      colToProc0 = fTab0\n      nRecs0 = colToProc0.GetNumRecords\n    end\nfTab1 = the2Themes.Get(1).GetFTab\nshpFld1 = fTab1.FindFie
ld(\"shape\")\n    fList1 = {}\n    for each f in fTab1.GetFields\n      if (f.IsTypeShape.not) then\n        fList1.Add(f.Clone)\n      end\n    end\n    if (fTab1.GetSelection.Count > 0) then\n      colToProc1 = fTab1.GetSelection\n      nRecs1 = colToProc1.Count\n    else\n      colToProc1 = fTab1\n      nRecs1 = colToProc1.GetNumRecords\n    end\n'------- create a new point theme with fields -------\nfnDefault = FileName.Make(\"$HOME\").MakeTmp(\"shape\",\"shp\")\nfnOutput  = FileDialog.Put( fnDefault,\"*.shp\",\"Output Shape Fil
e\" )\nif (fnOutput = nil) then exit end\nfnOutput.SetExtension(\"shp\")\noutFTab = FTab.MakeNew( fnOutput, POINT )\nidField = Field.Make(\"ID\",#FIELD_DECIMAL,11,0)\noutFTab.AddFields({idField})\noutFTab.AddFields(fList0)\noutFTab.AddFields(fList1)\n\n'------- intersect the shapes -------\nnCount = 0\ntheID = 1\nav.ShowMsg(\"Intersecting Shapes\")\nfor each rec0 in colToProc0\nshp0 = fTab0.ReturnValue(shpFld0,rec0)\n  for each rec1 in colToProc1\n    shp1 = fTab1.ReturnValue(shpFld1,rec1)\n    theMultiPoint = MultiPoint.MakeEmpty
\n    theMultiPoint = shp0.PointIntersection (shp1)\n    outShpFld = outFTab.FindField(\"Shape\")\n    if (theMultiPoint <> NIL) then\n      thePoints = theMultiPoint.AsList\n      for each pnt in thePoints\n        newRec = outFTab.AddRecord\n        outFTab.SetValue(outShpFld, newRec, pnt)\n        outFTab.SetValue(outFTab.FindField(\"ID\"), newRec, theID)\n        theID = theID + 1\n        for each f in 1 .. (fTab0.GetFields.Count-1)\n          theValue = fTab0.ReturnValue(fTab0.GetFields.Get(f),rec0)\n          outFTa
b.SetValue(outFTab.GetFields.Get(f+1),newRec,theValue)\n        end\n        for each f in 1 .. (fTab1.GetFields.Count-1)\n          theValue = fTab1.ReturnValue(fTab1.GetFields.Get(f),rec1)\n          outFTab.SetValue(outFTab.GetFields.Get(f+fTab0.GetFields.Count),newRec,theValue)\n        end\n      end\n    end\n  end\n  nCount = nCount + 1\n  av.SetStatus((nCount / nRecs0) * 100)\nend\nav.ClearStatus\nav.ClearMsg\n    \nif (MsgBox.YesNo(\"Add shapefile as theme to a view?\",\n  theTitle, TRUE).Not) then\n  exit\nend\n\n'- ad
d the new point theme to a view\nlstViews = {}\nfor each d in av.GetProject.GetDocs\n  if (d.Is(View)) then\n    lstViews.Add( d )\n  end\nend\nlstViews.Add(\"<New View>\")\n\nvweAddTo = MsgBox.ListAsString( lstViews,\"Add Theme to:\", theTitle )\nif (vweAddTo <> nil) then\n  if (vweAddTo = \"<New View>\") then\n    vweAddTo = View.Make\n    vweAddTo.GetWin.Open\n  end\n  thmNew = FTheme.Make(outFTab)\n  vweAddTo.AddTheme( thmNew )\n  vweAddTo.GetWin.Activate\nend\n\n\n\n\n"
)

(Script.1282
	Name:	"View.Remove.Vertices"
	SourceCode:	"'===========================================================\n \n'  Check  for the shift key, if the shift key is down, pop up instructions for using this script Removes Unneeded Vertrices from Themes -- Hold Shift & Click This Item for Instructions\n\n\nif (System.IsShiftKeyDown) then\n  message =\n  \" \"+nl+\n  \" Script Author (Unknown)\"+nl+\n  \" \"+nl+\n  \"Brief Instructions:\"+nl+nl+\n  \" Description: Simplifies the shapes in a shapefile that is created from \"+nl+\n\" the selected features for each active polyline or p
olygon theme. This \"+nl+\n\" script is used to generalize, or weed out, vertices  that do not add \"+nl+\n\" to the desired level of detail in the definition of the shape geometry.\"+nl+\n\" A tolerance is specified to check whether or not vertices should be \"+nl+\n\" retained.\"+nl+\n\" \"+nl+\n\" This script is a simple implementation of the Douglas - Peucker \"+nl+\n\" algorithm used in ARC/INFO and PC ARC/INFO.  It should be used as \"+nl+\n\" a button in a View GUI. \"+nl+\n\" \"+nl+\n\" A few thoughts to consider: \"+nl+\n\" \"+nl+\n
\" 1.  The script first creates a new shapefile for selected features of \"+nl+\n\" an active theme. The new shapefile is added to the view. The original \"+nl+\n\" theme is not changed. \"+nl+\n\" \"+nl+\n\" 2.  This script will reduce the quality of the data. Any metadata for \"+nl+\n\" the themes should state that the data has been modified. \"+nl+\n\" \"+nl+\n\" 3.  Results are very dependent on the polygon geometry. Shapes \"+nl+\n\" created from adjacent polygons may no longer be coincident. They \"+nl+\n\" may overlap, or leave
 a sliver. Proceed with caution. \"+nl+\n\" \"+nl+\n\" 4.  Results are very dependent on the polyline geometry. While the \"+nl+\n\" shape endpoints are maintained, interior points may be eliminated. \"+nl+\n\" Other shapes in a network that may begin or end at an interior vertex \"+nl+\n\" may now be dangling. A complex shape may cross itself after being \"+nl+\n\" generalized. Proceed with caution. \"+nl+\n\" \"+nl+\n\" 5.  The only check on the resulting geometry is to be sure a polygon \"+nl+\n\" has not collapsed completely by r
emoving too many vertices. If so, \"+nl+\n\" the shape will revert to the original. \"+nl+\n\" \"+nl+\n\" 6.  This script does not recalculate areas, perimeters, or lengths. \"+nl+\n\" They may have changed as the shapes are simplified. The \"+nl+\n\" View.CalculateFeatureGeometry (calcapl.ave) sample script can be used to \"+nl+\n\" update the values. \"+nl+\n\" \"+nl+\n\" Requires:  A View with at least one active polyline or polygon theme. \"+nl\n'Title here         \n  msgbox.report(message,\"Simplifies a shape\")\n  \n  Clipboard.Th
e.Empty\n  Clipboard.The.Add(message)\n  Clipboard.The.Update\n    \n  MsgBox.Info(\"These instructions were copied to the system clipboard.  To print them, open a text editor\"++\n  \"(like notepad), paste in the contents of the clipboard, and print them from the text editor.\",\"PRINT INSTRUCTIONS\")\n\n  return nil\nend\ntheView = av.GetActiveDoc\n\n'Make sure there are, in fact, active themes.\n\n'if (theView.GetActiveThemes.Count >= 1) then\n    theView = av.GetActiveDoc\n    oldThemeList = theView.GetActiveThemes\n    for 
each oldTheme in oldThemeList\n    oldThemeName = oldTheme.GetName\n    newTheme = oldTheme.Clone\n    newTheme.SetName(\"Clone of\" ++ oldThemeName)\n    theView.AddTheme(newTheme)\n'end\n ' else\n'Name:  Theme.GeneralizeFeatures\n'\n' Title:  Removes unneeded vertices from selected features\n'\n' Topics:  GeoData\n'\n' Description: Simplifies the shapes in a shapefile that is created from \n' the selected features for each active polyline or polygon theme. This \n' script is used to generalize, or weed out, vertices  that
 do not add \n' to the desired level of detail in the definition of the shape geometry.\n' A tolerance is specified to check whether or not vertices should be \n' retained.\n'\n' This script is a simple implementation of the Douglas - Peucker \n' algorithm used in ARC/INFO and PC ARC/INFO.  It should be used as \n' a button in a View GUI. \n'\n' A few thoughts to consider: \n'\n' 1.  The script first creates a new shapefile for selected features of \n' an active theme. The new shapefile is added to the view. The origin
al \n' theme is not changed. \n'\n' 2.  This script will reduce the quality of the data. Any metadata for \n' the themes should state that the data has been modified. \n'\n' 3.  Results are very dependent on the polygon geometry. Shapes \n' created from adjacent polygons may no longer be coincident. They \n' may overlap, or leave a sliver. Proceed with caution. \n'\n' 4.  Results are very dependent on the polyline geometry. While the \n' shape endpoints are maintained, interior points may be eliminated. \n' Other shape
s in a network that may begin or end at an interior vertex \n' may now be dangling. A complex shape may cross itself after being \n' generalized. Proceed with caution. \n'\n' 5.  The only check on the resulting geometry is to be sure a polygon \n' has not collapsed completely by removing too many vertices. If so, \n' the shape will revert to the original. \n'\n' 6.  This script does not recalculate areas, perimeters, or lengths. \n' They may have changed as the shapes are simplified. The \n' View.CalculateFeatureGeom
etry (calcapl.ave) sample script can be used to\n' update the values. \n'\n' Requires:  A View with at least one active polyline or polygon theme. \n'\n' Self:  \n'\n' Returns:  \n\n\n\n 'Get the view and its projection\n\ntheView = av.GetActiveDoc\nthePrj = theView.GetProjection\nif (thePrj.IsNull) then\n  hasPrj = false\nelse\n hasPrj = true\nthePrj = theView.GetProjection\nend\n\n' Get active themes\n\ntheThemes = theView.GetActiveThemes\n\nif (theThemes.Count < 1) then\n  MsgBox.Error(\"Please make a polyline or polygon theme acti
ve\",\"*** Error ***\")\n  exit\nend\n\n' Process each active theme\n\nfor each t in theThemes\n\n  ' Check that the theme is of the correct type\n\n  if (t.Is( FTHEME).Not) then\n    MsgBox.Error (t.GetName++\"is not a polyline or polygon theme\",\"*** Error ***\")\n    continue\n  end\n\n  theClassName = t.GetFTab.GetShapeClass.GetClassName\n  if ((theClassName = \"Polygon\").Not and (theClassName = \"Polyline\").Not) then\n    MsgBox.Error (t.GetName++\"is not a polyline or polygon theme\",\"*** Error ***\")\n    continue\n  end\n\n  ' Get
 a tolerance in (distance units) to be used (must be > 0)\n\n  theTol = 0\n  theMUnits = theView.GetDisplay.GetUnits\n  theDUnits = theView.GetDisplay.GetDistanceUnits\n  theUStr = Units.GetFullUnitString(theDUnits).LCase\n  while ((theTol <= 0) or (theTol.AsString.IsNumber).Not)\n    theTol = MsgBox.Input(\"Positive tolerance value (in \"+theUStr+\n         \") for theme\"++t.GetName,\"Tolerance\",theTol.AsString)\n    if (theTol = NIL) then exit end\n\n    if (theTol.IsNumber) then\n      theTol = theTol.AsNumber\n    end\n 
 end\n  theTol = Units.Convert(theTol,theDUnits,theMUnits)\n\n  ' Get the name for a new theme, from View.Export script\n\n  def = av.GetProject.MakeFileName(\"theme\", \"shp\")\n  def = FileDialog.Put(def, \"*.shp\", \"New file for simplified \"+ t.getName)\n\n  if (def = NIL) then return nil end\n\n  ' Create a new shapefile theme, from View.Export script\n\n  tbl = t.GetFtab\n  shpfld = (tbl.FindField(\"Shape\"))\n  if (shpfld.IsVisible.Not) then\n    shpfld.SetVisible(shpfld.IsVisible.Not)\n    WasNotVisible = TRUE\n  else\n    Wa
sNotVisible =FALSE\n  end\n\n  ' This will only export the selected shapes, if any have been selected\n\n  av.ShowMsg(\"Creating new shape file from\"++ t.GetName)\n  anFTab = tbl.Export(def, Shape, tbl.GetSelection.Count > 0)\n  anFTab.SetEditable(true)\n\n  if (WasNotVisible) then\n    shpfld.SetVisible(FALSE)\n  end\n\n  ' Find the shape field\n\n  theSField = anFTab.FindField(\"Shape\")\n\n  ' Set up status bar\n\n  av.ShowMsg(\"Generalizing new shapes from theme\"++ t.GetName)\n  theSize = anFTab.GetNumRecords\n\n  ' Initialize c
ounters for reporting\n\n  count = 0\n  oldCount = 0\n  newCount = 0\n\n  ' Process each shape\n\n  for each r in anFTab\n\n    av.SetStatus(100*count/theSize)\n\n    ' Retrieve shape\n\n    if (theClassName = \"Polygon\") then\n      theOShape = Polygon.MakeNull\n    else\n      theOShape = Polyline.MakeNull\n    end\n    anFTab.QueryShape(r,theView.GetProjection,theOShape)\n\n    ' Make a list for collecting the new set of point lists\n\n    theNShape = List.Make\n\n    ' Process each list in the ListofListofPoints\n\n    for each p 
in theOShape.AsList\n\n      ' Make a list for collecting the vertices to keep\n\n      theNList = List.Make\n\n      oldCount = oldCount + p.Count\n\n      ' Set up stack for holding a set of lists of form {index,point}\n\n      theStack = Stack.Make\n\n      ' Add first point to the list being assembled, and make it the anchor\n\n      theAnchor = p.Get(0)\n      if (hasPrj) then\n        theNList.Add(theAnchor.ReturnUnProjected(thePrj))\n      else\n        theNList.Add(theAnchor)\n      end\n      aIndex = 0\n\n      ' Add l
ast point to stack\n\n      fIndex = p.Count - 1\n      theStack.Push({fIndex,p.Get(fIndex)})\n\n      ' Process the points with the Douglas - Peucker approach\n\n       while (theStack.IsEmpty.Not)\n\n        ' Process from Anchor (beginning) to Floater (top of stack)\n\n        fIndex = theStack.Top.Get(0)\n\n        ' Create graphic shape for comparing distances\n\n        theVect = Line.Make(theAnchor,theStack.Top.Get(1))\n\n        ' Initialize values for comparison\n\n        theMax = theTol\n        mxIndex = 0\n\n       
 ' Find distance\n\n        for each i in (aIndex + 1) .. (fIndex - 1) ' process middle points\n\n          dist = theVect.Distance(p.Get(i))\n\n          ' Check against previous maximum\n\n          if (dist >= theMax) then  ' this point is out of the tolerance\n            theMax = dist\n            mxIndex = i\n          end\n\n        end\n\n        ' If a vertex is found outside the current tolerance corridor,\n        ' push it onto the stack\n\n        if (mxIndex > 0) then 'a new floater has been found\n          the
Stack.Push({mxIndex,p.Get(mxIndex)})\n        else  ' add floater to the list for the new shape and move forward\n          if (hasPrj) then\n            theNList.Add(theStack.Top.Get(1).ReturnUnProjected(thePrj))\n          else\n            theNList.Add(theStack.Top.Get(1))\n          end\n\n          ' Make the floater the new anchor\n\n          theAnchor = theStack.Pop.Get(1)\n          aIndex = fIndex\n\n        end\n\n      end\n\n      ' Check for collapsed polygons\n\n      if ((theNList.Count < 4) and (theClassName 
= \"Polygon\")) then\n         ' Revert to original polygon\n        if (hasPrj) then\n          theNList = List.Make\n          for each pt in p\n            theNList.Add(pt.ReturnUnProjected(thePrj))\n          end\n        else\n          theNList = p\n        end\n\n      end\n\n      ' Finish up individual lists\n\n      newCount = newCount + theNList.Count\n      theNShape.Add(theNList)\n\n    end\n\n    ' Finish up the shape\n\n    if (theClassName = \"Polygon\") then\n      theNShape = Polygon.Make(theNShape)\n    else\n      t
heNShape = Polyline.Make(theNShape)\n    end\n    anFTab.SetValue(theSField, r, theNShape)\n    count = count + 1\n\n  end\n\n  ' Clear status message\n\n  av.ClearMsg\n  av.ClearStatus\n\n  ' Report on counts of old and new theme\n\n  MsgBox.Info(\"The old theme with\"++ oldCount.AsString ++\n      \"vertices has been generalized to\"++\n        newCount.AsString++\"vertices\",\"Results\")\n\n  ' Create a theme and add it to the View\n\n  anFTab.SetEditable(false)\n  fthm = FTheme.Make(anFTab)\n  theView.AddTheme(fthm)\n\nend\n\n' Bring th
e View to the front\n\ntheView.GetWin.Activate\n\nend\n\n\n"
)

(Script.1283
	Name:	"View.ReturnSelectedGraphicText.C"
	SourceCode:	"'\n'  Name:      View.ReturnSelectedGraphicText\n'\n'  Headline:  Return a data structure containing all selected\n'             graphic text in a view.\n'\n'  SELF:      View\n'\n'  Returns:   List of {graphicText, string, string} lists.\n'             The second element is a unique identifier.\n'             The third element identifies a graphic group:\n'             ungrouped text gets a unique id; all text within a group \n'             gets the same id.  \n'\n'  Called by: Labels.AsShapefile\n' \n'  Date:      20 Jan
uary 2000\n'\n'  Author:    William Huber, Quantitative Decisions\n'\n'  Example:   lstObj = av.Run(\"View.ReturnSelectedGraphicText\", theView)\n'             for each theObj in lstObj\n'                theGraphicText = theObj.Get(0)\n'                strId = theObj.Get(1)\n'                strGroup = theObj.Get(2)\n'             end\n'============================================================================='\nsTitle = Script.The.GetName\ntheView = SELF\n'\n' Find all graphicText objects \n' and graphicGroup objects.\n'
\nlstGraphics = theView.GetGraphics\nlstGText = lstGraphics.FindAllByClass(GraphicText)\nif (lstGText = NIL) then lstGText = {} end\n\nlstGGroup = lstGraphics.FindAllByClass(GraphicGroup)\nif (lstGGroup = NIL) then lstGGroup = {} end\n' \n' Initialize result list and identifier variables.\n'\nlstResult = {}\nnId = 0\nnId.SetFormatPrecision(0)\n'\n' Restrict to visible selected text only.\n'\nfor each theGText in lstGText\n  if (theGText.IsSelected and theGText.IsVisible) then\n    sId = nId.AsString\n    nId = nId + 1\n    lst
Result.Add({theGText, sId, sId})\n  end\nend\nlstGText = NIL\n'\n' Process the visible selected groups.\n'\nstkDo = Stack.Make  ' Will contain GraphicGroups\nfor each theGGroup in lstGGroup\n  if (theGGroup.IsSelected and theGGroup.IsVisible) then\n    sId = nId.AsString\n    nId = nId + 1\n    sPartId = sId\n    sGroupId = sId\n    stkDo.Push({theGGroup, sPartId, sGroupId})\n  end\nend\n\nwhile (stkDo.IsEmpty.Not) \n  lstData = stkDo.Pop\n  theGGroup = lstData.Get(0)\n  sPartId = lstData.Get(1)\n  sGroupId = lstData.Get(2)\n\n  f
or each theGraphic in theGGroup.GetGraphics\n    if (theGraphic.Is(GraphicText)) then\n      sId = nId.AsString\n      nId = nId + 1\n      lstResult.Add({theGraphic, sPartID + \".\" + sId, sGroupId})\n    elseif (theGraphic.Is(GraphicGroup)) then\n      sId = nId.AsString\n      nId = nId + 1\n      stkDo.Push({theGraphic, sPartID + \".\" + sId, sGroupId})\n    end\n  end\nend\n\nreturn lstResult\n' end of script\n"
)

(Script.1284
	Name:	"View.SaveGraphicText"
	SourceCode:	"'===========================================================\n \n'  Check for the shift key, if the shift key is down, pop up instructions for using this script\n\nif (System.IsShiftKeyDown) then\n  message =\n  \" \"+nl+\n  \" Script Author (Unknown)\"+nl+\n  \" \"+nl+\n  \" Brief Instructions:\"+nl+nl+\n  \" This script Saves all Graphic Text\"+nl+\n  \" in active theme.\"+nl+\n  \" The Files are Saved as *.avt\"+nl+\n  \"                                            \"+nl+\n  \"                                            \"+nl+\n  \"      
                                      \"+nl+\n  \"                                            \"+nl+\n  \"                                            \"+nl+\n  \"                                            \"+nl+\n  \"                                            \"+nl+\n  \"                                            \"+nl+\n  \"                                            \"+nl+\n  \"                                             \"+nl\n'Title here         \n  msgbox.report(message,\"Save Graphic Text\")\n  \n  Clipboard.The.Empty\n  Clip
board.The.Add(message)\n  Clipboard.The.Update\n    \n  MsgBox.Info(\"These instructions were copied to the system clipboard.  To print them, open a text editor\"++\n  \"(like notepad), paste in the contents of the clipboard, and print them from the text editor.\",\"PRINT INSTRUCTIONS\")\n\n  return nil\nend\n'===========================================================\n\n\ntheView=av.getactivedoc\n'if (av.getversion<>\"3.1\") then\n'  msgbox.error(\"This script only works under ArcView GIS 3.1.\",\"\")\n'  return(nil)\n'end\n\ndef = a
v.GetProject.MakeFileName(\"text\", \"avt\")\n\ndef = FileDialog.Put(def, \"*.avt\", \"Save Graphic Text\")\nif (def=NIl) then\n  return(nil)\nend\n\nitcanProject=TRUE\nfor each atheme in theView.getthemes\n  if (atheme.canproject.not) then\n    itcanProject=FALSE\n    break\n  end\nend\n\nthegraphics=theview.getgraphics\ntheprojection = theview.getprojection\n\ntextlist={}\nif (theGraphics.hasselected) then\n  for each agraphic in thegraphics.getselected\n    if (agraphic.is(GraphicText)) then\n      textlist.add(agraphic)\n    end\n  en
d\nelse\n  for each agraphic in thegraphics\n    if (agraphic.is(GraphicText)) then\n      textlist.add(agraphic)\n    end\n  end\nend\n\nif (textlist.count = 0) then\n  msgbox.error(\"No graphic text was found.\",\"Exiting\")\n  return(nil)\nend\n\nitwasprojected=FALSE\nif (theprojection.isNull.Not) then\n  itwasprojected=TRUE\n  newtextlist={}\n  for each atxt in textlist\n    newtext=atxt.clone\n    oldpt=atxt.getorigin\n    newpt=oldpt.returnunprojected(theprojection)\n    newtext.setorigin(newpt)\n    newtextlist.add(newtext)\n  
end    \n  textlist=newtextlist\nend\n\noldscale=theview.returnscale\n\nanODB=ODB.make(def)\nanODB.add({textlist, oldscale, itcanproject, itwasprojected})\nanODB.commit\n  "
)

(Script.1285
	Name:	"View.SelectPoint"
	SourceCode:	"theView = av.GetActiveDoc\nr = theView.ReturnUserRect\ntheThemes = theView.GetActiveThemes\nif (r.IsNull) then \n  p = theView.GetDisplay.ReturnUserPoint\n  if (System.IsShiftKeyDown) then\n    op = #VTAB_SELTYPE_XOR\n  else\n    op = #VTAB_SELTYPE_NEW\n  end\n  for each t in theThemes\n    if (t.CanSelect) then\n      t.SelectByPoint(p, op)\n    end\n  end\nelse\n  if (System.IsShiftKeyDown) then\n    op = #VTAB_SELTYPE_OR\n  else\n    op = #VTAB_SELTYPE_NEW\n  end\n  for each t in theThemes\n    if (t.CanSelect) then\n      t.S
electByRect(r, op)\n    end\n  end\nend\nav.GetProject.SetModified(true)"
)

(Script.1286
	Name:	"View.SelectPoint.C"
	SourceCode:	"' Name         zSelectDeluxe.PolygonBoundary\n' File        zSelectPolygonBoundary.txt\n' Application Select Tool Deluxe (zSelectd.avx)\n' Function    Selects features intersecting user drawn polygon boundary\n' Parameters  \n' Returns    \n' Called by\n' Calls to\n' Requires    One or more active feature theme\n' Variables\n' History     (based on ESRI's View.SelectPoint script)\n'             1-99 Howie Sternberg, State of Connecticut, DEP\n' Version     3.1\n' Desc        \n\ntheView = av.GetActiveDoc\ntheThemes = theVi
ew.GetActiveThemes\npg = theView.ReturnUserPolygon\nif (pg.Isnull.Not) then\n  av.UseWaitCursor\n  pl = pg.AsPolyline\n  if (System.IsShiftKeyDown) then\n    op = #VTAB_SELTYPE_OR\n  else\n    op = #VTAB_SELTYPE_NEW\n  end\n  for each t in theThemes\n    if (t.CanSelect) then\n      t.SelectByPolyline(pl, op)\n    end\n  end\n  av.GetProject.SetModified(true)\nend"
)

(Script.1287
	Name:	"View.SetTOCFont"
	SourceCode:	"'===========================================================\n \n'  Check for the shift key, if the shift key is down, pop up instructions for using this script\n\nif (System.IsShiftKeyDown) then\n  message =\n  \" \"+nl+\n  \" Script Author (Unknown)\"+nl+\n  \" \"+nl+\n  \" Brief Instructions:\"+nl+nl+\n  \" This interactive script allows you to change the font\"+nl+\n  \" family, style, and size used in a View's TOC. \"+nl+\n  \" \"+nl+\n  \"                                            \"+nl+\n  \"                                      
      \"+nl+\n  \"                                            \"+nl+\n  \"                                            \"+nl+\n  \"                                            \"+nl+\n  \"                                            \"+nl+\n  \"                                            \"+nl+\n  \"                                            \"+nl+\n  \"                                            \"+nl+\n  \"                                             \"+nl\n'Title here         \n  msgbox.report(message,\"View.SetTOCFont\")\n  \n  Clipboa
rd.The.Empty\n  Clipboard.The.Add(message)\n  Clipboard.The.Update\n    \n  MsgBox.Info(\"These instructions were copied to the system clipboard.  To print them, open a text editor\"++\n  \"(like notepad), paste in the contents of the clipboard, and print them from the text editor.\",\"PRINT INSTRUCTIONS\")\n\n  return nil\nend\n'===========================================================\n\n\n\n\n\n\n\n\n' Name:  View.SetTOCFont\n' \n' Title:  Sets the TOC Font\n'\n' Topics:  Legends\n'\n' Description: This interactive script allows yo
u to change the font\n' family, style, and size used in a View's TOC. This script can be\n' attached to a click event on a control in the View's DocGUI. Note\n' that the font changes are applied to ALL views currently in the project,\n' and any views created after the script is run. \n'\n' The font changes are NOT maintained between ArcView sessions.  You\n' could store the text symbol as an object tag on the project, and\n' restore the symbol when the project is first opened. Adding this\n' request to the bottom of
 this script will store the text symbol\n' as an object tag on the project:\n'\n'-   av.GetProject.SetObjectTag(TOCFont)\n'\n' Restore the symbol by getting the object tag and issuing the request, \n' TOC.SetDefaultSymbol(aSymbol). Include this in a startup script, or in an \n' script run by the user. When using this method views must be reopened to \n' see the TOC drawn with the new font. \n'\n' Requires:  A View must be the active document.\n' \n' Self:    \n'\n' Returns:  \n\ntheFM = FontManager.The\ntheFontlist = theFM.
ReturnFamilies\ntheFont = msgbox.ListAsString (theFontlist,\"Select a Font\", \"Set TOC Font\")\nif (theFont = nil) then\n exit\nend\ntheStyles = theFM.ReturnStyles (theFont)\ntheStyle = msgbox.ListAsString (theStyles,\"Select a Font Style\",\"Set TOC Font\")\nif (theStyle = nil) then exit end\n\ntheSize = msgbox.input(\"Enter a Font Size\",\"Set TOC Font\",\"10\")\nif (theSize = nil) then exit end\nTOCFont = TextSymbol.Make\nTOCFont.SetFont (NFont.Make(TheFont.AsString,TheStyle.AsString))\nTOCFont.SetSize( theSize.AsNumber )\n'Set th
e TOC default text symbol\nTOC.SetDefaultSymbol(TOCFont)\n\n' To see the new font, re-open all views.\nallDocs = av.GetProject.GetDocs\nfor each v in allDocs\n  if (v.is(View) and (v.GetWin.IsOpen)) then\n    'only open views already open or iconized\n    v.GetWin.Close\n    v.GetWin.Open\n  end\nend\n"
)

(Script.1288
	Name:	"View.Shape.2.Graphic.C"
	SourceCode:	"'===========================================================\n \n'  Check for the shift key, if the shift key is down, pop up instructions for using this script\n\nif (System.IsShiftKeyDown) then\n  message =\n  \" \"+nl+\n  \" Script Author (ESRI)\"+nl+\n  \" \"+nl+\n  \" Brief Instructions:\"+nl+nl+\n  \" This script creates a graphic for each selected\"+nl+\n  \" record of the active theme.\"+nl+\n  \" If no selection is made then\"+nl+\n  \" graphics will be made for all features.\"+nl+\n  \"                                          
  \"+nl+\n  \"                                            \"+nl+\n  \"                                            \"+nl+\n  \"                                            \"+nl+\n  \"                                            \"+nl+\n  \"                                            \"+nl+\n  \"                                            \"+nl+\n  \"                                            \"+nl+\n  \"                                             \"+nl\n'Title here         \n  msgbox.report(message,\"Shape to Graphic Convertor\")\n  \n  
Clipboard.The.Empty\n  Clipboard.The.Add(message)\n  Clipboard.The.Update\n    \n  MsgBox.Info(\"These instructions were copied to the system clipboard.  To print them, open a text editor\"++\n  \"(like notepad), paste in the contents of the clipboard, and print them from the text editor.\",\"PRINT INSTRUCTIONS\")\n\n  return nil\nend\n'===========================================================\n' Name:  Graphics.ShapetoGraphic\n'\n' Title:  Shape to Graphic Convertor\n'\n' Topics:  Graphics &  Symbols, Views\n'\n' Description:
  This script creates a graphic for each selected record of \n' the active theme.  If no selection is made, then graphics will be made\n' for all features.\n'\n' Requires:  A View with one active theme\n'\n' Self:  \n'\n' Returns:  \n'\n\n\ntheview       = av.getactivedoc\ntheGraphics   = theview.GetGraphics\ntheProjection = theView.GetProjection\n\nif ( (theView.GetActiveThemes.Count=0) or (theView.GetActiveThemes.Get(0).Is(ITheme)) ) then\n msgbox.error(\"An Active Feature Theme is Required\",\"Exiting\")\n return(nil)\nend\n\nth
eFtab = theView.GetActiveThemes.Get(0).GetFTab\nunselectAll = false\nif (theFTab.GetSelection.Count = 0) then\n  theFtab.GetSelection.SetAll\n  theFtab.UpdateSelection\n  unselectAll = true\nend\n\ntheBit   = theFtab.GetSelection\ntheShapeField = theFtab.FindField(\"Shape\")\n\nfor each x in theBit\n  aShape = theFtab.ReturnValue(theShapeField, x)\n  if (theProjection.IsNull) then \n    aGraphic = GraphicShape.Make(aShape.ReturnProjected(theProjection))\n  else\n    aGraphic = GraphicShape.Make(aShape)\n  end\n  if (aShape.Is(
Polygon)) then\n    aSolidFill = RasterFill.Make\n    aSolidFill.SetStyle(#RASTERFILL_STYLE_SOLID)\n    aGraphic.SetSymbol(aSolidFill)\n  end\n  aGraphic.GetSymbol.SetColor(Color.GetGreen)  \n  theGraphics.addbatch(aGraphic)\nend\n\nif (unselectAll) then\n  theFtab.GetSelection.ClearAll\n  theFtab.UpdateSelection\nend\n\nthegraphics.endbatch\ntheGraphics.Invalidate\n\n\n\n"
)

(Script.1289
	Name:	"View.Shape.Conver.Menu.C"
	SourceCode:	"if (System.IsShiftKeyDown) then\nthetest = 1\nav.run( \"View.Menu.Help.C\", thetest )\nreturn nil\nend\n\n\n\nthetest = 1\ntheMenu = { \"Help\",\"Explodes Ploygons Inside Same Theme\", \"Poly(gon)(line) to Lines\",\"Points 2 Polygons\",\"Poly(gon)(line) to Points\",\"Detect Holes\",\"Detect Intersecting Polygons\",\"Dissect Intersecting Polygons\",\"Sort Shapes from Top2Bottom\",\"Densify Selected Shapes in Edit Theme\"}\ntheMenuChoice = msgbox.ListAsString( theMenu, \"Chose a Menu Item? \", \"Tools\")\nif (theMenuChoice = nil) then exit end\n\n
\n'Help\nif (theMenuChoice = \"Help\") then\nav.run( \"View.Menu.Help.C\", thetest )\nend\n\n'Explodes Ploygons Inside Same Theme\nif (theMenuChoice = \"Explodes Ploygons Inside Same Theme\") then\nav.run( \"View.Explode.Shape.C\", thetest )\nend\n\n'Poly(gon)(line) to Lines\nif (theMenuChoice = \"Poly(gon)(line) to Lines\") then\nav.run( \"View.Poly.2.Line.C\", thetest )\nend\n\n'Points 2 Polygons\nif (theMenuChoice = \"Points 2 Polygons\") then\nav.run( \"View.Points.2.Polygons.C\", thetest )\nend\n\n'Poly(gon)(line) to Points\nif (theMenuCho
ice = \"Poly(gon)(line) to Points\") then\nav.run( \"View.Poly.2.Point.C\", thetest )\nend\n\n'Detect Holes\nif (theMenuChoice = \"Detect Holes\") then\nav.run( \"View.DetectHolesPolygons\", thetest )\nend\n\n'Detect Intersecting Polygons\nif (theMenuChoice = \"Detect Intersecting Polygons\") then\nav.run( \"View.DetectIntersectPolygons\", thetest )\nend\n\n'Theme.Dissect\nif (theMenuChoice = \"Dissect Intersecting Polygons\") then\nav.run( \"Theme.Dissect\", thetest )\nend\n\n'Sort Shapes from Top2Bottom\nif (theMenuChoice = \"Sort Shapes fro
m Top2Bottom\") then\nav.run( \"Theme.Sort.Shape.C\", thetest )\nend\n\n'Densify.Shapes\nif (theMenuChoice = \"Densify Selected Shapes in Edit Theme\") then\nav.run( \"Densify.Shapes\", thetest )\nend\n\n'\nif (theMenuChoice = \"\") then\nav.run( \"\", thetest )\nend\n\n'\nif (theMenuChoice = \"\") then\nav.run( \"\", thetest )\nend\n\n'\nif (theMenuChoice = \"\") then\nav.run( \"\", thetest )\nend\n\n'\nif (theMenuChoice = \"\") then\nav.run( \"\", thetest )\nend\n"
)

(Script.1290
	Name:	"View.Shapes.2.DXF.C"
	SourceCode:	"'Script Name:  View.Shapes2theDXF\n\n'Written By:  ESRI France;  translated and modified by Mel VanderWal\n\n'Application:  View GUI; button or menu item\n'Purpose:  Converts multiple shapefiles and attached text into a DXF file.\n'_________________________________________________________________________________________________\n\n\nScript.The.SetNumberFormat(\"d.dddddddd\")\n\n'Generic Variables\ntheView=av.GetActiveDoc\ntheThemes = theView.GetThemes\ntheActiveThemes = theView.GetActiveThemes\ntheUnits = theView.GetUnits\n\n
\n'Condition Checking\nif (Extension.Find(\"Cad Reader\") = nil) then\n  Extension.Open(\"$AVEXT\\cadview.avx\".AsFilename)\nend\n\nif (theUnits=#UNITS_LINEAR_UNKNOWN) then\n  MsgBox.Error(\"No map units defined.  Please define the map units in the View Properties dialog, and try again.\",\"Map Units Undefined\")\n  theView.Edit\n  return nil\nend\n\nif (theActiveThemes.Count = 0) then\n  MsgBox.Error(\"You must have at least one active feature theme\", \"No Active Themes\")\n  return nil\nend\n\nfor each theTheme in theActiveThemes\n  i
f (theTheme.Is(FTheme).Not) then\n    MsgBox.Error(\"Only feature themes can be converted\", \"Invalid Theme: \"+theTheme.GetName)\n    return nil\n  end\nend\n  \n'Build Color Dictionary\ntheColorDict = Dictionary.Make(10)\ntheColorDict.Add(\"Black\", 0)\ntheColorDict.Add(\"Red\", 1)\ntheColorDict.Add(\"Yellow\", 2)\ntheColorDict.Add(\"Green\", 3)\ntheColorDict.Add(\"Cyan\", 4)\ntheColorDict.Add(\"Blue\", 5)\ntheColorDict.Add(\"Magenta\", 6)\ntheColorDict.Add(\"Dark Gray\", 8)\ntheColorDict.Add(\"Light Gray\", 9)\ntheColorDict.Add(\"Brown\", 34)\n
\n'Determine which themes will have attributes supplied from a field\ntheAttThemes = MsgBox.MultiListAsString(theActiveThemes, \"Select themes which will provide the Layer attribute from their feature table.\"++\n                                        \"The remainder will have the theme name used as their Layer attribute.\", \"Select Themes\")\nif (theAttThemes = nil) then exit end\n\n'Create the DXF File\ntheDXFFilename = FileName.GetCWD.MakeTmp(\"ShpDXF\",\"dxf\")\ntheDXFFilename = FileDialog.Put(theDXFFilename,\"*.dxf\",\"S
elect Output Name and Location for the DXF file\")\nif (theDXFFilename = NIL) then\n  return nil\nelse\n  theLineFile = LineFile.Make(theDXFFilename, #FILE_PERM_WRITE)\nend\n\n'Determine Extent of Themes\ntheRect = Rect.MakeEmpty\nfor each theTheme in theActiveThemes\n  if (theTheme.GetFtab.GetSelection.Count > 0) then\n    theRect = theRect.UnionWith(theTheme.GetSelectedExtent)\n  else\n    theRect = theRect.UnionWith(theTheme.ReturnExtent)\n  end\nend\n\n\n'Create Header Section\ntheLineFile.WriteElt(\"  0\")\ntheLineFile.Write
Elt(\"SECTION\")\ntheLineFile.WriteElt(\"  2\")\ntheLineFile.WriteElt(\"HEADER\")\ntheLineFile.WriteElt(\"  9\")\ntheLineFile.WriteElt(\"$EXTMAX\")\ntheLineFile.WriteElt(\" 10\")\ntheLineFile.WriteElt(theRect.GetRight.asString)\ntheLineFile.WriteElt(\" 20\")\ntheLineFile.WriteElt(theRect.GetTop.asString)\ntheLineFile.WriteElt(\"  9\")\ntheLineFile.WriteElt(\"$EXTMIN\")\ntheLineFile.WriteElt(\" 10\")\ntheLineFile.WriteElt(theRect.GetLeft.asString)\ntheLineFile.WriteElt(\" 20\")\ntheLineFile.WriteElt(theRect.GetBottom.asString)\ntheLineFile.Writ
eElt(\"  9\")\ntheLineFile.WriteElt(\"$LUPREC\")\ntheLineFile.WriteElt(\" 70\")\ntheLineFile.WriteElt(\" 14\")\ntheLineFile.WriteElt(\"  0\")\ntheLineFile.WriteElt(\"ENDSEC\")\n\n'Create Tables Section\ntheLineFile.WriteElt(\"  0\")\ntheLineFile.WriteElt(\"SECTION\")\ntheLineFile.WriteElt(\"  2\")\ntheLineFile.WriteElt(\"TABLES\")\ntheLineFile.WriteElt(\"  0\")\ntheLineFile.WriteElt(\"TABLE\")\ntheLineFile.WriteElt(\"  2\")\ntheLineFile.WriteElt(\"LAYER\")\ntheLineFile.WriteElt(\" 70\")\ntheLineFile.WriteElt(\" 49\")\ntheLineFile.WriteElt(\"  0\")\ntheLineFil
e.WriteElt(\"LAYER\")\ntheLineFile.WriteElt(\"  2\")\ntheLineFile.WriteElt(\"  0\")\ntheLineFile.WriteElt(\" 70\")\ntheLineFile.WriteElt(\"  1\")\ntheLineFile.WriteElt(\" 62\")\ntheLineFile.WriteElt(\"  7\")\ntheLineFile.WriteElt(\"  6\")\ntheLineFile.WriteElt(\"CONTINUOUS\")\nfor each theTheme in theActiveThemes\n  theThemeName = theTheme.GetName.Substitute(\" \",\"_\").Substitute(\".shp\", \"\")\n  theLineFile.WriteElt(\"  0\")\n  theLineFile.WriteElt(\"LAYER\")\n  theLineFile.WriteElt(\"  2\")\n  theLineFile.WriteElt(theThemeName)\n  theLineFile.Writ
eElt(\" 70\")\n  theLineFile.WriteElt(\" 64\")\n  theLineFile.WriteElt(\" 62\")\n  theLineFile.WriteElt(\"  7\")\n  theLineFile.WriteElt(\"  6\")\n  theLineFile.WriteElt(\"CONTINUOUS\")\nend\ntheLineFile.WriteElt(\"  0\")\ntheLineFile.WriteElt(\"ENDTAB\")\ntheLineFile.WriteElt(\"  0\")\ntheLineFile.WriteElt(\"ENDSEC\")\n\n'Create Blocks Section\ntheLineFile.WriteElt(\"  0\")\ntheLineFile.WriteElt(\"SECTION\")\ntheLineFile.WriteElt(\"  2\")\ntheLineFile.WriteElt(\"BLOCKS\")\ntheLineFile.WriteElt(\"  0\")\ntheLineFile.WriteElt(\"ENDSEC\")\n\n'Create Entities S
ection\ntheLineFile.WriteElt(\"  0\")\ntheLineFile.WriteElt(\"SECTION\")\ntheLineFile.WriteElt(\"  2\")\ntheLineFile.WriteElt(\"ENTITIES\")\n\n'Add the features\nfor each theTheme in theActiveThemes\n\n  'Theme Variables\n  theFTab = theTheme.GetFTab\n  theShapeField = theFTab.FindField(\"Shape\")\n  theColorField = theFTab.FindField(\"DXFColor\")\n  theShapeType = theShapeField.GetType\n  \n  if (theAttThemes.FindByValue(theTheme) <> -1) then\n    theFld = MsgBox.ListAsString(theFTab.GetFields, \"Select the field to obtain values from
 for the Layer attribute.\", \"Select Field - \"+theTheme.GetName)\n    if (theFld = nil) then exit end\n  end\n\n  if (theFTab.GetSelection.Count = 0) then\n    theSelection = theFTab\n    theNumRecs = theFTab.GetNumRecords\n  else\n    theSelection = theFTab.GetSelection\n    theNumRecs = theFTab.GetSelection.Count\n  end\n  \n  'Update Status Message\n  av.ShowStopButton\n  av.ShowMsg(\"Exporting\"++theThemeName+\"...\")\n\n  for each theRec in theSelection\n    'Update Status Bar\n    if (av.SetStatus(theRec*100/theNumRecs).Not
) then\n      av.ClearStatus\n      av.ShowMsg(\"Stopped\")\n      return nil\n    end\n\n    'Export the feature\n    theShape = theFTab.ReturnValue(theShapeField,theRec)\n    \n    'Determine Color\n    if (theColorField = nil) then\n      theFeatureColor = 0\n    else\n      theFeatureColor = theColorDict.Get(theFTab.ReturnValue(theColorField,theRec))\n      if (theFeatureColor = nil) then\n        theFeatureColor = 0\n      end\n    end\n    theFeatureColor = theFeatureColor.AsString\n    \n    'Determine Layer attribute\n   
 if (theAttThemes.FindByValue(theTheme) = -1) then\n      theAttribute = theTheme.GetName.Substitute(\" \",\"_\").Substitute(\".shp\", \"\")\n    else\n      theAttribute = theFTab.ReturnValueString(theFld, theRec)\n    end\n    \n    'Add features and attributes\n    if (theShapeType = #FIELD_SHAPEPOINT) then\n\n      'Add Points\n      theX = theShape.GetX.AsString\n      theY = theShape.GetY.AsString\n      theLineFile.WriteElt(\"  0\")\n      theLineFile.WriteElt(\"POINT\")\n      theLineFile.WriteElt(\"  8\")\n      theLineFile.Wr
iteElt(theAttribute)\n      theLineFile.WriteElt(\" 10\")\n      theLineFile.WriteElt(theX)\n      theLineFile.WriteElt(\" 20\")\n      theLineFile.WriteElt(theY)\n      theLineFile.WriteElt(\" 62\")\n      theLineFile.WriteElt(theFeatureColor)\n\n    elseif (theShapeType = #FIELD_SHAPEMULTIPOINT) then\n\n      'Add MultiPoints\n      thePoints = theShape.AsList\n      for each thePoint in thePoints\n        theX = thePoint.GetX.AsString\n        theY = thePoint.GetY.AsString\n        theLineFile.WriteElt(\"  0\")\n        theLine
File.WriteElt(\"POINT\")\n        theLineFile.WriteElt(\"  8\")\n        theLineFile.WriteElt(theAttribute)\n        theLineFile.WriteElt(\" 10\")\n        theLineFile.WriteElt(theX)\n        theLineFile.WriteElt(\" 20\")\n        theLineFile.WriteElt(theY)\n        theLineFile.WriteElt(\" 62\")\n        theLineFile.WriteElt(theFeatureColor)\n      end\n\n    elseif (theShapeType = #FIELD_SHAPELINE) then\n\n      'Add Lines\n      theVertexLists = theShape.AsList\n      for each theVertexList in theVertexLists\n\n        theLineFile.
WriteElt(\"  0\")\n        theLineFile.WriteElt(\"POLYLINE\")\n        theLineFile.WriteElt(\"  8\")\n        theLineFile.WriteElt(theAttribute)\n        theLineFile.WriteElt(\" 62\")\n        theLineFile.WriteElt(theFeatureColor)\n        theLineFile.WriteElt(\" 66\")\n        theLineFile.WriteElt(\"  1\")\n\n        for each theVertex in theVertexList\n          theX = theVertex.GetX.AsString\n          theY = theVertex.GetY.AsString\n          theLineFile.WriteElt(\"  0\")\n          theLineFile.WriteElt(\"VERTEX\")\n          theLin
eFile.WriteElt(\"  8\")\n          theLineFile.WriteElt(theAttribute)\n          theLineFile.WriteElt(\" 10\")\n          theLineFile.WriteElt(theX)\n          theLineFile.WriteElt(\" 20\")\n          theLineFile.WriteElt(theY)\n        end\n        \n        theLineFile.WriteElt(\"  0\")\n        theLineFile.WriteElt(\"SEQEND\")\n        theLineFile.WriteElt(\"  8\")\n        theLineFile.WriteElt(\"0\")\n      end\n\n    elseif (theShapeType = #FIELD_SHAPEPOLY) then\n\n      'Add Polygons\n      theVertexLists = theShape.AsList\n      fo
r each theVertexList in theVertexLists\n\n        theLineFile.WriteElt(\"  0\")\n        theLineFile.WriteElt(\"POLYLINE\")\n        theLineFile.WriteElt(\"  8\")\n        theLineFile.WriteElt(theAttribute)\n        theLineFile.WriteElt(\" 62\")\n        theLineFile.WriteElt(theFeatureColor)\n        theLineFile.WriteElt(\" 66\")\n        theLineFile.WriteElt(\"  1\")\n        theLineFile.WriteElt(\" 10\")\n        theLineFile.WriteElt(\"0.0\")\n        theLineFile.WriteElt(\" 20\")\n        theLineFile.WriteElt(\"0.0\")\n        theLineFil
e.WriteElt(\" 30\")\n        theLineFile.WriteElt(\"0.0\")\n        theLineFile.WriteElt(\" 70\")\n        theLineFile.WriteElt(\"  1\")\n\n        for each theVertex in theVertexList\n          theX = theVertex.GetX.AsString\n          theY = theVertex.GetY.AsString\n          theLineFile.WriteElt(\"  0\")\n          theLineFile.WriteElt(\"VERTEX\")\n          theLineFile.WriteElt(\"  8\")\n          theLineFile.WriteElt(theAttribute)\n          theLineFile.WriteElt(\" 10\")\n          theLineFile.WriteElt(theX)\n          theLineFile.
WriteElt(\" 20\")\n          theLineFile.WriteElt(theY)\n          theLineFile.WriteElt(\" 30\")\n          theLineFile.WriteElt(\"0.0\")\n        end\n        \n        theLineFile.WriteElt(\"  0\")\n        theLineFile.WriteElt(\"SEQEND\")\n        theLineFile.WriteElt(\"  8\")\n        theLineFile.WriteElt(theAttribute)\n      end\n    end\n  end\n  \n  'Export graphic text attached to the theme\n  theIDNum = 0\n  theGraphicList = theTheme.GetGraphics\n  if (theGraphicList.IsEmpty.Not) then\n    theTextList = List.Make\n    for each t
heGraphic in theGraphicList\n      if (theGraphic.Is(GraphicText)) then\n        theTextList.Add(theGraphic)\n      end\n    end\n    theNumGraphics = theTextList.Count\n    \n    'Update Status Message\n    av.ShowStopButton\n    av.ShowMsg(\"Exporting graphic text attached to \"++theThemeName+\"...\")\n\n    for each theGText in theTextList\n      'Update Status Bar\n      theIDNum = theIDNum + 1\n      if (av.SetStatus(theIDNum*100/theNumGraphics).Not) then\n        av.ClearStatus\n        av.ShowMsg(\"Stopped\")\n        retu
rn nil\n      end\n     \n      'Determine text attributes\n      theTextScaleFactor = 0.000235\n      theSize = theGText.GetSymbol.GetSize * theTextScaleFactor * theView.ReturnScale\n      theFont = theGText.GetSymbol.GetFont.GetFamily\n      theStyle = theGText.GetSymbol.GetFont.GetStyle\n      theText = theGText.GetText\n      \n      'Determine Text Placement\n      theGAngle = theGText.GetAngle Mod 360\n      theGPosition = theGText.GetOrigin\n      theGExtent = theGText.GetBounds\n      theGWidth = theGExtent.GetWi
dth\n      if (theGAngle = 0) then\n        theNewGPosition = theGPosition.Clone\n      else\n        theXShift = 0\n        theYShift = 0\n        theGTextFlat = theGText.Clone\n        theGTextFlat.SetAngle(0)\n        theGPositionFlat = theGTextFlat.GetOrigin\n        theGExtentFlat   = theGTextFlat.GetBounds\n        theCosAlpha = theGAngle.AsRadians.Cos\n        theSinAlpha = theGAngle.AsRadians.Sin\n        theGWidthFlat = theGExtentFlat.GetWidth\n        if (theSinAlpha > 0) then\n          theXShift = theGWidthFl
at * theCosAlpha\n          theXShift = theGWidth - theXShift\n        else\n          theYShift = theGWidthFlat * (theGAngle - 180.AsRadians.Sin)\n        end\n        theNewGPosition = Point.Make((theGPosition.GetX+theXShift),(theGPosition.GetY+theYShift))\n      end\n      theLineFile.WriteElt(\"  0\")\n      theLineFile.WriteElt(\"TEXT\")\n      theLineFile.WriteElt(\"  8\")\n      theLineFile.WriteElt(theThemeName)\n      theLineFile.WriteElt(\" 10\")\n      theLineFile.WriteElt(theNewGPosition.GetX.AsString)\n      theLin
eFile.WriteElt(\" 20\")\n      theLineFile.WriteElt(theNewGPosition.GetY.AsString)\n      theLineFile.WriteElt(\" 30\")\n      theLineFile.WriteElt(\"0.0\")\n      theLineFile.WriteElt(\" 40\")\n      theLineFile.WriteElt(theSize.AsString)\n      theLineFile.WriteElt(\" 50\")\n      theLineFile.WriteElt(theGAngle.AsString)\n      theLineFile.WriteElt(\"  1\")\n      theLineFile.WriteElt(theText)\n      theLineFile.WriteElt(\"  7\")\n      theLineFile.WriteElt(theFont++theStyle)\n    end\n  end\nend\n\n'Finish the Entities Section\ntheLin
eFile.WriteElt(\"0\")\ntheLineFile.WriteElt(\"ENDSEC\")\ntheLineFile.WriteElt(\"0\")\ntheLineFile.WriteElt(\"EOF\")\n\n'CleanUp\ntheLineFile.Close\nav.ClearStatus\nav.ClearMsg\n\n'Add the DXF theme to the view\nif (Extension.Find(\"Cad Reader\") = nil) then\n  MsgBox.Info(\"Cad Reader Extension not found.  DXF file created, but cannot add it to the view.\", \"CAD Reader Not Found\")\nelse\n  theTypes = MsgBox.MultiListAsString ({\"Point\", \"Polygon\", \"Line\", \"Annotation\"}, \"Select the feature types to add to the view\", \"Add DXF To View\"
)\n  \n  for each theType in theTypes\n    theSrcName = SrcName.Make (theDXFFilename.AsString++theType)\n    theFTab = FTab.Make(theSrcName)\n    theTheme = FTheme.Make(theFTab)\n    theView.AddTheme(theTheme)\n    theTheme.SetVisible(true)\n  end\nend\n\n\n\n\n\n"
)

(Script.1291
	Name:	"View.Spatial.Tool.Menu.C"
	SourceCode:	"if (System.IsShiftKeyDown) then\nthetest = 1\nav.run( \"View.Menu.Help.C\", thetest )\nreturn nil\nend\n\n\n\nthetest = 1\ntheMenu = {\n\"Help\",\n\"Data Overlay Tool\",\n\"Shape Overlay Tool\",\n\"Find Nearest Features\",\n\"Calculate on a Feature\",\n\"Disolve Shapes by Numeric Field\",\n\"Auto Union Shapes by Field\",\n\"Assign New Values\",\n\"Locate intersections points of polylines or polygon boundaries\",\n\"Spider Diagram\",\"Create Thiessen Polygons\",\n\"Proximity Table\",\n\"Aggregate Data\",\n\"Area Percentage\",\n\"Split Theme by Field Value\",\n\"De
mographics Analysis\"\n}\n\n\ntheMenuChoice = msgbox.ListAsString( theMenu, \"Chose a Menu Item? \", \"Spatial Tool Menu\")\nif (theMenuChoice = nil) then exit end\n\n'Data Overlay Tool\nif (theMenuChoice = \"Data Overlay Tool\") then\nav.run( \"DO.Run\", thetest )\nend\n\n'Help\nif (theMenuChoice = \"Help\") then\nav.run( \"View.Menu.Help.C\", thetest )\nend\n\n'Shape Overlay Tool\nif (theMenuChoice = \"Shape Overlay Tool\") then\nav.run( \"View.Transfer.Features.C\", thetest )\nend\n\n'Find Nearest Features\nif (theMenuChoice = \"Find Nearest Fe
atures\") then\nav.run( \"View.Nearest.C\", thetest )\nend\n\n'Calculate on a Feature\nif (theMenuChoice = \"Calculate on a Feature\") then\nav.run( \"View.Calculate.Feature.C\", thetest )\nend\n\n'Disolve Shapes by Numeric Field\nif (theMenuChoice = \"Disolve Shapes by Numeric Field\") then\nav.run( \"View.Dissolve.Shape.C\", thetest )\nend\n\n'Auto Union Shapes by Field\nif (theMenuChoice = \"Auto Union Shapes by Field\") then\nav.run( \"View.Auto.Union.C\", thetest )\nend\n\n'Assign New Values\nif (theMenuChoice = \"Assign New Values\") the
n\nav.run( \"View.Assign.New.Values.C\", thetest )\nend\n\n'Locate intersections points of polylines or polygon boundaries\nif (theMenuChoice = \"Locate intersections points of polylines or polygon boundaries\") then\nav.run( \"View.Poly.Int.2.Pnt.C\", thetest )\nend\n\n'Spider Diagram\nif (theMenuChoice = \"Spider Diagram\") then\nav.run( \"View.Spider.Diagram.C\", thetest )\nend\n\n\n'Create Thiessen Polygons\nif (theMenuChoice = \"Create Thiessen Polygons\") then\nav.run( \"View.MakePointPolygons\", thetest )\nend\n\n\n'Proximity Table\nif
 (theMenuChoice = \"Proximity Table\") then\nav.run( \"TwoThemeAnalyst.Proximity\", thetest )\nend\n\n'Aggregate Data\nif (theMenuChoice = \"Aggregate Data\") then\nav.run( \"TwoThemeAnalyst.AggData\", thetest )\nend\n\n'Area Percentage\nif (theMenuChoice = \"Area Percentage\") then\nav.run( \"TwoThemeAnalyst.AreaPercent\", thetest )\nend\n\n'Split Theme by Field Value\nif (theMenuChoice = \"Split Theme by Field Value\") then\nav.run( \"View.Split.Theme.C\", thetest )\nend\n\n'Demographics Analysis\nif (theMenuChoice = \"Demographics Analysis\"
) then\nav.run( \"View.Demographics.Analysis.C\", thetest )\nend\n\n'\nif (theMenuChoice = \"\") then\nav.run( \"\", thetest )\nend\n\n"
)

(Script.1292
	Name:	"View.Spider.Diagram.C"
	SourceCode:	"' Name:  View.SpiderDiagram\n' \n' Title:  Create spider diagrams\n' \n' Topics:  Analysis\n' \n' Description:  Creates spider diagrams based on liner distances between\n' the points contained in two point themes.  The Output is a new (spider) \n' theme with distances stored in the FTAB. \n' \n' Requires:  \n' \n' Self:  \n' \n' Returns:  \n\n\nv = av.GetActiveDoc\n\nthemeList = v.GetThemes\nc = Msgbox.Choice (themeList, \"Select a Theme to use for Centers.\", \"Select a Theme\")\np = Msgbox.Choice (themeList, \"Select a Theme to us
e for points.\", \"Select a Theme\")\n\n\nTp = v.FindTheme(p.AsString)\nTc = v.FindTheme(c.AsString)\nProj = v.GetProjection\n\nTpFTab = Tp.GetFTab\nTcFTab = Tc.GetFTab\nShpFldP = Tp.GetFTab.FindField(\"Shape\")\nShpFldC = Tc.GetFTab.FindField(\"Shape\")\n\ncounter = 0\ntotal = Tp.GetFTab.GetNumRecords\nPointList = {}\nDistanceList = {}\n\nfor each r in TpFTab\n  MinDistance = 999999999\n  counter = counter+1\n  shpP = Tp.GetFTab.ReturnValue(ShpFldP, r)\n  Proj.Projectpt(shpP)\n  \n  for each s in TcFTab\n    shpC = Tc.GetFTab.ReturnValu
e(ShpFldC, s)\n    Proj.Projectpt(shpC)\n    dist = shpC.Distance(shpP)\n    if (dist < MinDistance) then\n      MinDistance = dist\n      MinRecord = s.clone\n    end\n  end\n    shpC = Tc.GetFTab.ReturnValue(ShpFldC, MinRecord)\n    Proj.Projectpt(shpC)\n    PointList.Add(shpC)\n    PointList.Add(shpP)\n    DistanceList.Add(MinDistance)\n  av.SetStatus((counter/total) * 100)\nend\n\n\n'make a new theme\n\nclass = PolyLine\ndef = av.GetProject.MakeFileName(\"theme\", \"shp\")\ndef = FileDialog.Put(def, \"*.shp\", \"New Theme\")\n\nif (d
ef <> nil) then\n  tbl = FTab.MakeNew(def, class)\n  fld = Field.Make(\"ID\", #FIELD_DECIMAL, 8, 0)\n  fld2 = Field.Make(\"Distance\", #FIELD_DOUBLE, 8, 0)\n  fld.SetVisible( FALSE )\n  tbl.AddFields({fld})\n  SpiderTheme = FTheme.Make(tbl)\n  v.AddTheme(SpiderTheme)\n  SpiderTheme.SetActive(TRUE)\n  SpiderTheme.SetVisible(FALSE)\n  v.SetEditableTheme(SpiderTheme)\n  av.GetProject.SetModified(true)\nend\n\nthemeList = v.GetThemes\nthemeList.Shuffle( themeList.Get(0), (themeList.Count - 1))\nv.InvalidateTOC ( nil )\n\n\n'Draw the 
spider diagrams\n\ncounter = 0\nln = PointList.Count\n\nfor each num in 1..ln by 2\n  counter = counter+2\n  av.SetStatus((counter/ln) * 100)\n  shpC = PointList.get(num-1)\n  shpP = PointList.get(num)\n  spiderline = PolyLine.make( {{shpC, shpP}} )\n\n  theTheme = v.GetEditableTheme\n\nif (spiderline <> nil) then\n  if (SpiderTheme <> nil) then\n    if (Proj.IsNull.Not) then\n      spiderline = spiderline.ReturnUnprojected(Proj)\n    end\n    theField = SpiderTheme.GetFTab.FindField(\"Shape\")\n    rec = SpiderTheme.GetFTab.Add
Record\n    SpiderTheme.GetFTab.SetValue(theField, rec, spiderline)\n    SpiderTheme.GetFTab.GetSelection.ClearAll\n    SpiderTheme.GetFTab.GetSelection.Set(rec)\n    SpiderTheme.GetFTab.UpdateSelection\n  else\n    gl = GraphicShape.Make(spiderline)\n    v.GetGraphics.UnselectAll\n    gl.SetSelected(TRUE)\n    v.GetGraphics.Add(gl)\n  end\n  av.GetProject.SetModified(true)\nend\nend '(FOR)\n\n\n'Add the distance field and distances to the FTab\n\n'SpiderTheme = v.FindTheme(SpiderTheme.AsString)\ntheFTab = SpiderTheme.GetFTab
\nf1 = Field.Make (\"Distance\",#FIELD_FLOAT,12,2)\ntheFTab.SetEditable(true)\ntheFTab.AddFields ({f1})\n\nDistanceFld = theFTab.FindField(\"Distance\")\nfor each r in theFTab\n  Dist = DistanceList.get(r)\n  theFTab.SetValue (DistanceFld,r,Dist)\nend\n\ntheFTab.SetEditable(false)\nSpiderTheme.SetVisible(true)\n \n  \n  \n\n"
)

(Script.1293
	Name:	"View.Split.Theme.C"
	SourceCode:	"'===========================================================\n \n'  Check for the shift  key, if the shift key is down, pop up instructions for using this script\n\nif (System.IsShiftKeyDown) then\n  message =\n  \" Script Author (Det. Bryan Hill # 3781, PHX PD P&R Bureau - Crime Analysis Unit -- EMAIL: bhill@ci.phoenix.az.us or phoenix_crime@yahoo.com)\"+nl+\n  \" Splits a (Theme / Shape File) into separate (Themes / Shape Files) \"+nl+\n  \" by the a field and a Value the user chooses\"+nl+\n  \" Sets the New Shape File 
Name to The Field Value\"+nl+\n  \" And adds it to a Selected View\"+nl+\n  \" \"+nl+\n  \" \"+nl+\n  \" \"+nl+\n  \" \"+nl+\n  \" \"+nl+\n  \" \"+nl\n'Title here         \n  msgbox.report(message,\"Split Theme By Field Value\")\n \n 'View.Split.Theme.C\n  \n  Clipboard.The.Empty\n  Clipboard.The.Add(message)\n  Clipboard.The.Update\n    \n  MsgBox.Info(\"These instructions were copied to the system clipboard.  To print them, open a text editor\"++\n  \"(like notepad), paste in the contents of the clipboard, and print them from the text editor.
\",\"PRINT INSTRUCTIONS\")\n\n  return nil\nend\n\n\n\n'******************************************* START OF SCRIPT *************************************************\n' Name:         MADCAP Split_ShapeFile_by_Incident\n'\n' Self:         NONE\n'\n' Returns:      NIL\n'\n' Called By:    Button in View GUI\n'\n' Description:  Splits a shape file in the data directory (Active Theme)\n'               into separate shapefiles by the a field the user chooses in the selected View.\n'               Once it splits the data into the uniq
ue field values it makes them into separate shape files, it then asks the\n'               user if he/she wants to add the files back into the current View or just create them on disk.\n'\n' History:      12/21/2000,BEH - Initial write\n'               Created by Det. Bryan Hill # 3781, PHX PD P&R Bureau - Crime Analysis Unit\n'               (602) 262-6543  EMAIL: bhill@ci.phoenix.az.us or phoenix_crime@yahoo.com \n'-------------------------------------------------------------------------------------------------
------------\n'\n'-----------Let the user specify a directory name to put all the new shape files in-----------\n\n\ntheView = av.GetActiveDoc\n\ndefFN = FileName.Merge(FileName.GetCWD.AsString, \"Put Split Themes Here\")\naveDir = FileDialog.Put(defFN, \"~\", \"Choose a Directory for Split Themes Output\")\nif (aveDir = NIL) then return nil end\ntheDataLoc = aveDir.ReturnDir\ntheDataLoc = theDataLoc.AsString\n\n'---------------------Creates a list of all of the Views in the Project --------------------------\ntheViewList = {}
\nfor each v in av.GetProject.GetDocs\n    if (v.Is(View)) then\n        theViewList.Add(v.GetName)\n    end\nend\n\n'---------------------Reports back to the user if no views are found in the project and exits the script --------\nif (theViewList.Count = 0) then\n   MsgBox.Error(\"There are no views in this project!\", \"OOPS!  What happened to the Views silly?\")\n   return nil\nEnd\n\n'-----------------Lets the user select a View from theViewList to use for the following processes ----------------\ntheView2 = MsgBox.ListA
sString(theViewList,\"Select the VIEW you wish to use:\",\"SELECT A VIEW\")\n    if (theView = NIL) then\n       MsgBox.Warning(\"No VIEW Selected!\", \"Can't do anything without a VIEW!\")\n       return nil\n    end\ntheView = av.GetProject.FindDoc(theView2)\n\n'---------------------Creates a list of all of the Themes in the selected View --------------------------\ntheThemeList = theView.GetThemes\n\n'---------------------Reports back to the user if no themes are found in theView --------\nif (theThemeList.Count = 0) then\n
   MsgBox.Error(\"There are no Themes in the \"++theView.AsString+\"!\", \"OOPS!  What happened to the Themes silly?\")\n   return nil\nEnd\n\n'-----------------Lets the user select a theme from theThemeList to use for the following processes ----------------\ntheTheme = MsgBox.Choice(theThemeList,\"Select the THEME you wish Split:\",\"Please Select\")\n    if (theTheme = NIL) then\n       MsgBox.Warning(\"No THEME Selected!\", \"Can't do anything without a THEME!\")\n       return nil\n    end\n     \nTheFTab = theTheme.GetFTab\n\n'
----------------Now that we have the VIEW and the THEME selected, find the fields in the THEME and let user pick it --------\ntheFieldList1 = theFTab.GetFields\ntheFieldList = {}\nfor each F in theFieldList1\nif (F.AsString = \"Shape\") then\n'skip\nelse\ntheFieldList.Add(F)\nend\nend\n\n\n'---------------------Reports back to the user if no Field is found in the theme and exits the script --------\nif (theFieldList.Count = 0) then\n   MsgBox.Error(\"There are no Fields in this theme!\", \"OOPS!  What happened to the Fields s
illy?\")\n   return nil\nEnd\n\n'-----------------Lets the user select a Field Name from theFieldList to use for the following processes ----------------\ntheField = MsgBox.ListAsString(theFieldList,\"Select the Field you wish to use:\",\"Please Select\")\n    if (theField = NIL) then\n       MsgBox.Warning(\"No FIELD Selected!\", \"Can't do anything without a FIELD!\")\n       return nil\n    end\n \n \n \n    \n'----------Now that the FIELD is selected we need to find the Unique Values that are in it ------------------------\n'-
---------This part was provided by Alex.Rodriguez@state.sd.us and THANK YOU Very Much!---------------------------\n'*******************************************************************************\nuniqueList = {}\n\n' Build list of field contents...\nif (theFTab.GetSelection.Count = 0) then\n  theSet = theFTab\nelse\n  theSet = theFTab.GetSelection\nend\n\nfor each rec in theSet\n  uniqueList.Add(theFTab.ReturnValueString(theField, rec))\nend\n\n' Check for errors, remove duplicates, and sort...\nif (uniqueList.Count > 0) 
then\n  uniqueList.RemoveDuplicates \n  uniqueList.Sort(true)\nend\n'*******************************************************************************\n\ntheUniqueList = MsgBox.MultiListAsString(uniqueList,\"Here are the unique values:\",\"Please Select\")\n\n'-------------provide a choice for a new view________________________________________\n \n viewlist = List.Make\n  for each d in av.GetProject.GetDocs\n    if (d.Is(View)) then\n      viewlist.Add(d)\n    end\n  end  'for each d\n       \n  theView = MsgBox.ChoiceAsString(vi
ewlist,\"Add Split Themes to:\", \n                     \"Select a View\")\n  If (theView = nil) then\n  theView = Av.GetActiveDoc\n  end\n'----------Now EXPORT a new ShapeFile for Each Unique Value in the Selected Field ---------------------------\n\nfor each val in theUniqueList\n   theTheme.ClearSelection\n   \n    'theFieldName = theField.AsString\n'    theFieldtype = theField.GetType \n'    if (theField.IsTypeString = True) then\n'    theQuery = \"( [\"+theFieldName+\"] = \"\"\"+val+\"\"\" )\"\n'    end\n'    if (theField.IsTypeNu
mber = True) then\n'    V = Val.AsNumber\n'    theQuery = \"( [theFieldName] = V )\"\n'    end\n'\n   \n   \n   \n   theFieldName = theField.AsString\n   theQuery = \"( [\"+theFieldName+\"] = \"\"\"+val+\"\"\" )\"\n   theBitmap = theFTab.GetSelection\n   theFTab.Query(theQuery,theBitmap,#VTAB_SELTYPE_NEW)\n   theFTab.SetSelection(theBitMap)\n   theFTab.UpdateSelection\n   Vname = val.AsString\n   theFTab.Export ( (\"S - \"+Vname).asFileName, Shape, TRUE )\n\n'-------Make sure you don't leave any records selected -------------------------
----\n   theTheme.ClearSelection\n   \n'------------------Get the new file and add it back in -------------------------\n             \n         theSrcName = SrcName.Make((\"S - \"+Vname+\".shp\").AsString)\n          if (theSrcName = nil) then\n             msgbox.Error( \"Invalid Split Theme Name\", \"\")\n             exit\n          end\n         theSplitTheme = Theme.Make( theSrcName )\n         \n         ' make the theme visible and add it to a view\n         \n         theSplitTheme.SetVisible( true )\n         theView.Ad
dTheme( theSplitTheme )\n         'AddToView.AddTheme( theSplitTheme )\n\n'-----------iF YOU WANT ALL THE ADDED THEMES TO COME IN WITH THE SAME LEGEND - UNREMARK THESE TWO LINES -----\n         SumLegend = theSplitTheme.GetLegend\n         SumLegend.Load((theDataLoc+\"S_\"+val).AsFileName,#LEGEND_LOADTYPE_ALL)\n\n\nend\n\n   return nil\n\n'********************* END OF SCRIPT ***********************************************************************\n\n\n\n"
)

(Script.1294
	Name:	"View.Theme.Snap.Feature.C"
	SourceCode:	"'  *****************************************************************\n'                               Lasse Bannick\n'                        Application development                    \n'  *****************************************************************\n'  Program  : Theme.SnapFeature - version 1.2\n'  Purpose  : To snap existing polygons or polylines to features within the same\n'             or another theme.\n'             Select feature from thmSnapped, which is automatically\n'             snapped to neares
t feature in thmSnapTo.\n'  -----------------------------------------------------------------\n'  Notes    : Associate with a tool as an apply script.\n'\n'             This script does not(!) create new vertices in the snapped\n'             feature. It only snaps existing vertices to other features.\n'\n'             IMPORTANT ! Feature edits can be undone with the context menu choice \n'             'Undo feature edit'.\n'\n'             If thmSnapped = thmSnapTo then the script will temporary \n'             delet
e the snapping shape.\n'             So, backup your shapefiles before using this script.\n'  -----------------------------------------------------------------\n'  History  : Lasse Bannick, Copenhagen, Denmark\n'             10:08 - june 06., 1998 \n'             Rewritten - sep 04., 1989\n'             Rewritten - july 19., 1999\n'             lasseb@vip.cybercity.dk\n'  *****************************************************************\n\nnumSnapTolerance = 0.4    'Could be any real value in mapunits \n              
            'THIS MUST BE DEFINED CORRECTLY IF YOU WANT THE SCRIPT TO RUN PROPERLY\n\n'Definitions\nviwSnap = av.GetProject.FindDoc(\"PutTheNameOfTheViewHere\")      'Name of the view with snapthemes\nthmSnapped = viwSnap.Findtheme(\"PutTheNameOfTheSNAPFROMThemeHere\")  'Theme with features to be snapped, theme MUST be editable\nftbSnapped = thmSnapped.GetFTab\n\nthmSnapTo = viwSnap.Findtheme(\"PutTheNameOfTheSNAPTOThemeHere\")   'Theme to snap to\nthmSnapTo.SetInteractiveSnapTolerance(numSnapTolerance)    \nthmSnapTo.Set
InteractiveSnapping(True)\n\n'Verify themes and get feature to snap from user\nif (viwSnap.GetEditableTheme <> thmSnapped) then\n  'Is theme editable? - should be done by an update script.\n  msgbox.error(\"Theme\" ++ thmSnapped.GetName ++ \"must be editable.\",\"Error\")\n  return nil\nelseif ({Polygon,Polyline}.FindByValue(ftbSnapped.GetShapeClass) = -1) Then\n  'Check feature type\n  msgbox.error(\"Snap theme must be a polygon or polyline theme.\",\n               thmSnapped.GetName ++ \"is a\" ++ ftbSnapped.GetShapeClass.G
etClassName ++ \"theme.\")\n  return nil\nelse\n  'select feature from display\n  thmSnapped.Select\n  if (ftbSnapped.GetNumSelrecords <> 1) Then    'Continue if one and only one are selected\n    return nil\n  else\n    recNo = ftbSnapped.GetSelection.GetNextset(-1)\n    shpToSnap = ftbSnapped.ReturnValue(ftbSnapped.Findfield(\"Shape\"),recNo)\n  end\nend\n\n'Get fields and values for the selected feature (except \"Shape\" field)\n'Put these to a dictionary\n\ndctVal = Dictionary.Make(ftbSnapped.GetFields.Count)\nfor each fldElm
 in ftbSnapped.GetFields\n  if (fldElm.IsTypeShape.Not) Then\n    dctVal.Add(fldElm.getName,ftbSnapped.ReturnValue(fldElm,recNo))\n  end\nend\n'Delete feature to prevent it snapping to itself\nftbSnapped.BeginTransaction\nftbSnapped.RemoveRecord(RecNo)\nftbSnapped.Refresh\n\n'Run through each point in feature and snap it\nlstList = shpToSnap.AsList\nfor each pntList in lstList\n  for each pntElm in pntList\n    thmSnapTo.UserSnapPoint(#POINT_SNAP_BOUNDARY,pntElm)  'Could be any PointSnapEnum\n  end\nend\n\nrecNoNew = ftbSnap
ped.AddRecord\nshpSnapped = shpToSnap.GetClass.Make(lstList)\nftbSnapped.SetValue(ftbSnapped.Findfield(\"Shape\"),recNoNew,shpSnapped)\nfor each strFld in dctVal.ReturnKeys\n  ftbSnapped.SetValue(ftbSnapped.FindField(strFld),recNoNew,dctVal.Get(strFld))\nend\nftbSnapped.EndTransaction\nviwSnap.Invalidate\n\n\n"
)

(Script.1295
	Name:	"View.Theme.Tool.Update.C"
	SourceCode:	"theDoc = self.GetActiveDoc\nenabled = theDoc.Is(View)\nself.GetControlPanel.SetEnabled(enabled)"
)

(Script.1296
	Name:	"View.Toc.Hide.Show.C"
	SourceCode:	"'===========================================================\n \n'  Check for the shift key, if the shift key is down, pop up instructions for using this script\n\nif (System.IsShiftKeyDown) then\n  message =\n  \" \"+nl+\n  \" Script Author(s): 1-99 Howie Sternberg, State of Connecticut, DEP\"+nl+\n  \" \"+nl+\n  \"Brief Instructions:\"+nl+nl+\n  \"1. A click event script for a Menu control in a View DocGUI that \"+nl+\n  \"2. alternately sets the width of the active view's\"+nl+\n  \"3. table of contents to 0 or 150 pixels depend
ing on \"+nl+\n  \"4. whether Hide or Show is passed as the parameter, respectively.\"+nl+\n  \"                                                              \"+nl+\n  \"                                                              \"+nl+\n  \"                                                              \"+nl+\n  \"                                                              \"+nl+\n\n  \"                                                              \"+nl\n'Title here         \n  msgbox.report(message,\"Toggles hiding and showi
ng the view's table of contents (TOC)\")\n  \n  Clipboard.The.Empty\n  Clipboard.The.Add(message)\n  Clipboard.The.Update\n    \n  MsgBox.Info(\"These instructions were copied to the system clipboard.  To print them, open a text editor\"++\n  \"(like notepad), paste in the contents of the clipboard, and print them from the text editor.\",\"PRINT INSTRUCTIONS\")\n\n  return nil\nend\n\n    \ntheView = av.GetActiveDoc\n\nV = theView.GetTOCWidth\n\n\nif (V > 1) then\n  theView.SetTOCWidth(0)\n  exit\nend\n\n\nif (V < 25 ) then\n  theView.Set
TOCWidth(175)\n  exit\nend\n"
)

(Script.1297
	Name:	"View.Toc.Menu.C"
	SourceCode:	"if (System.IsShiftKeyDown) then\nthetest = 1\nav.run( \"View.Menu.Help.C\", thetest )\nreturn nil\nend\n\n\n\nthetest = 1\ntheMenu = { \"Help\",\"Toggle Legend On/Off\", \"Hide/Show TOC\"}\ntheMenuChoice = msgbox.ListAsString( theMenu, \"Chose a Menu Item? \", \"TOC Tools\")\nif (theMenuChoice = nil) then exit end\n\n'Toggle Legend On/Off\nif (theMenuChoice = \"Toggle Legend On/Off\") then\nav.run( \"View.Togle.Legend.C\", thetest )\nend\n\n'Help\nif (theMenuChoice = \"Help\") then\nav.run( \"View.Menu.Help.C\", thetest )\nend\n\n'Hide/Show TOC\nif (
theMenuChoice = \"Hide/Show TOC\") then\nav.run( \"View.Toc.Hide.Show.C\", thetest )\nend\n\n'\nif (theMenuChoice = \"\") then\nav.run( \"\", thetest )\nend\n\n"
)

(Script.1298
	Name:	"View.TOC.Sort"
	SourceCode:	"' Name: Ascending TOC Sort  SortTOC.ave\n'\n' Author: Kenneth R. McVay\n' Date: Wed Aug 12 22:12:38 1998\n' Revised by: \n' Revision Date: \n' Revisions: \n' -------------------------------------------------------------------\n' Description:this script will do an ascending sort on the TOC's for\n' all Views in the current project.\n' Requires: Views with themes\n' Runs: \n' Run by: compile and run or attach to a button or menu item\n' Self: \n' Returns: \n' -----------------------------------------------------------------
--\n\nDEBUG = false\nDEBUGNOT = false\n\ntheViews = av.GetProject.GetDocsWithGUI(av.GetProject.FindGUI(\"View\"))\n\nfor each theView in theViews\n  theThemes = theView.GetThemes\n  NumThemes = theThemes.Count\n\n  for each i in 0..(NumThemes - 2)\n    BestYet = theThemes.Get(i)\n    BestYetIndex = i\n    for each j in (i+1)..(NumThemes - 1)\n      if (theThemes.Get(j).GetName < BestYet.GetName) then\n        BestYet = theThemes.Get(j)\n        BestYetIndex = j\n      end\n    end\n    theThemes.Set(BestYetIndex,theThemes.Get(i)
)\n    theThemes.Set(i, BestYet)\n  end\n  theView.InvalidateTOC(NIL)\nend\n"
)

(Script.1299
	Name:	"View.Togle.Legend.C"
	SourceCode:	"\n\n\n'===========================================================\n \n'  Check for the shift key, if the shift key is down, pop up instructions for using this script\n\nif (System.IsShiftKeyDown) then\n  message =\n  \" \"+nl+\n  \" Script Author (1st Tools -- Andrej TRDIN, april 2000. V 1.0.)\"+nl+\n  \" \"+nl+\n  \"Brief Instructions:\"+nl+nl+\n  \"1. Make all of the themes that you wish to Shrink the Legends of Active. \"+nl+\n  \"2. Click this Menu Option.\"+nl+\n  \"3. The script will then Shrink the Legends each of the Themes y
ou selected \"+nl+\n  \"4. The Legends are still there - just compresed\"+nl+\n  \"5. Very usefull with Legends made with Unique values \"+nl+\n  \"6. Control and Click to Shrink all Legends \"+nl+\n  \"7. Control and Click again To Restore all Legends \"+nl+\n  \" \"+nl+\n  \" \"+nl+\n  \"\"+nl\n\n'Title here         \n  msgbox.report(message,\"Shrink the Legends of Selected Themes\")\n  \n  Clipboard.The.Empty\n  Clipboard.The.Add(message)\n  Clipboard.The.Update\n    \n  MsgBox.Info(\"These instructions were copied to the system clipboar
d.  To print them, open a text editor\"++\n  \"(like notepad), paste in the contents of the clipboard, and print them from the text editor.\",\"PRINT INSTRUCTIONS\")\n\n  return nil\nend\n\nif (System.IsControlKeyDown) then\n  theView = av.GetActiveDoc\n  if (_Lt = True) then\n  for each t in theView.GetThemes\n    t.SetLegendVisible(not (True))\n  end  \n  _Lt = False\n  else\n  for each t in theView.GetThemes\n    t.SetLegendVisible(not (False))\n  end  \n  _Lt = True\n  end\n  \n  \n  \n\nelse\n\ntheView = av.GetActiveDoc\n  for each 
t in theView.GetActiveThemes\n    t.SetLegendVisible(not (t.IsLegendVisible))\n  end\n\n\nend\n\n"
)

(Script.1300
	Name:	"View.Tool.Bar.Menu"
	SourceCode:	"if (System.IsShiftKeyDown) then\nthetest = 1\nav.run( \"View.Menu.Help.C\", thetest )\nreturn nil\nend\n\n\n\nthetest = 1\ntheMenu = { \"Help\",\"Select Tool Bar\", \"\"}\ntheMenuChoice = msgbox.ListAsString( theMenu, \"Chose a Menu Item? \", \"Tools\")\nif (theMenuChoice = nil) then exit end\n\n\n'Help\nif (theMenuChoice = \"Help\") then\nav.run( \"View.Menu.Help.C\", thetest )\nend\n\n'Select Tool Bar\nif (theMenuChoice = \"Select Tool Bar\") then\ntheDialog = av.FindDialog(\"Z-Select Tools\")\ntheDialog.Open\n\n'av.run( \"\", thetest )\nend\n\n'\nif (th
eMenuChoice = \"\") then\nav.run( \"\", thetest )\nend\n\n'\nif (theMenuChoice = \"\") then\nav.run( \"\", thetest )\nend\n\n'\nif (theMenuChoice = \"\") then\nav.run( \"\", thetest )\nend\n\n'\nif (theMenuChoice = \"\") then\nav.run( \"\", thetest )\nend\n\n'\nif (theMenuChoice = \"\") then\nav.run( \"\", thetest )\nend\n\n'\nif (theMenuChoice = \"\") then\nav.run( \"\", thetest )\nend\n\n"
)

(Script.1301
	Name:	"View.Transfer.Features.C"
	SourceCode:	"'===========================================================\n \n'  Check for the shift key, if the shift key is down, pop up instructions for using this script\n\nif (System.IsShiftKeyDown) then\n  message =\n  \" \"+nl+\n  \" Script Author (Unknown)\"+nl+\n  \" \"+nl+\n  \"Brief Instructions:\"+nl+nl+\n  \"1. Transfers features from one theme to another theme of the same feature type. \"+nl+\n  \"2. If field names and field types match, attributes are also transferred. \"+nl+\n  \"3. Transfers selected features or all features if
 none are selected. \"+nl+\n  \"4. Run from a view with at least two themes in it\"+nl\n'Title here         \n  msgbox.report(message,\"TransferFeatures From Theme 2 Theme\")\n  \n  Clipboard.The.Empty\n  Clipboard.The.Add(message)\n  Clipboard.The.Update\n    \n  MsgBox.Info(\"These instructions were copied to the system clipboard.  To print them, open a text editor\"++\n  \"(like notepad), paste in the contents of the clipboard, and print them from the text editor.\",\"PRINT INSTRUCTIONS\")\n\n  return nil\nend\n\n'  View.Transfer
Features\n'  Transfers features from one theme to another theme of the same feature type.\n'  If field names and field types match, attributes are also transferred.\n'  Transfers selected features or all features if none are selected.\n'  Run from a view with at least two themes in it.\n\n'  Get the view and themes\ntheView = av.GetActiveDoc\ntheThemes = theView.GetThemes\n\n'  check for at least two themes\nif(theThemes.Count < 2)then\n  MsgBox.Error(\"You need at least two themes in the View\",\"\")\n  return nil\nend\n\n'  
select the 'from' (source) theme\ntheFromThm = MsgBox.ListAsString(theThemes, \"Select the theme to copy features from:\",\"From Theme\")\nif(theFromThm = NIL)then\n  return nil\nend\nif(theFromThm.Is(FTheme).Not)then\n  MsgBox.Error(theFromThm.GetName.Quote+\" is not a feature theme.\",\"\")\n  return nil \nend\n\n'  make a list of themes with the same feature type\ntheToThemes = {}\nfor each aTheme in theThemes\n  if(aTheme <> theFromThm)then\n    if(aTheme.Is(FTheme))then\n      if(theFromThm.GetFTab.FindField(\"Shape\").GetType
 = aTheme.GetFTab.FindField(\"Shape\").GetType)then\n        theToThemes.Add(aTheme)\n      end\n    end\n  end\nend\n\n'  make sure there's at least one valid 'to' (Destination) theme\nif(theToThemes.IsEmpty)then\n  MsgBox.Error(\"No valid 'To' Themes in the View.  Valid 'To' themes must be the same type (point, line, polygon) as the 'From' Theme . . .\",\"No 'To' Themes\")\n  return nil\nend\n\n'  if there's more than one matching 'to' theme, select the one to use\n'  otherwise, use the one theme as the 'to' theme\nif(theToTh
emes.Count > 1)then\n  theToThm = MsgBox.ListAsString(theToThemes,\"Select the theme to copy features to:\",\"\")\n  if(theToThm = NIL)then\n    return nil\n  end\nelse\n  if(MsgBox.YesNo(theToThemes.Get(0).GetName.Quote+\" is the only valid 'To' theme in this View.\"+NL+NL+\"Use this as the 'To' theme?\",\"\",TRUE))then\n    theToThm = theToThemes.Get(0)\n  else\n    return nil\n  end\nend\n\n'  get the FTabs\ntheFromFTab = theFromThm.GetFTab\ntheToFTab = theToThm.GetFTab\n\n'  put the 'to' FTab in edit mode if it's not already\n'  t
he 'from' theme does not need to be editable\n'  also, there appears to be no problem with having another editable theme in the view\nif(theToFTab.IsEditable.Not)then\n  theToFTab.SetEditable(TRUE)\nend\n\n'  if there's a selection in the 'from' theme, use it\n'  otherwise, use the whole 'from' theme\nif(theFromFTab.GetSelection.Count = 0)then\n  theRecstoAdd = theFromFTab\nelse\n  theRecstoAdd = theFromFTab.GetSelection\nend\n\n'  get a list of fields from the 'from' theme\ntheFromFields = theFromFTab.GetFields\n\n'  trans
fer the features\n'  this checks for matching fields in the 'from' and 'to' themes\n'  and transfers attributes where field names and field types match\n'  since we already know the shape will be transfered (from above),\n'  we should at least get the feature transfered over\nfor each rec in theRecstoAdd\n  newRec = theToFTab.AddRecord\n  for each aFld in theFromFields\n    theToFld = theToFTab.FindField(aFld.GetName)\n    if(theToFld <> NIL)then\n      if(theToFld.GetType = aFld.GetType)then\n        FromValue = theF
romFTab.ReturnValue(aFld, rec)\n        theToFTab.SetValue(theToFld, newRec, FromValue)\n      end\n    end\n  end\nend\n\n'  stop editing the 'to' FTab\ntheToFTab.SetEditable(FALSE)\n      \n"
)

(Script.1302
	Name:	"View.Zblank"
	SourceCode:	"'This script is used only to identify to the Extension Maker that a space is needed on a menu bar or button bar.\n'C-Table Tools\n'Charles Herbold (Hmanfl@lycos.com)\n'please send bug reports to me here\n"
)

(Script.1303
	Name:	"View.CreateAEPFile"
	SourceCode:	"' Name: View.CreateAEPFile\n'\n' Author: David Whiterod <Whiterod.David@saugov.sa.gov.au>\n'         Planning SA, Adelaide, South Australia <www.planning.sa.gov.au>\n' Date: 10/12/1998  Original Code\n' Revised by: \n' Revision Date: \n' Revisions: \n' -------------------------------------------------------------------\n' Description: Creates an ArcExplorer project file from an existing ArcView view\n' Requires: A ArcView view with themes in it\n' Runs: \n' Run by: View click event\n' Returns: Nothing\n' ----------------
---------------------------------------------------\n' Notes:\n'\n' ArcExplorer Limitations\n' -----------------------\n' * Currently ArcExplorer can handle themes that use legend types dot or chart\n'\n' My Limitations\n' --------------\n' * I don't know the aep syntax for SDE layers so these have not been supported\n' * View2aep doesn't turn on the scalebar or overview map as I can't find any documentation\n'   as to how these are stored in the aep file structure.\n' * Much of my knowledge of the aep file structure c
ome from trial and error if anyone could\n'   supply a complete audit of the structure I would be most grateful.\n'\n\ntheProject = av.GetProject\ntheView = av.GetActiveDoc\n\nif (theView.GetThemes.Count = 0) then\n  MsgBox.Warning(\"Your view must have some themes in order to create an aep file\",\"\")\n  return nil\nend\n\ntheAEPFileName = FileDialog.Put(\"view2aep.aep\".AsFileName, \"*.aep\", \"Choose a File Name\")\n\nif (theAEPFileName = nil) then\n  return nil\nend\n\nif (File.IsWritable(theAEPFileName).Not) then\n  MsgBox.Error(
\"You do not have write access to\" ++ theAEPFileName.AsString,\"\")\n  return nil\nend\n\ntheAEPFile = LineFile.Make(theAEPFileName, #FILE_PERM_WRITE)\n\n' **************************\n' [ARCEXPLORER] SECTION\n\ntheAEPFile.WriteElt(\"[ARCEXPLORER]\")\ntheAEPFile.WriteElt(\"VERSION=1.2.0\")\ntheAEPFile.WriteElt(\"DISPLAYOVERVIEW=0\")\ntheAEPFile.WriteElt(\"DISPLAYSCALEBAR=0\")\ntheAEPFile.WriteElt(\"DISPLAYEXPLORER=1\")\ntheAEPFile.WriteElt(\"\")\n\n' **************************\n' [MAP] SECTION\n\ntheAEPFile.WriteElt(\"[MAP]\")\n\n' Ensure view i
t projected etc\n\ntheExt = theView.GetDisplay.ReturnVisExtent\ntheLeft = theExt.GetLeft\ntheLeft.SetFormat(\"d.dd\") \ntheRight = theExt.GetRight\ntheRight.SetFormat(\"d.dd\") \ntheTop = theExt.GetTop\ntheTop.SetFormat(\"d.dd\") \ntheBottom = theExt.GetBottom\ntheBottom.SetFormat(\"d.dd\") \n\n'Order: Left, Right, Top, Bottom\ntheAEPFile.WriteElt(\"EXTENT=\"+theLeft.AsString + \",\" + theRight.AsString + \",\" + theTop.AsString + \",\" + theBottom.AsString)\n\n' Make the back color white\ntheColor = av.Run(\"Util.RGB2LongInt\",{255,255,255
})\ntheAEPFile.WriteElt(\"BACKCOLOR=\" + theColor)\n\n\ntheAEPFile.WriteElt(\"BORDERSTYLE=0\")\n\ntheAEPFile.WriteElt(\"CANCELACTION=1\")\n\ntheAEPFile.WriteElt(\"SCROLLBARS=False\")\n\ntheAEPFile.WriteElt(\"3D=1\")\n\n' Count the number of themes in the view\ntheLayerCount = theView.GetThemes.Count\ntheAEPFile.WriteElt(\"LAYERCOUNT=\" + theLayerCount.AsString)\n\n' Set the first active theme to be the active one\nif (theView.GetActiveThemes.Count = 0) then\n  theActiveTheme = \"\"\nelse\n  theActiveTheme = theView.GetActiveThemes.Get(0).Ge
tName\nend\ntheAEPFile.WriteElt(\"ACTIVETHEME=\" + theActiveTheme)\n\n' Get the selection color from the current project\ntheSelRGB = theProject.GetSelColor.GetRGBList\ntheColor = av.Run(\"Util.RGB2LongInt\",{theSelRGB.Get(0),theSelRGB.Get(1),theSelRGB.Get(2)})\ntheAEPFile.WriteElt(\"SELECTCOLOR=\" + theColor)\ntheAEPFile.WriteElt(\"\")\n\n' **************************\n' [MAPLAYERn] SECTION\nLayerNumber = 0\nfor each theTheme in theView.GetThemes\n\n  theAEPFile.WriteElt(\"[MAPLAYER\" + LayerNumber.AsString + \"]\")\n\n  ' ThemeType: 0
 - SHAPEFILE, 1 = AICOVERAGE, 2 = SDE Layer, 3 = Image\n  theSrcName = theTheme.GetSrcName\n  theDataSource = theSrcName.GetDataSource \n  theFileName = theSrcName.GetFileName\n  theSubName = theTheme.GetSrcName.GetSubName\n  ' SubName is the feature class: region.subclass, route.subclass, annotation.subclass, annotation, polygon, arc, or point.\n \n  ' Shapefile\n  if (theDataSource.Contains(\".shp\")) then\n    'its a shapefile\n    theBase = \"0\"\n    theAEPFile.WriteElt(\"WORKSPACE=\" + theSrcName.GetFileName.ReturnDir
.AsString)\n    theAEPFile.WriteElt(\"BASE=\" + theBase + \",\" + theFileName.GetBaseName.AsString + \",\" + theTheme.GetName)\n\n  ' Coverage\n  elseif (Coverage.Exists(theFileName.AsString)) then\n    'its a coverage\n    \n    if ((theSubName.UCase = \"POINT\") OR (theSubName.UCase = \"polygon\")) then\n      theCovFile = \"pat.adf\".Unquote\n    elseif (theSubName.UCase = \"ARC\") then\n      theCovFile = \"aat.adf\".Unquote\n    else\n      MsgBox.Warning(\"It can't handle the feature class\" ++ theSubName,\"\")\n    end\n    \n    theB
ase = \"1\"\n    theAEPFile.WriteElt(\"WORKSPACE=[arc]\" + theSrcName.GetFileName.ReturnDir.AsString)\n    theAEPFile.WriteElt(\"BASE=\" + theBase + \",\" + theFileName.AsString +\n                        \"\\\" + theCovFile + \",\" + theTheme.GetName)    \n  ' Image\n  elseif (theTheme.Is(ITheme)) then\n    if (theTheme.GetImgSrc.Is(ISrc)) then\n      'its an image not an image catalog\n      theBase = \"3\"\n      theAEPFile.WriteElt(\"WORKSPACE=\" + theSrcName.GetFileName.ReturnDir.AsString)\n      theAEPFile.WriteElt(\"BASE=\" + th
eBase + \",\" + theFileName.GetBaseName.AsString + \",\" + theTheme.GetName)\n    end\n    \n  ' currently doesn't check for SDE layers\n  \n  else 'its a library or someother coverage - we can't use these\n    MsgBox.Info(theTheme.Getname + \" has been excluded\",\"\")\n  end\n   \n  theLegend = theTheme.GetLegend\n  \n  if (theLegend.Is(ImageLegend).Not) then\n  \n    theLegType = theLegend.GetLegendType\n    theClassifications = theLegend.GetClassifications \n    theSymbols = theLegend.GetSymbols\n         \n    theAEPSym = av.R
un(\"Util.DecodeSymbol\",theSymbols.Get(0))\n    theAEPFile.WriteElt(\"SYMBOL=\" + theAEPSym)\n      \n    theAEPRender = \"\"\n   \n    if (theLegType = #LEGEND_TYPE_SIMPLE) then\n      ' Simple Legend \n      theAEPRenderType = 0\n    elseif (theLegType = #LEGEND_TYPE_UNIQUE) then\n      ' Unique Value \n      theAEPRenderType = 1\n           \n      for each i in 0..theLegend.GetNumClasses\n      \n        theClass = theClassifications.Get(i)\n        theSym = theSymbols.Get(i)\n        \n        theAEPSym = av.Run(\"Util.Decod
eSymbol\",theSym)     \n\n        if (theClass.IsNoData.Not) then       \n          theAEPRender = theAEPRender + theClass.GetLabel + \":\" + theAEPSym + \"|\"\n        end ' (theClass.IsNoData.Not) then\n              \n      end ' for each i in 0..theLegend.GetNumClasses\n      \n      theAEPRender = theAEPRender.BasicTrim (\"\",\"|\")\n\n      'MsgBox.info(theAEPRender,\"render\")\n      \n      theAEPFile.WriteElt(\"RENDERERTYPE=\" + theAEPRenderType.AsString)\n      \n    elseif (theLegType = #LEGEND_TYPE_COLOR) then\n      ' Cla
ss Breaks\n      theAEPRenderType = 2\n      theAEPFile.WriteElt(\"RENDERERTYPE=\" + theAEPRenderType.AsString)\n\n      'Renderer Type,Break Count,Start Color,End Color,Start size,End Size\n      theClassCount = theLegend.GetNumClasses\n      \n      theSelRGB = theSymbols.Get(0).GetColor.GetRGBList\n      startColor = av.Run(\"Util.RGB2LongInt\",{theSelRGB.Get(0),theSelRGB.Get(1),theSelRGB.Get(2)})\n      \n      theSelRGB = theSymbols.Get(theClassCount - 1).GetColor.GetRGBList\n      endColor = av.Run(\"Util.RGB2LongInt
\",{theSelRGB.Get(0),theSelRGB.Get(1),theSelRGB.Get(2)})\n            \n      theAEPRender = theClassCount.AsString + \",\" + startColor + \",\" + endColor + \",1,\" + theClassCount.AsString\n                 \n    else\n      MsgBox.Warning(\"It can't handle this legend type\" ++ theLegType.AsString,\"\")\n    end\n  \n    if ((theAEPRenderType = 1) OR (theAEPRenderType = 2)) then\n      theAEPFile.WriteElt(\"RENDERERFIELD=\" + theLegend.GetFieldNames.Get(0).UCase)\n    end\n    \n    theAEPFile.WriteElt(\"RENDERER=\" + theAEPRender
)\n    theAEPFile.WriteElt(\"REMOUTLINE=0\")\n  \n  end ' if (theLegend.Is(ImageLegend).Not) then\n  \n  if (theTheme.IsVisible) then\n    theVis = 1\n  else\n    theVis = 2\n  end 'if (theTheme.IsVisible) then\n  \n  theAEPFile.WriteElt(\"VISIBLE=\" + theVis.AsString)\n  \n  if (theTheme.GetThreshold.IsMaximumOn) then\n    theMax = theTheme.GetThreshold.GetMaximum\n  else\n    theMax = 0\n  end\n\n  if (theTheme.GetThreshold.IsMinimumOn) then\n    theMin = theTheme.GetThreshold.GetMinimum\n  else\n    theMin = 0\n  end\n\n  theAEPFile
.WriteElt(\"SCALEFACTORS=\" + theMin.AsString + \",\" + theMax.AsString)\n  \n  ' Set maptip field to be the theme's label field if there is one\n  theMapTipField = \"\"\n  if (theTheme.CanLabel) then\n    theMapTipField = theTheme.GetLabelField.GetName\n  end\n  theAEPFile.WriteElt(\"MAPTIPFIELD=\" + theMapTipField)\n  \n  theAEPFile.WriteElt(\"\")\n\n  LayerNumber = LayerNumber + 1\n  \nend ' for each theTheme in theView.GetThemes\n\nav.ShowMsg(\"Finished writing to\" ++ theAEPFile.GetName)\n\n\n"
)

(Script.1304
	Name:	"Z.SelectDeluxe.CircleBoundaryTool"
	SourceCode:	"' Name        zSelectDeluxe.CircleBoundaryTool\n' File        zSelectBoundaryTool.txt\n' Application Select Tool Deluxe (zSelectd.avx)\n' Function    Selects features intersecting user drawn circle perimeter\n' Parameters  \n' Returns    \n' Called by\n' Calls to\n' Requires    one or more active feature theme\n' Variables\n' History     (based on ESRI's View.SelectPoint script)\n'             1-99 Howie Sternberg, State of Connecticut, DEP\n' Version     3.1\n' Desc        \n\ntheView = av.GetActiveDoc\ntheThemes = theVie
w.GetActiveThemes\nc = theView.ReturnUserCircle\nif (c.Isnull.Not) then\n  av.UseWaitCursor\n  pl = c.AsPolygon.AsPolyline\n  if (System.IsShiftKeyDown) then\n    op = #VTAB_SELTYPE_OR\n  else\n    op = #VTAB_SELTYPE_NEW\n  end\n  for each t in theThemes\n    if (t.CanSelect) then\n      t.SelectByPolyline(pl, op)\n    end\n  end\n  av.GetProject.SetModified(true)\nend"
)

(Script.1305
	Name:	"Z.SelectDeluxe.CircleDonutTool"
	SourceCode:	"' Name        zSelectDeluxe.CircleDonutTool\n' File        zSelectCircleDonutTool.txt\n' Application Select Tool Deluxe (zSelectd.avx)\n' Function    Selects features within donut shape made from user drawn circle\n' Parameters  \n' Returns    \n' Called by\n' Calls to\n' Requires    One or more active feature theme. View with map units set.\n' Variables\n' History     1-99 Howie Sternberg, State of Connecticut, DEP\n' Version     3.1\n' Desc        Buffers a user drawn circle and selects features in active themes \n' w
ithin the resulting (donut) polygon. Buffered distance is entered in a MsgBox\n' in map units or in distance units if they are also set. View's map units must\n' be set.\n\ntheView = av.GetActiveDoc\ntheThemes = theView.GetActiveThemes\n\n' Exit if no Map Units\n\ntheMapUnits = theView.GetDisplay.GetUnits\nif (theMapUnits = #UNITS_LINEAR_UNKNOWN) then\n  Msgbox.Warning(\"Map units unknown.  Set the View's map units.\"+NL+NL+\"To specify the buffer distance in units other than map units (for example, in miles), also set t
he View's distance units.\",\"\")\n  return NIL\nend\n\n' Draw circle\n\nc = theView.GetDisplay.ReturnUserCircle\n\n' Set selection type option\n\nif (System.IsShiftKeyDown) then\n  op = #VTAB_SELTYPE_OR\nelse\n  op = #VTAB_SELTYPE_NEW\nend\n\n' If Distance Units are set, prepare to convert to Map Units   \n\nconvert = TRUE\ntheDistUnits = theView.GetDisplay.GetDistanceUnits\nif (theDistUnits = #UNITS_LINEAR_UNKNOWN) then\n  theDistUnits = theMapUnits\n  convert = FALSE\nend\n\n' Enter distance\n\ntheUnit = theDistUnits.AsString.AsToken
s(\"_\").Get(2).lcase\ntheMsg = \"Enter buffer distance in\"++theUnit+\".\"\ntheTitle = \"Select Within Donut\"\ntheDist = msgbox.Input(theMsg,theTitle,0.AsString)\nif (theDist = NIL) then\n  return NIL\nend\n\n' If in Distance Units, convert to Map Units\n\nif (theDist.IsNumber) then\n  if (theDist.AsNumber <> 0) then  \n    if (convert) then\n      d = Units.Convert(theDist.AsNumber.Abs,theDistUnits,theMapUnits)\n    else\n      d = theDist.AsNumber.Abs\n    end\n  else\n    Msgbox.Warning(\"Buffer distance must not be equal to zer
o (0).\",\"\")\n    return NIL\n  end\nelse\n  Msgbox.Warning(\"Buffer distance must be a number.\",\"\")\n  return NIL\nend\n\n' Exit if buffer > radius\n\nif (d > c.GetRadius) then\n  Msgbox.Warning(\"Buffer distance is larger than radius.\",\"\")\n  return NIL\nend\n  \n' Make donut, select, flash\n\nif (c.Isnull.Not) then\n  av.UseWaitCursor\n  pl = c.AsPolygon.AsPolyline\n  plbuf = pl.ReturnBuffered(d)\n  pg = plbuf.asPolygon\n  for each t in theThemes\n    if (t.CanSelect) then\n      t.SelectByPolygon(pg, op)\n    end\n  end\n  theSym= R
asterFill.Make\n  theSym.SetStyle(#RASTERFILL_STYLE_EMPTY)\n  theView.GetDisplay.FlashShape(pg,theSym,50,2)\n  av.GetProject.SetModified(true)\nend"
)

(Script.1306
	Name:	"Z.SelectDeluxe.CircleTool"
	SourceCode:	"' Name        zSelectDeluxe.CircleTool\n' File        zSelectCircleTool.txt\n' Application Select Tool Deluxe (zSelectd.avx)\n' Function    Selects features within user drawn circle\n' Parameters  \n' Returns    \n' Called by\n' Calls to\n' Requires    one or more active feature theme\n' Variables\n' History     (based on ESRI's View.SelectPoint script)\n'             1-99 Howie Sternberg, State of Connecticut, DEP\n' Version     3.1\n' Desc        \n\ntheView = av.GetActiveDoc\ntheThemes = theView.GetActiveThemes\nc = theV
iew.ReturnUserCircle\nif (c.Isnull.Not) then\n  av.UseWaitCursor\n  pg = c.AsPolygon\n  if (System.IsShiftKeyDown) then\n    op = #VTAB_SELTYPE_OR\n  else\n    op = #VTAB_SELTYPE_NEW\n  end\n  for each t in theThemes\n    if (t.CanSelect) then\n      t.SelectByPolygon(pg, op)\n    end\n  end\n  av.GetProject.SetModified(true)\nend"
)

(Script.1307
	Name:	"Z.SelectDeluxe.LineBufferBoundaryTool"
	SourceCode:	"' Name        zSelectDeluxe.LineBufferBoundaryTool\n' File        zSelectLineBufferBoundaryTool.txt\n' Application Select Tool Deluxe (zSelectd.avx)\n' Function    Selects features intersecting boundary of buffered user drawn line\n' Parameters  \n' Returns    \n' Called by\n' Calls to\n' Requires    One or more active feature theme. View with map units set.\n' Variables\n' History     1-99 Howie Sternberg, State of Connecticut, DEP\n' Version     3.1\n' Desc        Buffers a user drawn line and selects features in act
ive themes \n' intersecting the buffer polyline. Buffered distance is entered in a MsgBox\n' in map units or in distance units if they are also set. View's map units must\n' be set.\n\ntheView = av.GetActiveDoc\ntheThemes = theView.GetActiveThemes\n\n' Exit if no Map Units\n\ntheMapUnits = theView.GetDisplay.GetUnits\nif (theMapUnits = #UNITS_LINEAR_UNKNOWN) then\n  Msgbox.Warning(\"Map units unknown.  Set the View's map units.\"+NL+NL+\"To specify the buffer distance in units other than map units (for example, in miles),
 also set the View's distance units.\",\"\")\n  return NIL\nend\n\n' Draw line\n\nl = theView.GetDisplay.ReturnUserLine\n\n' Set selection type option\n\nif (System.IsShiftKeyDown) then\n  op = #VTAB_SELTYPE_OR\nelse\n  op = #VTAB_SELTYPE_NEW\nend\n\n' If Distance Units are set, prepare to convert to Map Units   \n\nconvert = TRUE\ntheDistUnits = theView.GetDisplay.GetDistanceUnits\nif (theDistUnits = #UNITS_LINEAR_UNKNOWN) then\n  theDistUnits = theMapUnits\n  convert = FALSE\nend\n\n' Enter distance\n\ntheUnit = theDistUnits.AsString.
AsTokens(\"_\").Get(2).lcase\ntheMsg = \"Enter buffer distance in\"++theUnit+\".\"\ntheTitle = \"Select Buffered Line Boundary\"\ntheDist = msgbox.Input(theMsg,theTitle,0.AsString)\nif (theDist = NIL) then\n  return NIL\nend\n\n' If in Distance Units, convert to Map Units\n\nif (theDist.IsNumber) then\n  if (theDist.AsNumber <> 0) then  \n    if (convert) then\n      d = Units.Convert(theDist.AsNumber.Abs,theDistUnits,theMapUnits)\n    else\n      d = theDist.AsNumber.Abs\n    end\n  else\n    Msgbox.Warning(\"Buffer distance must no
t be equal to zero (0).\",\"\")\n    return NIL\n  end\nelse\n  Msgbox.Warning(\"Buffer distance must be a number.\",\"\")\n  return NIL\nend\n\n' Buffer, make polyline, select, flash\n\nif (l.Isnull.Not) then\n  av.UseWaitCursor\n  pg = l.ReturnBuffered(d)\n  pl = pg.AsPolyline\n  for each t in theThemes\n    if (t.CanSelect) then\n      t.SelectByPolyline(pl, op)\n    end\n  end\n  theSym = Symbol.Make(#SYMBOL_PEN)\n  theView.GetDisplay.FlashShape(pl,theSym,50,2)\n  av.GetProject.SetModified(true)\nend"
)

(Script.1308
	Name:	"Z.SelectDeluxe.LineBufferTool"
	SourceCode:	"' Name        zSelectDeluxe.LineBufferTool\n' File        zSelectLineBufferTool.txt\n' Application Select Tool Deluxe (zSelectd.avx)\n' Function    Selects features within polygon maded from buffered user drawn line\n' Parameters  \n' Returns    \n' Called by\n' Calls to\n' Requires    One or more active feature theme. View with map units set.\n' Variables\n' History     1-99 Howie Sternberg, State of Connecticut, DEP\n' Version     3.1\n' Desc        Buffers a user drawn line and selects features in active themes \n' w
ithin the buffer polygon. Buffered distance is entered in a MsgBox in map units\n' or in distance units if they are also set. View's map units must be set.\n\ntheView = av.GetActiveDoc\ntheThemes = theView.GetActiveThemes\n\n' Exit if no Map Units\n\ntheMapUnits = theView.GetDisplay.GetUnits\nif (theMapUnits = #UNITS_LINEAR_UNKNOWN) then\n  Msgbox.Warning(\"Map units unknown.  Set the View's map units.\"+NL+NL+\"To specify the buffer distance in units other than map units (for example, in miles), also set the View's dis
tance units.\",\"\")\n  return NIL\nend\n\n' Draw line\n\nl = theView.GetDisplay.ReturnUserLine\n\n' Set selection type option \n\nif (System.IsShiftKeyDown) then\n  op = #VTAB_SELTYPE_OR\nelse\n  op = #VTAB_SELTYPE_NEW\nend\n\n' If Distance Units are set, prepare to convert to Map Units   \n\nconvert = TRUE\ntheDistUnits = theView.GetDisplay.GetDistanceUnits\nif (theDistUnits = #UNITS_LINEAR_UNKNOWN) then\n  theDistUnits = theMapUnits\n  convert = FALSE\nend\n\n' Enter distance\n\ntheUnit = theDistUnits.AsString.AsTokens(\"_\").Get(2).lc
ase\ntheMsg = \"Enter buffer distance in\"++theUnit+\".\"\ntheTitle = \"Select Within Buffered Line\"\ntheDist = msgbox.Input(theMsg,theTitle,0.AsString)\nif (theDist = NIL) then\n  return NIL\nend\n\n' If in Distance Units, convert to Map Units\n\nif (theDist.IsNumber) then\n  if (theDist.AsNumber <> 0) then  \n    if (convert) then\n      d = Units.Convert(theDist.AsNumber.Abs,theDistUnits,theMapUnits)\n    else\n      d = theDist.AsNumber.Abs\n    end\n  else\n    Msgbox.Warning(\"Buffer distance must not be equal to zero (0).\",
\"\")\n    return NIL\n  end\nelse\n  Msgbox.Warning(\"Buffer distance must be a number.\",\"\")\n  return NIL\nend\n\n' Buffer, make polygon, select, flash\n\nif (l.Isnull.Not) then\n  av.UseWaitCursor\n  pg = l.ReturnBuffered(d)\n  for each t in theThemes\n    if (t.CanSelect) then\n      t.SelectByPolygon(pg, op)\n    end\n  end\n  theSym = RasterFill.Make\n  theSym.SetStyle(#RASTERFILL_STYLE_EMPTY)\n  theView.GetDisplay.FlashShape(pg,theSym,50,2)\n  av.GetProject.SetModified(true)\nend"
)

(Script.1309
	Name:	"Z.SelectDeluxe.LineTool"
	SourceCode:	"' Name        zSelectDeluxe.LineTool\n' File        zSelectLineTool.txt\n' Application Select Tool Deluxe (zSelectd.avx)\n' Function    Selects features intersecting user drawn line\n' Parameters  \n' Returns    \n' Called by\n' Calls to\n' Requires    One or more active feature theme\n' Variables\n' History     (based on ESRI's View.SelectPoint script)\n'             1-99 Howie Sternberg, State of Connecticut, DEP\n' Version     3.1\n' Desc        \n\ntheView = av.GetActiveDoc\ntheThemes = theView.GetActiveThemes\nl = theV
iew.ReturnUserLine\nif (l.Isnull.Not) then\n  av.UseWaitCursor\n  if (System.IsShiftKeyDown) then\n    op = #VTAB_SELTYPE_OR\n  else\n    op = #VTAB_SELTYPE_NEW\n  end\n  for each t in theThemes\n    if (t.CanSelect) then\n      t.SelectByLine(l, op)\n    end\n  end\n  av.GetProject.SetModified(true)\nend"
)

(Script.1310
	Name:	"Z.SelectDeluxe.PointTool"
	SourceCode:	"' Name        zSelectDeluxe.PointTool\n' File        zSelectPointTool.txt\n' Application Select Tool Deluxe (zSelectd.avx)\n' Function    Selects features where user clicks point\n' Parameters\n' Called by\n' Calls to\n' Requires    One or more active feature theme\n' Variables\n' History     (based on ESRI's View.SelectPoint script)\n'             1-99 Howie Sternberg, State of Connecticut, DEP\n' Version     3.1\n' Desc\n\ntheView = av.GetActiveDoc\ntheThemes = theView.GetActiveThemes\np = theView.GetDisplay.ReturnUserPo
int\nif (p.Isnull.Not) then\n  if (System.IsShiftKeyDown) then\n    op = #VTAB_SELTYPE_OR\n  else\n    op = #VTAB_SELTYPE_NEW\n  end\n  for each t in theThemes\n    if (t.CanSelect) then\n      t.SelectByPoint(p, op)\n    end\n  end\n  av.GetProject.SetModified(true)\nend"
)

(Script.1311
	Name:	"Z.SelectDeluxe.PolygonBoundaryTool"
	SourceCode:	"' Name        zSelectDeluxe.PolygonBoundary\n' File        zSelectPolygonBoundary.txt\n' Application Select Tool Deluxe (zSelectd.avx)\n' Function    Selects features intersecting user drawn polygon boundary\n' Parameters  \n' Returns    \n' Called by\n' Calls to\n' Requires    One or more active feature theme\n' Variables\n' History     (based on ESRI's View.SelectPoint script)\n'             1-99 Howie Sternberg, State of Connecticut, DEP\n' Version     3.1\n' Desc        \n\ntheView = av.GetActiveDoc\ntheThemes = theVie
w.GetActiveThemes\npg = theView.ReturnUserPolygon\nif (pg.Isnull.Not) then\n  av.UseWaitCursor\n  pl = pg.AsPolyline\n  if (System.IsShiftKeyDown) then\n    op = #VTAB_SELTYPE_OR\n  else\n    op = #VTAB_SELTYPE_NEW\n  end\n  for each t in theThemes\n    if (t.CanSelect) then\n      t.SelectByPolyline(pl, op)\n    end\n  end\n  av.GetProject.SetModified(true)\nend"
)

(Script.1312
	Name:	"Z.SelectDeluxe.PolygonBufferBoundaryTool"
	SourceCode:	"' Name        zSelectDeluxe.PolygonBufferdBoundaryTool\n' File        zSelectPolygonBufferBoundaryTool.txt\n' Application Select Tool Deluxe (zSelectd.avx)\n' Function    Selects features intersecting boundary of buffered user drawn polyline\n' Parameters  \n' Returns    \n' Called by\n' Calls to\n' Requires    One or more active feature theme. View with map units set.\n' Variables\n' History     1-99 Howie Sternberg, State of Connecticut, DEP\n' Version     3.1\n' Desc        Buffers the boundary of a user drawn polyg
on and selects features \n' in active themes intersecting the buffer polyline. Buffered distance is \n' entered in a MsgBox in map units or in distance units if they are also set. \n' View's map units must be set.\n\ntheView = av.GetActiveDoc\ntheThemes = theView.GetActiveThemes\n\n' Exit if no Map Units\n\ntheMapUnits = theView.GetDisplay.GetUnits\nif (theMapUnits = #UNITS_LINEAR_UNKNOWN) then\n  Msgbox.Warning(\"Map units unknown.  Set the View's map units.\"+NL+NL+\"To specify the buffer distance in units other than ma
p units (for example, in miles), also set the View's distance units.\",\"\")\n  return NIL\nend\n\n' Draw polygon\n\npg = theView.GetDisplay.ReturnUserPolygon\n\n' Set selection type option \n\nif (System.IsShiftKeyDown) then\n  op = #VTAB_SELTYPE_OR\nelse\n  op = #VTAB_SELTYPE_NEW\nend\n\n' If Distance Units are set, prepare to convert to Map Units   \n\nconvert = TRUE\ntheDistUnits = theView.GetDisplay.GetDistanceUnits\nif (theDistUnits = #UNITS_LINEAR_UNKNOWN) then\n  theDistUnits = theMapUnits\n  convert = FALSE\nend\n\n' Enter di
stance\n\ntheUnit = theDistUnits.AsString.AsTokens(\"_\").Get(2).lcase\ntheMsg = \"Enter buffer distance in\"++theUnit+\".\"\ntheTitle = \"Select Buffered Polygon Boundary\"\ntheDist = msgbox.Input(theMsg,theTitle,0.AsString)\nif (theDist = NIL) then\n  return NIL\nend\n\n' If in Distance Units, convert to Map Units\n\nif (theDist.IsNumber) then\n  if (theDist.AsNumber <> 0) then  \n    if (convert) then\n      d = Units.Convert(theDist.AsNumber.Abs,theDistUnits,theMapUnits)\n    else\n      d = theDist.AsNumber.Abs\n    end\n  else\n
    Msgbox.Warning(\"Buffer distance must not be equal to zero (0).\",\"\")\n    return NIL\n  end\nelse\n  Msgbox.Warning(\"Buffer distance must be a number.\",\"\")\n  return NIL\nend\n\n' Buffer, make polygon, select, flash\n\nif (pg.Isnull.Not) then\n  av.UseWaitCursor\n  pg = pg.AsPolyline.ReturnBuffered(d)\n  pl = pg.AsPolyline  \n  for each t in theThemes\n    if (t.CanSelect) then\n      t.SelectByPolyline(pl, op)\n    end\n  end\n  theSym = Symbol.Make(#SYMBOL_PEN)\n  theView.GetDisplay.FlashShape(pl,theSym,50,2)\n  av.GetProj
ect.SetModified(true)\nend"
)

(Script.1313
	Name:	"Z.SelectDeluxe.PolygonTool"
	SourceCode:	"' Name        zSelectDeluxe.PolygonTool\n' File        zSelectPolygonTool.txt\n' Application Select Tool Deluxe (zSelectd.avx)\n' Function    Selects features within user drawn polygon\n' Parameters  \n' Returns    \n' Called by\n' Calls to\n' Requires    One or more active feature theme\n' Variables\n' History     (based on ESRI's View.SelectPoint script)\n'             1-99 Howie Sternberg, State of Connecticut, DEP\n' Version     3.1\n' Desc        \n\ntheView = av.GetActiveDoc\ntheThemes = theView.GetActiveThemes\npg = 
theView.ReturnUserPolygon\nif (pg.Isnull.Not) then\n  av.UseWaitCursor\n  if (System.IsShiftKeyDown) then\n    op = #VTAB_SELTYPE_OR\n  else\n    op = #VTAB_SELTYPE_NEW\n  end\n  for each t in theThemes\n    if (t.CanSelect) then\n      t.SelectByPolygon(pg, op)\n    end\n  end\n  av.GetProject.SetModified(true)\nend"
)

(Script.1314
	Name:	"Z.SelectDeluxe.PolylineBufferBoundaryTool"
	SourceCode:	"' Name        zSelectDeluxe.PolylineBufferBoundaryTool\n' File        zSelectPolylineBufferBoundaryTool.txt\n' Application Select Tool Deluxe (zSelectd.avx)\n' Function    Selects features intersecting boundary of buffered user drawn polyline\n' Parameters  \n' Returns    \n' Called by\n' Calls to\n' Requires    One or more active feature theme. View with map units set.\n' Variables\n' History     1-99 Howie Sternberg, State of Connecticut, DEP\n' Version     3.1\n' Desc        Buffers a user drawn polyline and selects
 features in active themes \n' intersecting the buffer polyline. Buffered distance is entered in a MsgBox\n' in map units or in distance units if they are also set. View's map units must\n' be set.\n\ntheView = av.GetActiveDoc\ntheThemes = theView.GetActiveThemes\n\n' Exit if no Map Units\n\ntheMapUnits = theView.GetDisplay.GetUnits\nif (theMapUnits = #UNITS_LINEAR_UNKNOWN) then\n  Msgbox.Warning(\"Map units unknown.  Set the View's map units.\"+NL+NL+\"To specify the buffer distance in units other than map units (for exa
mple, in miles), also set the View's distance units.\",\"\")\n  return NIL\nend\n\n' Draw polyline\n\npl = theView.GetDisplay.ReturnUserPolyline\n\n' Set selection type option\n\nif (System.IsShiftKeyDown) then\n  op = #VTAB_SELTYPE_OR\nelse\n  op = #VTAB_SELTYPE_NEW\nend\n\n' If Distance Units are set, prepare to convert to Map Units   \n\nconvert = TRUE\ntheDistUnits = theView.GetDisplay.GetDistanceUnits\nif (theDistUnits = #UNITS_LINEAR_UNKNOWN) then\n  theDistUnits = theMapUnits\n  convert = FALSE\nend\n\n' Enter distance\n\ntheUnit
 = theDistUnits.AsString.AsTokens(\"_\").Get(2).lcase\ntheMsg = \"Enter buffer distance in\"++theUnit+\".\"\ntheTitle = \"Select Buffered Polyline Boundary\"\ntheDist = msgbox.Input(theMsg,theTitle,0.AsString)\nif (theDist = NIL) then\n  return NIL\nend\n\n' If in Distance Units, convert to Map Units\n\nif (theDist.IsNumber) then\n  if (theDist.AsNumber <> 0) then  \n    if (convert) then\n      d = Units.Convert(theDist.AsNumber.Abs,theDistUnits,theMapUnits)\n    else\n      d = theDist.AsNumber.Abs\n    end\n  else\n    Msgbox.War
ning(\"Buffer distance must not be equal to zero (0).\",\"\")\n    return NIL\n  end\nelse\n  Msgbox.Warning(\"Buffer distance must be a number.\",\"\")\n  return NIL\nend\n\n' Buffer, make polyline, select, flash\n\nif (pl.Isnull.Not) then\n  av.UseWaitCursor\n  pg = pl.ReturnBuffered(d)\n  pl = pg.AsPolyline\n  for each t in theThemes\n    if (t.CanSelect) then\n      t.SelectByPolyline(pl, op)\n    end\n  end\n  theSym = Symbol.Make(#SYMBOL_PEN)\n  theView.GetDisplay.FlashShape(pl,theSym,50,2)\n  av.GetProject.SetModified(true)\nend"
)

(Script.1315
	Name:	"Z.SelectDeluxe.PolylineBufferTool"
	SourceCode:	"' Name        zSelectDeluxe.PolylineBufferTool\n' File        zSelectPolylineBufferTool.txt\n' Application Select Tool Deluxe (zSelectd.avx)\n' Function    Selects features within polygon maded from buffered user drawn polyline\n' Parameters  \n' Returns    \n' Called by\n' Calls to\n' Requires    One or more active feature theme. View with map units set.\n' Variables\n' History     1-99 Howie Sternberg, State of Connecticut, DEP\n' Version     3.1\n' Desc        Buffers a user drawn polyline and selects features in ac
tive themes \n' within the buffer polygon. Buffered distance is entered in a MsgBox in map\n' units or in distance units if they are also set. View's map units must be set.\n\n\ntheView = av.GetActiveDoc\ntheThemes = theView.GetActiveThemes\n\n' Exit if no Map Units\n\ntheMapUnits = theView.GetDisplay.GetUnits\nif (theMapUnits = #UNITS_LINEAR_UNKNOWN) then\n  Msgbox.Warning(\"Map units unknown.  Set the View's map units.\"+NL+NL+\"To specify the buffer distance in units other than map units (for example, in miles), also s
et the View's distance units.\",\"\")\n  return NIL\nend\n\n' Draw polyline\n\npl = theView.GetDisplay.ReturnUserPolyline\n\n' Set selection type option\n\nif (System.IsShiftKeyDown) then\n  op = #VTAB_SELTYPE_OR\nelse\n  op = #VTAB_SELTYPE_NEW\nend\n\n' If Distance Units are set, prepare to convert to Map Units   \n\nconvert = TRUE\ntheDistUnits = theView.GetDisplay.GetDistanceUnits\nif (theDistUnits = #UNITS_LINEAR_UNKNOWN) then\n  theDistUnits = theMapUnits\n  convert = FALSE\nend\n\n' Enter distance\n\ntheUnit = theDistUnits.AsStrin
g.AsTokens(\"_\").Get(2).lcase\ntheMsg = \"Enter buffer distance in\"++theUnit+\".\"\ntheTitle = \"Select Within Buffered Polyline\"\ntheDist = msgbox.Input(theMsg,theTitle,0.AsString)\nif (theDist = NIL) then\n  return NIL\nend\n\n' If in Distance Units, convert to Map Units\n\nif (theDist.IsNumber) then\n  if (theDist.AsNumber <> 0) then  \n    if (convert) then\n      d = Units.Convert(theDist.AsNumber.Abs,theDistUnits,theMapUnits)\n    else\n      d = theDist.AsNumber.Abs\n    end\n  else\n    Msgbox.Warning(\"Buffer distance mus
t not be equal to zero (0).\",\"\")\n    return NIL\n  end\nelse\n  Msgbox.Warning(\"Buffer distance must be a number.\",\"\")\n  return NIL\nend\n\n' Buffer, make polygon, select, flash\n\nif (pl.Isnull.Not) then\n  av.UseWaitCursor\n  pg = pl.ReturnBuffered(d)\n  for each t in theThemes\n    if (t.CanSelect) then\n      t.SelectByPolygon(pg, op)\n    end\n  end\n  theSym = RasterFill.Make\n  theSym.SetStyle(#RASTERFILL_STYLE_EMPTY)\n  theView.GetDisplay.FlashShape(pg,theSym,50,2)\n  av.GetProject.SetModified(true)\nend"
)

(Script.1316
	Name:	"Z.SelectDeluxe.PolylineTool"
	SourceCode:	"' Name        zSelectDeluxe.PolyLineTool\n' File        zSelectPolyLineTool.txt\n' Application Select Tool Deluxe (zSelectd.avx)\n' Function    Selects features intersecting user drawn polyline\n' Parameters  \n' Returns    \n' Called by\n' Calls to\n' Requires    One or more active feature theme\n' Variables\n' History     (based on ESRI's View.SelectPoint script)\n'             1-99 Howie Sternberg, State of Connecticut, DEP\n' Version     3.1\n' Desc        \n\ntheView = av.GetActiveDoc\ntheThemes = theView.GetActiveThe
mes\npl = theView.ReturnUserPolyline\nif (pl.Isnull.Not) then\n  av.UseWaitCursor\n  if (System.IsShiftKeyDown) then\n    op = #VTAB_SELTYPE_OR\n  else\n    op = #VTAB_SELTYPE_NEW\n  end\n  for each t in theThemes\n    if (t.CanSelect) then\n      t.SelectByPolyline(pl, op)\n    end\n  end\n  av.GetProject.SetModified(true)\nend"
)

(Script.1317
	Name:	"Z.SelectDeluxe.RectBoundaryTool"
	SourceCode:	"' Name        zSelectDeluxe.RectBoundaryTool\n' File        zSelectRectBoundaryTool.txt\n' Application Select Tool Deluxe (zSelectd.avx)\n' Function    Selects features intersecting user drawn rectangle boundary\n' Parameters  \n' Returns    \n' Called by\n' Calls to\n' Requires    One or more active feature theme\n' Variables\n' History     (based on ESRI's View.SelectPoint script)\n'             1-99 Howie Sternberg, State of Connecticut, DEP\n' Version     3.1\n' Desc        \n\ntheView = av.GetActiveDoc\ntheThemes = th
eView.GetActiveThemes\nr = theView.ReturnUserRect\nif (r.Isnull.Not) then\n  av.UseWaitCursor\n  pl = r.AsPolygon.AsPolyline\n  if (System.IsShiftKeyDown) then\n    op = #VTAB_SELTYPE_OR\n  else\n    op = #VTAB_SELTYPE_NEW\n  end\n  for each t in theThemes\n    if (t.CanSelect) then\n      t.SelectByPolyline(pl, op)\n    end\n  end\n  av.GetProject.SetModified(true)\nend"
)

(Script.1318
	Name:	"Z.SelectDeluxe.RectBufferBoundaryTool"
	SourceCode:	"' Name        zSelectDeluxe.RectBufferBoundaryTool\n' File        zSelectRectBufferBoundaryTool.txt\n' Application Select Tool Deluxe (zSelectd.avx)\n' Function    Selects features intersecting boundary of buffered user drawn rectangle\n' Parameters  \n' Returns    \n' Called by\n' Calls to\n' Requires    One or more active feature theme\n' Variables\n' History     (based on ESRI's View.SelectPoint script)\n'             1-99 Howie Sternberg, State of Connecticut, DEP\n' Version     3.1       \n' Desc        Buffers the
 boundary of a user drawn rect and selects features in \n' active themes intersecting the buffer polyline. Buffered distance is entered\n' in a MsgBox in map units or in distance units if they are also set. View's map\n' units must be set.\n\ntheView = av.GetActiveDoc\ntheThemes = theView.GetActiveThemes\n\n' Exit if no Map Units\n\ntheMapUnits = theView.GetDisplay.GetUnits\nif (theMapUnits = #UNITS_LINEAR_UNKNOWN) then\n  Msgbox.Warning(\"Map units unknown.  Set the View's map units.\"+NL+NL+\"To specify the buffer dista
nce in units other than map units (for example, in miles), also set the View's distance units.\",\"\")\n  return NIL\nend\n\n' Draw rectangle\n\nr = theView.GetDisplay.ReturnUserRect\n\n' Set selection type option\n\nif (System.IsShiftKeyDown) then\n  op = #VTAB_SELTYPE_OR\nelse\n  op = #VTAB_SELTYPE_NEW\nend\n\n' If Distance Units are set, prepare to convert to Map Units   \n\nconvert = TRUE\ntheDistUnits = theView.GetDisplay.GetDistanceUnits\nif (theDistUnits = #UNITS_LINEAR_UNKNOWN) then\n  theDistUnits = theMapUnits\n  convert 
= FALSE\nend\n\n' Enter distance\n\ntheUnit = theDistUnits.AsString.AsTokens(\"_\").Get(2).lcase\ntheMsg = \"Enter buffer distance in\"++theUnit+\".\"\ntheTitle = \"Select Buffered Rectangle Boundary\"\ntheDist = msgbox.Input(theMsg,theTitle,0.AsString)\nif (theDist = NIL) then\n  return NIL\nend\n\n' If in Distance Units, convert to Map Units\n\nif (theDist.IsNumber) then\n  if (theDist.AsNumber <> 0) then  \n    if (convert) then\n      d = Units.Convert(theDist.AsNumber.Abs,theDistUnits,theMapUnits)\n    else\n      d = theDist.AsN
umber.Abs\n    end\n  else\n    Msgbox.Warning(\"Buffer distance must not be equal to zero (0).\",\"\")\n    return NIL\n  end\nelse\n  Msgbox.Warning(\"Buffer distance must be a number.\",\"\")\n  return NIL\nend\n\n' Exit if buffer > min rect dimension\n\nif (d > (r.GetWidth min r.GetHeight)) then\n  Msgbox.Warning(\"Buffer distance is too larger for rectangle.\",\"\")\n  return NIL\nend\n\nif (r.Isnull.Not) then\n  av.UseWaitCursor\n  pg = r.AsPolygon.AsPolyline.ReturnBuffered(d)\n  pl = pg.AsPolyline\n  for each t in theThemes\n    if (t
.CanSelect) then\n      t.SelectByPolyline(pl, op)\n    end\n  end\n  theSym = Symbol.Make(#SYMBOL_PEN)\n  theView.GetDisplay.FlashShape(pl,theSym,50,2)\n  av.GetProject.SetModified(true)\nend"
)

(Script.1319
	Name:	"Z.SelectDeluxe.RectTool"
	SourceCode:	"' Name        zSelectDeluxe.RectTool\n' File        zSelectRectTool.txt\n' Application Select Tool Deluxe (zSelectd.avx)\n' Function    Selects features within user drawn rectangle\n' Parameters  \n' Returns    \n' Called by\n' Calls to\n' Requires    One or more active feature theme\n' Variables\n' History     (based on ESRI's View.SelectPoint script)\n'             1-99 Howie Sternberg, State of Connecticut, DEP\n' Version     3.1\n' Desc        \n\ntheView = av.GetActiveDoc\ntheThemes = theView.GetActiveThemes\nr = theVi
ew.ReturnUserRect\nif (r.Isnull.Not) then\n  av.UseWaitCursor\n  if (System.IsShiftKeyDown) then\n    op = #VTAB_SELTYPE_OR\n  else\n    op = #VTAB_SELTYPE_NEW\n  end\n  for each t in theThemes\n    if (t.CanSelect) then\n      t.SelectByRect(r, op)\n    end\n  end\n  av.GetProject.SetModified(true)\nend"
)

(Script.1320
	Name:	"Z.View.Clear.All"
	SourceCode:	"'===========================================================\n \n'  Check for the shift key, if the shift key is down, pop up instructions for using this script\n\nif (System.IsShiftKeyDown) then\n  message =\n  \" \"+nl+\n  \" Script Author (ESRI)\"+nl+\n  \" \"+nl+\n  \" Brief Instructions:\"+nl+nl+\n  \" Clears All Selected Shapes in All Themes in Current View \"+nl+\n  \" \"+nl+\n  \" \"+nl+\n  \" \"+nl+\n  \" \"+nl+\n  \" \"+nl+\n  \" \"+nl+\n  \" \"+nl+\n  \" \"+nl+\n  \" \"+nl+\n  \" \"+nl+\n  \" \"+nl+\n  \" \"+nl\n'Title here         \nmsgbox.report(messa
ge,\"Clear All Selected\")\n  \n  Clipboard.The.Empty\n  Clipboard.The.Add(message)\n  Clipboard.The.Update\n    \n  MsgBox.Info(\"These instructions were copied to the system clipboard.  To print them, open a text editor\"++\n  \"(like notepad), paste in the contents of the clipboard, and print them from the text editor.\",\"PRINT INSTRUCTIONS\")\n\n  return nil\nend\n\n\n\ntheView = av.GetActiveDoc\nfor each t in theView.GetThemes\n  t.ClearSelection\n end\nav.GetProject.SetModified(true)\ntheView = av.GetActiveDoc\ntheView.GetDispl
ay.ZoomOut(125)\ntheView.GetDisplay.UndoZoom\n\n"
)

(Script.1321
	Name:	"Z.View.Clear.Selected"
	SourceCode:	"theView = av.GetActiveDoc\nfor each t in theView.GetActiveThemes\n  t.ClearSelection\n end"
)

(Script.1322
	Name:	"Densify.Shapes"
	SourceCode:	"' densify\n'\n' Creates a copy of the current line or polyline shapefile, with additinal vertices\n' added at the specified tolerance. Similar to the DENSIFYARC command at ArcInfo, or\n' the DENSIFY command at ArcEdit.\n'\n' History\n' 16 May 2002 - original coding, Stephen Lead\n'\n' Please report any problems or comments to slead@esriau.com.au\n'\n' THIS SCRIPT IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND.\n' ESRI does not assume responsibility for the accuracy or reliability of the\n' script and recommends you t
est it thoroughly before implementation.\n'\nav.UseWaitCursor\nav.ShowMsg(\"Densifying...\")\n\ntheView = av.GetActiveDoc\nEtheme = theView.GetEditableTheme \ntheThm = theView.GetActiveThemes.Get(0)\nif(Etheme.AsString <> theThm.AsString) then return nil end\n\n\n\ntheFTab = theThm.GetFTab\ntheShpFld = theFTab.FindField(\"shape\")\n\ntheGeomType = theFTab.GetShapeClass.GetClassName\ntheStepSize = MsgBox.Input( \"Enter Distance Between Vertices\", \"Densify\", \"100\" )\ntheStepSize = theStepSize.AsNumber\n\n'Process through each featur
e in the input theme, creating a densified copy of it in\n'the output theme.\n\nif ( theFTab.GetSelection.Count = 0 ) then\n  theRecs = theFTab\n  theCount = theRecs.GetNumRecords\nelse\n  theRecs = theFTab.GetSelection\n  theCount = theRecs.count\nend\n\n\n  for each rec in theRecs\n    thePolyLine = theFTab.ReturnValue(theShpFld,rec).AsPolyLine\n    theDensLine = thePolyLine.ReturnDensified(theStepSize)\n      \n    if(theGeomType = \"Polygon\") then\n      theListOfPoints = theDensLine.AsList\n      newShape = Polygon.Make(
theListofPoints)\n    else\n      newShape = theDensLine\n    end\n    \n    theFTab.SetValue(theShpFld,rec,newShape)\n  end\n\nav.GetProject.SetModified(true)\n"
)

(Script.1323
	Name:	"Z.View.Tool.Help"
	SourceCode:	"message =\n  \"Brief Instructions:\"+nl+nl+\n  \"Script Author (Howie Sternberg - State of Connecticut - DEP)\"+nl+\n  \"Select a Tool to Select\"+nl+\n  \"Shapes With\"+nl+\n  \"Hold Down Shift Key\"+nl+\n  \"To Add to Existing Selection \"+nl+\n  \" \"+nl\n      'Title here         \n  msgbox.report(message,\"Help For Menu\")\n"
)

(Script.1324
	Name:	"zLabMove.Help"
	SourceCode:	"  message =\n  \" \"+nl+\n  \" Script Author (3-99 Howie Sternberg, State of Connecticut, DEP)\"+nl+\n  \" \"+nl+\n  \" Brief Instructions:\"+nl+nl+\n  \" Allows Moving of Labels Up - Down / Left - Right\"+nl+\n  \" Works off the First Active Theme\"+nl+\n  \" Dialog will open - Prompt for offset distance\"+nl+\n  \" Pick a Direction for the Labels to move\"+nl+\n  \" Labels will be moved in That Direction\"+nl+\n  \" \"+nl+\n  \" \"+nl+\n  \" \"+nl+\n  \" \"+nl+\n  \" \"+nl+\n  \" \"+nl+\n  \" \"+nl+\n  \" \"+nl\n'Title here         \n  msgbox.report(message
,\"Auto Label Mover\")\n "
)

(Script.1325
	Name:	"zLabMove.Mover.btn_InOut.Click"
	SourceCode:	"' Name        zLabMove.Mover.btn_InOut.Click\n' File        zLabMoveMoverBtnInOutClick.txt\n' Application Auto-Label Mover (zlabmove.avx)\n' Function    Moves labels inward or outward from their original position\n'             based on their rotation angle and offset distance\n' Parameters  In, Out\n' Returns\n' Called by\n' Calls to\n' Requires    Active view with an active visible theme with labels\n' Variables\n' History     3-99 Howie Sternberg, State of Connecticut, DEP\n' Version     3.1   \n\ntheView = SELF.GetDi
alog.GetActiveDoc\ntheViewExt = theView.GetDisplay.ReturnVisExtent\n\ntheActiveThemes = theView.GetActiveThemes\nif (theActiveThemes.Count > 0) then\n  theTheme = theActiveThemes.Get(0)\n  if ((theTheme.IsVisible.Not) or (theTheme.GetGraphics.HasLabels.Not)) then\n    return NIL\n  end\nelse\n  return NIL\nend   \n\nSELF.GetDialog.FindByName(\"txt_Msg\").SetLabel(\"\")\nselected = SELF.GetDialog.FindByName(\"chk_Selected\").IsSelected\nextent = SELF.GetDialog.FindByName(\"chk_Extent\").IsSelected\ntheOffSet = SELF.GetDialog.FindBy
Name(\"txl_Offset\").GetText\n\nif (theOffSet.AsNumber > 0) then\n  theOffSet = theOffset.AsNumber\nelse\n  system.Beep\n  SELF.GetDialog.FindByName(\"txt_Msg\").SetLabel(\"No labels moved\")\n  return NIL\nend\n\nif (SELF.GetTag = \"In\") then\n  theOffSet = theOffSet.Negate\nend\n\nmoved = FALSE\n\ntheGraphicSet = theTheme.GetGraphics\ncount = theTheme.GetGraphics.Count\ni = 0\nfor each g in theGraphicSet\n  if (g.is(GraphicText) and ((selected.Not) or ((selected) and (g.isSelected)))) then\n    if ((extent.Not) or ((extent) and ((g.
GetBounds.IsContainedIn(theViewExt)) or (g.GetBounds.Intersects(theViewExt))))) then      \n      a = g.GetAngle\n      moved =  TRUE\n      av.ShowMsg(\"Moving labels...\")\n      if ((a >= 0) and (a < 45)) then\n       g.GetShape.Move(0,theOffSet)\n      elseif ((a >=45) and (a < 90)) then\n        g.GetShape.Move(theOffSet.Negate,0)\n      elseif ((a >= 270) and (a < 315)) then\n        g.GetShape.Move(theOffSet,0)\n      elseif ((a >= 315) and (a < 360)) then\n        g.GetShape.Move(0,theOffSet)\n      end\n    end\n 
 end\n  i = i + 1\n  av.SetStatus((i/count) * 100)\nend\n\nav.PurgeObjects\n\nif (moved) then\n  theGraphicSet.Invalidate\n  SELF.GetDialog.FindByName(\"txt_Msg\").SetLabel(\"Labels moved\")\nelse\n  system.Beep\n  SELF.GetDialog.FindByName(\"txt_Msg\").SetLabel(\"No labels moved\")\nend"
)

(Script.1326
	Name:	"zLabMove.Mover.btn_Move.Click"
	SourceCode:	"' Name        zLabMove.Mover.btn_Move.Click\n' File        zLabMoveMoverBtnMoveClick.txt\n' Application Auto-Label Mover (zlabmove.avx)\n' Function    Moves labels in four directions \n' Parameters  Left, Right, Up, Down\n' Returns\n' Called by\n' Calls to\n' Requires    Active view with an active visible theme with labels\n' Variables\n' History     3-99 Howie Sternberg, State of Connecticut, DEP\n' Version     3.1\n\ntheView = SELF.GetDialog.GetActiveDoc\ntheViewExt = theView.GetDisplay.ReturnVisExtent\n\ntheActiveThemes
 = theView.GetActiveThemes\nif (theActiveThemes.Count > 0) then\n  theTheme = theActiveThemes.Get(0)\n  if ((theTheme.IsVisible.Not) or (theTheme.GetGraphics.HasLabels.Not)) then\n    return NIL\n  end\nelse\n  return NIL\nend   \n\nSELF.GetDialog.FindByName(\"txt_Msg\").SetLabel(\"\")\nselected = SELF.GetDialog.FindByName(\"chk_Selected\").IsSelected\nextent = SELF.GetDialog.FindByName(\"chk_Extent\").IsSelected\ntheOffSet = SELF.GetDialog.FindByName(\"txl_Offset\").GetText\n\nif (theOffSet.AsNumber > 0) then\n  theOffSet = theOffs
et.AsNumber\nelse\n  system.Beep\n  SELF.GetDialog.FindByName(\"txt_Msg\").SetLabel(\"No labels moved\")\n  return NIL\nend\n\ntheDir = SELF.GetTag\n\nmoved = FALSE\n\ntheGraphicSet = theTheme.GetGraphics\ncount = theTheme.GetGraphics.Count\ni = 0\nfor each g in theGraphicSet\n  if (g.is(GraphicText) and ((selected.Not) or ((selected) and (g.isSelected)))) then\n    if ((extent.Not) or ((extent) and ((g.GetBounds.IsContainedIn(theViewExt)) or (g.GetBounds.Intersects(theViewExt))))) then      \n      a = g.GetAngle\n      moved =
  TRUE\n      av.ShowMsg(\"Moving labels...\")\n      if (theDir = \"Left\") then\n        g.GetShape.Move(theOffSet.Negate,0)\n      elseif (theDir = \"Right\") then\n        g.GetShape.Move(theOffSet,0)\n      elseif (theDir = \"Up\") then\n        g.GetShape.Move(0,theOffset)\n      elseif (theDir = \"Down\") then\n        g.GetShape.Move(0,theOffSet.Negate)\n      end\n    end\n  end\n  i = i + 1\n  av.SetStatus((i/count) * 100)\nend\n\nav.PurgeObjects\n\nif (moved) then\n  theGraphicSet.Invalidate\n  SELF.GetDialog.FindByName(\"txt_M
sg\").SetLabel(\"Labels moved\")\nelse\n  system.Beep\n  SELF.GetDialog.FindByName(\"txt_Msg\").SetLabel(\"No labels moved\")\nend\n"
)

(Script.1327
	Name:	"zLabMove.Mover.tol_Offset.Apply"
	SourceCode:	"' Name        zLabMove.Mover.tol_Offset.Apply\n' File        zLabMoveMoverTolOffsetApply.txt\n' Application Auto-Label Mover (zlabmove.avx)\n' Function    Tool control for setting the offset distance labels are moved\n' Parameters  \n' Returns\n' Called by\n' Calls to\n' Requires    Active view\n' Variables\n' History     3-99 Howie Sternberg, State of Connecticut, DEP\n' Version     3.1\n\ntheView = SELF.GetDialog.GetActiveDoc\nc = theView.ReturnUserCircle\ntheOffSet = c.GetRadius.SetFormat(\"d.dddd\")\nif (theOffSet > 0.00
00) then\n  SELF.GetDialog.FindByName(\"txl_Offset\").SetText(theOffSet.AsString)\nend"
)

(Script.1328
	Name:	"zLabMove.MoverDocActivate"
	SourceCode:	"' Name        zLabMove.MoverDocActivate\n' File        zLabMove.MoverDocActivate.txt\n' Application Auto-Label Mover (zlabmove.avx)\n' Function    Activates dialog\n' Parameters  \n' Returns\n' Called by\n' Calls to\n' Requires    Active View document\n' Variables\n' History     3-99 Howie Sternberg, State of Connecticut, DEP\n' Version     3.1\n\ntheView = SELF.GetActiveDoc\nif (theView.Is(View)) then\n  theActiveThemes = theView.GetActiveThemes\n  if (theActiveThemes.Count > 0) then\n    theTheme = theActiveThemes.Get(0)\n
    if ((theTheme.IsVisible) and (theTheme.GetGraphics.HasLabels)) then\n      SELF.FindByName(\"txl_ThemeName\").SetLabel(theTheme.GetName)\n      SELF.FindByName(\"txt_Msg\").SetLabel(\"\")\n      SELF.GetControlPanel.SetEnabled(TRUE)\n    else\n      SELF.FindByName(\"txl_ThemeName\").SetLabel(\"\")\n      SELF.FindByName(\"txt_Msg\").SetLabel(\"\")\n      SELF.GetControlPanel.SetEnabled(FALSE)\n    end\n  else\n    SELF.FindByName(\"txl_ThemeName\").SetLabel(\"\")\n    SELF.FindByName(\"txt_Msg\").SetLabel(\"\")\n    SELF.GetControlPane
l.SetEnabled(FALSE)\n  end\nelse\n  SELF.FindByName(\"txl_ThemeName\").SetLabel(\"\")\n  SELF.FindByName(\"txt_Msg\").SetLabel(\"\")\n  SELF.GetControlPanel.SetEnabled(FALSE)\nend"
)

(Script.1329
	Name:	"zLabMove.MoverDocClose"
	SourceCode:	"' Name        zLabMove.MoverDocClose\n' File        zLabMoveMoverDocClose.txt\n' Application Auto-Label Mover (zlabmove.avx)\n' Function    Closes dialog\n' Parameters  \n' Returns\n' Called by\n' Calls to\n' Requires    \n' Variables\n' History     3-99 Howie Sternberg, State of Connecticut, DEP\n' Version     3.1\n\nav.FindGui(\"View\").GetToolBar.SelectDefault\n"
)

(Script.1330
	Name:	"zLabMove.MoverDocOpen"
	SourceCode:	"' Name        zLabMove.MoverDocOpen\n' File        zLabMoveMoverDocOpen.txt\n' Application Auto-Label Mover (zlabmove.avx)\n' Function    Enables controls when dialog opens\n' Parameters  \n' Returns\n' Called by\n' Calls to\n' Requires    \n' Variables\n' History     3-99 Howie Sternberg, State of Connecticut, DEP\n' Version     3.1\n\nav.FindGui(\"View\").GetToolBar.SelectDefault\n\nc = SELF.FindByName(\"txl_Offset\")\nc.SetText(\"0.0000\")\nSELF.FindByName(\"txt_Msg\").SetLabel(\"\")\nSELF.FindByName(\"chk_Extent\").SetSelected(FALSE
)\nSELF.FindByName(\"chk_Selected\").SetSelected(FALSE)\n\ntheView = av.GetActiveDoc\ntheActiveThemes = theView.GetActiveThemes\nif (theActiveThemes.Count > 0) then\n  theTheme = theActiveThemes.Get(0)\n  if ((theTheme.IsVisible) and (theTheme.GetGraphics.HasLabels)) then\n    SELF.FindByName(\"txl_ThemeName\").SetLabel(theTheme.GetName)\n    SELF.GetControlPanel.SetEnabled(TRUE)\n  else\n    SELF.FindByName(\"txl_ThemeName\").SetLabel(\"\")\n    SELF.GetControlPanel.SetEnabled(FALSE)\n  end\nelse\n  SELF.FindByName(\"txl_ThemeNam
e\").SetLabel(\"\")\n  SELF.GetControlPanel.SetEnabled(FALSE)\nend"
)

(Script.1331
	Name:	"zLabMove.MoverRun"
	SourceCode:	"' Name        zLabMove.MoverRun\n' File        zLabMoveMoverRun.txt\n' Application Auto-Label Mover(zlabmove.avx)\n' Function    View DocGUI control click event script that runs dialog\n' Parameters  \n' Returns\n' Called by\n' Calls to\n' Requires    \n' Variables\n' History     3-99 Howie Sternberg, State of Connecticut, DEP\n' Version     3.1\n\ntheDialog = av.FindDialog(\"zMover\")\n\nif (theDialog.IsOpen.Not) then\n  theX = av.ReturnOrigin.GetX + (av.ReturnExtent.GetX / 2) - (theDialog.ReturnExtent.GetWidth / 2)\n  theY 
= av.ReturnOrigin.GetY + (av.ReturnExtent.GetY / 2) - (theDialog.ReturnExtent.GetHeight / 2)\n  theDialog.MoveTo(theX,theY)\n  theDialog.Open\nend"
)

(Script.1332
	Name:	"zLabMove.MoverRunUpdate"
	SourceCode:	"' Name        zLabMove.MoverRunUpdate\n' File        zLabMoveMoverRunUpdate.txt\n' Application Auto-Label Mover (zlabmove.avx)\n' Function    Control update script for zLabMove.MoverRun\n\ntheView = av.GetActiveDoc\ntheActiveThemes = theView.GetActiveThemes\nif (theActiveThemes.Count > 0) then\n  theTheme = theActiveThemes.Get(0)\n  if ((theTheme.IsVisible) and (theTheme.GetGraphics.HasLabels)) then\n    SELF.SetEnabled(TRUE)\n  else\n    SELF.SetEnabled(FALSE)\n  end\nelse\n  SELF.SetEnabled(FALSE)\nend"
)

(Script.1333
	Name:	"ZSnap.SnapEditFeatureUpdate1.C"
	SourceCode:	"' Name        zSnap2It.SnapEditFeatureUpdate\n' File        zSnap2ItSnapEditFeatureUpdate.txt\n' Application\n' Function    Control update script that enables control if edit theme is visible\n'             and within scale threshold\n\nv = av.GetActiveDoc\net = v.GetEditableTheme\nif ((et <> NIL) and (et.IsVisible) and (et.GetThreshold.IsWithin(v.ReturnScale)) and ((et.GetFtab.GetShapeClass.GetClassName = \"Polygon\") or (et.GetFtab.GetShapeClass.GetClassName = \"Polyline\"))) then\n  SELF.SetEnabled(TRUE)\nelse\n  SELF.
SetEnabled(FALSE)\nend"
)

(Script.1334
	Name:	"ZSnap2.SnapEditFeature.C"
	SourceCode:	"'**************************************************************************************\n' Name        zView.SelectRectTool\n' File        zViewSelectRectTool.txt\n' Application \n' Function    Selects features within user drawn rectangle\n' Parameters  \n' Returns    \n' Called by\n' Calls to\n' Requires    One or more active feature theme\n' Variables\n' History     (based on ESRI's View.SelectPoint script)\n'             1-99 Howie Sternberg, State of Connecticut, DEP\n' Version     3.1\n' Desc        \n\n'             
Apply:  zView.SelectRectTool\n'             Tag:     \n'             Update: zView.SelectThemeUpdate\n\ntheView = av.GetActiveDoc\ntheThemes = theView.GetActiveThemes\nr = theView.ReturnUserRect\nif (r.Isnull.Not) then\n  av.UseWaitCursor\n  if (System.IsShiftKeyDown) then\n    op = #VTAB_SELTYPE_OR\n  else\n    op = #VTAB_SELTYPE_NEW\n  end\n  for each t in theThemes\n    if (t.CanSelect) then\n      t.SelectByRect(r, op)\n    end\n  end\n  av.GetProject.SetModified(true)\n\n\n'**************************************************
************\n\n\n\n\n\n\n\n\n\n\n\n' Name       zSnap2It.SnapEditFeature\n' File       zSnap2ItSnapEditFeature.txt\n' Function   Snaps selected edit theme lines or polygons to selected features in other themes\n' Parameters \n' Returns    NIL upon error\n' Called by  \n' Calls to\n' Requires   Edit theme with selected lines or polygons to snap. Line or polygon snap themes with\n'            selected features to snap to.\n' Variables  theSnapDist\n' History    4-00 Howie Sternberg, State of Connecticut, DEP\n' Version    3.2\n' De
sc       Snaps one or more selected lines or polygons in an edit theme to selected features\n' in other (snap) themes . A snap theme can be either a line or polygon theme with \n' selected features to snap to. This script snaps existing polygons to other themes by\n' either snaping the polygon boundaries to line or polygon boundaries in other themes\n' or by removing portions of the polygon that overlap polygons selected in the snap theme.\n' Therefore, if you roughly digitize a polygon so that it overlaps polyg
ons in other\n' themes you want it to snap to, you can run this script to clean up the polygon boundary \n' by selecting the polygon in the edit theme and polygons in the snap themes that overlap it.\n' It snaps selected lines in an edit theme to the boundaries of selected polygons in other\n' polygon-based snap themes or to selected lines in line-based snap themes.    \n\ntheTitle = \"Snap To It\"\n\n' Get parameters from SELF\n\n'if (SELF.is(control)) then\n'  theParameter = SELF.GetTag.AsTokens(\",\")\n'else\n'  return N
IL\n'end\n\n'if (theParameter.Count = 1) then\n'  theSnapDist = theParameter.Get(0)\n'  if (theSnapDist.IsNumber) then\n'   theSnapDist = theSnapDist.AsNumber\n' else\n'    MsgBox.Error(\"Parameter is not a number (theSnapDist)\",theTitle)\n'    return NIL\n'  end\n'else\n'  MsgBox.Error(\"Parameters unknown (theSnapDist)\",theTitle)\n'  return NIL\n'end\n\ntheView = av.GetActiveDoc\ntheViewRect = theView.GetDisplay.ReturnVisExtent\ntheTheme = theView.GetEditableTheme\n\n' Exit if no edit theme\n\nif (theTheme = NIL) then\n  theMsg =
 \"Edit the line or polygon theme you want to snap.\"\n  msgbox.info(theMsg,theTitle)\n  return NIL\nend\ntheTheme.SetSnapping (False)\n' Test edit theme\n\ntheFtab = theTheme.GetFTab\nif ((theFtab.GetShapeClass.GetClassName <> \"polygon\") and (theFtab.GetShapeClass.GetClassName <> \"polyline\")) then\n  theMsg = \"The edit theme must be a polygon or polyline (line) theme. Edit theme polygons can be snapped to line or polygon features in other Snap Themes.\"\n  msgbox.info(theMsg,theTitle)\n  return NIL\nend\n\n' Test for selec
ted features in edit theme\n\nif (theFTab.GetSelection.Count = 0) then\n  theMsg = \"Select the features in the edit theme you want to snap\"\n  msgbox.info(theMsg,theTitle)\n  return NIL\nend\n\n\n'===========================================================\n \n'  Check for the Controlkey\n \nif (System.IsControlKeyDown)'**********************************\nthen\n'*****************************************\nmessage =\n  \" Script Author ( 4-00 Howie Sternberg, State of Connecticut, DEP)\"+nl+\n  \" ok ..quick and simple instructio
ns\"+nl+\n  \" start editing a poly(line,gon) theme\"+nl+\n  \" put the theme you want to snap the edit theme to\"+nl+\n  \" right next to it in the legend\"+nl+\n  \" select them both in the legend(both will be raised)\"+nl+\n  \" pick this tool and then hold down the Ctrl key and \"+nl+\n  \" drag a box over the item you want to snap and the item you\"+nl+\n  \" want to snap it to ...window will open asking for the name of the\"+nl+\n  \" snap theme and the snap distance (default distance is 25\"+nl+\n  \" Windows will close and no
thing happend\"+nl+\n  \" Drag the same box with this tool again ..but no Ctrl key this time \"+nl+\n  \" Shapes will snap this time and every time after as long as you always select \"+nl+\n  \" 1 shape each from the raised themes in the legend\"+nl+\n  \" same snap distance each time ...till you hold the control key down again\"+nl+\n  \" if you select(draw box) only one shape from one theme..you get an error message \"+nl+\n  \" if you select(draw box) 2 shapes but not from the 2 raised ones in the legend \"+nl+\n  \" you ge
t an error message \"+nl+\n  \" try snaping a zoning polygon theme to a street centerline(polyline) theme to get the hang of this tool\"+nl\n'Title here         \n  msgbox.report(message,\"About AutoSnap\")\n  \n  Clipboard.The.Empty\n  Clipboard.The.Add(message)\n  Clipboard.The.Update\n    \n  MsgBox.Info(\"These instructions were copied to the system clipboard.  To print them, open a text editor\"++\n  \"(like notepad), paste in the contents of the clipboard, and print them from the text editor.\",\"PRINT INSTRUCTIONS\")\n'**
*************************************** \n\n \n ' Select snap themes\n\ntheSnapThemes = list.make\nfor each t in theView.GetThemes\n  if ((t.CanSelect) and (t.GetFtab.GetSelection.Count > 0) and (t <> theTheme) and (t.GetFtab.GetShapeClass.GetClassName <> \"Point\") and (t.GetFtab.GetShapeClass.GetClassName <> \"Multipoint\")) then\n    theSnapThemes.Add(t)\n  end\nend\n\nif (theSnapThemes.count > 0 ) then\n  theMsg = \"Select the Snap Themes to snap the edit features to. Press OK to continue.\"\n  theThemesSnap = msgbox.multi
list(theSnapThemes,theMsg,theTitle)\n  _theThemesSnap2 = theThemesSnap '*****************************\n  if (theThemesSnap = NIL) then\n    return NIL\n  end\n  if (theThemesSnap.Count = 0) then\n    return NIL\n  end\nelse\n  theMsg = \"Select features in the Snap Themes you want to snap the selected edit feature to. Snap Themes can be line or polygon themes.\"\n  msgbox.info(theMsg,theTitle)\n  return NIL\nend\n\n' Input snap distance\ntheSnapDist = 25\ntheMsg = \"Enter a Snap Distance greater than zero (0). Press OK to con
tinue\"\ntheDist = msgbox.Input(theMsg,theTitle,theSnapDist.AsString)\n_theDist2 = theDist'***********************\n' Exit if pressed Cancel\n\nif (theDist = NIL) then\n  return NIL\nend\n\n' Set theSnapDist and object tag storing value\n\nif (theDist.isNumber) then\n  if (theDist.AsNumber > 0) then\n    SELF.SetTag(theDist)\n    theSnapDist = theDist.AsNumber\n    _theSnapDist2 = theDist.AsNumber'***************** \n  else\n    theMsg = \"Snap distance must be > 0\"\n    msgbox.info(theMsg,theTitle)\n    return NIL\n  end\nelse\n 
 theMsg = \"Snap distance must be > 0\"\n  msgbox.info(theMsg,theTitle)\n  return NIL\nend\nelse '*********************************\n' Begin snapping transaction\n\ntheThemesSnap = _theThemesSnap2 '*****************************\ntheDist = _theDist2'***********************\ntheSnapDist = _theSnapDist2'*****************\ntheTheme.GetFtab.BeginTransaction\n\n' Loop through each selected edit feature\n\nif (_theThemesSnap2 = nil) then MsgBox.Error(\"Please Hold Down Control Key and Click Again\", \"No Settings Selected\") \n    els
e\nfor each r in theTheme.GetFtab.GetSelection\n\n  ' Get Edit them shape (theShapeValue)\n  \n  theShape = theFTab.FindField(\"Shape\")\n  theShapeValue = theFtab.ReturnValue(theShape, r)\n  \n  ' Loop through each snap theme\n  \n  for each theThemeSnap in theThemesSnap\n\n    theFTabSnap = theThemeSnap.GetFtab\n    theShapeSnap = theFTabSnap.FindField(\"Shape\")\n\n    ' Loop through selected features in snap theme to create a shape\n    ' object representing their merged shapes (theMergeShapeSnapValue)  \n  \n    counter = 1
\n    for each record in theFtabSnap.GetSelection    \n      theShapeSnapValue = theFtabSnap.ReturnValue(theShapeSnap, record)\n      if (counter = 1) then\n        theMergedShapeSnapValue = theShapeSnapValue\n      else\n        theMergedShapeSnapValue = theMergedShapeSnapValue.ReturnMerged(theShapeSnapValue)\n      end\n      counter = counter + 1  \n    end\n  \n    ' Clip theShapeValue and theShapeSnapValue to the view's visible extent\n  '*****************************************\n   if (counter = 1) then MsgBox.Er
ror(\"Please Hold Down Control Key and Click Again\", \"No Settings Selected\") \n    else\n\n  '***************************************** \n    \n    theClippedShapeValue = theShapeValue.ReturnIntersection(theViewRect)\n    theClippedShapeSnapValue = theMergedShapeSnapValue.ReturnIntersection(theViewRect)\n  \n    ' Exit if a portion of edit polygon is not visible?\n  \n    if (theClippedShapeValue.IsNull.Not) then\n    \n      ' Exit if a portion of the snap shape is not visible   \n    \n      if (theClippedShapeSnapValue
.IsNull.Not) then\n      \n        ' For a line based edit theme, snap.\n      \n        if (theFtab.GetShapeClass.GetClassName = \"Polyline\") then\n          if (theClippedShapeSnapValue.GetDimension = 1) then\n            theSnapValue = theClippedShapeSnapValue\n          else\n            theSnapValue = theClippedShapeSnapValue.AsPolyline\n          end\n          if (theShapeValue.Snap(theSnapValue,theSnapDist)) then\n            theTheme.GetFTab.SetValue(theShape, r, theShapeValue)\n            theTheme.Invalidate 
(TRUE)\n          else\n            theMsg = \"Edit feature and\"++theThemeSnap.GetName++\"features are not within a snap distance of\"++theSnapDist.AsString++\" feet. Edit feature is already snapped or too far from the selected snap theme features.\"\n            msgbox.info(theMsg,theTitle)\n          end\n        else\n\n          ' For a polygon-based edit theme:\n      \n          ' a) if the snap theme = line, snap.\n      \n          if (theClippedShapeSnapValue.GetDimension = 1) then\n            if (theShapeValue.Sn
ap(theClippedShapeSnapValue,theSnapDist)) then\n              theTheme.GetFTab.SetValue(theShape, r, theShapeValue)\n              theTheme.Invalidate (TRUE)\n            else\n              theMsg = \"Edit feature and\"++theThemeSnap.GetName++\"features are not within a snap distance of\"++theSnapDist.AsString++\" feet. Edit feature is already snapped or too far from the selected snap theme features.\"\n              msgbox.info(theMsg,theTitle)\n            end\n      \n          ' b) if snap theme = polygon, subtract 
overlapping shapes, then snap. \n      \n          elseif (theClippedShapeSnapValue.GetDimension = 2) then\n            subtracted = FALSE\n            snapped = FALSE \n            theNewShapeValue = theShapeValue.ReturnDifference(theClippedShapeSnapValue)\n            if (theNewShapeValue.IsNull.Not) then\n              if (theNewShapeValue <> theShapeValue) then\n                theTheme.GetFTab.SetValue(theShape, r, theNewShapeValue)\n                subtracted = TRUE\n              end\n              if (theNewSh
apeValue.Snap(theClippedShapeSnapValue,theSnapDist)) then\n                theTheme.GetFTab.SetValue(theShape, r, theNewShapeValue)\n                snapped = TRUE\n              end\n              if ((subtracted) or (snapped)) then\n                theTheme.Invalidate (TRUE)\n              else\n                theMsg = \"Edit feature and\"++theThemeSnap.GetName++\"features are not within a snap distance of\"++theSnapDist.AsString++\" feet. Edit feature is already snapped or too far from the selected snap theme featu
res.\"\n                msgbox.info(theMsg,theTitle)\n              end\n            else\n              theMsg = \"Edit feature is completely within the selected \"++theThemeSnap.GetName++\"features.\"\n              msgbox.info(theMsg,theTitle)\n            end\n          end\n        end\n      else\n        theMsg = \"The selected\"++theThemeSnap.GetName++\"features are NOT within the visible extent of the view.\"\n        msgbox.info(theMsg,theTitle)\n      end\n    else\n      theMsg = \"The selected edit feature is NOT with
in the visible extent of the view.\"\n      msgbox.info(theMsg,theTitle)\n    end\n  end\nend\ntheTheme.GetFtab.EndTransaction\nend\nend\nend\ntheTheme.SetSnapping (True)\nend\n"
)

(Script.1335
	Name:	"Batch.Import.2.Shape"
	SourceCode:	"' Name:  aanView.BatchImportToShape\n'\n' Title:  Batch Import To Shapefile\n'\n' Topics:  View, Shapefile, Theme\n'\n' Description:  Allows the user to import all active themes in a View to shapefiles.  \n' Useful in converting large numbers of files to shapefiles and storing them in one \n' location simultaneously.  The script must be run from a View with one or more \n' active feature themes.  The script does not allow the user to write over an existing\n' file of the same name.  The names for the new shapefiles a
re derived by adding .shp\n' to the theme name.  For this reason, theme names must either be 8 characters \n' or less if run on a operating system that does not support long file names.\n'\n' Script by Mike DeLaune, (Email: mike.g.delaune@state.or.us),\n' Oregon Department of Forestry, 10/19/97.\n'\n' Requires:  The active document must be a View with active feature themes.\n'\n' Self:  \n'\n' Returns: \n\n'===========================================================\n \n'  Check for the shift key, if the shift key is down
, pop up instructions for using this script\n\nif (System.IsShiftKeyDown) then\n  message =\n  \" \"+nl+\n  \"Instructions For Batch Import Active Themes to Shapefiles:\"+NL+NL+\n  \"This script allows the user to import all active feature themes in a View to shapefiles.\"+nl+\n  \"The script is useful in converting large numbers of themes to shapefiles and storing them \"+nl+\n  \"in one location simultaneously.  The script must be run from a View with one or more active\"+nl+\n  \"feature themes.  The script does not allow t
he user to write over an existing file of the\"+nl+ \n  \"same name.  The names for the new shapefiles are derived by adding .shp to the \"+nl+\n  \"theme name.  For this reason, theme names must either be 8 characters or less if run \"+nl+\n  \"on a operating system that does not support long file names.\"+nl+nl+\n  \"Script by Mike DeLaune, (Email: mike.g.delaune@state.or.us),Oregon Department of Forestry, 10/18/97.\"+NL+NL+\n  \"\"+nl         \n  msgbox.report(message,\"Batch Import Active Themes to Shapefiles Instruction
s\")\n  \n  Clipboard.The.Empty\n  Clipboard.The.Add(message)\n  Clipboard.The.Update\n    \n  MsgBox.Info(\"These instructions were copied to the system clipboard.  To print them, open a text editor\"++\n  \"(like notepad), paste in the contents of the clipboard, and print them from the text editor.\",\"PRINT INSTRUCTIONS\")\n\n  return nil\nend\n\n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''\n'  Begin Initial Setup:\n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''' \n\n'  Get the View:\ntheView = av.GetAc
tiveDoc\n\n\n'  END OF THE INITIAL SETUP\n\n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''\n'  Ask for User input:\n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''   \n\n\ndefFN = FileName.Merge(FileName.GetCWD.AsString, \"Put My Files Here\")\naveDir = FileDialog.Put(defFN, \"~\", \"Please choose a directory Where the Shapes Should be saved.\")\n  if (aveDir = NIL) then return nil end\naveDir2 = aveDir\naveDir = aveDir.ReturnDir\naveDir2.SetCWD\n\n\nthePath = aveDir.asString +\"\\\"\n\n\n\n\n''  User designates whe
re the output shapefiles will be stored.\n'thePath = MsgBox.Input(\"Type in the Path to the Subdirectory Where the Shapes Should be saved. Example   G:\\tilamook\\data\\standspl\", \"Batch Shape File Save\", \"G:\\\")\n'if (thePath = nil) then exit end \n'thePath = thePath + \"\\\"\n\n              \n'  END OF USER INPUT.\n\n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''\n'  Begin the conversion process\n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''\n\n'  Gets the list of active themes, checks eac
h to see if it is an FTheme and if it can be exported to an FTab:\n\nThemeList = {}\nfor each t in theView.GetThemes\nThemeList.add(t.AsString)\nend\n\nchoices = MsgBox.MultiListAsString( ThemeList, \"Select Themes to Export\", \"SELECT\" )\n\nif (choices.count <1) then return nil end\n\n\n\nfor each St in choices\nt = theView.FindTheme (St)\nif (St = t.asstring) then\n\n  if (t.Is( FTHEME ).Not) then \n      if (t.CanExportToFtab.Not) then \n         continue\n      end\n  end\n\n'  If not an FTheme, creates a shapefile name based o
n the theme name:\n  if (t.Is (FTHEME).Not) then\n   name = t.getname\n   if(name.Contains(\".\")) then\n     namelist = name.AsTokens(\".\")\n     name = namelist.Get(0) \n   end  \n   def = (thePath + name + \".shp\").AsFileName\n   if (def = NIL) then return NIL end\n   \n   if ( File.Exists(def)) then\n     msgbox.Warning(def.AsString++\"already exists.  Skipping import of this theme.\"++\n     \"Try importing theme to a different subdirectory.\" ,\"BATCH IMPORT ACTIVE THEMES\")\n     continue\n   end   \n      \n   anFTab = t.Exp
ortToFtab(def)\n      \n'  If is an FTheme, then create a shapefile name based on the FTab name\n  else\n    tbl = t.GetFTab\n   attribVis = FALSE\n   for each f in tbl.GetFields\n    if ((f.IsVisible) and not (f.IsTypeShape)) then\n      attribVis = TRUE\n      break\n    end\n   end\n   shapeVis = tbl.FindField(\"Shape\").IsVisible\n   if ((attribVis and shapeVis).Not) then\n     continue\n   end \n   name = t.getname\n   if(name.Contains(\".\")) then\n     namelist = name.AsTokens(\".\")\n     name = namelist.Get(0)\n   end\n   \n 
  def = (thePath + name + \".shp\").AsFileName\n\n'  End the process if no name was created:\n   if (def = NIL) then return nil end\n   \n'  End for this theme if file with same name already exists at the same location\n\n   if ( File.Exists(def)) then\n     msgbox.Warning(def.AsString++\"already exists.  Skipping import of this theme.\"++\n     \"Try importing theme to a different subdirectory.\" ,\"BATCH IMPORT ACTIVE THEMES\")\n     continue\n   end     \n  \n   shpfld = (tbl.FindField(\"Shape\"))\n   if (shpfld.IsVisible.Not) 
then\n    shpfld.SetVisible(shpfld.IsVisible.Not)\n    WasNotVisible = TRUE\n   else\n    WasNotVisible =FALSE\n   end\n  \n   anFTab = tbl.Export(def, Shape, tbl.GetSelection.Count > 0)\n   \n   if (anFTab.HasError) then\n     if (anFTab.HasLockError) then\n       MsgBox.Error(\"Unable to acquire Write Lock for file \" + def.GetBaseName,\"\")\n     else\n       MsgBox.Error(\"Unable to create \" + def.GetBaseName,\"\")\n     end\n     return nil\n   end    \n  \n   if (WasNotVisible) then\n    shpfld.SetVisible(FALSE)\n   end\n  \n  en
d\n \n'  Create a theme and add it to the View\n  fthm = FTheme.Make(anFTab)\n  theView.AddTheme(fthm)\n  'bring the View to the front\n  theView.GetWin.Activate\nend\nend\n"
)

(Script.1336
	Name:	"Batch.Copy.Shapes"
	SourceCode:	"\n'  Get the View:\ntheView = av.GetActiveDoc\n\n\n'  END OF THE INITIAL SETUP\n\n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''\n'  Ask for User input:\n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''   \n\n'Get the output directory for the coverage(s), make sure it exists\nthePath = FileDialog.put(\"_\".AsFileName,\"*.*\", \"Select the Output Directory\")\n\nif (thePath = NIL)then\n  return nil\nend\n\nthePath = (thePath.AsString).Left ((thePath.AsString).Count-1)\n\n\n              \n'  END OF USER INPUT.\n\n''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''\n'  Begin the conversion process\n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''\n\nTheThemeList = theView.GetThemes\n\nchoices = MsgBox.MultiList( TheThemeList, \"Select Themes to Copy\", \"SELECT\" )\nif (choices = nil) then\nreturn nil end\nif (choices.count < 1) then\nreturn nil end\n\n\nfor each T in choices\n\nTScrName = T.GetSrcName \nTFileName = TScrName.GetFileName\nTBasename = TFileName.GetBaseName \nTNameList = TBaseName.AsTokens(\".\")\nTName
 = TNameList.Get(0)\nTSource = TScrName.GetDataSource \n\nTPath1 = TFileName.AsString+\"\\\"+T.AsString\nTPath2 = TPath1.AsTokens(\".\")\nTPath3 = TPath2.Get(0)\n\n\n\n\nTypList = {\"shp\",\"aih\",\"ain\",\"avl\",\"dbf\",\"log\",\"sbn\",\"sbx\",\"shx\",\"avg\",\"met\",\"prj\"}    \n    For each L in TypList\n    InFile = (TPath3 +\".\"+L).AsFileName\n    thePathFileName = Filename.Make(InFile.AsString)\n    'MsgBox.Info( thePathFileName.AsString, \"The Title\" )\n    thePathFileExists = File.Exists(thePathFileName)\n        If(thePathFileExists = True) th
en\n          InFile = (TPath3 +\".\"+L).AsFileName\n          OutFile = (thePath + (TName+\".\"+L)).AsFileName\n          File.Copy (InFile, OutFile)\n        end  \n\n    end\n    \n \n\n\n\nend\n    "
)

(Script.1337
	Name:	"Batch.Copy.Projections"
	SourceCode:	"DefaultPrjPathName = \"$AvHOME/DP.Prj\"\n\n\nif (File.exists(DefaultPrjPathName.AsFileName)) then       \n  \nelse                                                       \n  Mess = \"Navigate to the location where a Projection File is Located.\"\n\n  \n  tmpPath = FileDialog.Show(\"*.Prj\",\"*.Prj\", Mess)\n  tmpPath1 = tmpPath.AsString\n  \n  if (tmpPath1 = Nil) then\n     Return Nil\n  end \n  theFileName = Filename.Make(\"$AVHOME\\DP.Prj\")\n  \n  InFile = tmpPath\n  OutFile = theFileName\n  File.Copy (InFile, OutFile)\n  \nend 'if\n\n\n\n\n
defFN = FileName.Merge(FileName.GetCWD.AsString, \"~\")\naveDir = FileDialog.Put(defFN, \"*.ave\", \"Choose a Directory to Index\")\nif (aveDir = NIL) then return nil end\naveDir = aveDir.ReturnDir\n\nmyAnswer = MsgBox.YesNo( \"OverWrite Existing Projections ?\", \"ArcView\", False )\nif (myAnswer = nil) then return nil end\n\n\npathin=aveDir\nl={pathin}\ni=0\n\n'Builds a list of all directories\nav.ShowMsg(\"Traversing directories...\")\n\nwhile (i<l.Count)\n  av.SetStatus((i/l.Count)*100)\n  l.Merge(l.Get(i).Read(\"\"))\n  i=i+1\n\nend\nav.
ClearStatus\nav.clearmsg\n\nav.usewaitcursor\n\nav.showstopbutton\nc1=0\n\n'In each direcory get the list of  files \ntheFileList = {}\n\nfor each p in l\n  for each s in p.read(\"*.shp\")\n      if (s.isDir=true) then\n      'skip\n      else\n      theFileList.Add(s.AsString)     \n      end\n  end\nend\n     \n\n'''choices = MsgBox.MultiListAsString( theFileList, \"Select some\", \"SELECT\" )\n\nif(myAnswer = True) then\n    for each Fpath in theFileList\n      InFile = DefaultPrjPathName.AsFileName\n      PList = Fpath.Astokens(\"\\\")\n  
    tempP = \"\"\n      for each p in PList\n      tempP = p\n      end\n      FNList = tempP.AsTokens(\".\")\n      TheFileName = FNList.Get(0)\n      NewPathList = FPath.AsString.AsTokens(\".\")\n      NewPathA = NewPathList.Get(0)\n      NewPath = NewPathA+\".prj\"\n      OutFile = NewPath.AsFileName\n      File.Delete(OutFile)\n      File.Copy (InFile, OutFile)\n    end\nelse\n    for each Fpath in theFileList\n      InFile = DefaultPrjPathName.AsFileName\n      PList = Fpath.Astokens(\"/\")\n      tempP = \"\"\n      for each p in 
PList\n      tempP = p\n      end\n      FNList = tempP.AsTokens(\".\")\n      TheFileName = FNList.Get(0)\n      NewPathList = FPath.AsString.AsTokens(\".\")\n      NewPathA = NewPathList.Get(0)\n      NewPath = NewPathA+\".prj\"\n      OutFile = NewPath.AsFileName\n      if (File.exists(OutFile)) then\n      else\n      File.Copy (InFile, OutFile)\n      end\n    end\nend    "
)

(Script.1338
	Name:	"Util.DecodeSymbol"
	SourceCode:	"' Name: Util.DecodeSymbol\n'\n' Author: David Whiterod <Whiterod.David@saugov.sa.gov.au>\n'         Planning SA, Adelaide, South Australia <www.planning.sa.gov.au>\n' Date: 10/12/1998  Original Code\n' Revised by: \n' Revision Date: \n' Revisions: \n' -------------------------------------------------------------------\n' Description: Called from View.CreateAEPFile to decode a theme's \n'          classification symbols\n' Requires: An ArcView view with themes in it\n' Runs: \n' Run by: av.Run(\"Util.DecodeSymbol\",<A Symb
ol Object>)\n' Returns: Nothing\n' -------------------------------------------------------------------\n' Notes:\n\ntheSym = SELF\n\nif (theSym.Is(Symbol).Not) then\n  MsgBox.Warning(\"A symbol was no passed to me\",\"Util.DecodeSymbol\")\n  exit\nend\n\n' ******************\n' Defaults\n\ntheFont = \"Arial\".Unquote\ntheFontSize = \"8.25\".Unquote\ntheSymType = \"2\".Unquote\n\n'MsgBox.Info(theSym.GetType.AsString, \"Decode sym type\") \n\ntheColor = theSym.GetColor\ntheRGBList = theColor.GetRGBList\ntheColor = av.Run(\"Util.RGB2LongInt\",{th
eRGBList.Get(0),theRGBList.Get(1),theRGBList.Get(2)})\n\n'theFont = theSym.GetFont\n'theFontName = \n'theFontSize = \n\ntheResult = theColor + \",\" + theFont + \",\" + theFontSize + \",\" + theSymType + \",\" + \n            \"0\" + \",\" + \"0\" + \",\" + \"1\" + \",\" + \"1\" + \",\" + \"53\" + \",\" + \"0\"\n            \n\n\n' 16777088^Arial^8.25^2^0^0^1^1^53^0\n\nreturn theResult"
)

(Script.1339
	Name:	"Util.RGB2LongInt"
	SourceCode:	"' Name: Util.RGB2LongInt\n'\n' Author: David Whiterod <Whiterod.David@saugov.sa.gov.au>\n'         Planning SA, Adelaide, South Australia <www.planning.sa.gov.au>\n' Date: 10/12/1998  Original Code\n' Revised by: \n' Revision Date: \n' Revisions: \n' -------------------------------------------------------------------\n' Description: Converts an RGB colour value to a Windows Long Int\n'         Format (as used by ArcExplorer). Formular based on that\n'         provided by ESRI in ArcUser April-June 1998 p.43.\n' Require
s: theRed, theGreen, theBlue = number between 0 and 255\n' Runs: \n' Run by: av.Run(\"Util.RGB2LongInt\",{Red,Green,Blue})\n' Returns: A Colour (RGB) value converted to longint format (string)\n' -------------------------------------------------------------------\n' Notes:\n'\n\ntheRed = SELF.Get(0)\ntheGreen = SELF.Get(1)\ntheBlue = SELF.Get(2)\n\n' Check inputs are numbers between 0 .. 255\nif (theRed.Is(Number).Not) then\n  MsgBox.Warning(\"RED: A number was not passed to me\",\"Util.RGB2LongInt\")\n  exit\nend\n\nif ((theRed <
 0) OR (theRed > 255)) then\n  MsgBox.Warning(\"RED: Number out of range:\" ++ theRed.AsString,\"Util.RGB2LongInt\")\n  exit\nend\n\nif (theGreen.Is(Number).Not) then\n  MsgBox.Warning(\"GREEN: A number was not passed to me\",\"Util.RGB2LongInt\")\n  exit\nelseif ((theGreen < 0) OR (theGreen > 255)) then\n  MsgBox.Warning(\"GREEN: Number out of range:\" ++ theGreen.AsString,\"Util.RGB2LongInt\")\n  exit\nend\n\nif (theBlue.Is(Number).Not) then\n  MsgBox.Warning(\"BLUE: A number was not passed to me\",\"Util.RGB2LongInt\")\n  exit\nelseif 
((theBlue < 0) OR (theBlue > 255)) then\n  MsgBox.Warning(\"BLUE: Number out of range:\" ++ theBlue.AsString,\"Util.RGB2LongInt\")\n  exit\nend\n\ntheLongInt = (theRed * 1) + (theGreen * 256) + (theBlue * 65536)\n\ntheLongInt.SetFormat(\"d\")\n\n' Returns the long int number as a string\nreturn theLongInt.AsString\n\n"
)

(Script.1340
	Name:	"View.Quick.Extents.C"
	SourceCode:	"\n \n'  Check for the shift  key, if the shift key is down, pop up instructions for using this script\n\nif (System.IsShiftKeyDown) then\n  message =\n  \" Script Author ( Charles Herbold - Hmanfl@lycos.com )\"+nl+\n  \" \"+nl+\n  \" Quick Saved Extents\"+nl+\n  \" Hold Control Key and pick this tool to set the Extent\"+nl+\n  \" Once you set the Extent - Clicking the Button will Zoom \"+nl+\n  \" Current View to the Saved Extent Automatically \"+nl+\n  \" \"+nl+\n  \" \"+nl+\n  \" \"+nl+\n  \" \"+nl+\n  \" \"+nl\n'Title here         \n  msgbox.r
eport(message,\"View.Quick.Extents.C\")\n  \n  Clipboard.The.Empty\n  Clipboard.The.Add(message)\n  Clipboard.The.Update\n    \n  MsgBox.Info(\"These instructions were copied to the system clipboard.  To print them, open a text editor\"++\n  \"(like notepad), paste in the contents of the clipboard, and print them from the text editor.\",\"PRINT INSTRUCTIONS\")\n\n  return nil\nend\n\n\ntheView = av.GetActiveDoc\ntheExtent = theView.GetDisplay.ReturnExtent\nVName = TheView.AsString\n\n\n' Check $Home for a text file named QExtents.tx
t containing the path to the program.  If not there, \n' ask the user where program is located, then make and store a file named QExtents.txt\n\n' Check for the existence of the file named QExtents.txt:\nthePathFileName = Filename.Make(\"$AVHOME\\QExtents.txt\")\nthePathFileExists = File.Exists(thePathFileName)\n    \n' If either file is missing or in the wrong location, get the correct location and make a new path file:\n \nif (thePathFileExists = False) then \n   \n'******************************** Extents\n \nStoreStr =
 theExtent.AsString\nStrList = StoreStr.Astokens(\" \")\n\nStrOrgList = StrList.Get(1).AsTokens(\",\")\nOrgPoint = Point.Make (StrOrgList.Get(0).AsNumber, StrOrgList.Get(1).AsNumber)\n\nStrSzeList = StrList.Get(2).AsTokens(\",\")\nSzePoint = Point.Make (StrSzeList.Get(0).AsNumber, StrSzeList.Get(1).AsNumber)\n\ntheRExtent = Rect.Make (OrgPoint, SzePoint)\n\ntheView.GetDisplay.ZoomToRect(theRExtent)\n\n\n   \n'************************************* \n    thePathFile2 = LineFile.Make(thePathFileName, #FILE_PERM_CLEARMODIFY)\n    the
PathFile2.WriteElt(StoreStr)\n    thePathFile2.Close\n\nend\n\n\nif (System.IsControlKeyDown) then \n \n'******************************** Extents\n \nStoreStr = theExtent.AsString\nStrList = StoreStr.Astokens(\" \")\n\nStrOrgList = StrList.Get(1).AsTokens(\",\")\nOrgPoint = Point.Make (StrOrgList.Get(0).AsNumber, StrOrgList.Get(1).AsNumber)\n\nStrSzeList = StrList.Get(2).AsTokens(\",\")\nSzePoint = Point.Make (StrSzeList.Get(0).AsNumber, StrSzeList.Get(1).AsNumber)\n\ntheRExtent = Rect.Make (OrgPoint, SzePoint)\n\ntheView.GetDisplay.
ZoomToRect(theRExtent)\n\n\n   \n'************************************* \n    thePathFile2 = LineFile.Make(thePathFileName, #FILE_PERM_CLEARMODIFY)\n    thePathFile2.WriteElt(StoreStr)\n    thePathFile2.Close\nend\n\n\n\nif (thePathFileExists = True) then \n    thePathFile = LineFile.Make(thePathFileName, #FILE_PERM_MODIFY)\n    theExtent = thePathFile.ReadElt\n    \n'******************************** Extents\n \nStoreStr = theExtent.AsString\nStrList = StoreStr.Astokens(\" \")\n\nStrOrgList = StrList.Get(1).AsTokens(\",\")\nOrgPoint
 = Point.Make (StrOrgList.Get(0).AsNumber, StrOrgList.Get(1).AsNumber)\n\nStrSzeList = StrList.Get(2).AsTokens(\",\")\nSzePoint = Point.Make (StrSzeList.Get(0).AsNumber, StrSzeList.Get(1).AsNumber)\n\ntheRExtent = Rect.Make (OrgPoint, SzePoint)\n\ntheView.GetDisplay.ZoomToRect(theRExtent)\n\n\n   \n'************************************* \n    \n\n\n\n\n\nend\n"
)

(Script.1341
	Name:	"compiled theme tools.apr.Script.List"
	SourceCode:	"'compiled theme tools.apr\nScriptList = {\n\"1About.CompiledThemeTools\",\n\"1My Extension MAKE**************\",\n\"Cad.Extractor.C\",\n\"Data.Create.Spatial.Index.C\",\n\"DO.Add.Cancel\",\n\"DO.Add.CbxEF\",\n\"DO.Add.Go\",\n\"DO.Add.OK\",\n\"DO.Add.RBFrom\",\n\"DO.Add.RBTo\",\n\"DO.GO\",\n\"DO.Help.Go\",\n\"DO.Help2.Go\",\n\"DO.Lock\",\n\"DO.OPEN\",\n\"DO.Run\",\n\"DO.Show.Info\",\n\"DO.View.Select\",\n\"Doc.ExportImportODB\",\n\"DT.DXF.Out.Attrib.C\",\n\"Fill.Apply\",\n\"Fill.Cancel\",\n\"Fill.Del\",\n\"Fill.GetSymbol\",\n\"Fill.Help\",\n\"Fill.Make\",\n\"Fill.Move\",\n\"Fill.New\",\n\"Fill
.NewNumber\",\n\"Fill.Open\",\n\"Fill.Start\",\n\"Fill.Update\",\n\"LabelTheme.CanUnload\",\n\"LabelTheme.cbx_AttachTheme.I.Update\",\n\"LabelTheme.cbx_Theme.E.Select\",\n\"LabelTheme.cbx_Theme.E.Update\",\n\"LabelTheme.cbx_Theme.I.Select\",\n\"LabelTheme.cbx_Theme.I.Update\",\n\"LabelTheme.chk_Attach.I.Click\",\n\"LabelTheme.chk_OnlySelected.E.Update\",\n\"LabelTheme.chk_Selected.I.Update\",\n\"LabelTheme.ExportLabel.Open\",\n\"LabelTheme.ImportLabel.Open\",\n\"LabelTheme.Instructions\",\n\"LabelTheme.lbt_Cancel.E.Click\",\n\"LabelTheme.lbt_Cancel.I.Click\"
,\n\"LabelTheme.lbt_GO.E.Click\",\n\"LabelTheme.lbt_GO.I.Click\",\n\"LabelTheme.rad_All-Theme.E.Click\",\n\"LabelTheme.rad_Visible.E.Click\",\n\"LabelTheme.RunExport\",\n\"LabelTheme.RunImport\",\n\"LabelTheme.Unload\",\n\"LineBuilder.1ButtonClick\",\n\"LineBuilder.2ButtonClick\",\n\"LineBuilder.3ButtonClick\",\n\"LineBuilder.AddColor1ToPalette\",\n\"LineBuilder.AddColor2ToPalette\",\n\"LineBuilder.AddColor3ToPalette\",\n\"LineBuilder.AdvancedCancel\",\n\"LineBuilder.AdvancedOK\",\n\"LineBuilder.AdvancedOpen\",\n\"LineBuilder.AdvancedOpen1\",\n\"LineBuilder.A
dvancedOpen2\",\n\"LineBuilder.AdvancedOpen3\",\n\"LineBuilder.AdvancedOpener\",\n\"LineBuilder.AdvancedOpener1\",\n\"LineBuilder.AdvancedUpdater\",\n\"LineBuilder.BuildCompositAILine\",\n\"LineBuilder.CreateLine\",\n\"LineBuilder.CustomUpdate1\",\n\"LineBuilder.CustomUpdate2\",\n\"LineBuilder.CustomUpdate3\",\n\"LineBuilder.LabelButtonHelp\",\n\"LineBuilder.LineStyle1\",\n\"LineBuilder.LineStyle2\",\n\"LineBuilder.LineStyle3\",\n\"LineBuilder.LineStylePreview1\",\n\"LineBuilder.LineStylePreview2\",\n\"LineBuilder.LineStylePreview3\",\n\"LineBuilder.Open\",\n
\"LineBuilder.OpenButton\",\n\"LineBuilder.Presets\",\n\"LineBuilder.PreviewLine\",\n\"LineBuilder.RGB1Updater\",\n\"LineBuilder.RGB2Updater\",\n\"LineBuilder.RGB3Updater\",\n\"LineBuilder.RGBClick\",\n\"LineBuilder.SliderLine1\",\n\"LineBuilder.SliderLine2\",\n\"LineBuilder.SliderLine3\",\n\"LineBuilder.SliderUpdater\",\n\"LineBuilder.StdColClick\",\n\"LineBuilder.SwatchUpdater\",\n\"MT.Add.All.View\",\n\"MT.Add.Theme\",\n\"MT.Add.View\",\n\"MT.Close\",\n\"MT.Delete.List\",\n\"MT.Delete.Theme\",\n\"MT.Done.Edit\",\n\"MT.Edit.Lists\",\n\"MT.Help.Go\",\n\"MT.List.Selected\",
\n\"MT.New.List\",\n\"MT.New.List.Open\",\n\"MT.Open\",\n\"MT.Run\",\n\"MT.View.Select\",\n\"Polygon.AllIntersections\",\n\"SE.Add.Extent\",\n\"SE.Delete.Extent\",\n\"SE.Draw.Extent\",\n\"SE.Help.Go\",\n\"SE.Name.Done\",\n\"SE.Open\",\n\"SE.Save\",\n\"SE.Selected\",\n\"SE.Zoom.Last\",\n\"splitTool.Apply\",\n\"splitTool.update\",\n\"Sub.Get3PCircle\",\n\"Sub.Get3PDirection\",\n\"Sub.GetConvexHull\",\n\"Sub.GetThsnPolygons\",\n\"Sub.RadialPointSort\",\n\"Theme.Dissect\",\n\"Theme.Tools.Whats.New.C\",\n\"Theme.Sort.Shape.C\",\n\"TwoThemeAnalyst.AggData\",\n\"TwoThemeAnalyst.AreaPercent\",\n
\"TwoThemeAnalyst.Proximity\",\n\"View.Assign.New.Values.C\",\n\"View.Auto.Union.C\",\n\"view.bilegend\",\n\"View.Calculate.Feature.C\",\n\"View.Circle.Line.Snap.C\",\n\"View.Clear.All\",\n\"View.Clip.From.Graphic.C\",\n\"View.Clip.Shp.C\",\n\"View.Demographics.Analysis.C\",\n\"View.DetectHolesPolygons\",\n\"View.DetectIntersectPolygons\",\n\"View.Dissolve.Shape.C\",\n\"Densify.Shapes\",\n\"View.DXF.Menu.C\",\n\"View.Dxf.Txt.2.Point.C\",\n\"View.Explode.Shape.C\",\n\"View.Export.Clean.C\",\n\"View.Graphic.2.Shp.C\",\n\"View.Import.711.C\",\n\"View.Label.Menu.Branch.C
\",\n\"View.Labels.AsShapefile.C\",\n\"View.LabelTools.Help.C\",\n\"View.Legend.Add.Colors.To.Palette.C\",\n\"View.Legend.Desaturate.C\",\n\"View.Legend.Export.C\",\n\"View.Legend.Help.C\",\n\"View.Legend.Icon.Fill.C\",\n\"View.Legend.Import.C\",\n\"View.Legend.Swap.Symbols.C\",\n\"View.Legend.Text.Item.C\",\n\"View.Legend.Tools.Menu.C\",\n\"View.LoadGraphicText\",\n\"View.MakePointPolygons\",\n\"View.Menu.Help.C\",\n\"View.Misc.Tools.Menu.C\",\n\"View.MV.Add.C\",\n\"View.MV.Add2.C\",\n\"View.MV.Del.C\",\n\"View.MV.Del.File.C\",\n\"View.MV.Help.C\",\n\"View.MV.Load.C\",
\n\"View.MV.Menu.C\",\n\"View.Nearest.C\",\n\"View.Points.2.Polygons.C\",\n\"View.Poly.2.Line.C\",\n\"View.Poly.2.Point.C\",\n\"View.Poly.Int.2.Pnt.C\",\n\"View.Remove.Vertices\",\n\"View.ReturnSelectedGraphicText.C\",\n\"View.SaveGraphicText\",\n\"View.SelectPoint\",\n\"View.SelectPoint.C\",\n\"View.SetTOCFont\",\n\"View.Shape.2.Graphic.C\",\n\"View.Shape.Conver.Menu.C\",\n\"View.Shapes.2.DXF.C\",\n\"View.Spatial.Tool.Menu.C\",\n\"View.Spider.Diagram.C\",\n\"View.Split.Theme.C\",\n\"View.Theme.Snap.Feature.C\",\n\"View.Theme.Tool.Update.C\",\n\"View.Toc.Hide.Show.C\",
\n\"View.Toc.Menu.C\",\n\"View.TOC.Sort\",\n\"View.Togle.Legend.C\",\n\"View.Tool.Bar.Menu\",\n\"View.Transfer.Features.C\",\n\"View.CreateAEPFile\",\n\"View.Zblank\",\n\"Z.SelectDeluxe.CircleBoundaryTool\",\n\"Z.SelectDeluxe.CircleDonutTool\",\n\"Z.SelectDeluxe.CircleTool\",\n\"Z.SelectDeluxe.LineBufferBoundaryTool\",\n\"Z.SelectDeluxe.LineBufferTool\",\n\"Z.SelectDeluxe.LineTool\",\n\"Z.SelectDeluxe.PointTool\",\n\"Z.SelectDeluxe.PolygonBoundaryTool\",\n\"Z.SelectDeluxe.PolygonBufferBoundaryTool\",\n\"Z.SelectDeluxe.PolygonTool\",\n\"Z.SelectDeluxe.Polyline
BufferBoundaryTool\",\n\"Z.SelectDeluxe.PolylineBufferTool\",\n\"Z.SelectDeluxe.PolylineTool\",\n\"Z.SelectDeluxe.RectBoundaryTool\",\n\"Z.SelectDeluxe.RectBufferBoundaryTool\",\n\"Z.SelectDeluxe.RectTool\",\n\"Z.View.Clear.All\",\n\"Z.View.Clear.Selected\",\n\"Z.View.Tool.Help\",\n\"zLabMove.Help\",\n\"zLabMove.Mover.btn_InOut.Click\",\n\"zLabMove.Mover.btn_Move.Click\",\n\"zLabMove.Mover.tol_Offset.Apply\",\n\"zLabMove.MoverDocActivate\",\n\"zLabMove.MoverDocClose\",\n\"zLabMove.MoverDocOpen\",\n\"zLabMove.MoverRun\",\n\"zLabMove.MoverRunUpdate\",\n\"ZSnap.S
napEditFeatureUpdate1.C\",\n\"ZSnap2.SnapEditFeature.C\",\n\"Util.DecodeSymbol\",\n\"Util.RGB2LongInt\",\n\"Batch.Import.2.Shape\",\n\"Batch.Copy.Projections\",\n\"Batch.Copy.Shapes\"\n}\nYChoice = MsgBox.MultiListAsString(ScriptList,\"Scripts in this Project\",\"Ctrl+Ok = MakeScript(s)\")\nd = nil\nif (System.IsControlKeyDown) then\nif (YChoice.count > 0) then\nFor each S in YChoice\nSp = av.FindScript (S)\nd = SEd.MakeFromSource (Sp.AsString,S)\nend\nend\nend\nMsgBox.Info( \"Done\", \"Check Script Window\" )\n "
)

(Script.1342
	Name:	"View.Symbol.Tools.Menu.C"
	SourceCode:	"thetest = 1\ntheMenu = { \"Make Polygon Fill Symbols\",\"Make Polyline Symbols\",\"Use Icons as Fill Symbols\"}\ntheMenuChoice = msgbox.ListAsString( theMenu, \"Chose a Menu Item?\", \"Manage Your Symbols\")\nif (theMenuChoice = nil) then exit end\n\n'Edit Fill Symbols\nif (theMenuChoice = \"Make Polygon Fill Symbols\") then\nav.run( \"Fill.Start\", thetest )\nend\n\n'Make Polyline Symbols\nif (theMenuChoice = \"Make Polyline Symbols\") then\nav.run( \"LineBuilder.OpenButton\", thetest )\nend\n\n'Use Icons as Fill Symbols\nif (theMenuChoice
 = \"Use Icons as Fill Symbols\") then\nav.run( \"View.Legend.Icon.Fill.C\", thetest )\nend\n"
)

(Script.1343
	Name:	"My Extension Install"
	SourceCode:	"'DO NOT EDIT!!!\n\nif (av.getproject=nil) then return(nil) end\n _theLastExtent = nil\n_NamedExt_Extents = {}\n_Lt = True\n_TheV = nil\n_aPrj = nil\nthePathFileName = Filename.Make(\"$AVHOME\\MyExtents.odb\")\nthePathFileExists = File.Exists(thePathFileName)\nif (thePathFileExists = True) then\n  myODBFile = thePathFileName\n    myOdb=Odb.Open(myOdbfile)\n    aCount=myOdb.Count-1\n    \n    aClassList=List.Make  ' list of unique classes in ODB file\n    aNameList=List.Make   ' list of Obj Names in ODB file.\n    aObjList=List.
Make\n  \n    for each aIdx in 0..aCount\n      aObj=myOdb.Get(aIdx)\n      aClassName=aObj.GetClass.GetClassName\n      aObjName=aObj.GetName\n      aClassList.Add(aClassName)\n      aNameList.Add(aObjName)\n      aObjList.Add(aObj)\n    end\n  \n   aClassList.RemoveDuplicates\n   aList = {aObjList,aNameList,aClassList}\n  \n   if (not(aList = nil)) then\n   theDict=aList.Get(0).Get(0)\n   if (not(theDict = nil)) then\n    _NamedExt_Extents.Add(theDict)\n   end \n   end\nelse\ntheDict=Dictionary.Make(30)\ntheDict.SetName(\"MyExt
ents\")\n_NamedExt_Extents.Add(theDict)\n\n\nend ' if (thePathFileExists = True) then \n\n\n\ntheDocs = SELF.get(0)\ntheDialogs = SELF.get(1)\ntheControlList = SELF.get(2)\ntheMenuList = SELF.get(3)\ntheToolMenuList=SELF.Get(4)\ntheProject=Av.getproject\n\n\n\n'Add the Docs\n'\nfor each adoc in theDocs\n theProject.addDoc(adoc)\nend\n\n'Add the Dialogs\n'\nfor each adialog in theDialogs\n theProject.addDialog(adialog)\nend\n\n'Add the Controls\n'\nfor each totalControl in theControlList\n   'The Control list\n   acontrol=totalControl.get(0)
\n   \n   'The physical control\n   theControl = totalControl.get(1)\n   \n   'The control Index\n   theCindex=totalControl.get(2)\n\n   'Find the DocGUI\n   theControlDoc=av.getproject.findGUI(aControl.get(0))\n     if (theControlDoc=NIL) then   \n       MsgBox.Warning(\"The GUI \"+aControl.get(0)+\" cannot be found in the current project.\",\"Script Eror\")\n       return(nil)\n     end\n   \n   'This finds the control set  \n  thecommand=\"av.getproject.findGUI(\"\"\"+aControl.get(0)+\"\"\").Get\"+acontrol.get(1)\n  thescript1=Script.
Make(thecommand)\n  thecontrolset=thescript1.doit(\"\")\n  \n  'Add the control to the control set\n  theControlSet.Add(theControl,theCindex)\nend\n\n\n'Add the menus\nfor each totalcontrol in theMenuList\n  \n   'The Control list\n   acontrol=totalControl.get(0)\n      mDoc=acontrol.get(0)\n      mMenu=acontrol.get(1)\n      mMenuItem=acontrol.get(2)\n\n   'The physical control\n   theControl = totalControl.get(1)\n   \n   'The control Index\n   theCindex=totalControl.get(2)\n\n   'Find the DocGUI\n   theControlDoc=av.getproject.fi
ndGUI(aControl.get(0))\n     if (theControlDoc=NIL) then   \n       MsgBox.Warning(\"The GUI \"+aControl.get(0)+\" cannot be found in the current project.\",\"Script Eror\")\n       return(nil)\n     end\n   \n  theMbar=av.getproject.findGUI(mDoc).GetMenuBar\n  themenu=theMbar.findbylabel(mMenu)\n  if (themenu=NiL) then\n      themenu=menu.make\n      themenu.setlabel(mMenu)\n      theMbar.add(themenu,999)\n  end\n  \n  themenu.add(thecontrol, theCindex)\nend\n   \n   \n'Add the Tool Menus\n\nfor each totalControl in theToolMenuList
\n   'The Control list\n   acontrol=totalControl.get(0)\n   \n   'The physical control\n   theControl = totalControl.get(1)\n   \n   'The control Index\n   theCindex=totalControl.get(2)\n\n   'Find the DocGUI\n   theControlDoc=av.getproject.findGUI(aControl.get(0))\n     if (theControlDoc=NIL) then   \n       MsgBox.Warning(\"The GUI \"+aControl.get(0)+\" cannot be found in the current project.\",\"Script Eror\")\n       return(nil)\n     end\n   \n   'This finds the control set  \n  thecommand=\"av.getproject.findGUI(\"\"\"+aControl.
get(0)+\"\"\").Get\"+acontrol.get(1)\n  thescript1=Script.Make(thecommand)\n  thecontrolset=av.getproject.findGUI(aControl.get(0)).GetToolBar\n  \n  'Add the control to the control set\n  theControlSet.Add(theControl,theCindex)\nend\n\n\nav.getproject.setmodified(true)\n\n\n'And the scripts add themselves\n"
)

(Script.1344
	Name:	"My Extension Uninstall"
	SourceCode:	"'DO NOT EDIT!!!\n\n'The SELF is the Extension\n\ntheDocs = SELF.get(0)\ntheDialogs = SELF.get(1)\ntheControlList = SELF.get(2)\ntheMenuList = SELF.get(3)\ntheToolMenuList=SELF.get(4)\ntheProject=Av.getproject\n\n\n'Remove the Docs\n'\nfor each adoc in theDocs\n If (theProject.finddoc(adoc.getname)<>NIL) then \n  theAnswer=msgbox.yesno(\"Remove the Document \"+adoc.getname+\"?\",\"Remove Document?\",TRUE)\n  if (theAnswer=TRUE) then theProject.RemoveDoc(adoc) end\n end\nend\n\n'Remove the Dialogs\n'\nfor each adialog in theDialogs\n  the
Project.RemoveDialog(adialog.AsString)\nend\n\n'Removethe Controls\n'\nfor each totalControl in theControlList\n   'Get the control list from the Ext\n   acontrol=totalControl.get(0)\n   \n   'Get the physical Control\n   theControl = totalControl.get(1)\n   \n   'Get the Controls Index\n   theCindex=totalControl.get(2)\n\n   'Find the DocGUI for the Control\n   theControlDoc=av.getproject.findGUI(aControl.get(0))\n     if (theControlDoc=NIL) then   \n       MsgBox.Warning(\"The GUI \"+aControl.get(0)+\" cannot be found in the 
current project.\",\"Script Eror\")\n       return(nil)\n     end\n   \n   'This sequence finds the appropiate control set\n   thecommand=\"av.getproject.findGUI(\"\"\"+aControl.get(0)+\"\"\").Get\"+acontrol.get(1)\n   thescript1=Script.Make(thecommand)\n   thecontrolset=thescript1.doit(\"\")\n\n   'See if the control is in the set , if so remove it\n    if (theControlSet.GetControls.find(theControl)<>NIL) then\n      theControlSet.remove(theControl)\n      if (thecontrol = \"ToolBar\") then\n        theControlSet.selectdefault\n      
end\n    end\nend\n\n\n'Remove the Menus\n'\nfor each totalcontrol in theMenuList\n  \n   'The Control list\n    acontrol=totalControl.get(0)\n      mDoc=acontrol.get(0)\n      mMenu=acontrol.get(1)\n      mMenuItem=acontrol.get(2)\n\n   'The physical control\n   theControl = totalControl.get(1)\n   \n   'The control Index\n   theCindex=totalControl.get(2)\n\n   'Find the DocGUI\n   theControlDoc=av.getproject.findGUI(aControl.get(0))\n     if (theControlDoc=NIL) then   \n       MsgBox.Warning(\"The GUI \"+aControl.get(0)+\" cannot b
e found in the current project.\",\"Script Eror\")\n       return(nil)\n     end\n   \n  theMbar=av.getproject.findGUI(mDoc).GetMenuBar\n  themenu=theMbar.findbylabel(mMenu)\n  if (themenu=NiL) then\n       MsgBox.Warning(\"The menu named \"+mMenu+\" is not here.\",\"Script Eror\")\n      'return(nil)\n  else\n  \n    thething=themenu.getcontrols.find(thecontrol)\n    if (thething<>NIL) then \n      themenu.remove(thecontrol) \n    end\n    'msgbox.info(themenu.GetControls.count.asstring,\"\")\n    if (themenu.GetControls.count<1) th
en\n      theMbar.remove(themenu)\n    end\n  end\nend\n   \nfor each totalControl in theToolMenuList\n   'Get the control list from the Ext\n   acontrol=totalControl.get(0)\n   \n   'Get the physical Control\n   theControl = totalControl.get(1)\n   \n   'Get the Controls Index\n   theCindex=totalControl.get(2)\n\n   'Find the DocGUI for the Control\n   theControlDoc=av.getproject.findGUI(aControl.get(0))\n     if (theControlDoc=NIL) then   \n       MsgBox.Warning(\"The GUI \"+aControl.get(0)+\" cannot be found in the current pr
oject.\",\"Script Eror\")\n       return(nil)\n     end\n   \n   'This sequence finds the appropiate control set\n   thecontrolset=av.getproject.findGUI(aControl.get(0)).GetToolBar\n\n \n    'See if the control is in the set , if so remove it\n    if (theControlSet.GetControls.find(theControl)<>NIL) then\n \n      theControlSet.remove(theControl)\n      theControlSet.selectdefault\n    end\n\nend\n   \n\n'And the scripts delete themselves\n\n\nav.getproject.setmodified(true)\n"
)

