<?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 Crash when Creating Raster Image in .NET Forum</title>
    <link>https://forums.autodesk.com/t5/net-forum/crash-when-creating-raster-image/m-p/1781005#M80230</link>
    <description>I know I'm missing something simple...here's my code:&lt;BR /&gt;
&lt;BR /&gt;
 Database db = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Database;&lt;BR /&gt;
      Autodesk.AutoCAD.DatabaseServices.TransactionManager tm = db.TransactionManager;&lt;BR /&gt;
      using (Transaction t = tm.StartTransaction())&lt;BR /&gt;
      {&lt;BR /&gt;
&lt;BR /&gt;
        // open the dictionary&lt;BR /&gt;
        Autodesk.AutoCAD.DatabaseServices.ObjectId imgDictID = RasterImageDef.GetImageDictionary(db);&lt;BR /&gt;
        DBDictionary imgDict;&lt;BR /&gt;
        if (imgDictID.OldId == 0)&lt;BR /&gt;
        {&lt;BR /&gt;
          imgDictID = RasterImageDef.CreateImageDictionary(db);&lt;BR /&gt;
        }&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
        // create the raster image definition&lt;BR /&gt;
        RasterImageDef rasterDef = new RasterImageDef();&lt;BR /&gt;
        //        rasterDef.SourceFileName = mapURL;&lt;BR /&gt;
        rasterDef.SourceFileName = "C:/ObjectARX 2007/samples/graphics/Render/background.jpg";&lt;BR /&gt;
        rasterDef.Load();&lt;BR /&gt;
        &lt;BR /&gt;
        // test the image dictionary and the raster before going further        &lt;BR /&gt;
        bool bTestLoad = rasterDef.IsLoaded;&lt;BR /&gt;
        Autodesk.AutoCAD.DatabaseServices.ObjectId TestImgDictID = RasterImageDef.GetImageDictionary(db);&lt;BR /&gt;
        imgDict = (DBDictionary)t.GetObject(imgDictID, OpenMode.ForWrite);&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
        // add the raster definition to the dictionary iff it doesn't already exist&lt;BR /&gt;
        Autodesk.AutoCAD.DatabaseServices.ObjectId rasterDefID;&lt;BR /&gt;
        if (!imgDict.Contains("NewMap"))&lt;BR /&gt;
        {&lt;BR /&gt;
          rasterDefID = imgDict.SetAt("NewMap", rasterDef);&lt;BR /&gt;
        }&lt;BR /&gt;
        t.AddNewlyCreatedDBObject(rasterDef, true);&lt;BR /&gt;
&lt;BR /&gt;
        /* test */&lt;BR /&gt;
        bool bTestImage = imgDict.Contains("NewMap");&lt;BR /&gt;
&lt;BR /&gt;
        // everything is good up to this point...&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
        // now add the REAL raster image reference&lt;BR /&gt;
        RasterImage rasterRef = new RasterImage();&lt;BR /&gt;
        rasterRef.ImageDefId = rasterDef.ObjectId;&lt;BR /&gt;
        // rasterRef.AssociateRasterDef(rasterDef);  // crashes here if I use Associate&lt;BR /&gt;
        Autodesk.AutoCAD.DatabaseServices.ObjectId testRefID = rasterRef.ObjectId;&lt;BR /&gt;
        t.AddNewlyCreatedDBObject(rasterRef, false);  // crashes here&lt;BR /&gt;
        testRefID = rasterRef.ObjectId;&lt;BR /&gt;
&lt;BR /&gt;
       &lt;BR /&gt;
        t.Commit();&lt;BR /&gt;
      &lt;BR /&gt;
      }</description>
    <pubDate>Tue, 03 Oct 2006 18:14:58 GMT</pubDate>
    <dc:creator>Anonymous</dc:creator>
    <dc:date>2006-10-03T18:14:58Z</dc:date>
    <item>
      <title>Crash when Creating Raster Image</title>
      <link>https://forums.autodesk.com/t5/net-forum/crash-when-creating-raster-image/m-p/1781005#M80230</link>
      <description>I know I'm missing something simple...here's my code:&lt;BR /&gt;
