<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Insert feature causes Out of memory exception in ArcObjects SDK Questions</title>
    <link>https://community.esri.com/t5/arcobjects-sdk-questions/insert-feature-causes-out-of-memory-exception/m-p/721992#M19247</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;Could you post it on Dropbox or some equivalent and post a link?&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Hi, Jason. I created the project. &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Despite the common logic of the test project and the source, the test project produces another exception, but it occurs at the same operator (insert a feature to the feature class). &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Depending on the type of call (in the current thread or in new one) it can be the RCP_E_SERVERFAULT exception wit error code -2147417851 or the external object's exception with error code -2147467259. Also the project is based on .NET Framework 3.5 (as it should be for ArcObjects 10). Couldn't to base it on .NET Framework 4.0, and honestly don't realy understand how it happened with my source project. Maybe the difference of exceptions raised by the projects explaned by different framework they are based on. After all the exception remains and it raises constantly.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Link to archive &lt;/SPAN&gt;&lt;A href="http://dl.dropbox.com/u/91176632/Test.zip"&gt;http://dl.dropbox.com/u/91176632/Test.zip&lt;/A&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 18 Mar 2013 13:50:32 GMT</pubDate>
    <dc:creator>AlexeySubbotin</dc:creator>
    <dc:date>2013-03-18T13:50:32Z</dc:date>
    <item>
      <title>Insert feature causes Out of memory exception</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/insert-feature-causes-out-of-memory-exception/m-p/721983#M19238</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi!&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; I'm developing the 3D modeling GIS software. For 3D city models i use generated from vector data building models and 3d files (Google Earth and SketchUp) with geographic coordinates within. I import such files' geometries with IImport3DFile and store them in multipatch featureclass in file geodatabase. &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; At last I recieved an exception "Out of memory" during IFeatureCursor.InsertFeature. Have to say that there was no such a problem before (with other files). Error appears constantly after processing definite number of files. Geometries i load from them are correct, i processing their footprints and if i don't save them to my featureclass i process them all with no exceptions. After the exception appears program can't work properly at all until restart (looks like ArcObjects crash). &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; How you could understand i use insert cursor with featurebuffer. Tried edit sessions, load mode for featureclass, direct write with WriteFeature and so on... No differences. May anybody help me? Any suggestions?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; Sorry for my English )&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 13 Mar 2013 14:42:47 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/insert-feature-causes-out-of-memory-exception/m-p/721983#M19238</guid>
      <dc:creator>AlexeySubbotin</dc:creator>
      <dc:date>2013-03-13T14:42:47Z</dc:date>
    </item>
    <item>
      <title>Re: Insert feature causes Out of memory exception</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/insert-feature-causes-out-of-memory-exception/m-p/721984#M19239</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;Hi!&lt;BR /&gt; I'm developing the 3D modeling GIS software. For 3D city models i use generated from vector data building models and 3d files (Google Earth and SketchUp) with geographic coordinates within. I import such files' geometries with IImport3DFile and store them in multipatch featureclass in file geodatabase. &lt;BR /&gt; At last I recieved an exception "Out of memory" during IFeatureCursor.InsertFeature. Have to say that there was no such a problem before (with other files). Error appears constantly after processing definite number of files. Geometries i load from them are correct, i processing their footprints and if i don't save them to my featureclass i process them all with no exceptions. After the exception appears program can't work properly at all until restart (looks like ArcObjects crash). &lt;BR /&gt; How you could understand i use insert cursor with featurebuffer. Tried edit sessions, load mode for featureclass, direct write with WriteFeature and so on... No differences. May anybody help me? Any suggestions?&lt;BR /&gt; Sorry for my English )&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Can you post code samples for where you are loading models?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;What language are you using for development?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;If you are using a .NET language, you can try using CLRProfiler to identify what is consuming the most memory. If it isn't a managed memory issue, you can use UMDH to see what is being allocated on the unmanaged heap.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Let me know if I can help.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 13 Mar 2013 15:02:20 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/insert-feature-causes-out-of-memory-exception/m-p/721984#M19239</guid>
      <dc:creator>JasonPike</dc:creator>
      <dc:date>2013-03-13T15:02:20Z</dc:date>
    </item>
    <item>
      <title>Re: Insert feature causes Out of memory exception</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/insert-feature-causes-out-of-memory-exception/m-p/721985#M19240</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;Can you post code samples for where you are loading models?&lt;BR /&gt;&lt;BR /&gt;What language are you using for development?&lt;BR /&gt;&lt;BR /&gt;If you are using a .NET language, you can try using CLRProfiler to identify what is consuming the most memory. If it isn't a managed memory issue, you can use UMDH to see what is being allocated on the unmanaged heap.&lt;BR /&gt;&lt;BR /&gt;Let me know if I can help.&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Hi, ScJpike!&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I use C# with .NET Framework 4.0&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;There is code fragments of my project for you to test:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Loading each model is made with following class instance (one class instance represents one file):&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN style="font-size:1;"&gt;//class implementation code fragment&lt;BR /&gt;public enum GeoReferencedModelAltitudeType { relativeToGround, absolute, clampToGround }&lt;BR /&gt;&lt;BR /&gt;public class GeoReferencedModel&lt;BR /&gt;{&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;public string Filename { get; set; }&lt;BR /&gt;&lt;BR /&gt;//properties are set while reading file&lt;BR /&gt;public double Longitude { get; private set; }&lt;BR /&gt;public double Latitude { get; private set; }&lt;BR /&gt;public double Altitude { get; private set; }&lt;BR /&gt;public GeoReferencedModelAltitudeType AltitudeType { get; private set; }&lt;BR /&gt;public double XAngle { get; private set; }&lt;BR /&gt;public double YAngle { get; private set; }&lt;BR /&gt;public double ZAngle { get; private set; }&lt;BR /&gt;public double ScaleX { get; private set; }&lt;BR /&gt;public double ScaleY { get; private set; }&lt;BR /&gt;public double ScaleZ { get; private set; }&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;public GeoReferencedModel(string filename)&lt;BR /&gt;{&lt;BR /&gt; Filename = filename;&lt;BR /&gt; ScaleX = ScaleY = ScaleZ = 1;&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;public IPoint get_Placement()&lt;BR /&gt;{&lt;BR /&gt; //read file and assign class properties&lt;BR /&gt; //no ArcObjects use&lt;BR /&gt;&lt;BR /&gt; //just for test with a model&lt;BR /&gt; Longitude = 51.310704;&lt;BR /&gt; Latitude = 35.731657;&lt;BR /&gt; Altitude = 0;&lt;BR /&gt; AltitudeType = GeoReferencedModelAltitudeType.relativeToGround;&lt;BR /&gt; ZAngle = 0; &lt;BR /&gt; XAngle = 0;&lt;BR /&gt; YAngle = 0;&lt;BR /&gt; ScaleX = 1;&lt;BR /&gt; ScaleY = 1;&lt;BR /&gt; ScaleZ = 1;&lt;BR /&gt;&lt;BR /&gt; IPoint point = new PointClass();&lt;BR /&gt; point.PutCoords(Longitude, Latitude);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return point;&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;private void set_ModelAltitude(IPoint placement)&lt;BR /&gt;{&lt;BR /&gt; switch (AltitudeType)&lt;BR /&gt; {&lt;BR /&gt;&amp;nbsp; case GeoReferencedModelAltitudeType.absolute:&lt;BR /&gt;&amp;nbsp;&amp;nbsp; placement.Z = Altitude;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; break;&lt;BR /&gt;&amp;nbsp; case GeoReferencedModelAltitudeType.clampToGround:&lt;BR /&gt;&amp;nbsp;&amp;nbsp; break;&lt;BR /&gt;&amp;nbsp; case GeoReferencedModelAltitudeType.relativeToGround:&lt;BR /&gt;&amp;nbsp;&amp;nbsp; placement.Z = placement.Z + Altitude;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; break;&lt;BR /&gt; }&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;public IGeometry get_MultiPatch(IPoint placement, ISpatialReference spatialReference)&lt;BR /&gt;{&lt;BR /&gt; IGeometry geometry = null;&lt;BR /&gt; IImport3DFile import3DFile = new Import3DFileClass();&lt;BR /&gt; try&lt;BR /&gt; {&lt;BR /&gt;&amp;nbsp; import3DFile.CreateFromFile(Filename);&lt;BR /&gt;&amp;nbsp; geometry = import3DFile.Geometry;&lt;BR /&gt;&amp;nbsp; ((IImport3DFileRoots)import3DFile).ReleaseCurrentFile();&lt;BR /&gt; }&lt;BR /&gt; catch&lt;BR /&gt; {&lt;BR /&gt;&amp;nbsp; geometry = null;&lt;BR /&gt; }&lt;BR /&gt; finally&lt;BR /&gt; {&lt;BR /&gt;&amp;nbsp; System.Runtime.InteropServices.Marshal.ReleaseComObject(import3DFile);&lt;BR /&gt; }&lt;BR /&gt;&lt;BR /&gt; if (geometry != null) &lt;BR /&gt; { &lt;BR /&gt;&amp;nbsp; set_ModelAltitude(placement);&lt;BR /&gt;&amp;nbsp; IVector3D xVector = constructVector3D(10, 0, 0);&lt;BR /&gt;&amp;nbsp; IVector3D yVector = constructVector3D(0, 10, 0);&lt;BR /&gt;&amp;nbsp; IVector3D zVector = constructVector3D(0, 0, 10);&lt;BR /&gt;&amp;nbsp; ((ITransform3D)geometry).RotateVector3D(xVector, XAngle * (Math.PI / 180));&lt;BR /&gt;&amp;nbsp; ((ITransform3D)geometry).RotateVector3D(yVector, YAngle * (Math.PI / 180));&lt;BR /&gt;&amp;nbsp; ((ITransform3D)geometry).RotateVector3D(zVector, ZAngle * (Math.PI / 180));&lt;BR /&gt;&amp;nbsp; ((ITransform3D)geometry).Move3D(placement.X, placement.Y, placement.Z);&lt;BR /&gt;&amp;nbsp; ((ITransform3D)geometry).Scale3D(placement, ScaleX, ScaleY, ScaleZ);&lt;BR /&gt;&amp;nbsp; geometry.SpatialReference = spatialReference;&lt;BR /&gt;&amp;nbsp; geometry.SnapToSpatialReference();&lt;BR /&gt; }&lt;BR /&gt; &lt;BR /&gt; return geometry;&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Processing all model files with inserting them into file geodatabase featureclass is made by following method:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN style="font-size:1;"&gt;public static class Tools&lt;BR /&gt;{&lt;BR /&gt;&lt;BR /&gt;public static void Import3DFiles(string GDBFilename, string Dataset, List&amp;lt;GeoReferencedModel&amp;gt; Files, ISpatialReference DatasetSpatialReference)&lt;BR /&gt;{&lt;BR /&gt; IWorkspaceFactory wsf = new FileGDBWorkspaceFactoryClass();&lt;BR /&gt; IWorkspace datasetWorkspace=wsf.OpenFromFile(GDBFilename, 0);&lt;BR /&gt; System.Runtime.InteropServices.Marshal.ReleaseComObject(wsf);&lt;BR /&gt;&lt;BR /&gt; IFeatureClass objectiveFeatureClass;&lt;BR /&gt; exist = ((IWorkspace2)datasetWorkspace).get_NameExists(esriDatasetType.esriDTFeatureClass, Dataset);&lt;BR /&gt; if (!exist)&lt;BR /&gt; {&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IFieldEdit fieldEdit;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; IField shapeField = new FieldClass();&lt;BR /&gt;&amp;nbsp; fieldEdit = (IFieldEdit) shapeField;&lt;BR /&gt;&amp;nbsp; fieldEdit.Name_2 = "Shape";&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fieldEdit.Type_2 = esriFieldType.esriFieldTypeGeometry;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; IGeometryDef geometryDef = new GeometryDefClass();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IGeometryDefEdit geometryDefEdit;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; geometryDefEdit = (IGeometryDefEdit)geometryDef;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; geometryDefEdit.GeometryType_2 = esriGeometryType.esriGeometryMultiPatch;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; geometryDefEdit.GridCount_2 = 1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; geometryDefEdit.set_GridSize(0, 0);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; geometryDefEdit.HasZ_2 = true;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; geometryDefEdit.HasM_2 = false;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (DatasetSpatialReference != null) geometryDefEdit.SpatialReference_2 = DatasetSpatialReference; else geometryDefEdit.SpatialReference_2 = new UnknownCoordinateSystemClass();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fieldEdit.GeometryDef_2 = geometryDef;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; IField oidField = new FieldClass();&lt;BR /&gt;&amp;nbsp; fieldEdit = (IFieldEdit) oidField;&lt;BR /&gt;&amp;nbsp; fieldEdit.Name_2 = "OID";&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fieldEdit.Type_2 = esriFieldType.esriFieldTypeOID;&lt;BR /&gt;&amp;nbsp; fieldEdit.Precision_2 = 0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; IFields fcFields = new FieldsClass();&lt;BR /&gt;&amp;nbsp; IFieldsEdit fcFieldsEdit = (IFieldsEdit)fcFields;&lt;BR /&gt;&amp;nbsp; fcFieldsEdit.AddField(shapeField);&lt;BR /&gt;&amp;nbsp; fcFieldsEdit.AddField(oidField);&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; IFieldChecker fieldChecker = new FieldCheckerClass();&lt;BR /&gt;&amp;nbsp; IEnumFieldError enumFieldError = null;&lt;BR /&gt;&amp;nbsp; IFields validatedFields = null;&lt;BR /&gt;&amp;nbsp; fieldChecker.ValidateWorkspace = datasetWorkspace;&lt;BR /&gt;&amp;nbsp; fieldChecker.Validate(fields, out enumFieldError, out validatedFields);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; IObjectClassDescription objectDescription = new FeatureClassDescriptionClass();&lt;BR /&gt;&amp;nbsp; objectiveFeatureClass = ((IFeatureWorkspace)datasetWorkspace).CreateFeatureClass(dataset, validatedFields, null, objectDescription.ClassExtensionCLSID, esriFeatureType.esriFTSimple, shapeField.Name, "");&lt;BR /&gt; }&lt;BR /&gt; else&lt;BR /&gt;&amp;nbsp; objectiveFeatureClass = ((IFeatureWorkspace)datasetWorkspace).OpenFeatureClass(dataset);&lt;BR /&gt;&lt;BR /&gt; ((ISchemaLock)objectiveFeatureClass).ChangeSchemaLock(esriSchemaLock.esriExclusiveSchemaLock);&lt;BR /&gt; ((IFeatureClassLoad)objectiveFeatureClass).LoadOnlyMode = true;&lt;BR /&gt;&lt;BR /&gt; ISpatialReferenceFactory srFactory = new SpatialReferenceEnvironmentClass();&lt;BR /&gt; IGeographicCoordinateSystem gcs = srFactory.CreateGeographicCoordinateSystem(gcsType);&lt;BR /&gt; ISpatialReference geoSR = (ISpatialReference)gcs;&lt;BR /&gt; ISpatialReferenceResolution srResolution = (ISpatialReferenceResolution)sr;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; srResolution.ConstructFromHorizon();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; srResolution.SetDefaultMResolution();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; srResolution.SetDefaultXYResolution();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; srResolution.SetDefaultZResolution();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ISpatialReferenceTolerance srTolerance = (ISpatialReferenceTolerance)sr;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; srTolerance.SetDefaultMTolerance();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; srTolerance.SetDefaultXYTolerance();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; srTolerance.SetDefaultZTolerance();&lt;BR /&gt; set_ResolutionTolerance(sr);&lt;BR /&gt; System.Runtime.InteropServices.Marshal.ReleaseComObject(srFactory);&lt;BR /&gt; &lt;BR /&gt; featureBuffer = objectiveFeatureClass.CreateFeatureBuffer();&lt;BR /&gt; featureCursor = objectiveFeatureClass.Insert(true);&lt;BR /&gt;&lt;BR /&gt; foreach (string geoReferencedModel in Files)&lt;BR /&gt; {&lt;BR /&gt;&amp;nbsp; //reading lat,long and other values values from files with own SketchUpReader (for *.skp) and ZipForge, XDocument (for *.kmz)&lt;BR /&gt;&amp;nbsp; //do not use any ArcObjects&lt;BR /&gt;&amp;nbsp; IPoint placement = geoReferencedModel.get_Placement();&lt;BR /&gt;&amp;nbsp; placement.SpatialReference = geoSR;&lt;BR /&gt;&amp;nbsp; (IZAware)geometry.ZAware = true;&lt;BR /&gt;&amp;nbsp; placement.Project(DatasetSpatialReference);&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; //get Z value from IFunctionalSurface (relief raster)&amp;nbsp; &lt;BR /&gt;&amp;nbsp; //just for test&lt;BR /&gt;&amp;nbsp; placement.Z = 0;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; if (!placement.Z.Equals(double.NaN))&lt;BR /&gt;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IGeometry multiPatch=null;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; //import file's geometry&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; multiPatch = geoReferencedModel.get_MultiPatch(placement, DatasetSpatialReference);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; if (multiPatch != null)&lt;BR /&gt;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; featureBuffer.Shape = multiPatch;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; featureCursor.InsertFeature(featureBuffer);&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*tried to flush cursor and create new instances cursor and buffer&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; featureCursor.Flush();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; featureBuffer = objectiveFeatureClass.CreateFeatureBuffer();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; featureCursor = objectiveFeatureClass.Insert(true);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*tried to use cursor with no buffering here and in declaration&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; featureCursor.Flush();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; featureBuffer = objectiveFeatureClass.CreateFeatureBuffer();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; featureCursor = objectiveFeatureClass.Insert(false);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*tried such variant with no featurebuffer and featurecursor at all&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IFeature newFeature =&amp;nbsp; objectiveFeatureClass.CreateFeature();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; newFeature.Shape = multipatch;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ((IFeatureClassWrite)objectiveFeatureClass).WriteFeature(newFeature);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //here i compute a footprint of multipatch and store it in another featureclass &lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.Runtime.InteropServices.Marshal.ReleaseComObject(placement);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.Runtime.InteropServices.Marshal.ReleaseComObject(multiPatch);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.Runtime.InteropServices.Marshal.CleanupUnusedObjectsInCurrentContext();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GC.Collect();&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt; }&lt;BR /&gt; &lt;BR /&gt; featureCursor.Flush();&lt;BR /&gt; System.Runtime.InteropServices.Marshal.ReleaseComObject(featureCursor);&lt;BR /&gt;&lt;BR /&gt; ((IFeatureClassLoad)objectiveFeatureClass).LoadOnlyMode = false;&lt;BR /&gt; ((ISchemaLock)objectiveFeatureClass).ChangeSchemaLock(esriSchemaLock.esriSharedSchemaLock);&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;}&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 14 Mar 2013 09:10:23 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/insert-feature-causes-out-of-memory-exception/m-p/721985#M19240</guid>
      <dc:creator>AlexeySubbotin</dc:creator>
      <dc:date>2013-03-14T09:10:23Z</dc:date>
    </item>
    <item>
      <title>Re: Insert feature causes Out of memory exception</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/insert-feature-causes-out-of-memory-exception/m-p/721986#M19241</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;To test my code from previous post i prepared a code fragment&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN style="font-size:1;"&gt;//for test&lt;BR /&gt;//may need some correction as was configured and modified on-the-fly from project&lt;BR /&gt;&lt;BR /&gt;ISpatialReferenceFactory3 srFactory = new SpatialReferenceEnvironmentClass();&lt;BR /&gt;IProjectedCoordinateSystem pcs = srFactory.CreateProjectedCoordinateSystem(pcsType);&lt;BR /&gt;&lt;BR /&gt;ISpatialReference spatialReference = (ISpatialReference)pcs;&lt;BR /&gt;ISpatialReferenceResolution srResolution = (ISpatialReferenceResolution)spatialReference;&lt;BR /&gt;srResolution.ConstructFromHorizon();&lt;BR /&gt;srResolution.SetDefaultMResolution();&lt;BR /&gt;srResolution.SetDefaultXYResolution();&lt;BR /&gt;srResolution.SetDefaultZResolution();&lt;BR /&gt;ISpatialReferenceTolerance srTolerance = (ISpatialReferenceTolerance)spatialReference;&lt;BR /&gt;srTolerance.SetDefaultMTolerance();&lt;BR /&gt;srTolerance.SetDefaultXYTolerance();&lt;BR /&gt;srTolerance.SetDefaultZTolerance();&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;IVerticalDatum verticalDatum = srFactory.CreateVerticalDatum((int)esriSRVerticalDatumType.esriSRVertDatum_SeaLevel);&lt;BR /&gt;IHVDatum hvDatum = verticalDatum as IHVDatum;&lt;BR /&gt;ILinearUnit unit = srFactory.CreateUnit((int)esriSRUnitType.esriSRUnit_Meter) as ILinearUnit;&lt;BR /&gt;IVerticalCoordinateSystemEdit vcsEdit = (IVerticalCoordinateSystemEdit)new VerticalCoordinateSystemClass();&lt;BR /&gt;int positive = 1;&lt;BR /&gt;double shift = 0;&lt;BR /&gt;vcsEdit.DefineEx("", "", "", "", "", hvDatum, unit, ref shift, ref positive);&lt;BR /&gt;((ISpatialReference3)spatialReference).VerticalCoordinateSystem = (IVerticalCoordinateSystem)vcsEdit;&lt;BR /&gt;ISpatialReferenceResolution sprefResolution = (ISpatialReferenceResolution)spatialReference;&lt;BR /&gt;sprefResolution.SetDefaultZResolution();&lt;BR /&gt;ISpatialReferenceTolerance srTolerance = (ISpatialReferenceTolerance)spatialReference;&lt;BR /&gt;srTolerance.SetDefaultZTolerance();&lt;BR /&gt;spatialReference.Changed();&lt;BR /&gt;&lt;BR /&gt;System.Runtime.InteropServices.Marshal.ReleaseComObject(srFactory);&lt;BR /&gt;&lt;BR /&gt;List&amp;lt;GeoReferencedModel&amp;gt; models=new List&amp;lt;GeoReferencedModel&amp;gt;();&lt;BR /&gt;models.Add(new GeoReferencedModel(path_to_model));&lt;BR /&gt;&lt;BR /&gt;IWorkspaceFactory2 workspaceFactory = new FileGDBWorkspaceFactoryClass();&lt;BR /&gt;IWorkspaceName workspaceName = workspaceFactory.Create(System.IO.Path.GetDirectoryName(path_to_fileGDB), System.IO.Path.GetFileName(path_to_fileGDB), null, 0);&lt;BR /&gt;IName name = (IName)workspaceName;&lt;BR /&gt;IWorkspace workspace = (IWorkspace)name.Open();&lt;BR /&gt;System.Runtime.InteropServices.Marshal.ReleaseComObject(workspaceFactory);&lt;BR /&gt;System.Runtime.InteropServices.Marshal.ReleaseComObject(workspaceName);&lt;BR /&gt;&lt;BR /&gt;Import3DFiles(path_to_fileGDB, "GeoReferencedObjects3D", models, spatialReference)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I see that the model causing error is large enough (kmz file 13Mb), and may be featureclass can't store such amount of information by igeometry field. If so is, so how i can analyze geometries of 3d files to prevent exceptions with attempts to store them? What is maximum size of such objects?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Can't to attach model file because of size restrictions. If you would like i can email it to you.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Would be very appreciative for your help.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 14 Mar 2013 09:12:47 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/insert-feature-causes-out-of-memory-exception/m-p/721986#M19241</guid>
      <dc:creator>AlexeySubbotin</dc:creator>
      <dc:date>2013-03-14T09:12:47Z</dc:date>
    </item>
    <item>
      <title>Re: Insert feature causes Out of memory exception</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/insert-feature-causes-out-of-memory-exception/m-p/721987#M19242</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;To test my code from previous post i prepared a code fragment&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN style="font-size:1;"&gt;//for test&lt;BR /&gt;//may need some correction as was configured and modified on-the-fly from project&lt;BR /&gt;&lt;BR /&gt;ISpatialReferenceFactory3 srFactory = new SpatialReferenceEnvironmentClass();&lt;BR /&gt;IProjectedCoordinateSystem pcs = srFactory.CreateProjectedCoordinateSystem(pcsType);&lt;BR /&gt;&lt;BR /&gt;ISpatialReference spatialReference = (ISpatialReference)pcs;&lt;BR /&gt;ISpatialReferenceResolution srResolution = (ISpatialReferenceResolution)spatialReference;&lt;BR /&gt;srResolution.ConstructFromHorizon();&lt;BR /&gt;srResolution.SetDefaultMResolution();&lt;BR /&gt;srResolution.SetDefaultXYResolution();&lt;BR /&gt;srResolution.SetDefaultZResolution();&lt;BR /&gt;ISpatialReferenceTolerance srTolerance = (ISpatialReferenceTolerance)spatialReference;&lt;BR /&gt;srTolerance.SetDefaultMTolerance();&lt;BR /&gt;srTolerance.SetDefaultXYTolerance();&lt;BR /&gt;srTolerance.SetDefaultZTolerance();&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;IVerticalDatum verticalDatum = srFactory.CreateVerticalDatum((int)esriSRVerticalDatumType.esriSRVertDatum_SeaLevel);&lt;BR /&gt;IHVDatum hvDatum = verticalDatum as IHVDatum;&lt;BR /&gt;ILinearUnit unit = srFactory.CreateUnit((int)esriSRUnitType.esriSRUnit_Meter) as ILinearUnit;&lt;BR /&gt;IVerticalCoordinateSystemEdit vcsEdit = (IVerticalCoordinateSystemEdit)new VerticalCoordinateSystemClass();&lt;BR /&gt;int positive = 1;&lt;BR /&gt;double shift = 0;&lt;BR /&gt;vcsEdit.DefineEx("", "", "", "", "", hvDatum, unit, ref shift, ref positive);&lt;BR /&gt;((ISpatialReference3)spatialReference).VerticalCoordinateSystem = (IVerticalCoordinateSystem)vcsEdit;&lt;BR /&gt;ISpatialReferenceResolution sprefResolution = (ISpatialReferenceResolution)spatialReference;&lt;BR /&gt;sprefResolution.SetDefaultZResolution();&lt;BR /&gt;ISpatialReferenceTolerance srTolerance = (ISpatialReferenceTolerance)spatialReference;&lt;BR /&gt;srTolerance.SetDefaultZTolerance();&lt;BR /&gt;spatialReference.Changed();&lt;BR /&gt;&lt;BR /&gt;System.Runtime.InteropServices.Marshal.ReleaseComObject(srFactory);&lt;BR /&gt;&lt;BR /&gt;List&amp;lt;GeoReferencedModel&amp;gt; models=new List&amp;lt;GeoReferencedModel&amp;gt;();&lt;BR /&gt;models.Add(new GeoReferencedModel(path_to_model));&lt;BR /&gt;&lt;BR /&gt;IWorkspaceFactory2 workspaceFactory = new FileGDBWorkspaceFactoryClass();&lt;BR /&gt;IWorkspaceName workspaceName = workspaceFactory.Create(System.IO.Path.GetDirectoryName(path_to_fileGDB), System.IO.Path.GetFileName(path_to_fileGDB), null, 0);&lt;BR /&gt;IName name = (IName)workspaceName;&lt;BR /&gt;IWorkspace workspace = (IWorkspace)name.Open();&lt;BR /&gt;System.Runtime.InteropServices.Marshal.ReleaseComObject(workspaceFactory);&lt;BR /&gt;System.Runtime.InteropServices.Marshal.ReleaseComObject(workspaceName);&lt;BR /&gt;&lt;BR /&gt;Import3DFiles(path_to_fileGDB, "GeoReferencedObjects3D", models, spatialReference)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;I see that the model causing error is large enough (kmz file 13Mb), and may be featureclass can't store such amount of information by igeometry field. If so is, so how i can analyze geometries of 3d files to prevent exceptions with attempts to store them? What is maximum size of such objects?&lt;BR /&gt;Can't to attach model file because of size restrictions. If you would like i can email it to you.&lt;BR /&gt;Would be very appreciative for your help.&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Have you tried only loading the model that has the problem? Or, does the problem only occur if you load a bunch of models and then the model that is having trouble?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 15 Mar 2013 15:37:17 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/insert-feature-causes-out-of-memory-exception/m-p/721987#M19242</guid>
      <dc:creator>JasonPike</dc:creator>
      <dc:date>2013-03-15T15:37:17Z</dc:date>
    </item>
    <item>
      <title>Re: Insert feature causes Out of memory exception</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/insert-feature-causes-out-of-memory-exception/m-p/721988#M19243</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;Have you tried only loading the model that has the problem? Or, does the problem only occur if you load a bunch of models and then the model that is having trouble?&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;The problem occur with single model too. No differences bunch of models or single model.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 15 Mar 2013 16:55:52 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/insert-feature-causes-out-of-memory-exception/m-p/721988#M19243</guid>
      <dc:creator>AlexeySubbotin</dc:creator>
      <dc:date>2013-03-15T16:55:52Z</dc:date>
    </item>
    <item>
      <title>Re: Insert feature causes Out of memory exception</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/insert-feature-causes-out-of-memory-exception/m-p/721989#M19244</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;The problem occur with single model too. No differences bunch of models or single model.&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Ok. Can you create and send a project that loads that particular model and reproduces the failure? Please include the model in the zip. I'll try to find out what is consuming the memory.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I'd also report this as a bug to ESRI.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 15 Mar 2013 17:16:20 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/insert-feature-causes-out-of-memory-exception/m-p/721989#M19244</guid>
      <dc:creator>JasonPike</dc:creator>
      <dc:date>2013-03-15T17:16:20Z</dc:date>
    </item>
    <item>
      <title>Re: Insert feature causes Out of memory exception</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/insert-feature-causes-out-of-memory-exception/m-p/721990#M19245</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;Ok. Can you create and send a project that loads that particular model and reproduces the failure? Please include the model in the zip. I'll try to find out what is consuming the memory.&lt;BR /&gt;&lt;BR /&gt;I'd also report this as a bug to ESRI.&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Of course. I don't have such an ability at home (weekend you know). Once i'll get to office, i'll make it. Such a question. How can i send it, if it's size exceeds the limits for attachments? Only model is 12.8 MB, while limit for zip is 2.00 MB.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 15 Mar 2013 19:01:48 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/insert-feature-causes-out-of-memory-exception/m-p/721990#M19245</guid>
      <dc:creator>AlexeySubbotin</dc:creator>
      <dc:date>2013-03-15T19:01:48Z</dc:date>
    </item>
    <item>
      <title>Re: Insert feature causes Out of memory exception</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/insert-feature-causes-out-of-memory-exception/m-p/721991#M19246</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;Of course. I don't have such an ability at home (weekend you know). Once i'll get to office, i'll make it. Such a question. How can i send it, if it's size exceeds the limits for attachments? Only model is 12.8 MB, while limit for zip is 2.00 MB.&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Could you post it on Dropbox or some equivalent and post a link?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 18 Mar 2013 13:24:37 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/insert-feature-causes-out-of-memory-exception/m-p/721991#M19246</guid>
      <dc:creator>JasonPike</dc:creator>
      <dc:date>2013-03-18T13:24:37Z</dc:date>
    </item>
    <item>
      <title>Re: Insert feature causes Out of memory exception</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/insert-feature-causes-out-of-memory-exception/m-p/721992#M19247</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;Could you post it on Dropbox or some equivalent and post a link?&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Hi, Jason. I created the project. &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Despite the common logic of the test project and the source, the test project produces another exception, but it occurs at the same operator (insert a feature to the feature class). &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Depending on the type of call (in the current thread or in new one) it can be the RCP_E_SERVERFAULT exception wit error code -2147417851 or the external object's exception with error code -2147467259. Also the project is based on .NET Framework 3.5 (as it should be for ArcObjects 10). Couldn't to base it on .NET Framework 4.0, and honestly don't realy understand how it happened with my source project. Maybe the difference of exceptions raised by the projects explaned by different framework they are based on. After all the exception remains and it raises constantly.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Link to archive &lt;/SPAN&gt;&lt;A href="http://dl.dropbox.com/u/91176632/Test.zip"&gt;http://dl.dropbox.com/u/91176632/Test.zip&lt;/A&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 18 Mar 2013 13:50:32 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/insert-feature-causes-out-of-memory-exception/m-p/721992#M19247</guid>
      <dc:creator>AlexeySubbotin</dc:creator>
      <dc:date>2013-03-18T13:50:32Z</dc:date>
    </item>
    <item>
      <title>Re: Insert feature causes Out of memory exception</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/insert-feature-causes-out-of-memory-exception/m-p/721993#M19248</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;Hi, Jason. I created the project. &lt;BR /&gt;Despite the common logic of the test project and the source, the test project produces another exception, but it occurs at the same operator (insert a feature to the feature class). &lt;BR /&gt;Depending on the type of call (in the current thread or in new one) it can be the RCP_E_SERVERFAULT exception wit error code -2147417851 or the external object's exception with error code -2147467259. Also the project is based on .NET Framework 3.5 (as it should be for ArcObjects 10). Couldn't to base it on .NET Framework 4.0, and honestly don't realy understand how it happened with my source project. Maybe the difference of exceptions raised by the projects explaned by different framework they are based on. After all the exception remains and it raises constantly.&lt;BR /&gt;&lt;BR /&gt;Link to archive &lt;A href="http://dl.dropbox.com/u/91176632/Test.zip"&gt;http://dl.dropbox.com/u/91176632/Test.zip&lt;/A&gt;&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Ok. I have downloaded your project and the ZipForge dependency.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Here are some of my findings:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;1) The reason you were getting the COM Exception was most likely because the projects targeted "Any CPU" instead of "x86". I changed it to "x86" and the exception went away.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;2) The reason you could not compile against .NET 4.0 is because the "Embed Interop Types" property was set to true on the ESRI assembly references. If you change "Embed Interop Types" to false for all the ESRI references in the project, it will build against .NET 4.0.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;After I got all that sorted out, I stepped through the solution and it succeeded. I succeeded against .NET 3.5 and .NET 4.0. I did notice some places we could improve the COM interop in the code, but we'll look at that later.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Please try the changes I suggest above and see if the test project succeeds for you.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 18 Mar 2013 16:11:53 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/insert-feature-causes-out-of-memory-exception/m-p/721993#M19248</guid>
      <dc:creator>JasonPike</dc:creator>
      <dc:date>2013-03-18T16:11:53Z</dc:date>
    </item>
    <item>
      <title>Re: Insert feature causes Out of memory exception</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/insert-feature-causes-out-of-memory-exception/m-p/721994#M19249</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;Ok. I have downloaded your project and the ZipForge dependency.&lt;BR /&gt;&lt;BR /&gt;Here are some of my findings:&lt;BR /&gt;&lt;BR /&gt;1) The reason you were getting the COM Exception was most likely because the projects targeted "Any CPU" instead of "x86". I changed it to "x86" and the exception went away.&lt;BR /&gt;&lt;BR /&gt;2) The reason you could not compile against .NET 4.0 is because the "Embed Interop Types" property was set to true on the ESRI assembly references. If you change "Embed Interop Types" to false for all the ESRI references in the project, it will build against .NET 4.0.&lt;BR /&gt;&lt;BR /&gt;After I got all that sorted out, I stepped through the solution and it succeeded. I succeeded against .NET 3.5 and .NET 4.0. I did notice some places we could improve the COM interop in the code, but we'll look at that later.&lt;BR /&gt;&lt;BR /&gt;Please try the changes I suggest above and see if the test project succeeds for you.&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Ok, i have tried your suggestions. &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Target platform was set to "x86" just when my primary source solution was started. I think, it was lost when i "extracted" the test project from it. &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;At last i even made the configuration for x86 platform in the solution properties. It doesn't help.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Compiled the test project against .NET 3.5 and 4.0. The result is one-exception.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Tried to build and execute the project on another PC with the same result.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;At first run application, maybe, didn't checkout 3DAnalyst license and completed with no errors. Of course it didn't import the test model, even didn't open it (IImport3DFile.CreateFromFile failed). I revealed it while debugging with step into along the code. I revealed also that the application was initialized with an Engine Product Code.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;So i made some changes to initialize it with an ArcView Product Code (as 3DAnalyst not authorized with Engine). It prevented&amp;nbsp; the application from the "import 3d model" exception but as expected the "insert feature" exception was thrown.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Also while testing my primary and test projects i noticed that almost any model with it's size more than 5 MB (i mean kmz models, skp was not tested for "the size restrictions" yet) can't be processed correctly.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 19 Mar 2013 10:06:20 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/insert-feature-causes-out-of-memory-exception/m-p/721994#M19249</guid>
      <dc:creator>AlexeySubbotin</dc:creator>
      <dc:date>2013-03-19T10:06:20Z</dc:date>
    </item>
    <item>
      <title>Re: Insert feature causes Out of memory exception</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/insert-feature-causes-out-of-memory-exception/m-p/721995#M19250</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;Ok, i have tried your suggestions. &lt;BR /&gt;Target platform was set to "x86" just when my primary source solution was started. I think, it was lost when i "extracted" the test project from it. &lt;BR /&gt;At last i even made the configuration for x86 platform in the solution properties. It doesn't help.&lt;BR /&gt;Compiled the test project against .NET 3.5 and 4.0. The result is one-exception.&lt;BR /&gt;Tried to build and execute the project on another PC with the same result.&lt;BR /&gt;At first run application, maybe, didn't checkout 3DAnalyst license and completed with no errors. Of course it didn't import the test model, even didn't open it (IImport3DFile.CreateFromFile failed). I revealed it while debugging with step into along the code. I revealed also that the application was initialized with an Engine Product Code.&lt;BR /&gt;So i made some changes to initialize it with an ArcView Product Code (as 3DAnalyst not authorized with Engine). It prevented&amp;nbsp; the application from the "import 3d model" exception but as expected the "insert feature" exception was thrown.&lt;BR /&gt;Also while testing my primary and test projects i noticed that almost any model with it's size more than 5 MB (i mean kmz models, skp was not tested for "the size restrictions" yet) can't be processed correctly.&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I see. The suggestions I made were to get the test project running on your machine. I think that is an important first step. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I should mention that I'm using ArcGIS 10.1 for Desktop on a Windows 7 64-bit machine with 8GB of RAM. Please provide this information for your machine. I had made the following changes to the license checkout code:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;if (licenseInit.InitializeApplication(new esriLicenseProductCode[] { esriLicenseProductCode.esriLicenseProductCodeStandard,
