<?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: Burst Blocks in .NET Forum</title>
    <link>https://forums.autodesk.com/t5/net-forum/burst-blocks/m-p/8407233#M24292</link>
    <description>&lt;P&gt;Here's a VB conversion (not so difficult, you really should learn C#)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;    &amp;lt;CommandMethod("XPLODEBLOCK")&amp;gt;
    Public Shared Sub ExplodeBlock()
        Dim doc = Application.DocumentManager.MdiActiveDocument
        Dim db = doc.Database
        Dim ed = doc.Editor
        Dim psr = ed.GetSelection(New SelectionFilter({New TypedValue(0, "INSERT")}))
        If psr.Status &amp;lt;&amp;gt; PromptStatus.OK Then Return

        Using tr = db.TransactionManager.StartTransaction()
            Dim curSpace = CType(tr.GetObject(db.CurrentSpaceId, OpenMode.ForWrite), BlockTableRecord)
            For Each selectedObject As SelectedObject In psr.Value
                Dim br = CType(tr.GetObject(selectedObject.ObjectId, OpenMode.ForWrite), BlockReference)

                Try

                    For Each id As ObjectId In br.AttributeCollection
                        Dim att = CType(tr.GetObject(id, OpenMode.ForRead), AttributeReference)

                        If Not att.Invisible Then
                            If att.IsMTextAttribute Then
                                AppendMText(att.MTextAttribute, curSpace, tr).Rotation += br.Rotation
                            Else
                                AppendDBText(att, curSpace, tr)
                            End If
                        End If
                    Next

                    Dim btr = CType(tr.GetObject(br.BlockTableRecord, OpenMode.ForWrite), BlockTableRecord)
                    btr.Explodable = True

                    For Each id As ObjectId In btr

                        If id.ObjectClass.DxfName = "ATTDEF" Then
                            Dim att = CType(tr.GetObject(id, OpenMode.ForRead), AttributeDefinition)

                            If att.Constant AndAlso Not att.Invisible Then
                                If att.IsMTextAttributeDefinition Then
                                    AppendMText(att.MTextAttributeDefinition, curSpace, tr).TransformBy(br.BlockTransform)
                                Else
                                    AppendDBText(att, curSpace, tr).TransformBy(br.BlockTransform)
                                End If
                            End If
                        End If
                    Next

                    Dim ents = New DBObjectCollection()
                    br.Explode(ents)

                    For Each ent As Entity In ents

                        If TypeOf ent Is AttributeDefinition Then
                            ent.Dispose()
                        Else
                            Append(ent, curSpace, tr)
                        End If
                    Next

                    br.[Erase]()
                Catch
                    ed.WriteMessage($"\nFailed to explode a block named {br.Name}")
                End Try
            Next

            tr.Commit()
        End Using
    End Sub

    Private Shared Sub Append(ent As Entity, space As BlockTableRecord, tr As Transaction)
        space.AppendEntity(ent)
        tr.AddNewlyCreatedDBObject(ent, True)
    End Sub

    Private Shared Function AppendDBText(source As DBText, space As BlockTableRecord, tr As Transaction) As DBText
        Dim text As DBText = New DBText()
        text.SetPropertiesFrom(source)
        With text
            .Normal = source.Normal
            .Thickness = source.Thickness
            .Oblique = source.Oblique
            .Rotation = source.Rotation
            .Height = source.Height
            .WidthFactor = source.WidthFactor
            .TextString = source.TextString
            .TextStyleId = source.TextStyleId
            .IsMirroredInX = source.IsMirroredInX
            .IsMirroredInY = source.IsMirroredInY
            .HorizontalMode = source.HorizontalMode
            .VerticalMode = source.VerticalMode
            .Position = source.Position
        End With
        If source.Justify &amp;lt;&amp;gt; AttachmentPoint.BaseLeft Then
            text.Justify = source.Justify
            text.AlignmentPoint = source.AlignmentPoint
        End If
        Append(text, space, tr)
        Return text
    End Function

    Private Shared Function AppendMText(source As MText, space As BlockTableRecord, tr As Transaction) As MText
        Dim mtext As MText = New MText()
        mtext.SetPropertiesFrom(source)
        With mtext
            .Contents = source.Contents
            .FlowDirection = source.FlowDirection
            .Attachment = source.Attachment
            .TextHeight = source.TextHeight
            .TextStyleId = source.TextStyleId
            .Width = source.Width
            .Rotation = source.Rotation
            .Location = source.Location
            .Normal = source.Normal
            .LineSpacingStyle = source.LineSpacingStyle
            .Height = source.Height
            .LineSpacingFactor = source.LineSpacingFactor
            .LineSpaceDistance = source.LineSpaceDistance
        End With
        Append(mtext, space, tr)
        Return mtext
    End Function&lt;/PRE&gt;</description>
    <pubDate>Fri, 16 Nov 2018 18:56:17 GMT</pubDate>
    <dc:creator>_gile</dc:creator>
    <dc:date>2018-11-16T18:56:17Z</dc:date>
    <item>
      <title>Burst Blocks</title>
      <link>https://forums.autodesk.com/t5/net-forum/burst-blocks/m-p/8402180#M24283</link>
      <description>&lt;P&gt;I've been&amp;nbsp;searching and there are answers on this&lt;/P&gt;&lt;P&gt;but just curious to know why this doesn't work&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;        Dim filter(0) As TypedValue
        filter(0) = New TypedValue(DxfCode.Start, "INSERT")
        Dim sf As SelectionFilter = New SelectionFilter(filter)
        Dim psr As PromptSelectionResult
        psr = Application.DocumentManager.MdiActiveDocument.Editor.SelectAll(sf)
        Do
            If psr.Status = PromptStatus.OK Then
                Dim IdCollection As ObjectIdCollection = New ObjectIdCollection(psr.Value.GetObjectIds)
                Dim objids(IdCollection.Count - 1) As ObjectId
                For i As Integer = 0 To IdCollection.Count - 1
                    objids(i) = IdCollection(i)
                Next
                ed.SetImpliedSelection(objids)
                Application.DocumentManager.MdiActiveDocument.SendStringToExecute("BURST ", True, False, False)
            Else Exit Do
            End If
        Loop&lt;/PRE&gt;</description>
      <pubDate>Wed, 14 Nov 2018 18:39:31 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/burst-blocks/m-p/8402180#M24283</guid>
      <dc:creator>SRSDS</dc:creator>
      <dc:date>2018-11-14T18:39:31Z</dc:date>
    </item>
    <item>
      <title>Re: Burst Blocks</title>
      <link>https://forums.autodesk.com/t5/net-forum/burst-blocks/m-p/8402209#M24284</link>
      <description>&lt;P&gt;Rather than trying to create a scripting engine to call commands, I'd recommend going through the API documentation to understand what makes up a block reference (and definition), and why they are organized that way.&amp;nbsp; From there you can work out how BURST operates "behind the scenes" and look at duplicating/modifying/enhancing the process to your own needs.&amp;nbsp; That kind of deep-level knowledge is highly useful for many other tasks you'll run into.&lt;/P&gt;</description>
      <pubDate>Wed, 14 Nov 2018 18:52:42 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/burst-blocks/m-p/8402209#M24284</guid>
      <dc:creator>dgorsman</dc:creator>
      <dc:date>2018-11-14T18:52:42Z</dc:date>
    </item>
    <item>
      <title>Re: Burst Blocks</title>
      <link>https://forums.autodesk.com/t5/net-forum/burst-blocks/m-p/8402218#M24285</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You cannot call the BURST "command" with SendStringToExecute() or Command() methods because it is a LISP defined command.&lt;/P&gt;
