POST
|
Ruth, Here is a 9.3 model that does what you want. You may want to tweak it for your needs and to document it better. Duncan
... View more
01-19-2011
03:12 AM
|
0
|
0
|
260
|
POST
|
Will, I think you are heading off in the wrong direction... 😉 Below is some sample code that you would put in the on click event of a UIControl in an MXD. The code grabs the first layer in ArcMap, fires up ArcScene and then adds the layer. At this point you have a handle on the root object ISxDocument from which you can do all your stuff. Make sure you are referencing the esriArcScene library and have the 3D Analyst extension turned on. Duncan Public Sub test()
' Grab first layer in ArcMap
Dim pMXDocument As IMxDocument
Set pMXDocument = ThisDocument
Dim pMap As IMap
Set pMap = pMXDocument.FocusMap
Dim pLayer As ILayer
Set pLayer = pMap.Layer(0)
' Create an instance of ArcScene
Dim pDocument As IDocument
Set pDocument = New esriArcScene.SxDocument
Dim pApplication As IApplication
Set pApplication = pDocument.Parent
pApplication.Visible = True
' Add a layer to ArcScene
Dim pSXDocument As ISxDocument
Set pSXDocument = pDocument
pSXDocument.AddLayer pLayer
End Sub
... View more
01-18-2011
06:15 AM
|
0
|
0
|
416
|
POST
|
Gregory, Is the string ModelName being set to the name of your model? The Name of your model is not the same as the display label which you see in your Toolbox. In ArcToolbox right click on your model and select properties. Then under the general tab check that you are passing the Name and not Label. Also don't start your model name with a number. Duncan
... View more
01-18-2011
05:34 AM
|
0
|
0
|
146
|
POST
|
Ruth, You don't say which version of ArcGIS you are using, you need to tell us so that people can help you. Tools and models are implemented very differently in the different versions. Assuming ArcGIS 10 then you could do a summary statistic on your shapefile to get the column sum and do that into an In_Memory table. I think there is a tool called collect value so you can get the Sum value then finally do a calculate with an inline substitution, all this can be achieved in model builder, if you have version 10... Duncan
... View more
01-17-2011
06:37 AM
|
0
|
0
|
260
|
POST
|
Mark, I don't have ArcGIS 10 so I've had to do this in 9.3 python, so the code is a little different. My knowledge of Python ain't great but I realised you are not actually returning a value and what was getting passed to the function was is a string and you were not writing the new string back to the row. So below is some code that worked on a table I knocked up, hope you understand it? Duncan import arcgisscripting
gp =arcgisscripting.create(9.3)
gp.workspace= r"C:\temp"
def renamefld(a):
if a == 1:
return "Natural Forest"
elif a == 2:
return "Planted Forest - Pre-1990"
else:
# Return an ! so we know not to attempt to update row
print "Error with converting subtype to text"
return "!"
# Create update cursor
rows = gp.UpdateCursor("test.dbf")
row = rows.Next()
while row:
# Get row information
id = row.id
type = row.type
# Call function to change type
type = renamefld (id)
# update row object
if type != "!":
row.type = type
rows.updateRow(row)
row = rows.Next()
# release cursor
del row
del rows
... View more
01-16-2011
09:51 AM
|
0
|
0
|
474
|
POST
|
Demetris, I just tried you code on a table using the numeric field ObjectID and it works fine for me, this suggests there is something wrong with you R_Order field, does it contain <Null> values for example? Can you sort by this field in ArcMap? Duncan
... View more
01-15-2011
03:14 AM
|
0
|
0
|
311
|
POST
|
Frank, I don't know if I am giving you a red herring here but having looked at you model it's quite complex and I was wonder what order things are running in. You can make a proccesses output a precondition to another and this means "only run this process if the the precondition is successful" and this enforces a sequence to your model. It may be a pure fluke that the order you added the tools to your model is the order than runs well in edit mode? Just an idea and may not actually be the answer to your problem! Duncan
... View more
01-14-2011
05:12 AM
|
0
|
0
|
157
|
POST
|
Bad news I'm affraid. Avenue was the programming language of ArcView 3.x and is total different to python. There is no translation program for it. Basically you got to read the Avenue logic understand it and write it from scratch in python which has its own and very different syntax. Good luck!
... View more
01-14-2011
05:00 AM
|
0
|
0
|
219
|
POST
|
Demetris, See sample VBA code below on how to get a descending sort order. Duncan Public Sub Test()
Dim pTable As ITable
Set pTable = FindTableInMap("Downstream_Polylines")
Dim pTableSort As ITableSort
Set pTableSort = New esriGeoDatabase.TableSort
With pTableSort
Set .Table = pTable
Set .QueryFilter = Nothing
.Fields = "OBJECTID"
.Ascending("OBJECTID") = True ' TRUE is ascending, if set to FALSE then descending
.Sort Nothing
End With
Dim pCursor As ICursor
Set pCursor = pTableSort.Rows
Dim pRow As IRow
Set pRow = pCursor.NextRow
Do While Not pRow Is Nothing
Debug.Print pRow.Value(0)
Set pRow = pCursor.NextRow
Loop
End Sub
... View more
01-14-2011
02:21 AM
|
0
|
0
|
311
|
POST
|
Brent, OK, first thing first, if you run your model from ArcMap and supply those parameters exactly how you've written them does the model execute without a problem? I ask this as you have brackets a spaces in your path names. If you are not getting an error running it as a model then it suggests something is going wrong with the parameters. Also the execute method returns an object of type IGeoProcessorResult. Maybe you should get a hold of that and see what kind of error message it's returning? Have you set you parameters object to IVariantArray? Duncan
... View more
01-13-2011
10:27 AM
|
0
|
0
|
422
|
POST
|
bxe6736, Is this your real name? The only thing I spotted with your code snippet is the line: Dim GP As Geoprocessor = New Geoprocessor() I think should be: Dim GP As IGeoprocessor = New Geoprocessor() If this does not fix your problem it would help us if you uploaded the toolbox, does the model have parameters for example as you are supplying none? Duncan
... View more
01-12-2011
08:15 AM
|
0
|
0
|
422
|
POST
|
Dale, If I was calling an existing geoprocessing tool in VB then I would use the IGeoProcessor Interface. Search for this in the Help and then may be the forum to see how to set it up and supply the parameters to execute it. Have a look at this thread, the basic syntax is all there. Duncan
... View more
01-09-2011
04:05 AM
|
0
|
0
|
323
|
POST
|
Chris, First of all do you have the VBA developer help installed? If you are going to do any coding in VBA this is essential as you can search this or highlight an ArcObjects interface in the VBA editor and press F1 to find out all about it. You'll need the installation DVD to install it. Once you got that going just type IEditor you will see a method called StartEditing and all the others you need. Most Interfaces come with example code and you can see exactly how to start and stop editing in VBA. Duncan
... View more
01-09-2011
03:46 AM
|
0
|
0
|
209
|
POST
|
Neil, IHitTest... never knew about this Interface, ArcObjects just keeps on giving! 🙂 Duncan
... View more
12-16-2010
01:34 AM
|
0
|
0
|
266
|
POST
|
Orsela, The way I would have done this is use the ISegmentCollection and it's property Segment to loop over the collection of ISegments then use something like IProximityOperator to test if the point intersects the segment. Well that's how I would have done it... Duncan
... View more
12-15-2010
04:48 AM
|
0
|
0
|
266
|
Title | Kudos | Posted |
---|---|---|
1 | 04-10-2022 05:05 PM | |
1 | a week ago | |
1 | a week ago | |
1 | a week ago | |
2 | a week ago |
Online Status |
Offline
|
Date Last Visited |
a week ago
|