<?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: Trying to create a temporary database to hold data for block we want to impo in .NET Forum</title>
    <link>https://forums.autodesk.com/t5/net-forum/trying-to-create-a-temporary-database-to-hold-data-for-block-we/m-p/8671162#M23188</link>
    <description>&lt;P&gt;Another way (as suggested by&amp;nbsp;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/826400"&gt;@Virupaksha_aithal&lt;/a&gt;&amp;nbsp; in &lt;A href="https://forums.autodesk.com/t5/net/c-code-to-insert-a-block/m-p/8671003/highlight/true#M61882" target="_blank" rel="noopener"&gt;this reply&lt;/A&gt;) would be using the Core Console to run a .NET custom command.&lt;A id="link_17" class="lia-link-navigation lia-page-link lia-user-name-link" style="color: #444444;" href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/826400" target="_self"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Here's an example of command (to be called from the Core Console it cannot use the acmgd.dll library, only the accoremgd.dll and acdbmgd.dll).&lt;/P&gt;
&lt;PRE&gt;using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.Runtime;

namespace ImportBlocks
{
    public class Commands
    {
        [CommandMethod("IMPORTBLOCKS")]
        public static void ImportBlocks()
        {
            var db = HostApplicationServices.WorkingDatabase;
            using (var sourceDb = new Database(false, true))
            {
                sourceDb.ReadDwgFile(@"C:\Temp\Blocks.dwg", FileOpenMode.OpenForReadAndAllShare, true, null);
                var ids = new ObjectIdCollection();
                using (var tr = new OpenCloseTransaction())
                {
                    var bt = (BlockTable)tr.GetObject(sourceDb.BlockTableId, OpenMode.ForRead);
                    foreach (ObjectId id in bt)
                    {
                        var btr = (BlockTableRecord)tr.GetObject(id, OpenMode.ForRead);
                        if (!btr.IsLayout &amp;amp;&amp;amp; !btr.IsAnonymous)
                            ids.Add(id);
                    }
                    tr.Commit();
                }
                var mapping = new IdMapping();
                sourceDb.WblockCloneObjects(ids, db.BlockTableId, mapping, DuplicateRecordCloning.Replace, false);
            }
        }
    }
}&lt;/PRE&gt;
&lt;P&gt;From a standalone executable (e.g., a Windows Form application), you can launch the Core Console, pass it a script file which NETLOAD and run the upper command.&lt;/P&gt;
&lt;P&gt;In the following example, the script file is created 'on the fly' and deleted after used.&lt;/P&gt;
&lt;P&gt;Change the paths and AutoCAD version to suit your needs (in this example, the ImportBlocks.dll file is supposed to be in the same directory as the executable).&lt;/P&gt;
&lt;PRE&gt;        private void button1_Click(object sender, EventArgs e)
        {
                var scriptPath = @"C:\Temp\ImportBlocks.scr";
            try
            {
                // create the script file
                using (var writer = new StreamWriter(scriptPath))
                {
                    writer.WriteLine("(command \"NETLOAD\" \"ImportBlocks.dll\")");
                    writer.WriteLine("IMPORTBLOCKS");
                    writer.WriteLine("_SAVE \"C:\\Temp\\TestImportBlocks.dwg\"");
                    writer.WriteLine();
                }
                // run the accore console
                string accorePath = @"C:\Program Files\Autodesk\AutoCAD 2013\accoreconsole.exe";
                string args = $"/s {scriptPath}";
                var startInfo = new ProcessStartInfo(accorePath, args);
                startInfo.WindowStyle = ProcessWindowStyle.Hidden;
                var process = Process.Start(startInfo);
                process.WaitForExit();
                MessageBox.Show("Done");
            }
            catch(Exception ex)
            {
                MessageBox.Show($"{ex.Message}\n{ex.StackTrace}");
            }
            finally
            {
                // delete the script file
                File.Delete(scriptPath);
            }
        }&lt;/PRE&gt;</description>
    <pubDate>Wed, 20 Mar 2019 11:05:18 GMT</pubDate>
    <dc:creator>_gile</dc:creator>
    <dc:date>2019-03-20T11:05:18Z</dc:date>
    <item>
      <title>Trying to create a temporary database to hold data for block we want to import</title>
      <link>https://forums.autodesk.com/t5/net-forum/trying-to-create-a-temporary-database-to-hold-data-for-block-we/m-p/8667416#M23179</link>
      <description>&lt;DIV class="lia-message-body lia-component-body-signature-highlight-escalation" id="messageBodySimpleDisplay" style="box-sizing: border-box; color: #666666; font-family: &amp;amp;quot; artifakt&amp;amp;quot;,tahoma,helvetica,arial,sans-serif; font-size: 16px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 1.7142; margin-bottom: 0px; orphans: 2; overflow: auto; overflow-wrap: break-word; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;"&gt;
&lt;DIV class="lia-message-body-content" style="box-sizing: border-box; font-size: 14px; font-weight: normal; line-height: normal; margin-bottom: 0px; overflow: hidden; overflow-wrap: break-word; white-space: normal;"&gt;
&lt;P style="box-sizing: border-box; font-weight: 400; margin: 0px;"&gt;I’m actually getting an error&lt;/P&gt;
&lt;P style="box-sizing: border-box; font-weight: 400; margin: 0px;"&gt;System.InvalidProgramException occurred&lt;/P&gt;
&lt;P style="box-sizing: border-box; font-weight: 400; margin: 0px;"&gt;&amp;nbsp; HResult= &amp;nbsp;&amp;nbsp;0x8013153A Common Language Runtime detected an invalid program.&lt;/P&gt;
&lt;P style="box-sizing: border-box; font-weight: 400; margin: 0px;"&gt;&amp;nbsp; Source=&amp;lt;Cannot evaluate the exception source&amp;gt;&lt;/P&gt;
&lt;P style="box-sizing: border-box; font-weight: 400; margin: 0px;"&gt;&amp;nbsp; StackTrace: at Autodesk.AutoCAD.DatabaseServices.Database.get_TransactionManager()&lt;/P&gt;
&lt;P style="box-sizing: border-box; font-weight: 400; margin: 0px;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="box-sizing: border-box; font-weight: 400; margin: 0px;"&gt;While running this below piece of code&lt;/P&gt;
&lt;P style="box-sizing: border-box; font-weight: 400; margin: 0px;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="box-sizing: border-box; font-weight: 400; margin: 0px;"&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; Database sourceDb = new Database(false, true); //Temporary database to hold data for block we want to import&lt;/P&gt;
&lt;P style="box-sizing: border-box; font-weight: 400; margin: 0px;"&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; try&lt;/P&gt;
&lt;P style="box-sizing: border-box; font-weight: 400; margin: 0px;"&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; {&lt;/P&gt;
&lt;P style="box-sizing: border-box; font-weight: 400; margin: 0px;"&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; sourceDb.ReadDwgFile(dwgPath, System.IO.FileShare.Read, true, ""); //Read the DWG into a side database&lt;/P&gt;
&lt;P style="box-sizing: border-box; font-weight: 400; margin: 0px;"&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; ObjectIdCollection blockIds = new ObjectIdCollection(); // Create a variable to store the list of block identifiers&lt;/P&gt;
&lt;P style="box-sizing: border-box; font-weight: 400; margin: 0px;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="box-sizing: border-box; font-weight: 400; margin: 0px;"&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; Autodesk.AutoCAD.DatabaseServices.TransactionManager tm = sourceDb.TransactionManager; using (Transaction myT = tm.StartTransaction())&lt;/P&gt;
&lt;P style="box-sizing: border-box; font-weight: 400; margin: 0px;"&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; {&lt;/P&gt;
&lt;P style="box-sizing: border-box; font-weight: 400; margin: 0px;"&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; // Open the block table&lt;/P&gt;
&lt;P style="box-sizing: border-box; font-weight: 400; margin: 0px;"&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; BlockTable bt = (BlockTable)tm.GetObject(sourceDb.BlockTableId, OpenMode.ForRead, false);&lt;/P&gt;
&lt;P style="box-sizing: border-box; font-weight: 400; margin: 0px;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="box-sizing: border-box; font-weight: 400; margin: 0px;"&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; // Check each block in the block table&lt;/P&gt;
&lt;P style="box-sizing: border-box; font-weight: 400; margin: 0px;"&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; foreach (ObjectId btrId in bt)&lt;/P&gt;
&lt;P style="box-sizing: border-box; font-weight: 400; margin: 0px;"&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; {&lt;/P&gt;
&lt;P style="box-sizing: border-box; font-weight: 400; margin: 0px;"&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; BlockTableRecord btr = (BlockTableRecord)tm.GetObject(btrId, OpenMode.ForRead, false);&lt;/P&gt;
&lt;P style="box-sizing: border-box; font-weight: 400; margin: 0px;"&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; // Only add named &amp;amp; non-layout blocks to the copy list&lt;/P&gt;
&lt;P style="box-sizing: border-box; font-weight: 400; margin: 0px;"&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;if (!btr.IsAnonymous &amp;amp;&amp;amp; !btr.IsLayout)&lt;/P&gt;
&lt;P style="box-sizing: border-box; font-weight: 400; margin: 0px;"&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; {&lt;/P&gt;
&lt;P style="box-sizing: border-box; font-weight: 400; margin: 0px;"&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; blockIds.Add(btrId);&lt;/P&gt;
&lt;P style="box-sizing: border-box; font-weight: 400; margin: 0px;"&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; }&lt;/P&gt;
&lt;P style="box-sizing: border-box; font-weight: 400; margin: 0px;"&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; btr.Dispose();&lt;/P&gt;
&lt;P style="box-sizing: border-box; font-weight: 400; margin: 0px;"&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; }&lt;/P&gt;
&lt;P style="box-sizing: border-box; font-weight: 400; margin: 0px;"&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; }&lt;/P&gt;
&lt;P style="box-sizing: border-box; font-weight: 400; margin: 0px;"&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; // Copy blocks from source to destination database&lt;/P&gt;
&lt;P style="box-sizing: border-box; font-weight: 400; margin: 0px;"&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; //IdMapping mapping = new IdMapping(); sourceDb.WblockCloneObjects(blockIds, _database.BlockTableId, mapping, DuplicateRecordCloning.Replace, false); _editor.WriteMessage("\nCopied " + blockIds.Count.ToString() + " block definitions from " + blockToImport + " to the current drawing.");&lt;/P&gt;
&lt;P style="box-sizing: border-box; font-weight: 400; margin: 0px;"&gt;&amp;nbsp; }&lt;/P&gt;
&lt;DIV style="box-sizing: border-box;"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV class="custom-add-tag" style="box-sizing: border-box; color: #666666; display: flex; flex-direction: row; font-family: &amp;amp;quot; artifakt&amp;amp;quot;,tahoma,helvetica,arial,sans-serif; font-size: 16px; font-style: normal; font-variant: normal; font-weight: 400; justify-content: space-between; letter-spacing: normal; orphans: 2; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;"&gt;
&lt;DIV class="lia-panel lia-panel-standard MessageTagsTaplet Chrome lia-component-message-view-widget-tags" style="background-attachment: scroll; background-clip: border-box; background-color: transparent; background-image: none; background-origin: padding-box; background-position-x: 0%; background-position-y: 0%; background-repeat: repeat; background-size: auto; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-image-outset: 0; border-image-repeat: stretch; border-image-slice: 100%; border-image-source: none; border-image-width: 1; border-top-left-radius: 3px; border-top-right-radius: 3px; box-shadow: none; box-sizing: border-box; margin-bottom: 10px; position: relative; width: 80%; border: 0px none currentColor;"&gt;
&lt;DIV class="lia-decoration-border" style="box-sizing: border-box;"&gt;
&lt;DIV class="lia-decoration-border-top" style="box-sizing: border-box;"&gt;
&lt;DIV style="box-sizing: border-box;"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV class="lia-decoration-border-content" style="box-sizing: border-box; padding-top: 7px;"&gt;
&lt;DIV style="box-sizing: border-box;"&gt;
&lt;DIV class="lia-panel-content-wrapper" style="box-sizing: border-box;"&gt;
&lt;DIV class="lia-panel-content" style="box-sizing: border-box; display: block; height: auto; max-width: 100%; padding: 0px;"&gt;
&lt;DIV class="AddMessageTags lia-message-tags" style="box-sizing: border-box; margin-bottom: 0px;"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV class="lia-decoration-border-bottom" style="box-sizing: border-box;"&gt;
&lt;DIV style="box-sizing: border-box;"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV class="custom-report" style="box-sizing: border-box; padding-top: 10px;"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;/DIV&gt;</description>
      <pubDate>Tue, 19 Mar 2019 02:17:50 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/trying-to-create-a-temporary-database-to-hold-data-for-block-we/m-p/8667416#M23179</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2019-03-19T02:17:50Z</dc:date>
    </item>
    <item>
      <title>Re: Trying to create a temporary database to hold data for block we want to impo</title>
      <link>https://forums.autodesk.com/t5/net-forum/trying-to-create-a-temporary-database-to-hold-data-for-block-we/m-p/8667741#M23180</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Try like this:&lt;/P&gt;
&lt;PRE&gt;            var doc = Application.DocumentManager.MdiActiveDocument;
            var db = doc.Database;
            using (var sourceDb = new Database(false, true))
            {
                sourceDb.ReadDwgFile(dwgPath, FileOpenMode.OpenForReadAndAllShare, true, null);
                using (var tr = sourceDb.TransactionManager.StartTransaction())
                {
                    var bt = (BlockTable)tr.GetObject(sourceDb.BlockTableId, OpenMode.ForRead);
                    var ids = new ObjectIdCollection();
                    foreach (ObjectId id in bt)
                    {
                        var btr = (BlockTableRecord)tr.GetObject(id, OpenMode.ForRead);
                        if (!btr.IsLayout &amp;amp;&amp;amp; !btr.IsAnonymous)
                        {
                            ids.Add(id);
                        }
                    }
                    var mapping = new IdMapping();
                    sourceDb.WblockCloneObjects(ids, db.BlockTableId, mapping, DuplicateRecordCloning.Replace, false);
                    tr.Commit();
                }
            }&lt;/PRE&gt;</description>
      <pubDate>Tue, 19 Mar 2019 07:20:46 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/trying-to-create-a-temporary-database-to-hold-data-for-block-we/m-p/8667741#M23180</guid>
      <dc:creator>_gile</dc:creator>
      <dc:date>2019-03-19T07:20:46Z</dc:date>
    </item>
    <item>
      <title>Re: Trying to create a temporary database to hold data for block we want to impo</title>
      <link>https://forums.autodesk.com/t5/net-forum/trying-to-create-a-temporary-database-to-hold-data-for-block-we/m-p/8670581#M23181</link>
      <description>&lt;P&gt;&lt;FONT style="background-color: #ffffff;"&gt;Hi Gilles,&lt;BR /&gt;Thanks for your response. &lt;BR /&gt;What I'm trying to do is, to insert a block in a drawing without opening the Autocad application. I’m ok to run the Autocad application as a background process. I think, the code snippet that you shared will work only when we load the program in autocad using NETLOAD command and then running the [CommandMethod]. Please correct me if my understanding is correct.&lt;/FONT&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 20 Mar 2019 05:36:29 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/trying-to-create-a-temporary-database-to-hold-data-for-block-we/m-p/8670581#M23181</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2019-03-20T05:36:29Z</dc:date>
    </item>
    <item>
      <title>Re: Trying to create a temporary database to hold data for block we want to impo</title>
      <link>https://forums.autodesk.com/t5/net-forum/trying-to-create-a-temporary-database-to-hold-data-for-block-we/m-p/8670703#M23182</link>
      <description>&lt;P&gt;The AutoCAD .NET API is designed to run in-process only (i.e., compiled as DLL and netloaded in AutoCAD).&lt;/P&gt;
&lt;P&gt;Read &lt;A href="https://help.autodesk.com/view/OARX/2019/ENU/?guid=GUID-C8C65D7A-EC3A-42D8-BF02-4B13C2EA1A4B" target="_blank" rel="noopener"&gt;&lt;STRONG&gt;this topic&lt;/STRONG&gt;&lt;/A&gt; about out-of-process vs in-process applications.&lt;/P&gt;</description>
      <pubDate>Wed, 20 Mar 2019 07:11:57 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/trying-to-create-a-temporary-database-to-hold-data-for-block-we/m-p/8670703#M23182</guid>
      <dc:creator>_gile</dc:creator>
      <dc:date>2019-03-20T07:11:57Z</dc:date>
    </item>
    <item>
      <title>Re: Trying to create a temporary database to hold data for block we want to impo</title>
      <link>https://forums.autodesk.com/t5/net-forum/trying-to-create-a-temporary-database-to-hold-data-for-block-we/m-p/8670883#M23183</link>
      <description>&lt;P&gt;I'm actually opening the autocad dwg file using "&lt;FONT style="background-color: #ffffff;"&gt;Autodesk.AutoCAD.Interop.Common.AxDbDocument&lt;/FONT&gt;" and able to read the data.&amp;nbsp; In this case, I'm not using NETLOAD to open the dwg and read data. So, I'm looking on the same lines to insert a block or text in the drawing.&lt;/P&gt;
&lt;P&gt;Below is the code that I'm using for opening the dwg file&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV&gt;&lt;FONT style="background-color: #ffffff;"&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; &lt;FONT color="#0000ff"&gt;Type acType = Type.GetTypeFromProgID(ProgID);&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000ff"&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; acadApp = (AcadApplication)Activator.CreateInstance(acType, true);&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000ff"&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; acadApp.Visible = false;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000ff"&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; acadApp.Width = 1;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#0000ff"&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; acadApp.Height = 1;&lt;/FONT&gt;&lt;BR /&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT color="#0000ff" style="background-color: #ffffff;"&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; axDbDocument = acadApp.GetInterfaceObject("ObjectDBX.AxDbDocument." + version);&lt;BR /&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT color="#0000ff" style="background-color: #ffffff;"&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; sourceAxDb = axDbDocument as Autodesk.AutoCAD.Interop.Common.AxDbDocument;&lt;BR /&gt;&lt;/FONT&gt;&lt;FONT style="background-color: #ffffff;"&gt;&lt;FONT color="#0000ff"&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; sourceAxDb.Open(txtFileName.Text);&lt;/FONT&gt;&lt;BR /&gt;&lt;/FONT&gt;&lt;/DIV&gt;</description>
      <pubDate>Wed, 20 Mar 2019 08:48:37 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/trying-to-create-a-temporary-database-to-hold-data-for-block-we/m-p/8670883#M23183</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2019-03-20T08:48:37Z</dc:date>
    </item>
    <item>
      <title>Re: Trying to create a temporary database to hold data for block we want to impo</title>
      <link>https://forums.autodesk.com/t5/net-forum/trying-to-create-a-temporary-database-to-hold-data-for-block-we/m-p/8670930#M23184</link>
      <description>&lt;P&gt;Below is the error that i get when i'm executing to insert a block or text&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image001.png" style="width: 999px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/616043i70162D651E18D9AC/image-size/large?v=v2&amp;amp;px=999" role="button" title="image001.png" alt="image001.png" /&gt;&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 20 Mar 2019 09:15:31 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/trying-to-create-a-temporary-database-to-hold-data-for-block-we/m-p/8670930#M23184</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2019-03-20T09:15:31Z</dc:date>
    </item>
    <item>
      <title>Re: Trying to create a temporary database to hold data for block we want to impo</title>
      <link>https://forums.autodesk.com/t5/net-forum/trying-to-create-a-temporary-database-to-hold-data-for-block-we/m-p/8670987#M23185</link>
      <description>&lt;P&gt;One more time, you &lt;STRONG&gt;cannot&lt;/STRONG&gt; use the AutoCAD .NET API from a standalone executable application except if you netload some .NET DLL and launch some custom command from this DLL (or expose the .NET assembly to COM which is much less trivial).&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If you absoluteley want/need to use a standalone application, you can use the COM API to get or start the AutoCAD Application and still using CAM use AxDbDocument to import the block definitions from the source file.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Here's a little example, replace AutoCAD major version and the source file path to suit your needs.&lt;/P&gt;
&lt;PRE&gt;        private void button1_Click(object sender, EventArgs e)
        {
            AcadApplication acadApp = null;
            const string progId = "AutoCAD.Application.19";
            try
            {
                acadApp = (AcadApplication)Marshal.GetActiveObject(progId);
            }
            catch
            {
                try
                {
                    acadApp = (AcadApplication)Activator.CreateInstance(Type.GetTypeFromProgID(progId), true);
                }
                catch
                {
                    MessageBox.Show("Instance of 'AutoCAD.Application' could not be created.");
                    return;
                }
            }
            while (true)
            {
                try
                {
                    if (acadApp.GetAcadState().IsQuiescent)
                        break;
                }
                catch { Thread.Sleep(100); }
            }
            acadApp.Visible = false;

            AxDbDocument sourceDoc = null;
            try
            {
                sourceDoc = acadApp.GetInterfaceObject("ObjectDBX.AxDbDocument.19");
                sourceDoc.Open(@"C:\Temp\Blocks.dwg");
                dynamic blocks = sourceDoc.Blocks
                    .Cast&amp;lt;AcadBlock&amp;gt;()
                    .Where(b =&amp;gt; !b.IsLayout)
                    .ToArray();
                sourceDoc.CopyObjects(blocks, acadApp.ActiveDocument.Blocks);
                MessageBox.Show($"Copied {blocks.Length} blocks");
            }
            catch(Exception ex)
            {
                MessageBox.Show(ex.Message + "\n" + ex.StackTrace);
            }
            finally
            {
                if (sourceDoc != null)
                    Marshal.ReleaseComObject(sourceDoc);
            }
            acadApp.Visible = true;
        }&lt;/PRE&gt;</description>
      <pubDate>Wed, 20 Mar 2019 09:33:30 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/trying-to-create-a-temporary-database-to-hold-data-for-block-we/m-p/8670987#M23185</guid>
      <dc:creator>_gile</dc:creator>
      <dc:date>2019-03-20T09:33:30Z</dc:date>
    </item>
    <item>
      <title>Re: Trying to create a temporary database to hold data for block we want to impo</title>
      <link>https://forums.autodesk.com/t5/net-forum/trying-to-create-a-temporary-database-to-hold-data-for-block-we/m-p/8671019#M23186</link>
      <description>&lt;P&gt;Thank you for ur quick response will try this &amp;amp; will let u know for any further queries&lt;/P&gt;</description>
      <pubDate>Wed, 20 Mar 2019 09:44:33 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/trying-to-create-a-temporary-database-to-hold-data-for-block-we/m-p/8671019#M23186</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2019-03-20T09:44:33Z</dc:date>
    </item>
    <item>
      <title>Re: Trying to create a temporary database to hold data for block we want to impo</title>
      <link>https://forums.autodesk.com/t5/net-forum/trying-to-create-a-temporary-database-to-hold-data-for-block-we/m-p/8671032#M23187</link>
      <description>&lt;P&gt;The code that you are showing that is causing the exception can only be used from a DLL that is loaded into AutoCAD using the NETLOAD command.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;&lt;HR /&gt;@Anonymous&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;Below is the error that i get when i'm executing to insert a block or text&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image001.png" style="width: 999px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/616043i70162D651E18D9AC/image-size/large?v=v2&amp;amp;px=999" role="button" title="image001.png" alt="image001.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 20 Mar 2019 09:51:17 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/trying-to-create-a-temporary-database-to-hold-data-for-block-we/m-p/8671032#M23187</guid>
      <dc:creator>ActivistInvestor</dc:creator>
      <dc:date>2019-03-20T09:51:17Z</dc:date>
    </item>
    <item>
      <title>Re: Trying to create a temporary database to hold data for block we want to impo</title>
      <link>https://forums.autodesk.com/t5/net-forum/trying-to-create-a-temporary-database-to-hold-data-for-block-we/m-p/8671162#M23188</link>
      <description>&lt;P&gt;Another way (as suggested by&amp;nbsp;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/826400"&gt;@Virupaksha_aithal&lt;/a&gt;&amp;nbsp; in &lt;A href="https://forums.autodesk.com/t5/net/c-code-to-insert-a-block/m-p/8671003/highlight/true#M61882" target="_blank" rel="noopener"&gt;this reply&lt;/A&gt;) would be using the Core Console to run a .NET custom command.&lt;A id="link_17" class="lia-link-navigation lia-page-link lia-user-name-link" style="color: #444444;" href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/826400" target="_self"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Here's an example of command (to be called from the Core Console it cannot use the acmgd.dll library, only the accoremgd.dll and acdbmgd.dll).&lt;/P&gt;
&lt;PRE&gt;using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.Runtime;

namespace ImportBlocks
{
    public class Commands
    {
        [CommandMethod("IMPORTBLOCKS")]
        public static void ImportBlocks()
        {
            var db = HostApplicationServices.WorkingDatabase;
            using (var sourceDb = new Database(false, true))
            {
                sourceDb.ReadDwgFile(@"C:\Temp\Blocks.dwg", FileOpenMode.OpenForReadAndAllShare, true, null);
                var ids = new ObjectIdCollection();
                using (var tr = new OpenCloseTransaction())
                {
                    var bt = (BlockTable)tr.GetObject(sourceDb.BlockTableId, OpenMode.ForRead);
                    foreach (ObjectId id in bt)
                    {
                        var btr = (BlockTableRecord)tr.GetObject(id, OpenMode.ForRead);
                        if (!btr.IsLayout &amp;amp;&amp;amp; !btr.IsAnonymous)
                            ids.Add(id);
                    }
                    tr.Commit();
                }
                var mapping = new IdMapping();
                sourceDb.WblockCloneObjects(ids, db.BlockTableId, mapping, DuplicateRecordCloning.Replace, false);
            }
        }
    }
}&lt;/PRE&gt;
&lt;P&gt;From a standalone executable (e.g., a Windows Form application), you can launch the Core Console, pass it a script file which NETLOAD and run the upper command.&lt;/P&gt;
&lt;P&gt;In the following example, the script file is created 'on the fly' and deleted after used.&lt;/P&gt;
&lt;P&gt;Change the paths and AutoCAD version to suit your needs (in this example, the ImportBlocks.dll file is supposed to be in the same directory as the executable).&lt;/P&gt;
&lt;PRE&gt;        private void button1_Click(object sender, EventArgs e)
        {
                var scriptPath = @"C:\Temp\ImportBlocks.scr";
            try
            {
                // create the script file
                using (var writer = new StreamWriter(scriptPath))
                {
                    writer.WriteLine("(command \"NETLOAD\" \"ImportBlocks.dll\")");
                    writer.WriteLine("IMPORTBLOCKS");
                    writer.WriteLine("_SAVE \"C:\\Temp\\TestImportBlocks.dwg\"");
                    writer.WriteLine();
                }
                // run the accore console
                string accorePath = @"C:\Program Files\Autodesk\AutoCAD 2013\accoreconsole.exe";
                string args = $"/s {scriptPath}";
                var startInfo = new ProcessStartInfo(accorePath, args);
                startInfo.WindowStyle = ProcessWindowStyle.Hidden;
                var process = Process.Start(startInfo);
                process.WaitForExit();
                MessageBox.Show("Done");
            }
            catch(Exception ex)
            {
                MessageBox.Show($"{ex.Message}\n{ex.StackTrace}");
            }
            finally
            {
                // delete the script file
                File.Delete(scriptPath);
            }
        }&lt;/PRE&gt;</description>
      <pubDate>Wed, 20 Mar 2019 11:05:18 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/trying-to-create-a-temporary-database-to-hold-data-for-block-we/m-p/8671162#M23188</guid>
      <dc:creator>_gile</dc:creator>
      <dc:date>2019-03-20T11:05:18Z</dc:date>
    </item>
  </channel>
</rss>

