<?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 find block inside a polyline in .NET Forum</title>
    <link>https://forums.autodesk.com/t5/net-forum/find-block-inside-a-polyline/m-p/7586489#M28764</link>
    <description>&lt;P&gt;Hi all,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Does any one knows how to find a block inside a polyline??&lt;/P&gt;&lt;P&gt;I need to do this so I can read some data from the block and add it as XData to the polyline.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks in advance,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Thu, 30 Nov 2017 17:19:42 GMT</pubDate>
    <dc:creator>Anonymous</dc:creator>
    <dc:date>2017-11-30T17:19:42Z</dc:date>
    <item>
      <title>find block inside a polyline</title>
      <link>https://forums.autodesk.com/t5/net-forum/find-block-inside-a-polyline/m-p/7586489#M28764</link>
      <description>&lt;P&gt;Hi all,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Does any one knows how to find a block inside a polyline??&lt;/P&gt;&lt;P&gt;I need to do this so I can read some data from the block and add it as XData to the polyline.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks in advance,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 30 Nov 2017 17:19:42 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/find-block-inside-a-polyline/m-p/7586489#M28764</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2017-11-30T17:19:42Z</dc:date>
    </item>
    <item>
      <title>Re: find block inside a polyline</title>
      <link>https://forums.autodesk.com/t5/net-forum/find-block-inside-a-polyline/m-p/7588066#M28765</link>
      <description>&lt;P&gt;There are numerous samples.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Try Google on "c# AutoCAD SelectWindowPolygon"&amp;nbsp;&amp;nbsp;&amp;nbsp; or&amp;nbsp; "IsPointInside for Polyline" "counting blocks inside" "Region inside polyline"&lt;/P&gt;
&lt;P&gt;Also have a look at the Polyline extensions of Gilles.&lt;/P&gt;
&lt;P&gt;Also samples from FIXO and Tony Tanzillo will give you the necessary inspirations.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 01 Dec 2017 07:40:23 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/find-block-inside-a-polyline/m-p/7588066#M28765</guid>
      <dc:creator>SENL1362</dc:creator>
      <dc:date>2017-12-01T07:40:23Z</dc:date>
    </item>
    <item>
      <title>Re: find block inside a polyline</title>
      <link>https://forums.autodesk.com/t5/net-forum/find-block-inside-a-polyline/m-p/7588211#M28766</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You can use this Editor.SelectByPolyline() extension method.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.Geometry;
using System;

namespace Autodesk.AutoCAD.EditorInput
{
    public enum PolygonSelectionMode { Crossing, Window }

    public static class EditorExtension
    {
        public static PromptSelectionResult SelectByPolyline(this Editor ed, Polyline pline, PolygonSelectionMode mode, params TypedValue[] filter)
        {
            if (ed == null) throw new ArgumentNullException("ed");
            if (pline == null) throw new ArgumentNullException("pline");
            Matrix3d wcs = ed.CurrentUserCoordinateSystem.Inverse();
            Point3dCollection polygon = new Point3dCollection();
            for (int i = 0; i &amp;lt; pline.NumberOfVertices; i++)
            {
                polygon.Add(pline.GetPoint3dAt(i).TransformBy(wcs));
            }
            PromptSelectionResult result;
            using (ViewTableRecord curView = ed.GetCurrentView())
            {
                ed.Zoom(pline.GeometricExtents);
                if (mode == PolygonSelectionMode.Crossing)
                    result = ed.SelectCrossingPolygon(polygon, new SelectionFilter(filter));
                else
                    result = ed.SelectWindowPolygon(polygon, new SelectionFilter(filter));
                ed.SetCurrentView(curView);
            }
            return result;
        }

        public static void Zoom(this Editor ed, Extents3d extents)
        {
            if (ed == null) throw new ArgumentNullException("ed");
            using (ViewTableRecord view = ed.GetCurrentView())
            {
                Matrix3d worldToEye =
                    (Matrix3d.Rotation(-view.ViewTwist, view.ViewDirection, view.Target) *
                    Matrix3d.Displacement(view.Target - Point3d.Origin) *
                    Matrix3d.PlaneToWorld(view.ViewDirection))
                    .Inverse();
                extents.TransformBy(worldToEye);
                view.Width = extents.MaxPoint.X - extents.MinPoint.X;
                view.Height = extents.MaxPoint.Y - extents.MinPoint.Y;
                view.CenterPoint = new Point2d(
                    (extents.MaxPoint.X + extents.MinPoint.X) / 2.0,
                    (extents.MaxPoint.Y + extents.MinPoint.Y) / 2.0);
                ed.SetCurrentView(view);
            }
        }
    }
}
&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Testing example to select block references strctly inside the selected polyline:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.EditorInput;
using Autodesk.AutoCAD.Runtime;
using AcAp = Autodesk.AutoCAD.ApplicationServices.Application;

