<?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 Adding attributes to block references in a side database in .NET Forum</title>
    <link>https://forums.autodesk.com/t5/net-forum/adding-attributes-to-block-references-in-a-side-database/m-p/8338257#M24559</link>
    <description>&lt;P&gt;I'm trying to add a new attribute to all the block references of several drawings. Ideally this would be done as a side database to make it as clean and efficient as possible, however I keep hitting an ewrongdatabase error.&lt;BR /&gt;&lt;BR /&gt;Could anyone please help.&lt;BR /&gt;&lt;BR /&gt;Below is the code for a minimum working example, the code works find for the active document (uncomment all lines ending&amp;nbsp;&lt;U&gt;&lt;STRONG&gt;//comment out #2&lt;/STRONG&gt;&lt;/U&gt; and comment&amp;nbsp; out lines ending &lt;U&gt;&lt;STRONG&gt;//comment out #1&lt;/STRONG&gt;&lt;/U&gt; to check) but fails on the&amp;nbsp;btr.AppendEntity(attr); line when trying to run as a side database.&lt;BR /&gt;&lt;BR /&gt;Many thanks&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;PRE&gt;[CommandMethod("MWE", CommandFlags.Session)]
        public static void MWE()
        {
            var filenames = new List&amp;lt;string&amp;gt;();
            filenames.Add("C:\\temp\\test.dwg");

            var attributes = new List&amp;lt;string&amp;gt;();
            attributes.Add("Att1");

            var acDbase = new Database(false, true);

            foreach (var file in filenames) //comment out #1
            //foreach (Document acDoc in Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager) //commentout #2
            {
                acDbase.ReadDwgFile(file, System.IO.FileShare.ReadWrite, false, ""); //comment out #1
                //acDbase = acDoc.Database; //comment out #2
                //acDoc.LockDocument(); //comment out #2

                var acTrans = acDbase.TransactionManager.StartTransaction();

                var acBlkTbl = acTrans.GetObject(acDbase.BlockTableId, OpenMode.ForRead) as BlockTable;

                foreach (var btrId in acBlkTbl)
                {
                    var btr = (BlockTableRecord)acTrans.GetObject(btrId, OpenMode.ForWrite);

                    foreach (var item in attributes)
                    {
                        var attr = new AttributeDefinition()
                        {
                            Layer = "0",
                            ColorIndex = 0,
                            Color = Autodesk.AutoCAD.Colors.Color.FromColorIndex(ColorMethod.ByAci, 0),
                            Tag = item.ToUpper(),
                            Prompt = "Result" + item,
                            TextString = "",
                            Preset = false,
                            TextStyleId = acDbase.Textstyle,//&amp;lt;--   A2010
                            Height = 0.1250,
                            WidthFactor = 0.7500,
                            Justify = AttachmentPoint.MiddleCenter,
                            AlignmentPoint = new Point3d(0, 0.1047, 0),
                            LockPositionInBlock = true,
                            Invisible = true,
                        };
                        attr.SetDatabaseDefaults(acDbase);

                        if (false)
                        {
                            foreach (ObjectId ObjId in btr)
                            {
                                var obj = acTrans.GetObject(ObjId, OpenMode.ForWrite);
                                if (obj is BlockReference)
                                {

                                    var acBlock = obj as BlockReference;

                                    AttributeReference attRef = new AttributeReference();
                                    attRef.SetAttributeFromBlock(attr, acBlock.BlockTransform);

                                    acBlock.AttributeCollection.AppendAttribute(attRef);
                                    acTrans.AddNewlyCreatedDBObject(attRef, true);
                                }
                            }
                        }
                        else
                        {
                            btr.AppendEntity(attr);
                        }
                    }
                    
                    btr.SynchronizeAttributes();
                }

            }
        }&lt;/PRE&gt;&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt;Additional Functions (SynchroniseAttributes)&lt;/P&gt;&lt;PRE&gt;public static class ExtensionMethods
    {
        static RXClass attDefClass = RXClass.GetClass(typeof(AttributeDefinition));

        public static void SynchronizeAttributes(this BlockTableRecord target)
        {
            if (target == null)
                throw new ArgumentNullException("target");

            Transaction tr = target.Database.TransactionManager.TopTransaction;
            if (tr == null)
                throw new Autodesk.AutoCAD.Runtime.Exception(ErrorStatus.NoActiveTransactions);
            List&amp;lt;AttributeDefinition&amp;gt; attDefs = target.GetAttributes(tr);
            foreach (ObjectId id in target.GetBlockReferenceIds(true, false))
            {
                BlockReference br = (BlockReference)tr.GetObject(id, OpenMode.ForWrite);
                br.ResetAttributes(attDefs, tr);
            }
            if (target.IsDynamicBlock)
            {
                target.UpdateAnonymousBlocks();
                foreach (ObjectId id in target.GetAnonymousBlockIds())
                {
                    BlockTableRecord btr = (BlockTableRecord)tr.GetObject(id, OpenMode.ForRead);
                    attDefs = btr.GetAttributes(tr);
                    foreach (ObjectId brId in btr.GetBlockReferenceIds(true, false))
                    {
                        BlockReference br = (BlockReference)tr.GetObject(brId, OpenMode.ForWrite);
                        br.ResetAttributes(attDefs, tr);
                    }
                }
            }
        }

        private static List&amp;lt;AttributeDefinition&amp;gt; GetAttributes(this BlockTableRecord target, Transaction tr)
        {
            List&amp;lt;AttributeDefinition&amp;gt; attDefs = new List&amp;lt;AttributeDefinition&amp;gt;();
            foreach (ObjectId id in target)
            {
                if (id.ObjectClass == attDefClass)
                {
                    AttributeDefinition attDef = (AttributeDefinition)tr.GetObject(id, OpenMode.ForRead);
                    attDefs.Add(attDef);
                }
            }
            return attDefs;
        }

        private static void ResetAttributes(this BlockReference br, List&amp;lt;AttributeDefinition&amp;gt; attDefs, Transaction tr)
        {
            int error_prot = 0;
            Dictionary&amp;lt;string, string&amp;gt; attValues = new Dictionary&amp;lt;string, string&amp;gt;();
            foreach (ObjectId id in br.AttributeCollection)
            {
                
                if (!id.IsErased)
                {
                    AttributeReference attRef = (AttributeReference)tr.GetObject(id, OpenMode.ForWrite);
                    try
                    {
                        attValues.Add(attRef.Tag,
                          attRef.IsMTextAttribute ? attRef.MTextAttribute.Contents : attRef.TextString);
                    }
                    catch
                    {
                        try
                        {
                            error_prot++;
                            attValues.Add(attRef.Tag + error_prot.ToString(),
                                attRef.IsMTextAttribute ? attRef.MTextAttribute.Contents : attRef.TextString);
                        }
                        catch { }
                    }
                    attRef.Erase();
                }
            }
            foreach (AttributeDefinition attDef in attDefs)
            {
                AttributeReference attRef = new AttributeReference();
                attRef.SetAttributeFromBlock(attDef, br.BlockTransform);
                if (attDef.Constant)
                {
                    attRef.TextString = attDef.IsMTextAttributeDefinition ?
                        attDef.MTextAttributeDefinition.Contents :
                        attDef.TextString;
                }
                else if (attValues.ContainsKey(attRef.Tag))
                {
                    attRef.TextString = attValues[attRef.Tag];
                }
                br.AttributeCollection.AppendAttribute(attRef);
                tr.AddNewlyCreatedDBObject(attRef, true);
            }
        }
    }&lt;/PRE&gt;&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;</description>
    <pubDate>Tue, 16 Oct 2018 16:49:07 GMT</pubDate>
    <dc:creator>Anonymous</dc:creator>
    <dc:date>2018-10-16T16:49:07Z</dc:date>
    <item>
      <title>Adding attributes to block references in a side database</title>
      <link>https://forums.autodesk.com/t5/net-forum/adding-attributes-to-block-references-in-a-side-database/m-p/8338257#M24559</link>
      <description>&lt;P&gt;I'm trying to add a new attribute to all the block references of several drawings. Ideally this would be done as a side database to make it as clean and efficient as possible, however I keep hitting an ewrongdatabase error.&lt;BR /&gt;&lt;BR /&gt;Could anyone please help.&lt;BR /&gt;&lt;BR /&gt;Below is the code for a minimum working example, the code works find for the active document (uncomment all lines ending&amp;nbsp;&lt;U&gt;&lt;STRONG&gt;//comment out #2&lt;/STRONG&gt;&lt;/U&gt; and comment&amp;nbsp; out lines ending &lt;U&gt;&lt;STRONG&gt;//comment out #1&lt;/STRONG&gt;&lt;/U&gt; to check) but fails on the&amp;nbsp;btr.AppendEntity(attr); line when trying to run as a side database.&lt;BR /&gt;&lt;BR /&gt;Many thanks&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;PRE&gt;[CommandMethod("MWE", CommandFlags.Session)]
        public static void MWE()
        {
            var filenames = new List&amp;lt;string&amp;gt;();
            filenames.Add("C:\\temp\\test.dwg");

            var attributes = new List&amp;lt;string&amp;gt;();
            attributes.Add("Att1");

            var acDbase = new Database(false, true);

            foreach (var file in filenames) //comment out #1
            //foreach (Document acDoc in Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager) //commentout #2
            {
                acDbase.ReadDwgFile(file, System.IO.FileShare.ReadWrite, false, ""); //comment out #1
                //acDbase = acDoc.Database; //comment out #2
                //acDoc.LockDocument(); //comment out #2

                var acTrans = acDbase.TransactionManager.StartTransaction();

                var acBlkTbl = acTrans.GetObject(acDbase.BlockTableId, OpenMode.ForRead) as BlockTable;

                foreach (var btrId in acBlkTbl)
                {
                    var btr = (BlockTableRecord)acTrans.GetObject(btrId, OpenMode.ForWrite);

                    foreach (var item in attributes)
                    {
                        var attr = new AttributeDefinition()
                        {
                            Layer = "0",
                            ColorIndex = 0,
                            Color = Autodesk.AutoCAD.Colors.Color.FromColorIndex(ColorMethod.ByAci, 0),
                            Tag = item.ToUpper(),
                            Prompt = "Result" + item,
                            TextString = "",
                            Preset = false,
                            TextStyleId = acDbase.Textstyle,//&amp;lt;--   A2010
                            Height = 0.1250,
                            WidthFactor = 0.7500,
                            Justify = AttachmentPoint.MiddleCenter,
                            AlignmentPoint = new Point3d(0, 0.1047, 0),
                            LockPositionInBlock = true,
                            Invisible = true,
                        };
                        attr.SetDatabaseDefaults(acDbase);

                        if (false)
                        {
                            foreach (ObjectId ObjId in btr)
                            {
                                var obj = acTrans.GetObject(ObjId, OpenMode.ForWrite);
                                if (obj is BlockReference)
                                {

                                    var acBlock = obj as BlockReference;

                                    AttributeReference attRef = new AttributeReference();
                                    attRef.SetAttributeFromBlock(attr, acBlock.BlockTransform);

                                    acBlock.AttributeCollection.AppendAttribute(attRef);
                                    acTrans.AddNewlyCreatedDBObject(attRef, true);
                                }
                            }
                        }
                        else
                        {
                            btr.AppendEntity(attr);
                        }
                    }
                    
                    btr.SynchronizeAttributes();
                }

            }
        }&lt;/PRE&gt;&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt;Additional Functions (SynchroniseAttributes)&lt;/P&gt;&lt;PRE&gt;public static class ExtensionMethods
    {
        static RXClass attDefClass = RXClass.GetClass(typeof(AttributeDefinition));

        public static void SynchronizeAttributes(this BlockTableRecord target)
        {
            if (target == null)
                throw new ArgumentNullException("target");

            Transaction tr = target.Database.TransactionManager.TopTransaction;
            if (tr == null)
                throw new Autodesk.AutoCAD.Runtime.Exception(ErrorStatus.NoActiveTransactions);
            List&amp;lt;AttributeDefinition&amp;gt; attDefs = target.GetAttributes(tr);
            foreach (ObjectId id in target.GetBlockReferenceIds(true, false))
            {
                BlockReference br = (BlockReference)tr.GetObject(id, OpenMode.ForWrite);
                br.ResetAttributes(attDefs, tr);
            }
            if (target.IsDynamicBlock)
            {
                target.UpdateAnonymousBlocks();
                foreach (ObjectId id in target.GetAnonymousBlockIds())
                {
                    BlockTableRecord btr = (BlockTableRecord)tr.GetObject(id, OpenMode.ForRead);
                    attDefs = btr.GetAttributes(tr);
                    foreach (ObjectId brId in btr.GetBlockReferenceIds(true, false))
                    {
                        BlockReference br = (BlockReference)tr.GetObject(brId, OpenMode.ForWrite);
                        br.ResetAttributes(attDefs, tr);
                    }
                }
            }
        }

        private static List&amp;lt;AttributeDefinition&amp;gt; GetAttributes(this BlockTableRecord target, Transaction tr)
        {
            List&amp;lt;AttributeDefinition&amp;gt; attDefs = new List&amp;lt;AttributeDefinition&amp;gt;();
            foreach (ObjectId id in target)
            {
                if (id.ObjectClass == attDefClass)
                {
                    AttributeDefinition attDef = (AttributeDefinition)tr.GetObject(id, OpenMode.ForRead);
                    attDefs.Add(attDef);
                }
            }
            return attDefs;
        }

        private static void ResetAttributes(this BlockReference br, List&amp;lt;AttributeDefinition&amp;gt; attDefs, Transaction tr)
        {
            int error_prot = 0;
            Dictionary&amp;lt;string, string&amp;gt; attValues = new Dictionary&amp;lt;string, string&amp;gt;();
            foreach (ObjectId id in br.AttributeCollection)
            {
                
                if (!id.IsErased)
                {
                    AttributeReference attRef = (AttributeReference)tr.GetObject(id, OpenMode.ForWrite);
                    try
                    {
                        attValues.Add(attRef.Tag,
                          attRef.IsMTextAttribute ? attRef.MTextAttribute.Contents : attRef.TextString);
                    }
                    catch
                    {
                        try
                        {
                            error_prot++;
                            attValues.Add(attRef.Tag + error_prot.ToString(),
                                attRef.IsMTextAttribute ? attRef.MTextAttribute.Contents : attRef.TextString);
                        }
                        catch { }
                    }
                    attRef.Erase();
                }
            }
            foreach (AttributeDefinition attDef in attDefs)
            {
                AttributeReference attRef = new AttributeReference();
                attRef.SetAttributeFromBlock(attDef, br.BlockTransform);
                if (attDef.Constant)
                {
                    attRef.TextString = attDef.IsMTextAttributeDefinition ?
                        attDef.MTextAttributeDefinition.Contents :
                        attDef.TextString;
                }
                else if (attValues.ContainsKey(attRef.Tag))
                {
                    attRef.TextString = attValues[attRef.Tag];
                }
                br.AttributeCollection.AppendAttribute(attRef);
                tr.AddNewlyCreatedDBObject(attRef, true);
            }
        }
    }&lt;/PRE&gt;&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 16 Oct 2018 16:49:07 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/adding-attributes-to-block-references-in-a-side-database/m-p/8338257#M24559</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2018-10-16T16:49:07Z</dc:date>
    </item>
    <item>
      <title>Re: Adding attributes to block references in a side database</title>
      <link>https://forums.autodesk.com/t5/net-forum/adding-attributes-to-block-references-in-a-side-database/m-p/8338391#M24560</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You should:&lt;/P&gt;
