<?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 Rotate block with the reference line in .NET Forum</title>
    <link>https://forums.autodesk.com/t5/net-forum/rotate-block-with-the-reference-line/m-p/12704687#M4500</link>
    <description>&lt;P&gt;I am able to rotate the Block but I want the reference line to be shown when I am rotating same as it is shown During &lt;STRONG&gt;Rotate&lt;/STRONG&gt; command.&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;Attached video I run my command and for second I use the rotate command.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="csharp"&gt;[CommandMethod("TestRotation")]
public static void TestEntityJigger5_Method()
{
    Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;
    Database db = HostApplicationServices.WorkingDatabase;

    PromptEntityResult selRes = ed.GetEntity("Pick a block:");
    if (selRes.Status == PromptStatus.OK)
    {
        using (Transaction tr = db.TransactionManager.StartTransaction())
        {
            BlockReference ent = tr.GetObject(selRes.ObjectId, OpenMode.ForWrite) as BlockReference;
            if (ent != null)
            {
                using (Transaction tr1 = db.TransactionManager.StartTransaction())
                {
                    ent.Highlight();
                    tr1.Commit();
                }

                if (BlockRotating.Jig(ent))
                    tr.Commit();
                else
                    tr.Abort();
            }
        }
    }
}

public class BlockRotating : EntityJig
{
    #region Fields

    public int mCurJigFactorNumber = 1;

    private double mRotation = 0.0;    // Factor #1

    #endregion

    #region Constructors

    public BlockRotating(Entity ent)
        : base(ent)
    {
    }

    #endregion

    #region Overrides

    protected override bool Update()
    {
        switch (mCurJigFactorNumber)
        {
            case 1:
                (Entity as BlockReference).Rotation = mRotation;
                break;
            default:
                return false;
        }

        return true;
    }

    protected override SamplerStatus Sampler(JigPrompts prompts)
    {
        switch (mCurJigFactorNumber)
        {
            case 1:
                JigPromptAngleOptions prOptions1 = new JigPromptAngleOptions("\nBlock rotation angle:");
                prOptions1.BasePoint = (Entity as BlockReference).Position;
                prOptions1.UseBasePoint = true;
                PromptDoubleResult prResult1 = prompts.AcquireAngle(prOptions1);
                if (prResult1.Status == PromptStatus.Cancel) return SamplerStatus.Cancel;

                if (prResult1.Value.Equals(mRotation))
                {
                    return SamplerStatus.NoChange;
                }
                else
                {
                    mRotation = prResult1.Value;
                    return SamplerStatus.OK;
                }
            default:
                break;
        }

        return SamplerStatus.OK;
    }

    #endregion

    #region Method to Call

    public static bool Jig(BlockReference ent)
    {
        try
        {
            Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;
            BlockRotating jigger = new BlockRotating(ent);
            PromptResult pr;
            do
            {
                pr = ed.Drag(jigger);
                jigger.mCurJigFactorNumber++;
            } while (pr.Status != PromptStatus.Cancel &amp;amp;&amp;amp;
                        pr.Status != PromptStatus.Error &amp;amp;&amp;amp;
                        pr.Status != PromptStatus.Keyword &amp;amp;&amp;amp;
                        jigger.mCurJigFactorNumber &amp;lt;= 1);

            return pr.Status == PromptStatus.OK;
        }
        catch
        {
            return false;
        }
    }

