<?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: Attribute to excel with count in .NET Forum</title>
    <link>https://forums.autodesk.com/t5/net-forum/attribute-to-excel-with-count/m-p/7798371#M27230</link>
    <description>&lt;P&gt;For this:&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="groupby.png" style="width: 403px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/466107i041005D605BCBE1A/image-size/large?v=v2&amp;amp;px=999" role="button" title="groupby.png" alt="groupby.png" /&gt;&lt;/span&gt;&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;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Do this:&lt;/P&gt;
&lt;PRE&gt;                //var info = new object[4];
                var rooms = new List&amp;lt;object[]&amp;gt;();
                rooms.Add(new object[] { 3, "", "MS02" });
                rooms.Add(new object[] { 1, "", "MS19E" });
                rooms.Add(new object[] { 1, "", "MS19E" });
                rooms.Add(new object[] { 3, "", "MS17B" });
                rooms.Add(new object[] { 1, "", "MS19E" });
                rooms.Add(new object[] { "1m", "439C", "" });
                rooms.Add(new object[] { "1m", "439C", "" });
                rooms.Add(new object[] { "1m", "439C", "" });
                rooms.Add(new object[] { 1, "", "MS47G" });
                rooms.Add(new object[] { 1, "", "MS19E" });
                rooms.Add(new object[] { 1, "", "MS19E" });
                rooms.Add(new object[] { 1, "", "MS19E" });
                rooms.Add(new object[] { "5m", "439C", "" });
                rooms.Add(new object[] { "5m", "439C", "" });
                rooms.Add(new object[] { "5m", "430D", "" });
                rooms.Add(new object[] { "5m", "439C", "" });


                var groupedRooms = rooms.GroupBy(x =&amp;gt; new { A = x[1], B = x[2], C = x[0] }).Select(g =&amp;gt; new { Count = g.Count(), Quantity = g.Key.C, Material = g.Key.A, Standard = g.Key.B });
                ed.WriteMessage("\nCount, 2-Quantity, 3-Material, 4-Standard");
                //foreach (var r in groupedRooms.OrderBy(n=&amp;gt;n.Count).ThenBy(m=&amp;gt;m.Material))
                foreach (var gr in groupedRooms)
                {
                    ed.WriteMessage($"\n{gr.Count,5}, {gr.Quantity,-10}, {gr.Material,-10}, {gr.Standard,-10}");
                }&lt;/PRE&gt;</description>
    <pubDate>Thu, 22 Feb 2018 08:54:52 GMT</pubDate>
    <dc:creator>SENL1362</dc:creator>
    <dc:date>2018-02-22T08:54:52Z</dc:date>
    <item>
      <title>Attribute to excel with count</title>
      <link>https://forums.autodesk.com/t5/net-forum/attribute-to-excel-with-count/m-p/7797643#M27225</link>
      <description>&lt;P&gt;After searching in forum I found code that extracts data from attribute block&amp;nbsp;&lt;/P&gt;&lt;P&gt;but I need to modify the excel output result as DATAEXTRACTION command&lt;/P&gt;&lt;PRE&gt;            List&amp;lt;object[]&amp;gt; rooms = new List&amp;lt;object[]&amp;gt;();
            using (var tr = db.TransactionManager.StartTransaction())
            {
                foreach (SelectedObject so in psr.Value)
                {
                    BlockReference bref = (BlockReference)tr.GetObject(so.ObjectId, OpenMode.ForRead);
                    //populate array with attribute data
                    Autodesk.AutoCAD.DatabaseServices.AttributeCollection attcoll = bref.AttributeCollection;
                    object[] info = new object[4];
                    foreach (ObjectId id in attcoll)
                    {
                        AttributeReference atref = (AttributeReference)tr.GetObject(id, OpenMode.ForRead);

                        if (atref.Tag=="QUANTITY")
                        {
                            info[0] = atref.TextString;
                        }
                        if (atref.Tag=="MATERIAL")
                        {
                            info[1] = atref.TextString;
                        }
                        if (atref.Tag=="STANDARD")
                        {
                            info[2] = atref.TextString;
                        }

                        if (!rooms.Contains(info))
                        {
                            
                            rooms.Add(info);
                        }
                    }
                }
                tr.Commit();
            }&lt;/PRE&gt;&lt;P&gt;the excel output&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="1.JPG" style="width: 249px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/465956i4836D4E3984B8712/image-size/large?v=v2&amp;amp;px=999" role="button" title="1.JPG" alt="1.JPG" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I need the result to be something&amp;nbsp;like this&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="22.JPG" style="width: 309px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/465957i6444551423072E75/image-size/large?v=v2&amp;amp;px=999" role="button" title="22.JPG" alt="22.JPG" /&gt;&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 22 Feb 2018 00:09:52 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/attribute-to-excel-with-count/m-p/7797643#M27225</guid>
      <dc:creator>CAD-Geek</dc:creator>
      <dc:date>2018-02-22T00:09:52Z</dc:date>
    </item>
    <item>
      <title>Re: Attribute to excel with count</title>
      <link>https://forums.autodesk.com/t5/net-forum/attribute-to-excel-with-count/m-p/7798179#M27226</link>
      <description>&lt;P&gt;search for GROUP BY&lt;/P&gt;</description>
      <pubDate>Thu, 22 Feb 2018 07:36:22 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/attribute-to-excel-with-count/m-p/7798179#M27226</guid>
      <dc:creator>SENL1362</dc:creator>
      <dc:date>2018-02-22T07:36:22Z</dc:date>
    </item>
    <item>
      <title>Re: Attribute to excel with count</title>
      <link>https://forums.autodesk.com/t5/net-forum/attribute-to-excel-with-count/m-p/7798234#M27227</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You can have a look at this:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.theswamp.org/index.php?topic=31859.msg452527#msg452527" target="_blank"&gt;http://www.theswamp.org/index.php?topic=31859.msg452527#msg452527&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 22 Feb 2018 08:01:12 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/attribute-to-excel-with-count/m-p/7798234#M27227</guid>
      <dc:creator>_gile</dc:creator>
      <dc:date>2018-02-22T08:01:12Z</dc:date>
    </item>
    <item>
      <title>Re: Attribute to excel with count</title>
      <link>https://forums.autodesk.com/t5/net-forum/attribute-to-excel-with-count/m-p/7798358#M27228</link>
      <description>&lt;P&gt;thnx &lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/109424"&gt;@_gile&lt;/a&gt;&amp;nbsp;for reply I tried your code but I got this exception&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Gile.JPG" style="width: 705px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/466104i92A9F433CFA05F80/image-size/large?v=v2&amp;amp;px=999" role="button" title="Gile.JPG" alt="Gile.JPG" /&gt;&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 22 Feb 2018 08:50:06 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/attribute-to-excel-with-count/m-p/7798358#M27228</guid>
      <dc:creator>CAD-Geek</dc:creator>
      <dc:date>2018-02-22T08:50:06Z</dc:date>
    </item>
    <item>
      <title>Re: Attribute to excel with count</title>
      <link>https://forums.autodesk.com/t5/net-forum/attribute-to-excel-with-count/m-p/7798369#M27229</link>
      <description>&lt;P&gt;thnx&amp;nbsp;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/846050"&gt;@SENL1362&lt;/a&gt;&amp;nbsp;for the reply I tried your suggest like this&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE&gt;if (!rooms.Contains(info))
                        {
                            info[3] = rooms.GroupBy(x=&amp;gt;x).Count() + "c";
                            rooms.Add(info);
                        }&lt;/PRE&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="SENL.JPG" style="width: 284px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/466106i6BF6D777D13347B5/image-size/large?v=v2&amp;amp;px=999" role="button" title="SENL.JPG" alt="SENL.JPG" /&gt;&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 22 Feb 2018 08:54:05 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/attribute-to-excel-with-count/m-p/7798369#M27229</guid>
      <dc:creator>CAD-Geek</dc:creator>
      <dc:date>2018-02-22T08:54:05Z</dc:date>
    </item>
    <item>
      <title>Re: Attribute to excel with count</title>
      <link>https://forums.autodesk.com/t5/net-forum/attribute-to-excel-with-count/m-p/7798371#M27230</link>
      <description>&lt;P&gt;For this:&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="groupby.png" style="width: 403px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/466107i041005D605BCBE1A/image-size/large?v=v2&amp;amp;px=999" role="button" title="groupby.png" alt="groupby.png" /&gt;&lt;/span&gt;&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;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Do this:&lt;/P&gt;