new esriLicenseExtensionCode[] { esriLicenseExtensionCode.esriLicenseExtensionCode3DAnalyst }))&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Also, I stepped through the code and made sure that no exceptions were occurring and that the field was populated when I reached the InsertFeature call.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;If you get exceptions or build errors, please post them--they will help me determine what is going on on your machine.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;What build error do you get when you target 4.0?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;What are the details of the exception you are getting?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks!&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Jason&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 12 Dec 2021 06:52:50 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/insert-feature-causes-out-of-memory-exception/m-p/721995#M19250</guid>
      <dc:creator>JasonPike</dc:creator>
      <dc:date>2021-12-12T06:52:50Z</dc:date>
    </item>
    <item>
      <title>Re: Insert feature causes Out of memory exception</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/insert-feature-causes-out-of-memory-exception/m-p/721998#M19253</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;Well, I did find some memory leaks. Looks like ESRI uses the open source project Little CMS and either doesn't release something returned from one of its calls, or Little CMS has a memory leak. While 3MB of leaked memory isn't small, I doubt it is your problem. I still can't reproduce the error on my machine, possibly because it doesn't happen in 10.1. So, what we can try next is using UMDH to see what is in memory when your program crashes. I'll post instructions in a different post. Also, it is possible that there is plenty of memory available, but due to improper pinning of GCHandles, the .NET allocator is unable to compact the GCHeap and therefore runs out of &lt;STRONG&gt;available&lt;/STRONG&gt; memory. We'd need to use WinDbg, SOS, and SOSEX to find that, so will start with the easy stuff first.&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;+ 2896592 ( 2896592 -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 83 allocs BackTrace87C2B4C