&lt;P&gt;You can try using the COM SendCommand() method.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;            var psr = ed.GetSelection(new SelectionFilter(new[] { new TypedValue(0, "INSERT") }));
            if (psr.Status == PromptStatus.OK)
            {
                ed.SetImpliedSelection(psr.Value);
                dynamic acadDoc = doc.GetAcadDocument();
                acadDoc.SendCommand("burst ");
            }&lt;/PRE&gt;</description>
      <pubDate>Wed, 14 Nov 2018 18:57:30 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/burst-blocks/m-p/8402218#M24285</guid>
      <dc:creator>_gile</dc:creator>
      <dc:date>2018-11-14T18:57:30Z</dc:date>
    </item>
    <item>
      <title>Re: Burst Blocks</title>
      <link>https://forums.autodesk.com/t5/net-forum/burst-blocks/m-p/8402299#M24286</link>
      <description>&lt;P&gt;Still a bumbling newbie, sorry.&lt;/P&gt;&lt;P&gt;How do i define/import Dynamic. There's no intelliprompt for a solution.&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="Untitled.png" style="width: 640px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/569612i0E47B38FFB002C66/image-size/large?v=v2&amp;amp;px=999" role="button" title="Untitled.png" alt="Untitled.png" /&gt;&lt;/span&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 14 Nov 2018 19:22:50 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/burst-blocks/m-p/8402299#M24286</guid>
      <dc:creator>SRSDS</dc:creator>
      <dc:date>2018-11-14T19:22:50Z</dc:date>
    </item>
    <item>
      <title>Re: Burst Blocks</title>
      <link>https://forums.autodesk.com/t5/net-forum/burst-blocks/m-p/8402358#M24287</link>
      <description>&lt;P&gt;I think I might have found the solution in an AutoCAD devblog here:&lt;/P&gt;&lt;P&gt;&lt;A href="https://adndevblog.typepad.com/autocad/2015/06/programmatically-mimic-the-burst-command.html" target="_blank"&gt;https://adndevblog.typepad.com/autocad/2015/06/programmatically-mimic-the-burst-command.html&lt;/A&gt;&lt;/P&gt;&lt;P&gt;I skimmed over the link in another post. Sorry for the trouble.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 14 Nov 2018 19:39:36 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/burst-blocks/m-p/8402358#M24287</guid>
      <dc:creator>SRSDS</dc:creator>
      <dc:date>2018-11-14T19:39:36Z</dc:date>
    </item>
    <item>
      <title>Re: Burst Blocks</title>
      <link>https://forums.autodesk.com/t5/net-forum/burst-blocks/m-p/8402385#M24288</link>
      <description>&lt;P&gt;With VB, I think you have to use the Object type for late binding.&lt;/P&gt;