&lt;PRE&gt;                //var info = new object[4];
                var rooms = new List&amp;lt;object[]&amp;gt;();
                rooms.Add(new object[] { 3, "", "MS02" });
                rooms.Add(new object[] { 1, "", "MS19E" });
                rooms.Add(new object[] { 1, "", "MS19E" });
                rooms.Add(new object[] { 3, "", "MS17B" });
                rooms.Add(new object[] { 1, "", "MS19E" });
                rooms.Add(new object[] { "1m", "439C", "" });
                rooms.Add(new object[] { "1m", "439C", "" });
                rooms.Add(new object[] { "1m", "439C", "" });
                rooms.Add(new object[] { 1, "", "MS47G" });
                rooms.Add(new object[] { 1, "", "MS19E" });
                rooms.Add(new object[] { 1, "", "MS19E" });
                rooms.Add(new object[] { 1, "", "MS19E" });
                rooms.Add(new object[] { "5m", "439C", "" });
                rooms.Add(new object[] { "5m", "439C", "" });
                rooms.Add(new object[] { "5m", "430D", "" });
                rooms.Add(new object[] { "5m", "439C", "" });


                var groupedRooms = rooms.GroupBy(x =&amp;gt; new { A = x[1], B = x[2], C = x[0] }).Select(g =&amp;gt; new { Count = g.Count(), Quantity = g.Key.C, Material = g.Key.A, Standard = g.Key.B });
                ed.WriteMessage("\nCount, 2-Quantity, 3-Material, 4-Standard");
                //foreach (var r in groupedRooms.OrderBy(n=&amp;gt;n.Count).ThenBy(m=&amp;gt;m.Material))
                foreach (var gr in groupedRooms)
                {
                    ed.WriteMessage($"\n{gr.Count,5}, {gr.Quantity,-10}, {gr.Material,-10}, {gr.Standard,-10}");
                }&lt;/PRE&gt;</description>
      <pubDate>Thu, 22 Feb 2018 08:54:52 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/attribute-to-excel-with-count/m-p/7798371#M27230</guid>
      <dc:creator>SENL1362</dc:creator>
      <dc:date>2018-02-22T08:54:52Z</dc:date>
    </item>
    <item>
      <title>Re: Attribute to excel with count</title>
      <link>https://forums.autodesk.com/t5/net-forum/attribute-to-excel-with-count/m-p/7798910#M27231</link>
      <description>&lt;P&gt;I tried&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;                        if (atref.Tag=="QUANTITY")
                        {
                            rooms.Add(new object[] { atref.TextString });
                            //info[0] = atref.TextString;
                        }
                        if (atref.Tag=="MATERIAL")
                        {
                            rooms.Add(new object[] { atref.TextString });
                            //info[1] = atref.TextString;
                        }
                        if (atref.Tag=="STANDARD")
                        {
                            rooms.Add(new object[] { atref.TextString });
                            //info[2] = atref.TextString;
                        }