    #endregion
}&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;&lt;div class="lia-vid-container video-embed-center"&gt;&lt;div id="lia-vid-6350782745112w598h428r480" class="lia-video-brightcove-player-container"&gt;&lt;video-js data-video-id="6350782745112" data-account="6057940548001" data-player="default" data-embed="default" class="vjs-fluid" controls="" data-application-id="" style="width: 100%; height: 100%;"&gt;&lt;/video-js&gt;&lt;/div&gt;&lt;script src="https://players.brightcove.net/6057940548001/default_default/index.min.js"&gt;&lt;/script&gt;&lt;script&gt;(function() {  var wrapper = document.getElementById('lia-vid-6350782745112w598h428r480');  var videoEl = wrapper ? wrapper.querySelector('video-js') : null;  if (videoEl) {     if (window.videojs) {       window.videojs(videoEl).ready(function() {         this.on('loadedmetadata', function() {           this.el().querySelectorAll('.vjs-load-progress div[data-start]').forEach(function(bar) {             bar.setAttribute('role', 'presentation');             bar.setAttribute('aria-hidden', 'true');           });         });       });     }  }})();&lt;/script&gt;&lt;a class="video-embed-link" href="https://forums.autodesk.com/t5/video/gallerypage/video-id/6350782745112"&gt;(view in My Videos)&lt;/a&gt;&lt;/div&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;What I am Expecting&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;&lt;div class="lia-vid-container video-embed-center"&gt;&lt;div id="lia-vid-6350784580112w326h362r375" class="lia-video-brightcove-player-container"&gt;&lt;video-js data-video-id="6350784580112" data-account="6057940548001" data-player="default" data-embed="default" class="vjs-fluid" controls="" data-application-id="" style="width: 100%; height: 100%;"&gt;&lt;/video-js&gt;&lt;/div&gt;&lt;script src="https://players.brightcove.net/6057940548001/default_default/index.min.js"&gt;&lt;/script&gt;&lt;script&gt;(function() {  var wrapper = document.getElementById('lia-vid-6350784580112w326h362r375');  var videoEl = wrapper ? wrapper.querySelector('video-js') : null;  if (videoEl) {     if (window.videojs) {       window.videojs(videoEl).ready(function() {         this.on('loadedmetadata', function() {           this.el().querySelectorAll('.vjs-load-progress div[data-start]').forEach(function(bar) {             bar.setAttribute('role', 'presentation');             bar.setAttribute('aria-hidden', 'true');           });         });       });     }  }})();&lt;/script&gt;&lt;a class="video-embed-link" href="https://forums.autodesk.com/t5/video/gallerypage/video-id/6350784580112"&gt;(view in My Videos)&lt;/a&gt;&lt;/div&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Fri, 12 Apr 2024 14:53:12 GMT</pubDate>
    <dc:creator>kmkxperia</dc:creator>
    <dc:date>2024-04-12T14:53:12Z</dc:date>
    <item>
      <title>Rotate block with the reference line</title>
      <link>https://forums.autodesk.com/t5/net-forum/rotate-block-with-the-reference-line/m-p/12704687#M4500</link>
      <description>&lt;P&gt;I am able to rotate the Block but I want the reference line to be shown when I am rotating same as it is shown During &lt;STRONG&gt;Rotate&lt;/STRONG&gt; command.&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;Attached video I run my command and for second I use the rotate command.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="csharp"&gt;[CommandMethod("TestRotation")]
public static void TestEntityJigger5_Method()
{
    Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;
    Database db = HostApplicationServices.WorkingDatabase;

    PromptEntityResult selRes = ed.GetEntity("Pick a block:");
    if (selRes.Status == PromptStatus.OK)
    {
        using (Transaction tr = db.TransactionManager.StartTransaction())
        {
            BlockReference ent = tr.GetObject(selRes.ObjectId, OpenMode.ForWrite) as BlockReference;
            if (ent != null)
            {
                using (Transaction tr1 = db.TransactionManager.StartTransaction())
                {
                    ent.Highlight();
                    tr1.Commit();
                }

                if (BlockRotating.Jig(ent))
                    tr.Commit();
                else
                    tr.Abort();
            }
        }
    }
}

public class BlockRotating : EntityJig
{
    #region Fields

    public int mCurJigFactorNumber = 1;

    private double mRotation = 0.0;    // Factor #1

    #endregion

    #region Constructors

    public BlockRotating(Entity ent)
        : base(ent)
    {
    }

    #endregion

    #region Overrides

    protected override bool Update()
    {
        switch (mCurJigFactorNumber)
        {
            case 1:
                (Entity as BlockReference).Rotation = mRotation;
                break;
            default:
                return false;
        }

        return true;
    }

    protected override SamplerStatus Sampler(JigPrompts prompts)
    {
        switch (mCurJigFactorNumber)
        {
            case 1:
                JigPromptAngleOptions prOptions1 = new JigPromptAngleOptions("\nBlock rotation angle:");
                prOptions1.BasePoint = (Entity as BlockReference).Position;
                prOptions1.UseBasePoint = true;
                PromptDoubleResult prResult1 = prompts.AcquireAngle(prOptions1);
                if (prResult1.Status == PromptStatus.Cancel) return SamplerStatus.Cancel;

                if (prResult1.Value.Equals(mRotation))
                {
                    return SamplerStatus.NoChange;
                }
                else
                {
                    mRotation = prResult1.Value;
                    return SamplerStatus.OK;
                }
            default:
                break;
        }

        return SamplerStatus.OK;
    }