&lt;P&gt;It also seems to me the GetAcadDocument() extension method does not work as expected with VB (crappy language...).&lt;/P&gt;
&lt;PRE&gt;Dim acadDoc As Object = DocumentExtension.GetAcadDocument(Application.DocumentManager.MdiActiveDocument)&lt;/PRE&gt;
&lt;P&gt;Anyway, I really agree with &lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/253793"&gt;@dgorsman&lt;/a&gt;: scripting with .NET looks like chasing mosquitoes with a bazooka.&lt;/P&gt;</description>
      <pubDate>Wed, 14 Nov 2018 19:44:08 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/burst-blocks/m-p/8402385#M24288</guid>
      <dc:creator>_gile</dc:creator>
      <dc:date>2018-11-14T19:44:08Z</dc:date>
    </item>
    <item>
      <title>Re: Burst Blocks</title>
      <link>https://forums.autodesk.com/t5/net-forum/burst-blocks/m-p/8402413#M24289</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/786488"&gt;@SRSDS&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;&lt;P&gt;I think I might have found the solution in an AutoCAD devblog here:&lt;/P&gt;&lt;P&gt;&lt;A href="https://adndevblog.typepad.com/autocad/2015/06/programmatically-mimic-the-burst-command.html" target="_blank"&gt;https://adndevblog.typepad.com/autocad/2015/06/programmatically-mimic-the-burst-command.html&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&lt;BR /&gt;&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;Sam,&lt;/P&gt;&lt;P&gt;If you work through&amp;nbsp;&lt;SPAN&gt;Balaji's code you'll learn a lot.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 14 Nov 2018 19:53:27 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/burst-blocks/m-p/8402413#M24289</guid>
      <dc:creator>kerry_w_brown</dc:creator>
      <dc:date>2018-11-14T19:53:27Z</dc:date>
    </item>
    <item>
      <title>Re: Burst Blocks</title>
      <link>https://forums.autodesk.com/t5/net-forum/burst-blocks/m-p/8403778#M24290</link>
      <description>&lt;P&gt;I tried to make a version more finalized than Balaji's example which also takes into account the multiline attributes.&lt;/P&gt;
