The terminology confuses me too but as far as I have understood:
ArcObjects is a set components with which you can write a program to control any of the ESRI products (ArcGIS Desktop, ArcGIS Server or ArcEngine).
See "What is ArcObjects?".
ArcEngine is the kernel of ArcGIS without the user interface. You can't do anything with ArcEngine alone, you use it ...
A file geodatabase has 3 types of locks.
SR - schema lock
RD - read lock
ED - edit lock
The proposed solution by @StacyR will work in all situations except for exclusive edit locks (ED) according to arcgis help documentation.
If you create an ancillary table with the attributes (fkey,xcell,ycell),
populated from the objectid and a gridding of the maximum Y coordinate
(or centroid coordinate or upper-center envelope coordinate), then you
could use SQL to update the table, with something like:
UPDATE poly SET num = vtab.rownum
( SELECT row_number() over (order ...
I'm guessing you may have general performance issues such as labeling, layer scale rendering, transparencies..etc. If you have ArcGIS for Server license you may try using the Analyze button on the Service Editor to test a map document for these performance warnings.
Service Editor helps you identify potential performance bottlenecks
and errors that you ...
So far I have not found anything to help me ease the debugging experience of the ESRI COMException, and therefore decided to try and do something about it. I put the solution on gist.github.com for everybody to use.
I used the resource ArcObjects error codes and copied all the error messages with codes and enums into a text file, about 1900+ lines. Not all ...
This is a licensing issue. A standalone ArcEngine license does not support multi-user editing. According to ESRI's documentation, multi-user editing geodatabase functionality only exists for ArcGIS Server licensing.
Since you have tagged this question with ArcGIS Server, I am going to assume that you have an ArcGIS server license. What you need to do is ...
The best is to check ESRIs product information sites on its products, they describe its key features pretty well.
In short words:
ArcGIS Engine is a pure Developer Toolkit to embed ESRIs GIS Technology (Map View controls and so on) in individual Desktop and/or Mobile (Windows 6.5 and 7 mobile) Applications which are not intended as a pure GIS application ...
It seem you have written an ArcEngine application. So, you must install ArcEngine Runtime on any machine you need to run your application.
ArcEngine Runtime is the minimum. You can either install ArcEngine SDK or even ArcGIS Desktop to run you application.
The Arc Application (Engine or Desktop), must match the version of sdk that you have built your ...
It sounds like you need to explode your single part polygon to multipart:
e.g. Explode polygon feature
private void button1_Click(object sender, EventArgs e)
IWorkspaceFactory pwsf = new FileGDBWorkspaceFactoryClass();
IWorkspace pws = pwsf.OpenFromFile(@"D:\temp\Yogesh\Vector_YV5612\Vector_YV5612.gdb", 0);
IFeatureWorkspace pfeatws = pws as ...
Using GDAL >= 1.10.0 compiled with SQLite and SpatiaLite, it's quite simple.
Suppose we want to order the labels from left to right. Firstly, we have to calculate the distance of each feature from a common reference on the left of all geometries (e.g. -180th meridian) and then order the geometries by distance.
ogr2ogr FRA_adm1_temp.shp FRA_adm1.shp -...
Have you tried using IMultiuserWorkspaceEdit.
IWorkspaceEdit workspaceEdit = (IWorkspaceEdit)DB_Access.get_obj().ws;
IMultiuserWorkspaceEdit multiuserWSE = (IMultiuserWorkspaceEdit)workspaceEdit;
IFeatureClass fc = DB_Access.get_obj().ws....
The problem was somehow the target CPU of the project had changed. If you go to project properties and then compile there are 2 places where the target platform is set. On the first line there is a dropdown for "Platform". This was correctly set to x86. But 4 rows down there is another drop down for "Target CPU". This was set to x64 somehow. Once I changed ...
ArcEngine doesn't work like ArcGIS Desktop. If you have the proper licensing for a functionality or extension (e.g. spatial analyst) in ArcEngine, then you can use the related Interfaces of that extension.
ILocatorExtension, itself is dedicated to ArcGIS Desktop and can not be used with ArcEngine.
With ArcEngine your should utilize :
I suspect you are being unrealistic, adding several hundred layers to a map document or even grouplayer will make the map document unwieldy and almost certainly unstable. If you think about it on each insertion it needs to place it in the TOC, symbolize the data and if left on refresh the map display.
IEnumLayer to my knowledge only comes from IMap so your ...
Reviving this thread/issue, I found it can be usefull to combine, where possible, FGDB and PGDB. For instance, make a scratch-geodatabase a PGDB greatly helped performance of queries.
The size of the PGDB should not increase too much, as mentioned above.
Have a look at the ConstructIntersection method on the
IConstructMultipoint interface. It constructs the points of intersection between two segments with options for extending the segments in order to locate additional points.
If you're working on an arcgis engine app then check your licence initializer
change bindingarcgisruntime method the below code
void BindingArcGISRuntime(object sender, EventArgs e)
// TODO: Modify ArcGIS runtime binding code as needed
According to the doc, you should have all objects open before you start editing.
I don't know if this matters, but you appear to have started an edit session with undo, by calling iwe.startEditing(true). I don't know if this is supported without versioning, which personal geodatabases don't have.
I would try something like the following untested code:
Take a look at the code below. Full code in git repository can be here: https://bitbucket.org/bugramovic/fme_arcobjects_interop_example
PrintStream out = System.out;
FMEWorkspaceFactory fmeWorkspaceFactory = new FMEWorkspaceFactory();
IPlugInWorkspaceHelper plugInWorkspaceHelper = fmeWorkspaceFactory.openWorkspace( pathToFdlFiles );
the solution is :
the new Model is like :
it Paramters like :
the Code :
Dim gp As GeoProcessor = New ESRI.ArcGIS.Geoprocessing.GeoProcessor()
Dim trac As ITrackCancel = New CancelTracker
Dim Result As ESRI.ArcGIS.Geoprocessing.IGeoProcessorResult2
Dim parameters As IVariantArray = New VarArrayClass()
Ihad the same problem and I resolved it by casting featureClass from IFeatureClass to FeatureClass:
IFeatureClass featureClass = featureWorkspace.openFeatureClass(shapefileName);
FeatureClass featureClass2= new FeatureClass(featureClass);
//Attempt to acquire an exclusive schema lock on the feature class.
ISchemaLock schemaLock = (ISchemaLock)...
Not having the SDK is a major wrench in the gears here. If you have an MXD already on disk, you could use arcpy.mapping.AddLayer in a Python script on a MapDocument object and use MapDocument.saveACopy to save out. You can run ArcGIS' Python from an Engine install.
I came across the same problem this morning. After navigating through the arcgis documentation, I finally found a way to remove these lines.
In c++ :
where ipPieChartSym Is the pie chart symbol you created to assing to the renderer.
based on the conversation here is the code:
IMap mapControl = form.axMapControl2.ActiveView.FocusMap;
ICompositeLayer basemapCompositeLayer = (ICompositeLayer) mapControl.Layer;
ILayer basemapSubLayer = basemapCompositeLayer.Layer;
if (basemapSubLayer is IFeatureLayer)
IFeatureLayer featureLayer1 = (...
Cast them to ints, add them and recast back to esriSnappingType, like:
snappingEnvironment.SnappingType = (esriSnappingType)
You can not cast a FeatureClass into a ILayer! Here's the proper way to reach an ILayer from a FeatureClass:
IFeatureLayer fl = new ESRI.ArcGIS.Carto.FeatureLayer()
fl.FeatureClass = FC;
var l = fl as ILayer;
I am assuming all of your previous methods are correct and you have a valid IFeatuerClass (FC).
You need to point edit to an existing workspace object not the base class. So you need to get a handle on the workspace you intend to edit before you point an IWorkspaceEdit interface to it.
Search the API help for the page "Editing with the geodatabase API" there are several code samples to get you going.
It is not possible to use Esri Addins, regardless of whether you are using Python Addins or .NET Addins, to extend a custom application. You can only use Esri Addins to extend ArcGIS for Desktop applications (ArcMap, ArcCatalog, ArcScene, ArcGlobe).
The error you are receiving is likely the result of your target name and/or version value not being a legal ...