    #endregion

    #region Method to Call

    public static bool Jig(BlockReference ent)
    {
        try
        {
            Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;
            BlockRotating jigger = new BlockRotating(ent);
            PromptResult pr;
            do
            {
                pr = ed.Drag(jigger);
                jigger.mCurJigFactorNumber++;
            } while (pr.Status != PromptStatus.Cancel &amp;amp;&amp;amp;
                        pr.Status != PromptStatus.Error &amp;amp;&amp;amp;
                        pr.Status != PromptStatus.Keyword &amp;amp;&amp;amp;
                        jigger.mCurJigFactorNumber &amp;lt;= 1);

            return pr.Status == PromptStatus.OK;
        }
        catch
        {
            return false;
        }
    }

    #endregion
}&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;&lt;div class="lia-vid-container video-embed-center"&gt;&lt;div id="lia-vid-6350782745112w598h428r797" class="lia-video-brightcove-player-container"&gt;&lt;video-js data-video-id="6350782745112" data-account="6057940548001" data-player="default" data-embed="default" class="vjs-fluid" controls="" data-application-id="" style="width: 100%; height: 100%;"&gt;&lt;/video-js&gt;&lt;/div&gt;&lt;script src="https://players.brightcove.net/6057940548001/default_default/index.min.js"&gt;&lt;/script&gt;&lt;script&gt;(function() {  var wrapper = document.getElementById('lia-vid-6350782745112w598h428r797');  var videoEl = wrapper ? wrapper.querySelector('video-js') : null;  if (videoEl) {     if (window.videojs) {       window.videojs(videoEl).ready(function() {         this.on('loadedmetadata', function() {           this.el().querySelectorAll('.vjs-load-progress div[data-start]').forEach(function(bar) {             bar.setAttribute('role', 'presentation');             bar.setAttribute('aria-hidden', 'true');           });         });       });     }  }})();&lt;/script&gt;&lt;a class="video-embed-link" href="https://forums.autodesk.com/t5/video/gallerypage/video-id/6350782745112"&gt;(view in My Videos)&lt;/a&gt;&lt;/div&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;What I am Expecting&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;&lt;div class="lia-vid-container video-embed-center"&gt;&lt;div id="lia-vid-6350784580112w326h362r185" class="lia-video-brightcove-player-container"&gt;&lt;video-js data-video-id="6350784580112" data-account="6057940548001" data-player="default" data-embed="default" class="vjs-fluid" controls="" data-application-id="" style="width: 100%; height: 100%;"&gt;&lt;/video-js&gt;&lt;/div&gt;&lt;script src="https://players.brightcove.net/6057940548001/default_default/index.min.js"&gt;&lt;/script&gt;&lt;script&gt;(function() {  var wrapper = document.getElementById('lia-vid-6350784580112w326h362r185');  var videoEl = wrapper ? wrapper.querySelector('video-js') : null;  if (videoEl) {     if (window.videojs) {       window.videojs(videoEl).ready(function() {         this.on('loadedmetadata', function() {           this.el().querySelectorAll('.vjs-load-progress div[data-start]').forEach(function(bar) {             bar.setAttribute('role', 'presentation');             bar.setAttribute('aria-hidden', 'true');           });         });       });     }  }})();&lt;/script&gt;&lt;a class="video-embed-link" href="https://forums.autodesk.com/t5/video/gallerypage/video-id/6350784580112"&gt;(view in My Videos)&lt;/a&gt;&lt;/div&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 12 Apr 2024 14:53:12 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/rotate-block-with-the-reference-line/m-p/12704687#M4500</guid>
      <dc:creator>kmkxperia</dc:creator>
      <dc:date>2024-04-12T14:53:12Z</dc:date>
    </item>
    <item>
      <title>Re: Rotate block with the reference line</title>
      <link>https://forums.autodesk.com/t5/net-forum/rotate-block-with-the-reference-line/m-p/12704801#M4501</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;Add an option to the JigPromptAngleOptions:&lt;/P&gt;
&lt;LI-CODE lang="csharp"&gt;prOptions1.Cursor = CursorType.RubberBand;&lt;/LI-CODE&gt;</description>
      <pubDate>Fri, 12 Apr 2024 14:56:32 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/rotate-block-with-the-reference-line/m-p/12704801#M4501</guid>
      <dc:creator>_gile</dc:creator>
      <dc:date>2024-04-12T14:56:32Z</dc:date>
    </item>
  </channel>
</rss>