&lt;P&gt;The code uses the &lt;A href="https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/local-functions" target="_blank"&gt;C# 7 local functions feature&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;        [CommandMethod("XPLODEBLOCK")]
        public static void ExplodeBlock()
        {
            var doc = Application.DocumentManager.MdiActiveDocument;
            var db = doc.Database;
            var ed = doc.Editor;

            var psr = ed.GetSelection(new SelectionFilter(new[] { new TypedValue(0, "INSERT") }));
            if (psr.Status != PromptStatus.OK)
                return;
            using (var tr = db.TransactionManager.StartTransaction())
            {
                var curSpace = (BlockTableRecord)tr.GetObject(db.CurrentSpaceId, OpenMode.ForWrite);

                // local functions
                void append(Entity ent)
                {
                    var id = curSpace.AppendEntity(ent);
                    tr.AddNewlyCreatedDBObject(ent, true);
                }

                DBText appendDBText(DBText source)
                {
                    var text = new DBText
                    {
                        Normal = source.Normal,
                        Thickness = source.Thickness,
                        Oblique = source.Oblique,
                        Rotation = source.Rotation,
                        Height = source.Height,
                        WidthFactor = source.WidthFactor,
                        TextString = source.TextString,
                        TextStyleId = source.TextStyleId,
                        IsMirroredInX = source.IsMirroredInX,
                        IsMirroredInY = source.IsMirroredInY,
                        HorizontalMode = source.HorizontalMode,
                        VerticalMode = source.VerticalMode,
                        Position = source.Position
                    };
                    if (source.Justify != AttachmentPoint.BaseLeft)
                    {
                        text.Justify = source.Justify;
                        text.AlignmentPoint = source.AlignmentPoint;
                    }
                    text.SetPropertiesFrom(source);
                    append(text);
                    return text;
                }

                MText appendMtext(MText source)
                {
                    var mtext = new MText
                    {
                        Contents = source.Contents,
                        FlowDirection = source.FlowDirection,
                        Attachment = source.Attachment,
                        TextHeight = source.TextHeight,
                        TextStyleId = source.TextStyleId,
                        Width = source.Width,
                        Rotation = source.Rotation,
                        Location = source.Location,
                        Normal = source.Normal,
                        LineSpacingStyle = source.LineSpacingStyle,
                        Height = source.Height,
                        LineSpacingFactor = source.LineSpacingFactor,
                        LineSpaceDistance = source.LineSpaceDistance
                    };
                    mtext.SetPropertiesFrom(source);
                    append(mtext);
                    return mtext;
                }

                // main
                foreach (SelectedObject selectedObject in psr.Value)
                {
                    var br = (BlockReference)tr.GetObject(selectedObject.ObjectId, OpenMode.ForWrite);
                    try
                    {
                        foreach (ObjectId id in br.AttributeCollection)
                        {
                            var att = (AttributeReference)tr.GetObject(id, OpenMode.ForRead);
                            if (!att.Invisible)
                            {
                                if (att.IsMTextAttribute)
                                    appendMtext(att.MTextAttribute).Rotation += br.Rotation;
                                else
                                    appendDBText(att);
                            }
                        }
                        var btr = (BlockTableRecord)tr.GetObject(br.BlockTableRecord, OpenMode.ForWrite);
                        btr.Explodable = true;
                        foreach (ObjectId id in btr)
                        {
                            if (id.ObjectClass.DxfName == "ATTDEF")
                            {
                                var att = (AttributeDefinition)tr.GetObject(id, OpenMode.ForRead);
                                if (att.Constant &amp;amp;&amp;amp; !att.Invisible)
                                {
                                    if (att.IsMTextAttributeDefinition)
                                        appendMtext(att.MTextAttributeDefinition).TransformBy(br.BlockTransform);
                                    else
                                        appendDBText(att).TransformBy(br.BlockTransform);
                                }
                            }
                        }

                        var ents = new DBObjectCollection();
                        br.Explode(ents);
                        foreach (Entity ent in ents)
                        {
                            if (ent is AttributeDefinition)
                                ent.Dispose();
                            else
                                append(ent);
                        }
                        br.Erase();
                    }
                    catch
                    {
                        ed.WriteMessage($"\nFailed to explode a block named {br.Name}");
                    }
                }
                tr.Commit();
            }
        }&lt;/PRE&gt;</description>
      <pubDate>Thu, 15 Nov 2018 11:10:48 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/burst-blocks/m-p/8403778#M24290</guid>
      <dc:creator>_gile</dc:creator>
      <dc:date>2018-11-15T11:10:48Z</dc:date>
    </item>
    <item>
      <title>Re: Burst Blocks</title>
      <link>https://forums.autodesk.com/t5/net-forum/burst-blocks/m-p/8407119#M24291</link>
      <description>&lt;P&gt;Gile,&lt;/P&gt;&lt;P&gt;I tried to convert your optimized code to vb but the converter didn't like it.&lt;/P&gt;&lt;P&gt;Sounds like multiline text attributes would be&amp;nbsp; important. Should I mark it as a solution for C# users?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 16 Nov 2018 18:02:23 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/burst-blocks/m-p/8407119#M24291</guid>
      <dc:creator>SRSDS</dc:creator>
      <dc:date>2018-11-16T18:02:23Z</dc:date>
    </item>
    <item>
      <title>Re: Burst Blocks</title>
      <link>https://forums.autodesk.com/t5/net-forum/burst-blocks/m-p/8407233#M24292</link>
      <description>&lt;P&gt;Here's a VB conversion (not so difficult, you really should learn C#)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;    &amp;lt;CommandMethod("XPLODEBLOCK")&amp;gt;
    Public Shared Sub ExplodeBlock()
        Dim doc = Application.DocumentManager.MdiActiveDocument
        Dim db = doc.Database
        Dim ed = doc.Editor
        Dim psr = ed.GetSelection(New SelectionFilter({New TypedValue(0, "INSERT")}))
        If psr.Status &amp;lt;&amp;gt; PromptStatus.OK Then Return

        Using tr = db.TransactionManager.StartTransaction()
            Dim curSpace = CType(tr.GetObject(db.CurrentSpaceId, OpenMode.ForWrite), BlockTableRecord)
            For Each selectedObject As SelectedObject In psr.Value
                Dim br = CType(tr.GetObject(selectedObject.ObjectId, OpenMode.ForWrite), BlockReference)

                Try

                    For Each id As ObjectId In br.AttributeCollection
                        Dim att = CType(tr.GetObject(id, OpenMode.ForRead), AttributeReference)

                        If Not att.Invisible Then
                            If att.IsMTextAttribute Then
                                AppendMText(att.MTextAttribute, curSpace, tr).Rotation += br.Rotation
                            Else
                                AppendDBText(att, curSpace, tr)
                            End If
                        End If
                    Next

                    Dim btr = CType(tr.GetObject(br.BlockTableRecord, OpenMode.ForWrite), BlockTableRecord)
                    btr.Explodable = True

                    For Each id As ObjectId In btr

                        If id.ObjectClass.DxfName = "ATTDEF" Then
                            Dim att = CType(tr.GetObject(id, OpenMode.ForRead), AttributeDefinition)

                            If att.Constant AndAlso Not att.Invisible Then
                                If att.IsMTextAttributeDefinition Then
                                    AppendMText(att.MTextAttributeDefinition, curSpace, tr).TransformBy(br.BlockTransform)
                                Else
                                    AppendDBText(att, curSpace, tr).TransformBy(br.BlockTransform)
                                End If
                            End If
                        End If
                    Next

                    Dim ents = New DBObjectCollection()
                    br.Explode(ents)

                    For Each ent As Entity In ents

                        If TypeOf ent Is AttributeDefinition Then
                            ent.Dispose()
                        Else
                            Append(ent, curSpace, tr)
                        End If
                    Next

                    br.[Erase]()
                Catch
                    ed.WriteMessage($"\nFailed to explode a block named {br.Name}")
                End Try
            Next

            tr.Commit()
        End Using
    End Sub

    Private Shared Sub Append(ent As Entity, space As BlockTableRecord, tr As Transaction)
        space.AppendEntity(ent)
        tr.AddNewlyCreatedDBObject(ent, True)
    End Sub

    Private Shared Function AppendDBText(source As DBText, space As BlockTableRecord, tr As Transaction) As DBText
        Dim text As DBText = New DBText()
        text.SetPropertiesFrom(source)
        With text
            .Normal = source.Normal
            .Thickness = source.Thickness
            .Oblique = source.Oblique
            .Rotation = source.Rotation
            .Height = source.Height
            .WidthFactor = source.WidthFactor
            .TextString = source.TextString
            .TextStyleId = source.TextStyleId
            .IsMirroredInX = source.IsMirroredInX
            .IsMirroredInY = source.IsMirroredInY
            .HorizontalMode = source.HorizontalMode
            .VerticalMode = source.VerticalMode
            .Position = source.Position
        End With
        If source.Justify &amp;lt;&amp;gt; AttachmentPoint.BaseLeft Then
            text.Justify = source.Justify
            text.AlignmentPoint = source.AlignmentPoint
        End If
        Append(text, space, tr)
        Return text
    End Function

    Private Shared Function AppendMText(source As MText, space As BlockTableRecord, tr As Transaction) As MText
        Dim mtext As MText = New MText()
        mtext.SetPropertiesFrom(source)
        With mtext
            .Contents = source.Contents
            .FlowDirection = source.FlowDirection
            .Attachment = source.Attachment
            .TextHeight = source.TextHeight
            .TextStyleId = source.TextStyleId
            .Width = source.Width
            .Rotation = source.Rotation
            .Location = source.Location
            .Normal = source.Normal
            .LineSpacingStyle = source.LineSpacingStyle
            .Height = source.Height
            .LineSpacingFactor = source.LineSpacingFactor
            .LineSpaceDistance = source.LineSpaceDistance
        End With
        Append(mtext, space, tr)
        Return mtext
    End Function&lt;/PRE&gt;</description>
      <pubDate>Fri, 16 Nov 2018 18:56:17 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/burst-blocks/m-p/8407233#M24292</guid>
      <dc:creator>_gile</dc:creator>
      <dc:date>2018-11-16T18:56:17Z</dc:date>
    </item>
    <item>
      <title>Re: Burst Blocks</title>
      <link>https://forums.autodesk.com/t5/net-forum/burst-blocks/m-p/8605973#M24293</link>
      <description>&lt;P&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/109424"&gt;@_gile&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;