namespace SelectInsidePolygonSample
{
    public class Commands
    {
        [CommandMethod("TEST")]
        public void Test()
        {
            Document doc = AcAp.DocumentManager.MdiActiveDocument;
            Database db = doc.Database;
            Editor ed = doc.Editor;

            var options = new PromptEntityOptions("\nSelect polyline: ");
            options.SetRejectMessage("\nMust be a polyline.");
            options.AddAllowedClass(typeof(Polyline), true);
            var result = ed.GetEntity(options);
            if (result.Status != PromptStatus.OK) return;

            using (Transaction tr = db.TransactionManager.StartOpenCloseTransaction())
            {
                Polyline pline = (Polyline)tr.GetObject(result.ObjectId, OpenMode.ForRead);
                PromptSelectionResult selection = 
                    ed.SelectByPolyline(pline, PolygonSelectionMode.Window, new TypedValue(0, "INSERT"));
                if (selection.Status == PromptStatus.OK)
                    ed.SetImpliedSelection(selection.Value);
                tr.Commit();
            }
        }
    }
}
&lt;/PRE&gt;</description>
      <pubDate>Fri, 01 Dec 2017 08:39:09 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/find-block-inside-a-polyline/m-p/7588211#M28766</guid>
      <dc:creator>_gile</dc:creator>
      <dc:date>2017-12-01T08:39:09Z</dc:date>
    </item>
    <item>
      <title>Re: find block inside a polyline</title>
      <link>https://forums.autodesk.com/t5/net-forum/find-block-inside-a-polyline/m-p/7602569#M28767</link>
      <description>&lt;P&gt;That was awsome, thank you so much.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 06 Dec 2017 20:16:49 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/find-block-inside-a-polyline/m-p/7602569#M28767</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2017-12-06T20:16:49Z</dc:date>
    </item>
    <item>
      <title>Re: find block inside a polyline</title>
      <link>https://forums.autodesk.com/t5/net-forum/find-block-inside-a-polyline/m-p/7693175#M28768</link>
      <description>How to use this Program? Regards Automohan</description>
      <pubDate>Tue, 16 Jan 2018 09:28:28 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/find-block-inside-a-polyline/m-p/7693175#M28768</guid>
      <dc:creator>Automohan</dc:creator>
      <dc:date>2018-01-16T09:28:28Z</dc:date>
    </item>
    <item>
      <title>Re: find block inside a polyline</title>
      <link>https://forums.autodesk.com/t5/net-forum/find-block-inside-a-polyline/m-p/7693264#M28769</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;@Anonymous wrote:&lt;BR /&gt;&lt;P&gt;Hi all,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Does any one knows how to find a block inside a polyline??&lt;/P&gt;&lt;P&gt;I need to do this so I can read some data from the block and add it as XData to the polyline.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks in advance,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;If your polyine has curved segments, you might want to consider pursing an analytical solution or '&lt;EM&gt;spatial query&lt;/EM&gt;' that doesn't depend on visual object selection, since it can only select objects within a polygon (e.g., no curved segments).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;You can search this forum on the keyword "&lt;A href="https://forums.autodesk.com/t5/forums/searchpage/tab/message?advanced=false&amp;amp;allow_punctuation=false&amp;amp;filter=location&amp;amp;location=forum-board%3A152&amp;amp;q=GetPointContainment" target="_blank"&gt;GetPointContainment&lt;/A&gt;" to find solutions like &lt;A href="https://forums.autodesk.com/t5/net/spatial-query-in-autocad-2010/m-p/5307623#M42055" target="_blank"&gt;this one&lt;/A&gt;, that use a region to find out if a block reference's insertion point lies inside a closed, non self-intersecting polyline.&lt;/P&gt;</description>
      <pubDate>Tue, 16 Jan 2018 10:12:02 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/find-block-inside-a-polyline/m-p/7693264#M28769</guid>
      <dc:creator>ActivistInvestor</dc:creator>
      <dc:date>2018-01-16T10:12:02Z</dc:date>
    </item>
    <item>
      <title>Re: find block inside a polyline</title>
      <link>https://forums.autodesk.com/t5/net-forum/find-block-inside-a-polyline/m-p/7729752#M28770</link>
      <description>&lt;P&gt;Dear Gile;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I need to know how to run the code with a screencast video&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;thanks&lt;/P&gt;&lt;P&gt;Automohan&lt;/P&gt;</description>
      <pubDate>Sun, 28 Jan 2018 10:39:55 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/find-block-inside-a-polyline/m-p/7729752#M28770</guid>
      <dc:creator>Automohan</dc:creator>
      <dc:date>2018-01-28T10:39:55Z</dc:date>
    </item>
    <item>
      <title>Re: find block inside a polyline</title>
      <link>https://forums.autodesk.com/t5/net-forum/find-block-inside-a-polyline/m-p/7729785#M28771</link>
      <description>&lt;P&gt;This code is a C# code which cannot be run as simply as an AutoLISP code.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You have to first compile this code referencing some AutoCAD .NET libraries to get a DLL. This can be done using an IDE like Visual Studio. You can then NETLOAD the DLL in AutoCAD and launch the TEST testing command.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;But your question make me think you do not have any .NET programming knowledge and do not really want to learn such stuff but you just want some ready made custom command.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If I'm right, you should ask for some routine in &lt;A href="https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/bd-p/130" target="_blank"&gt;the AutoLISP forum&lt;/A&gt; (similar things have certainly be done many times) that you could much more easily load and run.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If I'm wrong and you want to learn AutoCAD .NET programming, you should first learn the basics of .NET programming outside of AutoCAD (you can find many tutorials about .NET, C# and Visual Studio), then learn the basics of AutoCAD customization with .NET (you can find learning material &lt;A href="http://usa.autodesk.com/adsk/servlet/index?siteID=123112&amp;amp;id=1911627" target="_blank"&gt;&amp;gt;&amp;gt;here&amp;lt;&amp;lt;&lt;/A&gt;).&lt;/P&gt;</description>
      <pubDate>Sun, 28 Jan 2018 11:20:50 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/find-block-inside-a-polyline/m-p/7729785#M28771</guid>
      <dc:creator>_gile</dc:creator>
      <dc:date>2018-01-28T11:20:50Z</dc:date>
    </item>
    <item>
      <title>Re: find block inside a polyline</title>
      <link>https://forums.autodesk.com/t5/net-forum/find-block-inside-a-polyline/m-p/7729927#M28772</link>
      <description>&lt;P&gt;Yes Sir, I know that "find block inside a polyline" can be done by a lisp Program, but someone reply me as below Image, for some functions you need .Net Programs, so at least I should know how to run the code if someone issue me a program!&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="cvd3dreminders.jpg" style="width: 705px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/455848iCA93B37126A642B7/image-size/large?v=v2&amp;amp;px=999" role="button" title="cvd3dreminders.jpg" alt="cvd3dreminders.jpg" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I didn't think of learning .Net Program, need a lots of hard work, need more time to spend or I may&amp;nbsp;create programs that&amp;nbsp;for small works&lt;/P&gt;&lt;P&gt;"A few people only success in&amp;nbsp;advance programs that do large scale of work in the world"&lt;/P&gt;</description>
      <pubDate>Sun, 28 Jan 2018 14:15:21 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/find-block-inside-a-polyline/m-p/7729927#M28772</guid>
      <dc:creator>Automohan</dc:creator>
      <dc:date>2018-01-28T14:15:21Z</dc:date>
    </item>
    <item>
      <title>Re: find block inside a polyline</title>
      <link>https://forums.autodesk.com/t5/net-forum/find-block-inside-a-polyline/m-p/7730159#M28773</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/3182964"&gt;@Automohan&lt;/a&gt; wrote:&lt;BR /&gt;&lt;P&gt;Yes Sir, I know that "find block inside a polyline" can be done by a lisp Program, but someone reply me as below Image, for some functions you need .Net Programs, so at least I should know how to run the code if someone issue me a program!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I didn't think of learning .Net Program, need a lots of hard work, need more time to spend or I may&amp;nbsp;create programs that&amp;nbsp;for small works&lt;/P&gt;&lt;P&gt;"A few people only success in&amp;nbsp;advance programs that do large scale of work in the world"&lt;/P&gt;&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;Without knowing how to program in .NET or use Visual Studio to compile code and build a working program, you are not going to get anywhere with code you find here. Screencast is for recording what happens on your screen, that's all.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Also, you don't have to post screen shots of other discussion group posts. You can include a hyperlink to the post that anyone reading it can open and view.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sun, 28 Jan 2018 18:18:26 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/find-block-inside-a-polyline/m-p/7730159#M28773</guid>
      <dc:creator>ActivistInvestor</dc:creator>
      <dc:date>2018-01-28T18:18:26Z</dc:date>
    </item>
  </channel>
</rss>