+&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 83 (&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 83 -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0) BackTrace87C2B4C allocations

 ntdll!RtlAllocateHeap+00000274
 LCMS117LIB!cmsCreateMultiprofileTransform+000005A3
&lt;/PRE&gt;&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;It is also possible that this transform is created once and kept around for the lifetime of the process--it may not be a leak. I think it still warrants asking about.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 12 Dec 2021 06:52:59 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/insert-feature-causes-out-of-memory-exception/m-p/721998#M19253</guid>
      <dc:creator>JasonPike</dc:creator>
      <dc:date>2021-12-12T06:52:59Z</dc:date>
    </item>
    <item>
      <title>Re: Insert feature causes Out of memory exception</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/insert-feature-causes-out-of-memory-exception/m-p/721999#M19254</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;INSTALLING THE NECESSARY TOOLS:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;1. Download Debugging Tools for Windows. You will likely have to download the entire Windows SDK, but you can browse the ISO for the dbg_x86.msi and just install it. Make sure and install the x86 version regardless of your machine's architecture. &lt;/SPAN&gt;&lt;BR /&gt;&lt;A href="http://msdn.microsoft.com/en-us/wind.../gg463009.aspx" rel="nofollow noopener noreferrer" target="_blank"&gt;http://msdn.microsoft.com/en-us/wind.../gg463009.aspx&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;2. Add a User Environment Variable called _NT_SYMBOL_PATH and set its value to this:&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;cache*C:\dev\symbols;SRV*C:\dev\symbols*http://msdl.microsoft.com/download/symbols;SRV*C:\dev\symbols*http://downloads2.esri.com/Support/symbols/&lt;/PRE&gt;&lt;BR /&gt;&lt;SPAN&gt;This will allow you to resolve the debugging symbols you need.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;3. Add a System Environment variable called OANOCACHE and set its value to 1. The disables Ole Automation caching, which is necessary to get accurate information about which calls allocated memory. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;4. [OPTIONAL] Add the Debugging Tools for Windows path to you User Environment Variables (C:\Program Files (x86)\Debugging Tools for Windows (x86)\ for x64 machines, C:\Program Files\Debugging Tools for Windows (x86)\ for x86 machines)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;USING UMDH TO ANALYZE PROBLEM:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;5. Use gflags to turn stack tracing on:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;gflags -i &amp;lt;name of executable, e.g. Test.exe&amp;gt; +ust&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;If you are running a standalone application that uses ArcObjects, replace arcmap.exe with the name of your executable.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;6. Start your application.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;7. Mark memory before executing the code you suspect is leaking memory by running UMDH:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;umdh -pn:arcmap.exe -f:mark1.txt&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;NOTE: In some cases, the process runs start to finish with no stops for user input. In this case, you might want to add Console.ReadKey() (and a message to let you know it is waiting) around the area you suspect is leaking memory so you can take snapshots.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;8. Execute the code that you suspect is leaking memory and the code that you think should release memory.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;9. Mark memory again after step 8 is complete:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;umdh -pn:arcmap.exe -f:mark2.txt&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;NOTE: Try taking a snapshot at the point the out-of-memory exception occurs.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;10. Create a diff file for the two marks:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;umdh -d mark1.txt mark2.txt -f:results.txt&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;TIP: The -d switch just outputs in decimal format rather than hexadecimal and makes it easier to read.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;11. Open the text file to find something like the following:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN style="font-style:italic;"&gt;&amp;lt;Lots of information about the symbol files that were loaded?&lt;BR /&gt;...&lt;BR /&gt;&amp;lt;Stacks for allocated memory in order from highest consumption to lowest consumption&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