&lt;BR /&gt;
 Database db = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Database;&lt;BR /&gt;
      Autodesk.AutoCAD.DatabaseServices.TransactionManager tm = db.TransactionManager;&lt;BR /&gt;
      using (Transaction t = tm.StartTransaction())&lt;BR /&gt;
      {&lt;BR /&gt;
&lt;BR /&gt;
        // open the dictionary&lt;BR /&gt;
        Autodesk.AutoCAD.DatabaseServices.ObjectId imgDictID = RasterImageDef.GetImageDictionary(db);&lt;BR /&gt;
        DBDictionary imgDict;&lt;BR /&gt;
        if (imgDictID.OldId == 0)&lt;BR /&gt;
        {&lt;BR /&gt;
          imgDictID = RasterImageDef.CreateImageDictionary(db);&lt;BR /&gt;
        }&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
        // create the raster image definition&lt;BR /&gt;
        RasterImageDef rasterDef = new RasterImageDef();&lt;BR /&gt;
        //        rasterDef.SourceFileName = mapURL;&lt;BR /&gt;
        rasterDef.SourceFileName = "C:/ObjectARX 2007/samples/graphics/Render/background.jpg";&lt;BR /&gt;
        rasterDef.Load();&lt;BR /&gt;
        &lt;BR /&gt;
        // test the image dictionary and the raster before going further        &lt;BR /&gt;
        bool bTestLoad = rasterDef.IsLoaded;&lt;BR /&gt;
        Autodesk.AutoCAD.DatabaseServices.ObjectId TestImgDictID = RasterImageDef.GetImageDictionary(db);&lt;BR /&gt;
        imgDict = (DBDictionary)t.GetObject(imgDictID, OpenMode.ForWrite);&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
        // add the raster definition to the dictionary iff it doesn't already exist&lt;BR /&gt;
        Autodesk.AutoCAD.DatabaseServices.ObjectId rasterDefID;&lt;BR /&gt;
        if (!imgDict.Contains("NewMap"))&lt;BR /&gt;
        {&lt;BR /&gt;
          rasterDefID = imgDict.SetAt("NewMap", rasterDef);&lt;BR /&gt;
        }&lt;BR /&gt;
        t.AddNewlyCreatedDBObject(rasterDef, true);&lt;BR /&gt;
&lt;BR /&gt;
        /* test */&lt;BR /&gt;
        bool bTestImage = imgDict.Contains("NewMap");&lt;BR /&gt;
&lt;BR /&gt;
        // everything is good up to this point...&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
        // now add the REAL raster image reference&lt;BR /&gt;
        RasterImage rasterRef = new RasterImage();&lt;BR /&gt;
        rasterRef.ImageDefId = rasterDef.ObjectId;&lt;BR /&gt;
        // rasterRef.AssociateRasterDef(rasterDef);  // crashes here if I use Associate&lt;BR /&gt;
        Autodesk.AutoCAD.DatabaseServices.ObjectId testRefID = rasterRef.ObjectId;&lt;BR /&gt;
        t.AddNewlyCreatedDBObject(rasterRef, false);  // crashes here&lt;BR /&gt;
        testRefID = rasterRef.ObjectId;&lt;BR /&gt;
&lt;BR /&gt;
       &lt;BR /&gt;
        t.Commit();&lt;BR /&gt;
      &lt;BR /&gt;
      }</description>
      <pubDate>Tue, 03 Oct 2006 18:14:58 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/crash-when-creating-raster-image/m-p/1781005#M80230</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2006-10-03T18:14:58Z</dc:date>
    </item>
    <item>
      <title>Re: Crash when Creating Raster Image</title>
      <link>https://forums.autodesk.com/t5/net-forum/crash-when-creating-raster-image/m-p/1781006#M80231</link>
      <description>Doh!&lt;BR /&gt;
&lt;BR /&gt;
I forgot to add the entity to the database!  Should have been:&lt;BR /&gt;
&lt;BR /&gt;
        // now add the REAL raster image reference&lt;BR /&gt;
        RasterImage rasterRef = new RasterImage();&lt;BR /&gt;
        rasterRef.ImageDefId = rasterDef.ObjectId;&lt;BR /&gt;
        Autodesk.AutoCAD.DatabaseServices.ObjectId testRefID = rasterRef.ObjectId;&lt;BR /&gt;
        BlockTable bt = (BlockTable)tm.GetObject(db.BlockTableId, OpenMode.ForRead, false);&lt;BR /&gt;
        BlockTableRecord btr = (BlockTableRecord)tm.GetObject(bt[BlockTableRecord.ModelSpace], OpenMode.ForWrite, false);&lt;BR /&gt;
        btr.AppendEntity(rasterRef);&lt;BR /&gt;
&lt;BR /&gt;
        tm.AddNewlyCreatedDBObject(rasterRef, true);&lt;BR /&gt;
        testRefID = rasterRef.ObjectId;</description>
      <pubDate>Tue, 03 Oct 2006 18:28:46 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/crash-when-creating-raster-image/m-p/1781006#M80231</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2006-10-03T18:28:46Z</dc:date>
    </item>
  </channel>
</rss>