&lt;P&gt;- create a new Database for each file name (within a &lt;A href="https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/using-statement" target="_blank"&gt;using statement&lt;/A&gt; to insure Dispose is called for each)&lt;/P&gt;
&lt;P&gt;- also use a using statement for the transaction&lt;/P&gt;
&lt;P&gt;- call Snippet AddNewlyCreatedDBObject() to add the newly created attribute definition.&lt;/P&gt;
&lt;P&gt;- not use: if (false) because it will never run&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;        [CommandMethod("MWE", CommandFlags.Session)]
        public static void MWE()
        {
            var filenames = new List&amp;lt;string&amp;gt;();
            filenames.Add("C:\\temp\\test.dwg");

            var attributes = new List&amp;lt;string&amp;gt;();
            attributes.Add("Att1");

            foreach (var file in filenames)
            {
                using (var db = new Database(false, true))
                {
                    db.ReadDwgFile(file, FileOpenMode.OpenForReadAndAllShare, false, "");
                    using (var tr = db.TransactionManager.StartTransaction())
                    {
                        var blockTable = tr.GetObject(db.BlockTableId, OpenMode.ForRead) as BlockTable;
                        foreach (var btrId in blockTable)
                        {
                            var btr = (BlockTableRecord)tr.GetObject(btrId, OpenMode.ForWrite);
                            foreach (var item in attributes)
                            {
                                var attr = new AttributeDefinition()
                                {
                                    Layer = "0",
                                    ColorIndex = 0,
                                    Color = Autodesk.AutoCAD.Colors.Color.FromColorIndex(ColorMethod.ByAci, 0),
                                    Tag = item.ToUpper(),
                                    Prompt = "Result" + item,
                                    TextString = "",
                                    Preset = false,
                                    TextStyleId = db.Textstyle,
                                    Height = 0.1250,
                                    WidthFactor = 0.7500,
                                    Justify = AttachmentPoint.MiddleCenter,
                                    AlignmentPoint = new Point3d(0, 0.1047, 0),
                                    LockPositionInBlock = true,
                                    Invisible = true,
                                };
                                btr.AppendEntity(attr);
                                tr.AddNewlyCreatedDBObject(attr, true);
                            }
                            btr.SynchronizeAttributes();
                        }
                    }
                }
            }
        }&lt;/PRE&gt;</description>
      <pubDate>Tue, 16 Oct 2018 17:39:18 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/adding-attributes-to-block-references-in-a-side-database/m-p/8338391#M24560</guid>
      <dc:creator>_gile</dc:creator>
      <dc:date>2018-10-16T17:39:18Z</dc:date>
    </item>
    <item>
      <title>Re: Adding attributes to block references in a side database</title>
      <link>https://forums.autodesk.com/t5/net-forum/adding-attributes-to-block-references-in-a-side-database/m-p/8338563#M24561</link>
      <description>&lt;P&gt;I forgot: do not call&amp;nbsp;&lt;A href="https://help.autodesk.com/view/OARX/2019/ENU/?guid=OREFNET-__OVERLOADED_SetDatabaseDefaults_Autodesk_AutoCAD_DatabaseServices_Entity" target="_blank"&gt;SetDatabaseDefaults()&lt;/A&gt; after having set the layer and color properties.&lt;/P&gt;</description>
      <pubDate>Tue, 16 Oct 2018 18:37:48 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/adding-attributes-to-block-references-in-a-side-database/m-p/8338563#M24561</guid>
      <dc:creator>_gile</dc:creator>
      <dc:date>2018-10-16T18:37:48Z</dc:date>
    </item>
    <item>
      <title>Re: Adding attributes to block references in a side database</title>
      <link>https://forums.autodesk.com/t5/net-forum/adding-attributes-to-block-references-in-a-side-database/m-p/8340744#M24562</link>
      <description>&lt;P&gt;Thank you for the help, however I am still seeing the same error when running your code. When the code reaches&lt;/P&gt;&lt;PRE&gt;btr.AppendEntity(attr);&lt;/PRE&gt;&lt;P&gt;i get an exception error for eWrongDatabase.&lt;BR /&gt;&lt;BR /&gt;I think these lines are probably missing from your reply at the end of the using transaction/db as well&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;PRE&gt;tr.Commit();
