<?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 Getting Material quantities using C# in Civil 3D Customization Forum</title>
    <link>https://forums.autodesk.com/t5/civil-3d-customization-forum/getting-material-quantities-using-c/m-p/9881837#M7585</link>
    <description>&lt;P&gt;I am writing a C# program to read material quantities from a Civil 3D model. I can get cut/fill areas at a sampleline but have not been able to get structural material quantities (e.g., pavement, base, subbase material areas at a sampleline or section). Any help will be appreciated.&lt;/P&gt;&lt;P&gt;Thanks.&lt;/P&gt;</description>
    <pubDate>Thu, 19 Nov 2020 19:38:50 GMT</pubDate>
    <dc:creator>Anonymous</dc:creator>
    <dc:date>2020-11-19T19:38:50Z</dc:date>
    <item>
      <title>Getting Material quantities using C#</title>
      <link>https://forums.autodesk.com/t5/civil-3d-customization-forum/getting-material-quantities-using-c/m-p/9881837#M7585</link>
      <description>&lt;P&gt;I am writing a C# program to read material quantities from a Civil 3D model. I can get cut/fill areas at a sampleline but have not been able to get structural material quantities (e.g., pavement, base, subbase material areas at a sampleline or section). Any help will be appreciated.&lt;/P&gt;&lt;P&gt;Thanks.&lt;/P&gt;</description>
      <pubDate>Thu, 19 Nov 2020 19:38:50 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/civil-3d-customization-forum/getting-material-quantities-using-c/m-p/9881837#M7585</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2020-11-19T19:38:50Z</dc:date>
    </item>
    <item>
      <title>Re: Getting Material quantities using C#</title>
      <link>https://forums.autodesk.com/t5/civil-3d-customization-forum/getting-material-quantities-using-c/m-p/9883897#M7586</link>
      <description>&lt;P&gt;Strange coincidence, I just started working on something similar yesterday. I'm trying to see if there is a way to get the final volume and location of objects created in a corridor programmatically. For example, I need to get the begin/end station of a lane and it's final volume.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Not sure if I'll need to keep track of shapes areas at each frequency and use end area calculations or if I can get the final volume from the model.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Here's the code to go through the corridor and read SA areas:&lt;/P&gt;&lt;LI-CODE lang="csharp"&gt;        public void CorridorShapes()
        {
            Document acadDocument = Application.DocumentManager.MdiActiveDocument;
            Database database = acadDocument.Database;
            Autodesk.Civil.ApplicationServices.CivilDocument civilDocument = Autodesk.Civil.ApplicationServices.CivilDocument.GetCivilDocument(database);

            CorridorCollection corridorCollection = civilDocument.CorridorCollection;

            using (Transaction transaction = database.TransactionManager.StartTransaction())
            {
                foreach (ObjectId corridorId in corridorCollection)
                {
                    Corridor corridor = (Corridor)transaction.GetObject(corridorId, OpenMode.ForRead);
                    BaselineCollection baselines = corridor.Baselines;

                    foreach (Baseline baseline in baselines)
                    {
                        ObjectId algnId = baseline.AlignmentId;
                        BaselineRegionCollection baselineRegions = baseline.BaselineRegions;
                        foreach (BaselineRegion baselineRegion in baselineRegions)
                        {
                            AppliedAssemblyCollection appliedAssemblies = baselineRegion.AppliedAssemblies;
                            double[] appliedStations = appliedAssemblies.Stations();
                            List&amp;lt;double&amp;gt; stationList = appliedStations.ToList();
                            stationList.Sort();

                            foreach (double station in stationList)
                            {
                                AppliedAssembly appliedAssembly = appliedAssemblies.GetItemAt(station);
                                Assembly assembly = (Assembly)transaction.GetObject(appliedAssembly.AssemblyId, OpenMode.ForRead);

                                AppliedSubassemblyCollection appliedSubassemblies = appliedAssembly.GetAppliedSubassemblies();
                                foreach (AppliedSubassembly appliedSubassembly in appliedSubassemblies)
                                {
                                    Subassembly subassembly = (Subassembly)transaction.GetObject(appliedSubassembly.SubassemblyId, OpenMode.ForRead);
                                    CalculatedShapeCollection calculatedShapes = appliedAssembly.Shapes;
                                }
                            }
                        }
                    }
                }
            }
        }&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The code is from this post:&amp;nbsp;&lt;A href="https://forums.autodesk.com/t5/civil-3d-customization/corridor-solids-trough-api/td-p/9067083" target="_blank"&gt;Corridor Solids trough API - Autodesk Community - Civil 3D&lt;/A&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 20 Nov 2020 16:16:38 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/civil-3d-customization-forum/getting-material-quantities-using-c/m-p/9883897#M7586</guid>
      <dc:creator>michael_robertson</dc:creator>
      <dc:date>2020-11-20T16:16:38Z</dc:date>
    </item>
    <item>
      <title>Re: Getting Material quantities using C#</title>
      <link>https://forums.autodesk.com/t5/civil-3d-customization-forum/getting-material-quantities-using-c/m-p/9885888#M7587</link>
      <description>&lt;P&gt;Thank you for the quick response. I don't have an answer for your question at this time. Let me experiment with the code you sent me and respond when I have a good solution.&lt;/P&gt;&lt;P&gt;Stay safe.&lt;/P&gt;</description>
      <pubDate>Sat, 21 Nov 2020 17:26:07 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/civil-3d-customization-forum/getting-material-quantities-using-c/m-p/9885888#M7587</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2020-11-21T17:26:07Z</dc:date>
    </item>
    <item>
      <title>Re: Getting Material quantities using C#</title>
      <link>https://forums.autodesk.com/t5/civil-3d-customization-forum/getting-material-quantities-using-c/m-p/9895487#M7588</link>
      <description>&lt;P&gt;Found what seems to be the easiest option is to export the corridor to solids makes it pretty easy. All the corridor property set data comes across to the solid such as Baseline info, stations, etc. If you create the solids with the "Dynamic link to corridor" option enabled&amp;nbsp; (on the output options) the solids update automatically when the corridor changes and is rebuilt.&lt;/P&gt;</description>
      <pubDate>Wed, 25 Nov 2020 18:45:26 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/civil-3d-customization-forum/getting-material-quantities-using-c/m-p/9895487#M7588</guid>
      <dc:creator>michael_robertson</dc:creator>
      <dc:date>2020-11-25T18:45:26Z</dc:date>
    </item>
  </channel>
</rss>