+ 1520000 ( 1520000 - 0) 10000 allocs BackTrace106BF720
+ 10000 ( 10000 - 0) BackTrace106BF720 allocations

ntdll!RtlAllocateHeap+00000274
MSVCR90!malloc+00000079
MSVCR90!operator new+0000001F
Geometry!ESRI::Point::Clone+0000000D
EngineGraphics!GraphicTracker::AddWithOptions+0000004D
EngineGraphics!GraphicTracker::Add+00000051
mscorwks!CLRToCOMWorker+0000019A
&amp;lt;no module&amp;gt;!???+00000000 : 3CA70A

+ 1520000 ( 1520000 - 0) 10000 allocs BackTraceB522378
+ 10000 ( 10000 - 0) BackTraceB522378 allocations

ntdll!RtlAllocateHeap+00000274
MSVCR90!malloc+00000079
MSVCR90!operator new+0000001F
Geometry!ESRI::Point::Clone+0000000D
EngineGraphics!GraphicTracker::GetGT+00000087
EngineGraphics!GraphicTracker::AddReplaceGeometryToDraw+00000102
EngineGraphics!GraphicTracker::AddWithOptions+0000019A
EngineGraphics!GraphicTracker::Add+00000051
mscorwks!CLRToCOMWorker+0000019A
&amp;lt;no module&amp;gt;!???+00000000 : 3CA70A&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;CLEANUP AFTER YOU'RE DONE ANALYZING:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Do the following to make sure you machine performance is optimal when you aren't debugging:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;12. Use the following to turn off stack tracing when you are finished.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;gflags -i arcmap.exe -ust&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;13. Set OANOCACHE to 0.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 12 Dec 2021 06:53:02 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/insert-feature-causes-out-of-memory-exception/m-p/721999#M19254</guid>
      <dc:creator>JasonPike</dc:creator>
      <dc:date>2021-12-12T06:53:02Z</dc:date>
    </item>
    <item>
      <title>Re: Insert feature causes Out of memory exception</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/insert-feature-causes-out-of-memory-exception/m-p/722000#M19255</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;INSTALLING THE NECESSARY TOOLS:&lt;BR /&gt;&lt;BR /&gt;1. Download Debugging Tools for Windows. You will likely have to download the entire Windows SDK, but you can browse the ISO for the dbg_x86.msi and just install it. Make sure and install the x86 version regardless of your machine's architecture. &lt;BR /&gt;&lt;A href="http://msdn.microsoft.com/en-us/wind.../gg463009.aspx" rel="nofollow noopener noreferrer" target="_blank"&gt;http://msdn.microsoft.com/en-us/wind.../gg463009.aspx&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;2. Add a User Environment Variable called _NT_SYMBOL_PATH and set its value to this:&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;cache*C:\dev\symbols;SRV*C:\dev\symbols*http://msdl.microsoft.com/download/symbols;SRV*C:\dev\symbols*http://downloads2.esri.com/Support/symbols/&lt;/PRE&gt;&lt;BR /&gt;This will allow you to resolve the debugging symbols you need.&lt;BR /&gt;&lt;BR /&gt;3. Add a System Environment variable called OANOCACHE and set its value to 1. The disables Ole Automation caching, which is necessary to get accurate information about which calls allocated memory. &lt;BR /&gt;&lt;BR /&gt;4. [OPTIONAL] Add the Debugging Tools for Windows path to you User Environment Variables (C:\Program Files (x86)\Debugging Tools for Windows (x86)\ for x64 machines, C:\Program Files\Debugging Tools for Windows (x86)\ for x86 machines)&lt;BR /&gt;&lt;BR /&gt;USING UMDH TO ANALYZE PROBLEM:&lt;BR /&gt;&lt;BR /&gt;5. Use gflags to turn stack tracing on:&lt;BR /&gt;gflags -i &amp;lt;name of executable, e.g. Test.exe&amp;gt; +ust&lt;BR /&gt;If you are running a standalone application that uses ArcObjects, replace arcmap.exe with the name of your executable.&lt;BR /&gt;&lt;BR /&gt;6. Start your application.&lt;BR /&gt;&lt;BR /&gt;7. Mark memory before executing the code you suspect is leaking memory by running UMDH:&lt;BR /&gt;umdh -pn:arcmap.exe -f:mark1.txt&lt;BR /&gt;&lt;BR /&gt;NOTE: In some cases, the process runs start to finish with no stops for user input. In this case, you might want to add Console.ReadKey() (and a message to let you know it is waiting) around the area you suspect is leaking memory so you can take snapshots.&lt;BR /&gt;&lt;BR /&gt;8. Execute the code that you suspect is leaking memory and the code that you think should release memory.&lt;BR /&gt;&lt;BR /&gt;9. Mark memory again after step 8 is complete:&lt;BR /&gt;umdh -pn:arcmap.exe -f:mark2.txt&lt;BR /&gt;&lt;BR /&gt;NOTE: Try taking a snapshot at the point the out-of-memory exception occurs.&lt;BR /&gt;&lt;BR /&gt;10. Create a diff file for the two marks:&lt;BR /&gt;umdh -d mark1.txt mark2.txt -f:results.txt&lt;BR /&gt;&lt;BR /&gt;TIP: The -d switch just outputs in decimal format rather than hexadecimal and makes it easier to read.&lt;BR /&gt;&lt;BR /&gt;11. Open the text file to find something like the following:&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN style="font-style:italic;"&gt;&amp;lt;Lots of information about the symbol files that were loaded?&lt;BR /&gt;...&lt;BR /&gt;&amp;lt;Stacks for allocated memory in order from highest consumption to lowest consumption&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
