<?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 Area, Length and Width of last object created in .NET Forum</title>
    <link>https://forums.autodesk.com/t5/net-forum/area-length-and-width-of-last-object-created/m-p/3412533#M56271</link>
    <description>&lt;P&gt;Hey guys,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I'm trying to prompt a user to create a rectangle to use as a selection box to later layout blocks. The native rectangle command in AutoCAD 2012 is perfect but i need to get the area, length and width of the rectangle...is there a way that i could use something like editor.selectlast to figure this out?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Cheers&lt;/P&gt;&lt;P&gt;Vince&lt;/P&gt;</description>
    <pubDate>Fri, 13 Apr 2012 13:34:59 GMT</pubDate>
    <dc:creator>Anonymous</dc:creator>
    <dc:date>2012-04-13T13:34:59Z</dc:date>
    <item>
      <title>Area, Length and Width of last object created</title>
      <link>https://forums.autodesk.com/t5/net-forum/area-length-and-width-of-last-object-created/m-p/3412533#M56271</link>
      <description>&lt;P&gt;Hey guys,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I'm trying to prompt a user to create a rectangle to use as a selection box to later layout blocks. The native rectangle command in AutoCAD 2012 is perfect but i need to get the area, length and width of the rectangle...is there a way that i could use something like editor.selectlast to figure this out?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Cheers&lt;/P&gt;&lt;P&gt;Vince&lt;/P&gt;</description>
      <pubDate>Fri, 13 Apr 2012 13:34:59 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/area-length-and-width-of-last-object-created/m-p/3412533#M56271</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2012-04-13T13:34:59Z</dc:date>
    </item>
    <item>
      <title>Re: Area, Length and Width of last object created</title>
      <link>https://forums.autodesk.com/t5/net-forum/area-length-and-width-of-last-object-created/m-p/3412609#M56272</link>
      <description>&lt;P&gt;Not sure about A2012 but maybe this helps&lt;/P&gt;&lt;PRE&gt; &amp;lt;CommandMethod("Selast")&amp;gt; _
    Public Sub testbox()
        Dim doc As Document = Application.DocumentManager.MdiActiveDocument()
        Dim db As Database = doc.Database
        Dim ed As Editor = doc.Editor
        Dim res As PromptSelectionResult
        res = ed.SelectLast
        Try
            Using tr As Transaction = db.TransactionManager.StartTransaction
                Dim ent As Entity = tr.GetObject(res.Value.GetObjectIds(0), OpenMode.ForRead)
                Dim ecs As Extents3d = ent.GeometricExtents
                Dim leng As Double = ecs.MaxPoint.X - ecs.MinPoint.X
                Dim wid As Double = ecs.MaxPoint.Y - ecs.MinPoint.Y
                Dim ar As Double = leng * wid
                ed.WriteMessage(vbCr + "Length: {0}; Width: {1}; Area: {2}", leng, wid, ar)
            End Using
        Catch exs As System.Exception
            ed.WriteMessage(exs.Message &amp;amp; vbLf &amp;amp; exs.StackTrace)
        Finally

        End Try
    End Sub&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#333399" face="arial,helvetica,sans-serif"&gt;~'J'~&lt;/FONT&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 13 Apr 2012 14:14:01 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/area-length-and-width-of-last-object-created/m-p/3412609#M56272</guid>
      <dc:creator>Hallex</dc:creator>
      <dc:date>2012-04-13T14:14:01Z</dc:date>
    </item>
    <item>
      <title>Re: Area, Length and Width of last object created</title>
      <link>https://forums.autodesk.com/t5/net-forum/area-length-and-width-of-last-object-created/m-p/3412669#M56273</link>
      <description>&lt;P&gt;Thanks Hallex, i'm going to try this out now and i'll report back. Would it be easier to just use the "area" command in autoCAD as my selection box as it provides all the info right away as well as a nice interface? If so, is it still possible to return the values for area, length and width into my code?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Cheers&lt;/P&gt;&lt;P&gt;Vince&lt;/P&gt;</description>
      <pubDate>Fri, 13 Apr 2012 14:36:31 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/area-length-and-width-of-last-object-created/m-p/3412669#M56273</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2012-04-13T14:36:31Z</dc:date>
    </item>
    <item>
      <title>Re: Area, Length and Width of last object created</title>
      <link>https://forums.autodesk.com/t5/net-forum/area-length-and-width-of-last-object-created/m-p/3412743#M56274</link>
      <description>&lt;P&gt;I've just worked this back into C# but am running into an error on this line:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Entity ent = tr.GetObject(resr.Value.GetObjectIds(0), OpenMode.ForRead) as Entity;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The error I get is that &amp;nbsp;"No overload for method 'GetObjectIDs' takes 1 arguments" and "Argument 1: cannot convert from 'Autodesk.AutoCAD.DatabaseServices.ObjectId[] to 'Autodesk.AutoCAD.DatabaseServices.ObjectId'&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Is this something ridiculously simple??&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Cheers&lt;/P&gt;&lt;P&gt;Vince&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;// Option 1 ... User Selects Rectangle as Shape
            if (sres.StringResult == "rect")
            {
                Document docr = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument;
                Database dbr = doc.Database;
                Editor edr = doc.Editor;
                Document acDoc = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument;
                PromptSelectionResult resr = new PromptSelectionResult();
                resr = ed.SelectLast();
                acDoc.SendStringToExecute("._rectangle ", true, false, false);

               

                   Transaction tr = db.TransactionManager.StartTransaction();
                   using (tr)
                   {
                       //Entity ent = tr.GetObject(resr.Value.GetObjectIds(0), OpenMode.ForRead) as Entity;
                       Entity ent = tr.GetObject(resr.Value.GetObjectIds(0), OpenMode.ForRead) as Entity;
                       Extents3d ecs = ent.GeometricExtents;
                       double leng = ecs.MaxPoint.X - ecs.MinPoint.X;
                       double wid = ecs.MaxPoint.Y - ecs.MinPoint.Y;
                       double ar = leng * wid;
                       edr.WriteMessage("Length = " + leng);

                       edr.WriteMessage("Width = " + wid);

                       edr.WriteMessage("Area = " + ar);
                   }&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 13 Apr 2012 14:56:59 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/area-length-and-width-of-last-object-created/m-p/3412743#M56274</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2012-04-13T14:56:59Z</dc:date>
    </item>
    <item>
      <title>Re: Area, Length and Width of last object created</title>
      <link>https://forums.autodesk.com/t5/net-forum/area-length-and-width-of-last-object-created/m-p/3412833#M56275</link>
      <description>&lt;P&gt;You can stay avoid SendStringToExecute I think&lt;/P&gt;&lt;P&gt;Perhaps it will help as well:&lt;/P&gt;&lt;PRE&gt;    &amp;lt;CommandMethod("Selast")&amp;gt; _
    Public Sub testbox()
        Dim doc As Document = Application.DocumentManager.MdiActiveDocument()
        Dim db As Database = doc.Database
        Dim ed As Editor = doc.Editor
        Dim res As PromptSelectionResult
        res = ed.SelectLast
        Try
            Using tr As Transaction = db.TransactionManager.StartTransaction
                Dim ent As Entity = tr.GetObject(res.Value.GetObjectIds(0), OpenMode.ForRead)
                Dim ecs As Extents3d = ent.GeometricExtents
                Dim leng As Double = ecs.MaxPoint.X - ecs.MinPoint.X
                Dim wid As Double = ecs.MaxPoint.Y - ecs.MinPoint.Y
                Dim ar As Double = leng * wid
                ed.WriteMessage(vbCr + "Length: {0}; Width: {1}; Area: {2}", leng, wid, ar)
                Dim pres As PromptSelectionResult
                'pres = ed.SelectCrossingWindow(ecs.MinPoint, ecs.MaxPoint) ''&amp;lt;-- you can add the filter there, e.g.:
                ''----------------------------------------------------------------------------------------------------''
                Dim filterList(,) As Object = New Object(,) {{-4, "&amp;lt;or"}, {0, "Line"}, {0, "Polyline"}, {0, "Insert"}, {0, "Circle"}, {0, "Circle"}, {-4, "or&amp;gt;"}} '' и т. д.
                Dim tvs(filterList.GetUpperBound(0)) As TypedValue
                For i As Integer = 0 To filterList.GetUpperBound(0)
                    tvs(i) = New TypedValue(Convert.ToInt32(filterList(i, 0)), filterList(i, 1))
                Next
                Dim filt As SelectionFilter = New SelectionFilter(tvs)
                pres = ed.SelectCrossingWindow(ecs.MinPoint, ecs.MaxPoint, filt) ''&amp;lt;-- the filter added
                ''----------------------------------------------------------------------------------------------------''
                If pres IsNot Nothing Then
                    For Each selobj As SelectedObject In pres.Value
                        Dim obj As Entity = tr.GetObject(selobj.ObjectId, OpenMode.ForRead)
                        ed.WriteMessage(vbLf + obj.GetRXClass().DxfName)
                    Next
                End If
            End Using
        Catch exs As System.Exception
            ed.WriteMessage(exs.Message &amp;amp; vbLf &amp;amp; exs.StackTrace)
        Finally

        End Try
    End Sub&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#333399" face="arial,helvetica,sans-serif"&gt;~'J'~&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 13 Apr 2012 15:41:27 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/area-length-and-width-of-last-object-created/m-p/3412833#M56275</guid>
      <dc:creator>Hallex</dc:creator>
      <dc:date>2012-04-13T15:41:27Z</dc:date>
    </item>
    <item>
      <title>Re: Area, Length and Width of last object created</title>
      <link>https://forums.autodesk.com/t5/net-forum/area-length-and-width-of-last-object-created/m-p/3413307#M56277</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;You may avoid using SendStringToexecute because it doesn't run synchronously.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;You can define a 'Rectangle' Type with the properties and method you need.&lt;/P&gt;&lt;P&gt;Here's an example:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;public&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN&gt;class&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN&gt;Rectangle&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;//&amp;nbsp;constructor&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;public&lt;/SPAN&gt;&amp;nbsp;Rectangle(&lt;SPAN&gt;Point3d&lt;/SPAN&gt;&amp;nbsp;p1,&amp;nbsp;&lt;SPAN&gt;Point3d&lt;/SPAN&gt;&amp;nbsp;p2)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LowerLeft&amp;nbsp;=&amp;nbsp;&lt;SPAN&gt;new&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN&gt;Point3d&lt;/SPAN&gt;(&lt;SPAN&gt;Math&lt;/SPAN&gt;.Min(p1.X,&amp;nbsp;p2.X),&amp;nbsp;&lt;SPAN&gt;Math&lt;/SPAN&gt;.Min(p1.Y,&amp;nbsp;p2.Y),&amp;nbsp;0.0);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;UpperRight&amp;nbsp;=&amp;nbsp;&lt;SPAN&gt;new&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN&gt;Point3d&lt;/SPAN&gt;(&lt;SPAN&gt;Math&lt;/SPAN&gt;.Max(p1.X,&amp;nbsp;p2.X),&amp;nbsp;&lt;SPAN&gt;Math&lt;/SPAN&gt;.Max(p1.Y,&amp;nbsp;p2.Y),&amp;nbsp;0.0);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Length&amp;nbsp;=&amp;nbsp;UpperRight.X&amp;nbsp;-&amp;nbsp;LowerLeft.X;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Width&amp;nbsp;=&amp;nbsp;UpperRight.Y&amp;nbsp;-&amp;nbsp;LowerLeft.Y;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Area&amp;nbsp;=&amp;nbsp;Length&amp;nbsp;*&amp;nbsp;Width;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;//&amp;nbsp;public&amp;nbsp;read&amp;nbsp;only&amp;nbsp;properties&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;public&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN&gt;Point3d&lt;/SPAN&gt;&amp;nbsp;LowerLeft&amp;nbsp;{&amp;nbsp;&lt;SPAN&gt;get&lt;/SPAN&gt;;&amp;nbsp;&lt;SPAN&gt;private&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN&gt;set&lt;/SPAN&gt;;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;public&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN&gt;Point3d&lt;/SPAN&gt;&amp;nbsp;UpperRight&amp;nbsp;{&amp;nbsp;&lt;SPAN&gt;get&lt;/SPAN&gt;;&amp;nbsp;&lt;SPAN&gt;private&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN&gt;set&lt;/SPAN&gt;;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;public&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN&gt;double&lt;/SPAN&gt;&amp;nbsp;Length&amp;nbsp;{&amp;nbsp;&lt;SPAN&gt;get&lt;/SPAN&gt;;&amp;nbsp;&lt;SPAN&gt;private&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN&gt;set&lt;/SPAN&gt;;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;public&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN&gt;double&lt;/SPAN&gt;&amp;nbsp;Width&amp;nbsp;{&amp;nbsp;&lt;SPAN&gt;get&lt;/SPAN&gt;;&amp;nbsp;&lt;SPAN&gt;private&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN&gt;set&lt;/SPAN&gt;;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;public&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN&gt;double&lt;/SPAN&gt;&amp;nbsp;Area&amp;nbsp;{&amp;nbsp;&lt;SPAN&gt;get&lt;/SPAN&gt;;&amp;nbsp;&lt;SPAN&gt;private&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN&gt;set&lt;/SPAN&gt;;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;public&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN&gt;SelectionSet&lt;/SPAN&gt;&amp;nbsp;CrossingSelectionSet
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;get&lt;/SPAN&gt;&amp;nbsp;{&amp;nbsp;&lt;SPAN&gt;return&lt;/SPAN&gt;&amp;nbsp;Select(&lt;SPAN&gt;true&lt;/SPAN&gt;);&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;public&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN&gt;SelectionSet&lt;/SPAN&gt;&amp;nbsp;WindowSelectionSet
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;get&lt;/SPAN&gt;&amp;nbsp;{&amp;nbsp;&lt;SPAN&gt;return&lt;/SPAN&gt;&amp;nbsp;Select(&lt;SPAN&gt;false&lt;/SPAN&gt;);&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;//&amp;nbsp;public&amp;nbsp;method,&amp;nbsp;draws&amp;nbsp;the&amp;nbsp;rectangle&amp;nbsp;in&amp;nbsp;the&amp;nbsp;current&amp;nbsp;space.&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;public&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN&gt;void&lt;/SPAN&gt;&amp;nbsp;Draw()
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;Database&lt;/SPAN&gt;&amp;nbsp;db&amp;nbsp;=&amp;nbsp;&lt;SPAN&gt;HostApplicationServices&lt;/SPAN&gt;.WorkingDatabase;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;using&lt;/SPAN&gt;&amp;nbsp;(&lt;SPAN&gt;Transaction&lt;/SPAN&gt;&amp;nbsp;tr&amp;nbsp;=&amp;nbsp;db.TransactionManager.StartTransaction())
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;BlockTableRecord&lt;/SPAN&gt;&amp;nbsp;btr&amp;nbsp;=&amp;nbsp;(&lt;SPAN&gt;BlockTableRecord&lt;/SPAN&gt;)tr.GetObject(db.CurrentSpaceId,&amp;nbsp;&lt;SPAN&gt;OpenMode&lt;/SPAN&gt;.ForWrite);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;using&lt;/SPAN&gt;&amp;nbsp;(&lt;SPAN&gt;Polyline&lt;/SPAN&gt;&amp;nbsp;pline&amp;nbsp;=&amp;nbsp;&lt;SPAN&gt;new&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN&gt;Polyline&lt;/SPAN&gt;())
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pline.AddVertexAt(0,&amp;nbsp;&lt;SPAN&gt;new&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN&gt;Point2d&lt;/SPAN&gt;(LowerLeft.X,&amp;nbsp;LowerLeft.Y),&amp;nbsp;0.0,&amp;nbsp;0.0,&amp;nbsp;0.0);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pline.AddVertexAt(1,&amp;nbsp;&lt;SPAN&gt;new&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN&gt;Point2d&lt;/SPAN&gt;(UpperRight.X,&amp;nbsp;LowerLeft.Y),&amp;nbsp;0.0,&amp;nbsp;0.0,&amp;nbsp;0.0);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pline.AddVertexAt(2,&amp;nbsp;&lt;SPAN&gt;new&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN&gt;Point2d&lt;/SPAN&gt;(UpperRight.X,&amp;nbsp;UpperRight.Y),&amp;nbsp;0.0,&amp;nbsp;0.0,&amp;nbsp;0.0);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pline.AddVertexAt(3,&amp;nbsp;&lt;SPAN&gt;new&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN&gt;Point2d&lt;/SPAN&gt;(LowerLeft.X,&amp;nbsp;UpperRight.Y),&amp;nbsp;0.0,&amp;nbsp;0.0,&amp;nbsp;0.0);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pline.Closed&amp;nbsp;=&amp;nbsp;&lt;SPAN&gt;true&lt;/SPAN&gt;;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;btr.AppendEntity(pline);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;tr.AddNewlyCreatedDBObject(pline,&amp;nbsp;&lt;SPAN&gt;true&lt;/SPAN&gt;);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;tr.Commit();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;//&amp;nbsp;public&amp;nbsp;static&amp;nbsp;method,&amp;nbsp;creates&amp;nbsp;a&amp;nbsp;new&amp;nbsp;instance&amp;nbsp;of&amp;nbsp;Rectangle&amp;nbsp;if&amp;nbsp;the&amp;nbsp;user&amp;nbsp;specifies&amp;nbsp;two&amp;nbsp;points&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;public&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN&gt;static&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN&gt;Rectangle&lt;/SPAN&gt;&amp;nbsp;Create()
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;Editor&lt;/SPAN&gt;&amp;nbsp;ed&amp;nbsp;=&amp;nbsp;&lt;SPAN&gt;Application&lt;/SPAN&gt;.DocumentManager.MdiActiveDocument.Editor;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;PromptPointResult&lt;/SPAN&gt;&amp;nbsp;ppr&amp;nbsp;=&amp;nbsp;ed.GetPoint(&lt;SPAN&gt;"\nFirst&amp;nbsp;corner:&amp;nbsp;"&lt;/SPAN&gt;);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;if&lt;/SPAN&gt;&amp;nbsp;(ppr.Status&amp;nbsp;==&amp;nbsp;&lt;SPAN&gt;PromptStatus&lt;/SPAN&gt;.Cancel)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;return&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN&gt;null&lt;/SPAN&gt;;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;Point3d&lt;/SPAN&gt;&amp;nbsp;pt&amp;nbsp;=&amp;nbsp;ppr.Value;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ppr&amp;nbsp;=&amp;nbsp;ed.GetCorner(&lt;SPAN&gt;"\nSecond&amp;nbsp;corner:&amp;nbsp;"&lt;/SPAN&gt;,&amp;nbsp;pt);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;if&lt;/SPAN&gt;&amp;nbsp;(ppr.Status&amp;nbsp;==&amp;nbsp;&lt;SPAN&gt;PromptStatus&lt;/SPAN&gt;.Cancel)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;return&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN&gt;null&lt;/SPAN&gt;;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;Matrix3d&lt;/SPAN&gt;&amp;nbsp;ucs&amp;nbsp;=&amp;nbsp;ed.CurrentUserCoordinateSystem;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;return&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN&gt;new&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN&gt;Rectangle&lt;/SPAN&gt;(pt.TransformBy(ucs),&amp;nbsp;ppr.Value.TransformBy(ucs));
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;//&amp;nbsp;private&amp;nbsp;method,&amp;nbsp;returns&amp;nbsp;the&amp;nbsp;selection&amp;nbsp;set&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;private&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN&gt;SelectionSet&lt;/SPAN&gt;&amp;nbsp;Select(&lt;SPAN&gt;bool&lt;/SPAN&gt;&amp;nbsp;crossing)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;Editor&lt;/SPAN&gt;&amp;nbsp;ed&amp;nbsp;=&amp;nbsp;&lt;SPAN&gt;AcAp&lt;/SPAN&gt;.DocumentManager.MdiActiveDocument.Editor;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;Matrix3d&lt;/SPAN&gt;&amp;nbsp;wcs&amp;nbsp;=&amp;nbsp;ed.CurrentUserCoordinateSystem.Inverse();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;return&lt;/SPAN&gt;&amp;nbsp;crossing&amp;nbsp;?
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ed.SelectCrossingWindow(LowerLeft.TransformBy(wcs),&amp;nbsp;UpperRight.TransformBy(wcs)).Value&amp;nbsp;:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ed.SelectWindow(LowerLeft.TransformBy(wcs),&amp;nbsp;UpperRight.TransformBy(wcs)).Value;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Then, using this type, you can prompt the user to draw a rectangle the same wat as the native AutoCAD Command, get the data you need (length, width and area), use the rectangle to get a selection set.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Here's a little example:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/PRE&gt;&lt;PRE&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[&lt;SPAN&gt;CommandMethod&lt;/SPAN&gt;(&lt;SPAN&gt;"test"&lt;/SPAN&gt;)]
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;public&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN&gt;void&lt;/SPAN&gt;&amp;nbsp;test()
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;Editor&lt;/SPAN&gt;&amp;nbsp;ed&amp;nbsp;=&amp;nbsp;&lt;SPAN&gt;Application&lt;/SPAN&gt;.DocumentManager.MdiActiveDocument.Editor;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;Rectangle&lt;/SPAN&gt;&amp;nbsp;rect&amp;nbsp;=&amp;nbsp;&lt;SPAN&gt;Rectangle&lt;/SPAN&gt;.Create();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;if&lt;/SPAN&gt;&amp;nbsp;(rect&amp;nbsp;==&amp;nbsp;&lt;SPAN&gt;null&lt;/SPAN&gt;)&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;return&lt;/SPAN&gt;;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;SelectionSet&lt;/SPAN&gt;&amp;nbsp;ss&amp;nbsp;=&amp;nbsp;rect.WindowSelectionSet;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ed.SetImpliedSelection(ss);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;rect.Draw();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ed.WriteMessage(&lt;SPAN&gt;"\nLength&amp;nbsp;=&amp;nbsp;{0}&amp;nbsp;Width&amp;nbsp;=&amp;nbsp;{1}&amp;nbsp;Area&amp;nbsp;=&amp;nbsp;{2}"&lt;/SPAN&gt;,&amp;nbsp;rect.Length,&amp;nbsp;rect.Width,&amp;nbsp;rect.Area);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 13 Apr 2012 21:26:20 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/area-length-and-width-of-last-object-created/m-p/3413307#M56277</guid>
      <dc:creator>_gile</dc:creator>
      <dc:date>2012-04-13T21:26:20Z</dc:date>
    </item>
    <item>
      <title>Re: Area, Length and Width of last object created</title>
      <link>https://forums.autodesk.com/t5/net-forum/area-length-and-width-of-last-object-created/m-p/3413455#M56278</link>
      <description>&lt;P&gt;My shot:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&amp;lt;CommandMethod("DREC")&amp;gt; _
    Public Sub DrawRect()
        Dim doc As Document = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument
        Dim db As Database = HostApplicationServices.WorkingDatabase()
        Dim ed As Editor = Application.DocumentManager.MdiActiveDocument.Editor
        Dim p1, p2 As Point3d

        Using acTrans As Transaction = db.TransactionManager.StartTransaction()
            Dim acSSPrompt As PromptPointResult = doc.Editor.GetPoint("Select First Point: ")
            If acSSPrompt.Status = PromptStatus.OK Then
                p1 = acSSPrompt.Value
                acSSPrompt = doc.Editor.GetCorner(vbCrLf + "Select Second Point: ", p1)
                If acSSPrompt.Status = PromptStatus.OK Then
                    p2 = acSSPrompt.Value
                Else
                    MsgBox("Invalid point")
                    Exit Sub
                End If
            Else
                MsgBox("Invalid point")
                Exit Sub
            End If

            Dim v1 As Vector3d
            Dim theta As Double
            Dim p3, p4 As Point2D
            Dim a, b, l, s As Double
            Dim d As Double

            v1 = p1.GetVectorTo(p2)
            theta = v1.GetAngleTo(Vector3d.XAxis, Vector3d.ZAxis.Negate())
            d = p1.DistanceTo(p2)
            a = d * Math.Cos(theta)
            b = d * Math.Sin(theta)
            l = 2 * (Math.Abs(a) + Math.Abs(b))
            s = Math.Abs(a * b)

            If s &amp;lt;= 0.001 Then
                MsgBox("Degenerated Rectangle, try again", vbCritical)
                Exit Sub
            End If

            p3 = New Point3d(p1.X + a, p1.Y)
            p4 = New Point3d(p1.X, p1.Y + b)

            Dim pl As New Polyline

            pl.AddVertexAt(0, New Point2d(p1.X, p1.Y), 0, 0, 0)
            pl.AddVertexAt(1, p3, 0, 0, 0)
            pl.AddVertexAt(2, New Point2d(p2.X, p2.Y), 0, 0, 0)
            pl.AddVertexAt(3, p4, 0, 0, 0)
            pl.Closed = True

            Dim acBlkTbl As BlockTable
            acBlkTbl = acTrans.GetObject(db.BlockTableId, OpenMode.ForRead)
            Dim acBlkTblRec As BlockTableRecord
            acBlkTblRec = acTrans.GetObject(acBlkTbl(BlockTableRecord.ModelSpace), OpenMode.ForWrite)

            acBlkTblRec.AppendEntity(pl)
            acTrans.AddNewlyCreatedDBObject(pl, True)

            ed.WriteMessage(vbCrLf + "Rectangle length:=" + l.ToString + vbCrLf)
            ed.WriteMessage("Rectangle Area:=" + s.ToString + vbCrLf)
            ed.WriteMessage("Width:=" + Math.Abs(a).ToString + vbCrLf)
            ed.WriteMessage("Height:=" + Math.Abs(b).ToString + vbCrLf)

            acTrans.Commit()
        End Using
    End Sub&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sat, 14 Apr 2012 02:48:21 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/area-length-and-width-of-last-object-created/m-p/3413455#M56278</guid>
      <dc:creator>hgasty1001</dc:creator>
      <dc:date>2012-04-14T02:48:21Z</dc:date>
    </item>
    <item>
      <title>Re: Area, Length and Width of last object created</title>
      <link>https://forums.autodesk.com/t5/net-forum/area-length-and-width-of-last-object-created/m-p/3415035#M56279</link>
      <description>&lt;P&gt;Thanks to everyone for their input! _gile thank you very much, with your example i got it working perfectly, much appreciated!!!!&lt;/P&gt;</description>
      <pubDate>Mon, 16 Apr 2012 13:50:00 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/area-length-and-width-of-last-object-created/m-p/3415035#M56279</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2012-04-16T13:50:00Z</dc:date>
    </item>
  </channel>
</rss>

