<?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 Programmatically Rotating a Block with attributes in .NET Forum</title>
    <link>https://forums.autodesk.com/t5/net-forum/programmatically-rotating-a-block-with-attributes/m-p/5518701#M41279</link>
    <description>&lt;P&gt;I&lt;/P&gt;&lt;P&gt;am trying to programmatically rotate a block in AutoCAD. The block is a label which is composed of two parts, a frame and a text attribute inside the frame. I run the following method to rotate the block&lt;/P&gt;&lt;PRE&gt;&lt;SPAN&gt;public&lt;/SPAN&gt; &lt;SPAN&gt;static&lt;/SPAN&gt; &lt;SPAN&gt;BlockReference&lt;/SPAN&gt;&lt;SPAN&gt; rotateBlockWithAttributes&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;BlockReference&lt;/SPAN&gt;&lt;SPAN&gt; blockToRotate&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt; &lt;SPAN&gt;Angle&lt;/SPAN&gt;&lt;SPAN&gt; rotationAmount&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;
        &lt;SPAN&gt;{&lt;/SPAN&gt;
            &lt;SPAN&gt;Transaction&lt;/SPAN&gt;&lt;SPAN&gt; tr &lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt; db&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;TransactionManager&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;StartTransaction&lt;/SPAN&gt;&lt;SPAN&gt;();&lt;/SPAN&gt;
            &lt;SPAN&gt;DocumentLock&lt;/SPAN&gt;&lt;SPAN&gt; docLock &lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt; doc&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;LockDocument&lt;/SPAN&gt;&lt;SPAN&gt;();&lt;/SPAN&gt;&lt;SPAN&gt;            using&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;tr&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;SPAN&gt;            using &lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;docLock&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;
            &lt;SPAN&gt;{&lt;/SPAN&gt;&lt;SPAN&gt;                blockToRotate&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;Rotation&lt;/SPAN&gt; &lt;SPAN&gt;+=&lt;/SPAN&gt;&lt;SPAN&gt; rotationAmount&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;Radians&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;
                &lt;SPAN&gt;Autodesk&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;AutoCAD&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;DatabaseServices&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;AttributeCollection&lt;/SPAN&gt;&lt;SPAN&gt; attCol &lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt; blockToRotate&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;AttributeCollection&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;
                &lt;SPAN&gt;foreach&lt;/SPAN&gt; &lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;ObjectId&lt;/SPAN&gt;&lt;SPAN&gt; attId &lt;/SPAN&gt;&lt;SPAN&gt;in&lt;/SPAN&gt;&lt;SPAN&gt; attCol&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;
                &lt;SPAN&gt;{&lt;/SPAN&gt;
                    &lt;SPAN&gt;AttributeReference&lt;/SPAN&gt;&lt;SPAN&gt; attRef &lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;AttributeReference&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;SPAN&gt;tr&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;GetObject&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;attId&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt; &lt;SPAN&gt;OpenMode&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;ForWrite&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;SPAN&gt;                    attRef&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;Rotation&lt;/SPAN&gt; &lt;SPAN&gt;+=&lt;/SPAN&gt;&lt;SPAN&gt; rotationAmount&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;Radians&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;SPAN&gt;attRef&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;Position&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;TransformBy&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;blockToRotate&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;BlockTransform&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;
                &lt;SPAN&gt;}&lt;/SPAN&gt;&lt;SPAN&gt;                tr&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;Commit&lt;/SPAN&gt;&lt;SPAN&gt;();&lt;/SPAN&gt;
                &lt;SPAN&gt;return&lt;/SPAN&gt;&lt;SPAN&gt; blockToRotate&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;
            &lt;SPAN&gt;}&lt;/SPAN&gt;
        &lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/PRE&gt;&lt;P&gt;The result of this code is pictured below. It is rotating the label in place instead of moving it with the block itself. I need the rotation to behave as if I just rotated the whole thing as one entity.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;IMG border="0" alt="enter image description here" src="http://i.stack.imgur.com/X6Jm7.png" /&gt;&lt;/P&gt;</description>
    <pubDate>Tue, 24 Feb 2015 17:49:09 GMT</pubDate>
    <dc:creator>Anonymous</dc:creator>
    <dc:date>2015-02-24T17:49:09Z</dc:date>
    <item>
      <title>Programmatically Rotating a Block with attributes</title>
      <link>https://forums.autodesk.com/t5/net-forum/programmatically-rotating-a-block-with-attributes/m-p/5518701#M41279</link>
      <description>&lt;P&gt;I&lt;/P&gt;&lt;P&gt;am trying to programmatically rotate a block in AutoCAD. The block is a label which is composed of two parts, a frame and a text attribute inside the frame. I run the following method to rotate the block&lt;/P&gt;&lt;PRE&gt;&lt;SPAN&gt;public&lt;/SPAN&gt; &lt;SPAN&gt;static&lt;/SPAN&gt; &lt;SPAN&gt;BlockReference&lt;/SPAN&gt;&lt;SPAN&gt; rotateBlockWithAttributes&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;BlockReference&lt;/SPAN&gt;&lt;SPAN&gt; blockToRotate&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt; &lt;SPAN&gt;Angle&lt;/SPAN&gt;&lt;SPAN&gt; rotationAmount&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;
        &lt;SPAN&gt;{&lt;/SPAN&gt;
            &lt;SPAN&gt;Transaction&lt;/SPAN&gt;&lt;SPAN&gt; tr &lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt; db&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;TransactionManager&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;StartTransaction&lt;/SPAN&gt;&lt;SPAN&gt;();&lt;/SPAN&gt;
            &lt;SPAN&gt;DocumentLock&lt;/SPAN&gt;&lt;SPAN&gt; docLock &lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt; doc&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;LockDocument&lt;/SPAN&gt;&lt;SPAN&gt;();&lt;/SPAN&gt;&lt;SPAN&gt;            using&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;tr&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;SPAN&gt;            using &lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;docLock&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;
            &lt;SPAN&gt;{&lt;/SPAN&gt;&lt;SPAN&gt;                blockToRotate&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;Rotation&lt;/SPAN&gt; &lt;SPAN&gt;+=&lt;/SPAN&gt;&lt;SPAN&gt; rotationAmount&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;Radians&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;
                &lt;SPAN&gt;Autodesk&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;AutoCAD&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;DatabaseServices&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;AttributeCollection&lt;/SPAN&gt;&lt;SPAN&gt; attCol &lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt; blockToRotate&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;AttributeCollection&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;
                &lt;SPAN&gt;foreach&lt;/SPAN&gt; &lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;ObjectId&lt;/SPAN&gt;&lt;SPAN&gt; attId &lt;/SPAN&gt;&lt;SPAN&gt;in&lt;/SPAN&gt;&lt;SPAN&gt; attCol&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;
                &lt;SPAN&gt;{&lt;/SPAN&gt;
                    &lt;SPAN&gt;AttributeReference&lt;/SPAN&gt;&lt;SPAN&gt; attRef &lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;AttributeReference&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;SPAN&gt;tr&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;GetObject&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;attId&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt; &lt;SPAN&gt;OpenMode&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;ForWrite&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;SPAN&gt;                    attRef&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;Rotation&lt;/SPAN&gt; &lt;SPAN&gt;+=&lt;/SPAN&gt;&lt;SPAN&gt; rotationAmount&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;Radians&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;SPAN&gt;attRef&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;Position&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;TransformBy&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;blockToRotate&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;BlockTransform&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;
                &lt;SPAN&gt;}&lt;/SPAN&gt;&lt;SPAN&gt;                tr&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;Commit&lt;/SPAN&gt;&lt;SPAN&gt;();&lt;/SPAN&gt;
                &lt;SPAN&gt;return&lt;/SPAN&gt;&lt;SPAN&gt; blockToRotate&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;
            &lt;SPAN&gt;}&lt;/SPAN&gt;
        &lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/PRE&gt;&lt;P&gt;The result of this code is pictured below. It is rotating the label in place instead of moving it with the block itself. I need the rotation to behave as if I just rotated the whole thing as one entity.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;IMG border="0" alt="enter image description here" src="http://i.stack.imgur.com/X6Jm7.png" /&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 24 Feb 2015 17:49:09 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/programmatically-rotating-a-block-with-attributes/m-p/5518701#M41279</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2015-02-24T17:49:09Z</dc:date>
    </item>
    <item>
      <title>Re: Programmatically Rotating a Block with attributes</title>
      <link>https://forums.autodesk.com/t5/net-forum/programmatically-rotating-a-block-with-attributes/m-p/5519654#M41280</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Transform the block attribute tag position and then apply it to the attribute tag reference.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;dim pos as&amp;nbsp;Point3d&lt;/P&gt;&lt;P&gt;'read the attribute definition - attDef&lt;/P&gt;&lt;P&gt;pos = attDef.Position&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;'transform it and apply to the block attribute reference&lt;/P&gt;&lt;P&gt;attRef.Position = pos.TransformBy(blockToRotate.BlockTransform)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;gsktry&lt;/P&gt;</description>
      <pubDate>Wed, 25 Feb 2015 11:39:11 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/programmatically-rotating-a-block-with-attributes/m-p/5519654#M41280</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2015-02-25T11:39:11Z</dc:date>
    </item>
    <item>
      <title>Re : Programmatically Rotating a Block with attributes</title>
      <link>https://forums.autodesk.com/t5/net-forum/programmatically-rotating-a-block-with-attributes/m-p/5520124#M41281</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In the code you posted, you start a Transaction but you&amp;nbsp;neither Commit() nor Dispose() it...&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Anyway, you can simply rotate the block reference using TransformBy() and the attributes will follow the rotation:&lt;/P&gt;
&lt;PRE&gt;blockToRotate.TransformBy(&lt;BR /&gt;    Matrix3d.Rotation(&lt;BR /&gt;        rotationAmount.Radian, &lt;BR /&gt;        blockToRotate.Normal, &lt;BR /&gt;        blockToRotate.Position));&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 25 Feb 2015 16:54:06 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/programmatically-rotating-a-block-with-attributes/m-p/5520124#M41281</guid>
      <dc:creator>_gile</dc:creator>
      <dc:date>2015-02-25T16:54:06Z</dc:date>
    </item>
    <item>
      <title>Re : Programmatically Rotating a Block with attributes</title>
      <link>https://forums.autodesk.com/t5/net-forum/programmatically-rotating-a-block-with-attributes/m-p/5520815#M41282</link>
      <description>&lt;P&gt;Thanks Gilles. It is very simple and worked well.&lt;/P&gt;</description>
      <pubDate>Thu, 26 Feb 2015 03:49:54 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/programmatically-rotating-a-block-with-attributes/m-p/5520815#M41282</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2015-02-26T03:49:54Z</dc:date>
    </item>
  </channel>
</rss>