var groupedRooms = rooms.GroupBy(x =&amp;gt; new { A = x[1], B = x[2], C = x[0] }).Select(g =&amp;gt; new { Count = g.Count(), Quantity = g.Key.C, Material = g.Key.A, Standard = g.Key.B });
foreach (var r in groupedRooms.OrderBy(n=&amp;gt;n.Count).ThenBy(m=&amp;gt;m.Material))&lt;/PRE&gt;&lt;P&gt;and I&amp;nbsp;use this code to export to excel&amp;nbsp;&lt;A href="https://forums.autodesk.com/t5/net/export-room-area-to-excel-using-c-and-autocad-net-api/m-p/3481640/highlight/true#M29176" target="_blank"&gt;@Hallex&lt;/A&gt;&lt;/P&gt;&lt;PRE&gt;ExcelTool.FillExistingBook(@"C:\Test\Programming\BCOUNT.xlsx", new object[] { "Count","QUANTITY", "MATERIAL", "Standard" },  excdata);&lt;/PRE&gt;&lt;P&gt;but I got the error&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;Index was outside the bounds of the array&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 22 Feb 2018 09:58:11 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/attribute-to-excel-with-count/m-p/7798910#M27231</guid>
      <dc:creator>CAD-Geek</dc:creator>
      <dc:date>2018-02-22T09:58:11Z</dc:date>
    </item>
    <item>
      <title>Re: Attribute to excel with count</title>
      <link>https://forums.autodesk.com/t5/net-forum/attribute-to-excel-with-count/m-p/7798923#M27232</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/3037391"&gt;@CAD-Geek&lt;/a&gt; wrote:&lt;BR /&gt;
&lt;P&gt;thnx &lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/109424"&gt;@_gile&lt;/a&gt;&amp;nbsp;for reply I tried your code but I got this exception&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Gile.JPG" style="width: 705px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/466104i92A9F433CFA05F80/image-size/large?v=v2&amp;amp;px=999" role="button" title="Gile.JPG" alt="Gile.JPG" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;As you have a tag named "QUANTITY"&amp;nbsp; you should change the "Quantity" column name of the DataTable.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Try replacing:&lt;/P&gt;
&lt;PRE&gt;dTable.Columns.Add("Quantity", typeof(int));&lt;/PRE&gt;
&lt;P&gt;with:&lt;/P&gt;
&lt;PRE&gt;dTable.Columns.Add("Count", typeof(int));&lt;/PRE&gt;
&lt;P&gt;or whatever else different from any attribute Tag.&lt;/P&gt;</description>
      <pubDate>Thu, 22 Feb 2018 10:04:04 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/attribute-to-excel-with-count/m-p/7798923#M27232</guid>
      <dc:creator>_gile</dc:creator>
      <dc:date>2018-02-22T10:04:04Z</dc:date>
    </item>
  </channel>
</rss>