&lt;P&gt;This is beautiful!!! Thank you very much for taking the time to do this.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I do have one question though; I have modified the psr to perform a .SelectAll. This will obviously select everything in every layout and model space. How do I do a select all for just the current space?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;Dim psr = ed.SelectAll(New SelectionFilter({New TypedValue(0, "INSERT")}))&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The reason I am asking is if I leave it .SelectAll the entities from the other layouts and model get inserted into the current layout where the routine was originally run. Even though you have this:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;Dim curSpace = CType(tr.GetObject(db.CurrentSpaceId, OpenMode.ForWrite), BlockTableRecord)&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I would like to iterate through each layout tab and run your routine to ensure that the items stay on their respective layouts.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thank you,&lt;/P&gt;</description>
      <pubDate>Tue, 19 Feb 2019 16:34:31 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/burst-blocks/m-p/8605973#M24293</guid>
      <dc:creator>David_Prontnicki</dc:creator>
      <dc:date>2019-02-19T16:34:31Z</dc:date>
    </item>
    <item>
      <title>Re: Burst Blocks</title>
      <link>https://forums.autodesk.com/t5/net-forum/burst-blocks/m-p/8606266#M24294</link>
      <description>&lt;P&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/109424"&gt;@_gile&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;
&lt;P&gt;Never mind, I found another post of yours that I used to modify:&amp;nbsp;&lt;A href="https://forums.autodesk.com/t5/net/select-blocks-in-current-paperspace/td-p/5465389" target="_blank" rel="noopener"&gt;Your Answer to Post&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;So I modified as shown below.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&amp;lt;CommandMethod("XPLODEBLOCK")&amp;gt;
    Public Shared Sub ExplodeBlock()

        Dim doc = Application.DocumentManager.MdiActiveDocument
        Dim db = doc.Database
        Dim ed = doc.Editor

        Dim ctab As String = Application.GetSystemVariable("CTAB")
        Dim filList As TypedValue() = New TypedValue(1) {New TypedValue(0, "INSERT"), New TypedValue(410, ctab)}

        Dim selectionFilter As New SelectionFilter(filList)

        Dim psr As PromptSelectionResult

        psr = ed.SelectAll(selectionFilter)

        If psr.Status &amp;lt;&amp;gt; PromptStatus.OK Then Return

        Using tr = db.TransactionManager.StartTransaction()....&lt;/PRE&gt;</description>
      <pubDate>Tue, 19 Feb 2019 18:10:55 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/burst-blocks/m-p/8606266#M24294</guid>
      <dc:creator>David_Prontnicki</dc:creator>
      <dc:date>2019-02-19T18:10:55Z</dc:date>
    </item>
  </channel>
</rss>