+ 1520000 ( 1520000 - 0) 10000 allocs BackTrace106BF720
+ 10000 ( 10000 - 0) BackTrace106BF720 allocations

ntdll!RtlAllocateHeap+00000274
MSVCR90!malloc+00000079
MSVCR90!operator new+0000001F
Geometry!ESRI::Point::Clone+0000000D
EngineGraphics!GraphicTracker::AddWithOptions+0000004D
EngineGraphics!GraphicTracker::Add+00000051
mscorwks!CLRToCOMWorker+0000019A
&amp;lt;no module&amp;gt;!???+00000000 : 3CA70A

+ 1520000 ( 1520000 - 0) 10000 allocs BackTraceB522378
+ 10000 ( 10000 - 0) BackTraceB522378 allocations

ntdll!RtlAllocateHeap+00000274
MSVCR90!malloc+00000079
MSVCR90!operator new+0000001F
Geometry!ESRI::Point::Clone+0000000D
EngineGraphics!GraphicTracker::GetGT+00000087
EngineGraphics!GraphicTracker::AddReplaceGeometryToDraw+00000102
EngineGraphics!GraphicTracker::AddWithOptions+0000019A
EngineGraphics!GraphicTracker::Add+00000051
mscorwks!CLRToCOMWorker+0000019A
&amp;lt;no module&amp;gt;!???+00000000 : 3CA70A&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;CLEANUP AFTER YOU'RE DONE ANALYZING:&lt;BR /&gt;&lt;BR /&gt;Do the following to make sure you machine performance is optimal when you aren't debugging:&lt;BR /&gt;&lt;BR /&gt;12. Use the following to turn off stack tracing when you are finished.&lt;BR /&gt;gflags -i arcmap.exe -ust&lt;BR /&gt;&lt;BR /&gt;13. Set OANOCACHE to 0.&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;So, i have followed your instructions and received the results. I'm not good in such debugging, so can't to evaluate it enough.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I think you mean something about this when was talking about leaks (just one example):&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;+ 249397232 ( 249397232 -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 allocs BackTraceF3D0738
+&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 (&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0) BackTraceF3D0738 allocations

 ntdll!RtlUlonglongByteSwap+00000B52
 MSVCR90!malloc+00000079
 FileGDB!DllRegisterServer+000053E8
 FileGDB!DllCanUnloadNow+0001C5DA
 FileGDB!???+00000000 : 69BC62F5
 FileGDB!???+00000000 : 69BC694A
 RPCRT4!NdrServerInitialize+00000240
 RPCRT4!NdrStubCall2+00000256
 ole32!WdtpInterfacePointer_UserUnmarshal+0000256F
 OLEAUT32!CreateErrorInfo+00000268
 ole32!WdtpInterfacePointer_UserUnmarshal+000025FF
 ole32!WdtpInterfacePointer_UserUnmarshal+00002B59
 ole32!CoTaskMemFree+00001B02
 ole32!CoTaskMemFree+000019F7
 ole32!DcomChannelSetHResult+000008FF
 ole32!WdtpInterfacePointer_UserUnmarshal+00002A56
 ole32!WdtpInterfacePointer_UserUnmarshal+000028CA
 ole32!WdtpInterfacePointer_UserUnmarshal+00002F86
 ole32!DcomChannelSetHResult+0000075C
 ole32!DcomChannelSetHResult+0000071B
 USER32!gapfnScSendMessage+00000332
 USER32!GetThreadDesktop+000000D7
 USER32!CharPrevW+00000138
 USER32!DispatchMessageW+0000000F
 ole32!CoWaitForMultipleHandles+00004311
 ole32!CoWaitForMultipleHandles+000023C1
 ole32!CoWaitForMultipleHandles+00004332
 ole32!CoGetTreatAsClass+00002619
 ole32!CoGetTreatAsClass+0000314B
 KERNEL32!BaseThreadInitThunk+00000012
 ntdll!RtlInitializeExceptionChain+00000063
 ntdll!RtlInitializeExceptionChain+00000036

+ 249397232 ( 249397232 -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 allocs BackTraceF3D084C
+&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 (&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0) BackTraceF3D084C allocations

 ntdll!RtlUlonglongByteSwap+00000B52
 MSVCR90!malloc+00000079
 FileGDB!DllCanUnloadNow+0000BB14
 FileGDB!DllCanUnloadNow+0001C6F4
 FileGDB!???+00000000 : 69BC62F5
 FileGDB!???+00000000 : 69BC694A
 RPCRT4!NdrServerInitialize+00000240
 RPCRT4!NdrStubCall2+00000256
 ole32!WdtpInterfacePointer_UserUnmarshal+0000256F
 OLEAUT32!CreateErrorInfo+00000268
 ole32!WdtpInterfacePointer_UserUnmarshal+000025FF
 ole32!WdtpInterfacePointer_UserUnmarshal+00002B59
 ole32!CoTaskMemFree+00001B02
 ole32!CoTaskMemFree+000019F7
 ole32!DcomChannelSetHResult+000008FF
 ole32!WdtpInterfacePointer_UserUnmarshal+00002A56
 ole32!WdtpInterfacePointer_UserUnmarshal+000028CA
 ole32!WdtpInterfacePointer_UserUnmarshal+00002F86
 ole32!DcomChannelSetHResult+0000075C
 ole32!DcomChannelSetHResult+0000071B
 USER32!gapfnScSendMessage+00000332
 USER32!GetThreadDesktop+000000D7
 USER32!CharPrevW+00000138
 USER32!DispatchMessageW+0000000F
 ole32!CoWaitForMultipleHandles+00004311
 ole32!CoWaitForMultipleHandles+000023C1
 ole32!CoWaitForMultipleHandles+00004332
 ole32!CoGetTreatAsClass+00002619
 ole32!CoGetTreatAsClass+0000314B
 KERNEL32!BaseThreadInitThunk+00000012
 ntdll!RtlInitializeExceptionChain+00000063
 ntdll!RtlInitializeExceptionChain+00000036
&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The total result is&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;Total increase == 498797272 requested +&amp;nbsp;&amp;nbsp; -496 overhead = 498796776&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Memory was marked just before the call of the InsertFeature code line and after it in the catch code block. I used MessageBox to signal about the mark moments.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I debugged the application in different situations as the different exceptions was get, i.e. compilied against the 3.5 and 4.0 .NET Frameworks and the procedure call in current and concurrent thread. All the times memory usage was increased.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I uploaded the zip with the debug results. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;A href="http://dl.dropbox.com/u/91176632/DebugInfo.zip" rel="nofollow noopener noreferrer" target="_blank"&gt;http://dl.dropbox.com/u/91176632/DebugInfo.zip&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;They also contains lines with &amp;lt;no module&amp;gt; and the "?" signs, that is not good for me, i think.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;&amp;lt;no module&amp;gt;!???+00000000 : F13103B
...
MSCTF!???+00000000 : 75931826
...
and so on
&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I should also note that today i tried to execute the application code from the Add-In for the ArcGlobe app and it succeeded. It makes me to think that the ESRI applications are initialized in a special way or i don't make all the necessary initialization steps in my standalone application to make it work properly. Unfortunately the ArcObjects Help does not contain any information about this.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 12 Dec 2021 06:53:04 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/insert-feature-causes-out-of-memory-exception/m-p/722000#M19255</guid>
      <dc:creator>AlexeySubbotin</dc:creator>
      <dc:date>2021-12-12T06:53:04Z</dc:date>
    </item>
    <item>
      <title>Re: Insert feature causes Out of memory exception</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/insert-feature-causes-out-of-memory-exception/m-p/722001#M19256</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;BLOCKQUOTE class="jive-quote"&gt; So, i have followed your instructions and received the results. I'm not good in such debugging, so can't to evaluate it enough.&amp;nbsp; &lt;BR /&gt;I think you mean something about this when was talking about leaks (just one example):&amp;nbsp; &lt;BR /&gt; &lt;BR /&gt; &lt;PRE class="lia-code-sample line-numbers language-none"&gt;+ 249397232 ( 249397232 -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 allocs BackTraceF3D0738
+&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 (&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0) BackTraceF3D0738 allocations

 ntdll!RtlUlonglongByteSwap+00000B52
 MSVCR90!malloc+00000079
 FileGDB!DllRegisterServer+000053E8
 FileGDB!DllCanUnloadNow+0001C5DA
 FileGDB!???+00000000 : 69BC62F5
 FileGDB!???+00000000 : 69BC694A
 RPCRT4!NdrServerInitialize+00000240
 RPCRT4!NdrStubCall2+00000256
 ole32!WdtpInterfacePointer_UserUnmarshal+0000256F
 OLEAUT32!CreateErrorInfo+00000268
 ole32!WdtpInterfacePointer_UserUnmarshal+000025FF
 ole32!WdtpInterfacePointer_UserUnmarshal+00002B59
 ole32!CoTaskMemFree+00001B02
 ole32!CoTaskMemFree+000019F7
 ole32!DcomChannelSetHResult+000008FF
 ole32!WdtpInterfacePointer_UserUnmarshal+00002A56
 ole32!WdtpInterfacePointer_UserUnmarshal+000028CA
 ole32!WdtpInterfacePointer_UserUnmarshal+00002F86
 ole32!DcomChannelSetHResult+0000075C
 ole32!DcomChannelSetHResult+0000071B
 USER32!gapfnScSendMessage+00000332
 USER32!GetThreadDesktop+000000D7
 USER32!CharPrevW+00000138
 USER32!DispatchMessageW+0000000F
 ole32!CoWaitForMultipleHandles+00004311
 ole32!CoWaitForMultipleHandles+000023C1
 ole32!CoWaitForMultipleHandles+00004332
 ole32!CoGetTreatAsClass+00002619
 ole32!CoGetTreatAsClass+0000314B
 KERNEL32!BaseThreadInitThunk+00000012
 ntdll!RtlInitializeExceptionChain+00000063
 ntdll!RtlInitializeExceptionChain+00000036

+ 249397232 ( 249397232 -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 allocs BackTraceF3D084C
+&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 (&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0) BackTraceF3D084C allocations

 ntdll!RtlUlonglongByteSwap+00000B52
 MSVCR90!malloc+00000079
 FileGDB!DllCanUnloadNow+0000BB14
 FileGDB!DllCanUnloadNow+0001C6F4
 FileGDB!???+00000000 : 69BC62F5
 FileGDB!???+00000000 : 69BC694A
 RPCRT4!NdrServerInitialize+00000240
 RPCRT4!NdrStubCall2+00000256
 ole32!WdtpInterfacePointer_UserUnmarshal+0000256F
 OLEAUT32!CreateErrorInfo+00000268
 ole32!WdtpInterfacePointer_UserUnmarshal+000025FF
 ole32!WdtpInterfacePointer_UserUnmarshal+00002B59
 ole32!CoTaskMemFree+00001B02
 ole32!CoTaskMemFree+000019F7
 ole32!DcomChannelSetHResult+000008FF
 ole32!WdtpInterfacePointer_UserUnmarshal+00002A56
 ole32!WdtpInterfacePointer_UserUnmarshal+000028CA
 ole32!WdtpInterfacePointer_UserUnmarshal+00002F86
 ole32!DcomChannelSetHResult+0000075C
 ole32!DcomChannelSetHResult+0000071B
 USER32!gapfnScSendMessage+00000332
 USER32!GetThreadDesktop+000000D7
 USER32!CharPrevW+00000138
 USER32!DispatchMessageW+0000000F
 ole32!CoWaitForMultipleHandles+00004311
 ole32!CoWaitForMultipleHandles+000023C1
 ole32!CoWaitForMultipleHandles+00004332
 ole32!CoGetTreatAsClass+00002619
 ole32!CoGetTreatAsClass+0000314B
 KERNEL32!BaseThreadInitThunk+00000012
 ntdll!RtlInitializeExceptionChain+00000063
 ntdll!RtlInitializeExceptionChain+00000036
&lt;/PRE&gt; &lt;BR /&gt; &lt;BR /&gt;The total result is&amp;nbsp; &lt;BR /&gt; &lt;PRE class="lia-code-sample line-numbers language-none"&gt;Total increase == 498797272 requested +&amp;nbsp;&amp;nbsp; -496 overhead = 498796776&lt;/PRE&gt; &lt;BR /&gt; &lt;BR /&gt;Memory was marked just before the call of the InsertFeature code line and after it in the catch code block. I used MessageBox to signal about the mark moments.&amp;nbsp; &lt;BR /&gt; &lt;BR /&gt;I debugged the application in different situations as the different exceptions was get, i.e. compilied against the 3.5 and 4.0 .NET Frameworks and the procedure call in current and concurrent thread. All the times memory usage was increased.&amp;nbsp; &lt;BR /&gt; &lt;BR /&gt;I uploaded the zip with the debug results.&amp;nbsp;&amp;nbsp; &lt;BR /&gt; &lt;BR /&gt; &lt;A href="http://dl.dropbox.com/u/91176632/DebugInfo.zip" rel="nofollow noopener noreferrer" target="_blank"&gt;http://dl.dropbox.com/u/91176632/DebugInfo.zip&lt;/A&gt; &lt;BR /&gt; &lt;BR /&gt;They also contains lines with &amp;lt;no module&amp;gt; and the "?" signs, that is not good for me, i think.&amp;nbsp; &lt;BR /&gt; &lt;BR /&gt; &lt;PRE class="lia-code-sample line-numbers language-none"&gt;&amp;lt;no module&amp;gt;!???+00000000 : F13103B
...
MSCTF!???+00000000 : 75931826
...
and so on
&lt;/PRE&gt; &lt;BR /&gt; &lt;BR /&gt;I should also note that today i tried to execute the application code from the Add-In for the ArcGlobe app and it succeeded. It makes me to think that the ESRI applications are initialized in a special way or i don't make all the necessary initialization steps in my standalone application to make it work properly. Unfortunately the ArcObjects Help does not contain any information about this.&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Great job! 250MB a pop will get you to an out-of-memory exception very quickly!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The ???? mean that the symbols were unable to be resolved. You can double check to make sure _NT_SYMBOL_PATH is set correctly in your environment variables. It is possible you are behind a firewall that isn't allowing you to access the symbol servers, too. In any case, I was able see some important things without the symbol resolution.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Looking at the code and considering what you've posted (I haven't downloaded your zip from DropBox yet), I think there are two places we can release COM objects and reclaim large chunks of memory. The stacks you posted seem to indicate the majority of the memory is allocated when a GDB is opened, so we need to do one of two things: 1) Release the GDB when we're done with it, 2) reuse the GDB rather than reopening each time.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I want to try #1 first, but I've seen situations where it was impossible to get ArcCatalog to release a connection even when all the references where released.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;There are two places that you have references to a GDB: &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;1) You open a GDB in the Import3DFiles method here:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;IWorkspace datasetWorkspace = wsf.OpenFromFile(GDBFilename, 0);&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Solution Part 1: Make sure to call Marshal.ReleaseComObject on "datasetWorkspace" at the end of the method&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;2) You assign it to the property of another COM object later in the Import3DFiles method:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;IFieldChecker fieldChecker = new FieldCheckerClass();
IEnumFieldError enumFieldError = null;
IFields validatedFields = null;
&lt;SPAN style="color:&amp;quot;#FF0000&amp;quot;;"&gt;&lt;STRONG&gt;fieldChecker.ValidateWorkspace = datasetWorkspace;&lt;/STRONG&gt;&lt;/SPAN&gt;
fieldChecker.Validate(fcFields, out enumFieldError, out validatedFields);&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Solution Part 2: Make sure to call Marshal.ReleaseComObject on "fieldChecker " after the fieldChecker.Validate call.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Try these things and let me know if it reduces the amount of memory being consumed. Use UMDH as you did before and see if some of those stacks go away (you will need to make you second capture after the release statements; hopefully you won't hit the catch block again.) If this doesn't solve the problem, I have some other ideas.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Btw, are you using testFileGDB.gdb in your tests, or a different gdb? How about in the actual command? It looks like you might have a much larger GDB than the one you included in your test code.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 12 Dec 2021 06:53:07 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/insert-feature-causes-out-of-memory-exception/m-p/722001#M19256</guid>
      <dc:creator>JasonPike</dc:creator>
      <dc:date>2021-12-12T06:53:07Z</dc:date>
    </item>
    <item>
      <title>Re: Insert feature causes Out of memory exception</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/insert-feature-causes-out-of-memory-exception/m-p/722002#M19257</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I don't know if this will help you or not, but I went ahead and broke your code up into smaller pieces and added some releases. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Also, the forum made me split it into two posts...&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private static IGeometry get_MultiPatchFootprint(IMultiPatch multiPatch)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IPoint centroid = null;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IVector3D xVector = null;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IVector3D zVector = null;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ITransform2D transformer3D = null;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; centroid = ((IArea)multiPatch).Centroid;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; centroid.Z = 0;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xVector = new Vector3DClass();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xVector.SetComponents(10, 0, 0);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; zVector = new Vector3DClass();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; zVector.SetComponents(0, 0, 10);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; transformer3D = (ITransform2D)((ITransform3D)multiPatch).ProjectToPlane(centroid, xVector, zVector);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; transformer3D.Move(centroid.X, centroid.Y);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; finally
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (zVector != null)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Marshal.ReleaseComObject(zVector);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (xVector != null)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Marshal.ReleaseComObject(xVector);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (centroid != null)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Marshal.ReleaseComObject(centroid);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return (IGeometry)transformer3D;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static void Import3DFiles(object data)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ISpatialReference datasetSpatialReference = null;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ISpatialReference geoSpatialReference = null;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IFeatureClass objectiveFeatureClass = null;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IFeatureBuffer featureBuffer = null;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IFeatureCursor featureCursor = null;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GetSpatialReferences(out datasetSpatialReference, out geoSpatialReference);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Array dataArray = (Array)data;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string GDBFilename = dataArray.GetValue(0).ToString();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string Dataset = dataArray.GetValue(1).ToString();

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; objectiveFeatureClass = GetFeatureClass(GDBFilename, Dataset, datasetSpatialReference);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ISchemaLock schemaLock = (ISchemaLock)objectiveFeatureClass;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IFeatureClassLoad featureClassLoad = (IFeatureClassLoad)objectiveFeatureClass;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; schemaLock.ChangeSchemaLock(esriSchemaLock.esriExclusiveSchemaLock);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; featureClassLoad.LoadOnlyMode = true;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; featureBuffer = objectiveFeatureClass.CreateFeatureBuffer();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; featureCursor = objectiveFeatureClass.Insert(true);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; List&amp;lt;GeoReferencedModel&amp;gt; Files = dataArray.GetValue(2) as List&amp;lt;GeoReferencedModel&amp;gt;;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; foreach (GeoReferencedModel geoReferencedModel in Files)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; InsertModel(geoSpatialReference, datasetSpatialReference, featureBuffer, featureCursor, geoReferencedModel);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; featureCursor.Flush();

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; featureClassLoad.LoadOnlyMode = false;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; schemaLock.ChangeSchemaLock(esriSchemaLock.esriSharedSchemaLock);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; finally
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (featureCursor != null)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Marshal.ReleaseComObject(featureCursor);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (featureBuffer != null)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Marshal.ReleaseComObject(featureBuffer);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (objectiveFeatureClass != null)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Marshal.ReleaseComObject(objectiveFeatureClass);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (datasetSpatialReference != null)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Marshal.ReleaseComObject(datasetSpatialReference);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (geoSpatialReference != null)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Marshal.ReleaseComObject(geoSpatialReference);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private static void GetSpatialReferences(out ISpatialReference spatialReference, out ISpatialReference geoSR)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ISpatialReferenceFactory3 srFactory = null;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IVerticalDatum verticalDatum = null;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ILinearUnit unit = null;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IVerticalCoordinateSystemEdit vcsEdit = null;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; srFactory = new SpatialReferenceEnvironmentClass();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IProjectedCoordinateSystem pcs = srFactory.CreateProjectedCoordinateSystem(32639);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; spatialReference = (ISpatialReference)pcs;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ISpatialReferenceResolution srResolution = (ISpatialReferenceResolution)spatialReference;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; srResolution.ConstructFromHorizon();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; srResolution.SetDefaultMResolution();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; srResolution.SetDefaultXYResolution();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; srResolution.SetDefaultZResolution();

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ISpatialReferenceTolerance srTolerance = (ISpatialReferenceTolerance)spatialReference;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; srTolerance.SetDefaultMTolerance();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; srTolerance.SetDefaultXYTolerance();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; srTolerance.SetDefaultZTolerance();

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; verticalDatum = srFactory.CreateVerticalDatum((int)esriSRVerticalDatumType.esriSRVertDatum_SeaLevel);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IHVDatum hvDatum = verticalDatum as IHVDatum;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; unit = srFactory.CreateUnit((int)esriSRUnitType.esriSRUnit_Meter) as ILinearUnit;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; vcsEdit = (IVerticalCoordinateSystemEdit)new VerticalCoordinateSystemClass();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int positive = 1;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; double shift = 0;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; vcsEdit.DefineEx("", "", "", "", "", hvDatum, unit, ref shift, ref positive);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ((ISpatialReference3)spatialReference).VerticalCoordinateSystem = (IVerticalCoordinateSystem)vcsEdit;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ISpatialReferenceResolution sprefResolution = (ISpatialReferenceResolution)spatialReference;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sprefResolution.SetDefaultZResolution();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; srTolerance = (ISpatialReferenceTolerance)spatialReference;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; srTolerance.SetDefaultZTolerance();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; spatialReference.Changed();

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IGeographicCoordinateSystem gcs = srFactory.CreateGeographicCoordinateSystem(4326);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; geoSR = (ISpatialReference)gcs;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; srResolution = (ISpatialReferenceResolution)geoSR;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; srResolution.ConstructFromHorizon();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; srResolution.SetDefaultMResolution();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; srResolution.SetDefaultXYResolution();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; srResolution.SetDefaultZResolution();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; srTolerance = (ISpatialReferenceTolerance)geoSR;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; srTolerance.SetDefaultMTolerance();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; srTolerance.SetDefaultXYTolerance();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; srTolerance.SetDefaultZTolerance();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; finally
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (vcsEdit != null)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Marshal.ReleaseComObject(vcsEdit);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (unit != null)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Marshal.ReleaseComObject(unit);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (verticalDatum != null)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Marshal.ReleaseComObject(verticalDatum);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if( srFactory != null )
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Marshal.ReleaseComObject(srFactory);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private static void InsertModel(ISpatialReference geoSR, ISpatialReference DatasetSpatialReference, IFeatureBuffer featureBuffer, IFeatureCursor featureCursor, GeoReferencedModel geoReferencedModel)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IGeometry multiPatch = null;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IPoint placement = null;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IGeometry footprint = null;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //reading lat,long and other values values from files with own SketchUpReader (for *.skp) and ZipForge, XDocument (for *.kmz)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //do not use any ArcObjects
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; placement = geoReferencedModel.get_Placement();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; placement.SpatialReference = geoSR;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ((IZAware)placement).ZAware = true;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; placement.Project(DatasetSpatialReference);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //get Z value from IFunctionalSurface (relief raster)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; placement.Z = 0; //just for test

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (!placement.Z.Equals(double.NaN))
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; multiPatch = geoReferencedModel.get_MultiPatch(placement, DatasetSpatialReference);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (multiPatch != null)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //here i compute a footprint of multipatch and store it in another featureclass 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; footprint = get_MultiPatchFootprint((IMultiPatch)multiPatch);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; featureBuffer.Shape = multiPatch;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; featureCursor.InsertFeature(featureBuffer);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; finally
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (footprint != null)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Marshal.ReleaseComObject(footprint);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (multiPatch != null)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Marshal.ReleaseComObject(multiPatch);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (placement != null)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Marshal.ReleaseComObject(placement);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 12 Dec 2021 06:53:10 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/insert-feature-causes-out-of-memory-exception/m-p/722002#M19257</guid>
      <dc:creator>JasonPike</dc:creator>
      <dc:date>2021-12-12T06:53:10Z</dc:date>
    </item>
    <item>
      <title>Re: Insert feature causes Out of memory exception</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/insert-feature-causes-out-of-memory-exception/m-p/722003#M19258</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Here is part 2:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private static IFeatureClass GetFeatureClass(string GDBFilename, string Dataset, ISpatialReference DatasetSpatialReference)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IWorkspaceFactory wsf = null;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IWorkspace datasetWorkspace = null;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IFeatureClass objectiveFeatureClass = null;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; wsf = new FileGDBWorkspaceFactoryClass();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; datasetWorkspace = wsf.OpenFromFile(GDBFilename, 0);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (!((IWorkspace2)datasetWorkspace).get_NameExists(esriDatasetType.esriDTFeatureClass, Dataset))
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; objectiveFeatureClass = CreateFeatureClass(Dataset, DatasetSpatialReference, datasetWorkspace);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; objectiveFeatureClass = ((IFeatureWorkspace)datasetWorkspace).OpenFeatureClass(Dataset);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; finally
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if( wsf != null )
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Marshal.ReleaseComObject(wsf);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if( datasetWorkspace != null )
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Marshal.ReleaseComObject(datasetWorkspace);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp; 

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return objectiveFeatureClass;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private static IFeatureClass CreateFeatureClass(string Dataset, ISpatialReference DatasetSpatialReference, IWorkspace datasetWorkspace)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IFeatureClass objectiveFeatureClass = null;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IField shapeField = null;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IGeometryDef geometryDef = null;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IField oidField = null;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IFields fcFields = null;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IEnumFieldError enumFieldError = null;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IFields validatedFields = null;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IFieldChecker fieldChecker = null;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IObjectClassDescription objectDescription = null;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; shapeField = new FieldClass();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IFieldEdit fieldEdit = (IFieldEdit)shapeField;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fieldEdit.Name_2 = "Shape";
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fieldEdit.Type_2 = esriFieldType.esriFieldTypeGeometry;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; geometryDef = new GeometryDefClass();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IGeometryDefEdit geometryDefEdit = (IGeometryDefEdit)geometryDef;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; geometryDefEdit.GeometryType_2 = esriGeometryType.esriGeometryMultiPatch;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; geometryDefEdit.GridCount_2 = 1;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; geometryDefEdit.set_GridSize(0, 0);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; geometryDefEdit.HasZ_2 = true;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; geometryDefEdit.HasM_2 = false;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; geometryDefEdit.SpatialReference_2 = (DatasetSpatialReference != null) ? DatasetSpatialReference : geometryDefEdit.SpatialReference_2 = new UnknownCoordinateSystemClass();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fieldEdit.GeometryDef_2 = geometryDef;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oidField = new FieldClass();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fieldEdit = (IFieldEdit)oidField;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fieldEdit.Name_2 = "OID";
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fieldEdit.Type_2 = esriFieldType.esriFieldTypeOID;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fieldEdit.Precision_2 = 0;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fcFields = new FieldsClass();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IFieldsEdit fcFieldsEdit = (IFieldsEdit)fcFields;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fcFieldsEdit.AddField(shapeField);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fcFieldsEdit.AddField(oidField);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fieldChecker = new FieldCheckerClass();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fieldChecker.ValidateWorkspace = datasetWorkspace;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fieldChecker.Validate(fcFields, out enumFieldError, out validatedFields);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; objectDescription = new FeatureClassDescriptionClass();

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; objectiveFeatureClass = ((IFeatureWorkspace)datasetWorkspace).CreateFeatureClass(
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dataset,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; validatedFields,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; null,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; objectDescription.ClassExtensionCLSID,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; esriFeatureType.esriFTSimple,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; shapeField.Name,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "");
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; finally
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (shapeField != null)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Marshal.ReleaseComObject(shapeField);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (geometryDef != null)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Marshal.ReleaseComObject(geometryDef);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (oidField != null)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Marshal.ReleaseComObject(oidField);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (fcFields != null)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Marshal.ReleaseComObject(fcFields);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (enumFieldError != null)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Marshal.ReleaseComObject(enumFieldError);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (validatedFields != null)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Marshal.ReleaseComObject(validatedFields);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (fieldChecker != null)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Marshal.ReleaseComObject(fieldChecker);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (objectDescription != null)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Marshal.ReleaseComObject(objectDescription);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return objectiveFeatureClass;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 12 Dec 2021 06:53:13 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/insert-feature-causes-out-of-memory-exception/m-p/722003#M19258</guid>
      <dc:creator>JasonPike</dc:creator>
      <dc:date>2021-12-12T06:53:13Z</dc:date>
    </item>
    <item>
      <title>Re: Insert feature causes Out of memory exception</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/insert-feature-causes-out-of-memory-exception/m-p/722004#M19259</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;Here is part 2:&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private static IFeatureClass GetFeatureClass(string GDBFilename, string Dataset, ISpatialReference DatasetSpatialReference)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IWorkspaceFactory wsf = null;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IWorkspace datasetWorkspace = null;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IFeatureClass objectiveFeatureClass = null;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; wsf = new FileGDBWorkspaceFactoryClass();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; datasetWorkspace = wsf.OpenFromFile(GDBFilename, 0);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (!((IWorkspace2)datasetWorkspace).get_NameExists(esriDatasetType.esriDTFeatureClass, Dataset))
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; objectiveFeatureClass = CreateFeatureClass(Dataset, DatasetSpatialReference, datasetWorkspace);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; objectiveFeatureClass = ((IFeatureWorkspace)datasetWorkspace).OpenFeatureClass(Dataset);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; finally
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if( wsf != null )
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Marshal.ReleaseComObject(wsf);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if( datasetWorkspace != null )
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Marshal.ReleaseComObject(datasetWorkspace);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp; 

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return objectiveFeatureClass;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private static IFeatureClass CreateFeatureClass(string Dataset, ISpatialReference DatasetSpatialReference, IWorkspace datasetWorkspace)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IFeatureClass objectiveFeatureClass = null;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IField shapeField = null;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IGeometryDef geometryDef = null;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IField oidField = null;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IFields fcFields = null;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IEnumFieldError enumFieldError = null;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IFields validatedFields = null;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IFieldChecker fieldChecker = null;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IObjectClassDescription objectDescription = null;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; shapeField = new FieldClass();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IFieldEdit fieldEdit = (IFieldEdit)shapeField;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fieldEdit.Name_2 = "Shape";
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fieldEdit.Type_2 = esriFieldType.esriFieldTypeGeometry;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; geometryDef = new GeometryDefClass();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IGeometryDefEdit geometryDefEdit = (IGeometryDefEdit)geometryDef;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; geometryDefEdit.GeometryType_2 = esriGeometryType.esriGeometryMultiPatch;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; geometryDefEdit.GridCount_2 = 1;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; geometryDefEdit.set_GridSize(0, 0);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; geometryDefEdit.HasZ_2 = true;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; geometryDefEdit.HasM_2 = false;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; geometryDefEdit.SpatialReference_2 = (DatasetSpatialReference != null) ? DatasetSpatialReference : geometryDefEdit.SpatialReference_2 = new UnknownCoordinateSystemClass();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fieldEdit.GeometryDef_2 = geometryDef;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oidField = new FieldClass();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fieldEdit = (IFieldEdit)oidField;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fieldEdit.Name_2 = "OID";
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fieldEdit.Type_2 = esriFieldType.esriFieldTypeOID;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fieldEdit.Precision_2 = 0;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fcFields = new FieldsClass();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IFieldsEdit fcFieldsEdit = (IFieldsEdit)fcFields;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fcFieldsEdit.AddField(shapeField);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fcFieldsEdit.AddField(oidField);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fieldChecker = new FieldCheckerClass();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fieldChecker.ValidateWorkspace = datasetWorkspace;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fieldChecker.Validate(fcFields, out enumFieldError, out validatedFields);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; objectDescription = new FeatureClassDescriptionClass();

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; objectiveFeatureClass = ((IFeatureWorkspace)datasetWorkspace).CreateFeatureClass(
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dataset,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; validatedFields,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; null,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; objectDescription.ClassExtensionCLSID,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; esriFeatureType.esriFTSimple,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; shapeField.Name,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "");
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; finally
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (shapeField != null)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Marshal.ReleaseComObject(shapeField);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (geometryDef != null)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Marshal.ReleaseComObject(geometryDef);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (oidField != null)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Marshal.ReleaseComObject(oidField);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (fcFields != null)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Marshal.ReleaseComObject(fcFields);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (enumFieldError != null)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Marshal.ReleaseComObject(enumFieldError);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (validatedFields != null)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Marshal.ReleaseComObject(validatedFields);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (fieldChecker != null)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Marshal.ReleaseComObject(fieldChecker);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (objectDescription != null)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Marshal.ReleaseComObject(objectDescription);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return objectiveFeatureClass;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/PRE&gt;&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I have to ask because I'm very curious about this, when you are releasing COM objects you always do something like this:&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
try
{
 row = cursor.NextRow();
 while(row != null)
 {
&amp;nbsp; //some logic
&amp;nbsp; Marshal.ReleaseComObject(row)
&amp;nbsp; row = null;
&amp;nbsp; row = cursor.NextRow();
 }
}
finally
{
 if(row =! null)
&amp;nbsp; Marshal.ReleaseComObject(row);
 Marshal.ReleaseComObject(cursor);
}
&lt;/PRE&gt;&lt;BR /&gt;&lt;SPAN&gt;Now let's analyze this, in loop you are releasing the row object every time and assinging it's value to null - because as you said/wrote somewhere you want to make sure the row object will be destroyed/released. But what about the finally section: if the row object is not null you are releasing it by ReleaseComObject method...but the ReleaseComObject method only decreases the amount of references by 1, so there is a slight possibility that a row object won't be released completely, right? Should we use the FinalReleaseComObject method then? I know that your code examples for releasing COM objects are helping but I'm just willing to learn as much as I can, since COM objects generate so much problems for .net developers in esri products.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Regards,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;MDruzgala&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 12 Dec 2021 06:53:15 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/insert-feature-causes-out-of-memory-exception/m-p/722004#M19259</guid>
      <dc:creator>MarcinDruzgala</dc:creator>
      <dc:date>2021-12-12T06:53:15Z</dc:date>
    </item>
  </channel>
</rss>