tr.Dispose();

db.CloseInput(true);
db.SaveAs(file, DwgVersion.Current);&lt;/PRE&gt;</description>
      <pubDate>Wed, 17 Oct 2018 14:29:28 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/adding-attributes-to-block-references-in-a-side-database/m-p/8340744#M24562</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2018-10-17T14:29:28Z</dc:date>
    </item>
    <item>
      <title>Re: Adding attributes to block references in a side database</title>
      <link>https://forums.autodesk.com/t5/net-forum/adding-attributes-to-block-references-in-a-side-database/m-p/8341019#M24563</link>
      <description>&lt;P&gt;It looks like you cannot set the attribute Layer property before adding it to the Database.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This works for me (tested)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;        [CommandMethod("MWE")]
        public static void MWE()
        {
            var filenames = new List&amp;lt;string&amp;gt;();
            filenames.Add("C:\\temp\\test.dwg");

            var attributes = new List&amp;lt;string&amp;gt;();
            attributes.Add("Att1");

            foreach (var file in filenames)
            {
                using (var db = new Database(false, true))
                {
                    db.ReadDwgFile(file, FileOpenMode.OpenForReadAndAllShare, false, "");
                    using (var tr = db.TransactionManager.StartTransaction())
                    {
                        var blockTable = (BlockTable)tr.GetObject(db.BlockTableId, OpenMode.ForRead);
                        foreach (var btrId in blockTable)
                        {
                            var btr = (BlockTableRecord)tr.GetObject(btrId, OpenMode.ForWrite);
                            if (!(btr.IsLayout || btr.IsFromExternalReference || btr.IsDependent))
                            {
                                foreach (var item in attributes)
                                {
                                    var attr = new AttributeDefinition()
                                    {
                                        Tag = item.ToUpper(),
                                        TextString = "",
                                        ColorIndex = 0,
                                        Prompt = "Result" + item,
                                        Preset = false,
                                        TextStyleId = db.Textstyle,
                                        Height = 0.1250,
                                        WidthFactor = 0.7500,
                                        Justify = AttachmentPoint.MiddleCenter,
                                        AlignmentPoint = new Point3d(0, 0.1047, 0),
                                        LockPositionInBlock = true,
                                        Invisible = true
                                    };
                                    btr.AppendEntity(attr);
                                    tr.AddNewlyCreatedDBObject(attr, true);
                                    attr.Layer = "0";
                                }
                                btr.SynchronizeAttributes();
                            }
                        }
                        tr.Commit();
                    }
                    db.SaveAs(file, DwgVersion.Current);
                }
            }
        }&lt;/PRE&gt;</description>
      <pubDate>Wed, 17 Oct 2018 16:01:34 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/adding-attributes-to-block-references-in-a-side-database/m-p/8341019#M24563</guid>
      <dc:creator>_gile</dc:creator>
      <dc:date>2018-10-17T16:01:34Z</dc:date>
    </item>
    <item>
      <title>Re: Adding attributes to block references in a side database</title>
      <link>https://forums.autodesk.com/t5/net-forum/adding-attributes-to-block-references-in-a-side-database/m-p/8341575#M24564</link>
      <description>&lt;P&gt;Thanks so much more the help! I'm not sure I would have ever spotted that the layer property was the culprit!&lt;/P&gt;</description>
      <pubDate>Wed, 17 Oct 2018 19:32:42 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/adding-attributes-to-block-references-in-a-side-database/m-p/8341575#M24564</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2018-10-17T19:32:42Z</dc:date>
    </item>
  </channel>
</rss>

