{"id":152,"date":"2015-05-03T16:32:00","date_gmt":"2015-05-03T16:32:00","guid":{"rendered":"https:\/\/blogs.autodesk.com\/from-the-ground-up\/2015\/05\/03\/civil-3d-2016-transitions\/"},"modified":"2015-05-03T16:32:00","modified_gmt":"2015-05-03T16:32:00","slug":"civil-3d-2016-transitions","status":"publish","type":"post","link":"https:\/\/blogs.autodesk.com\/from-the-ground-up\/2015\/05\/03\/civil-3d-2016-transitions\/","title":{"rendered":"Civil 3D 2016 &ndash; Transitions"},"content":{"rendered":"<p>Coming from non-Civil 3D background, one of the first things that troubled me when migrating across was a simple earthworks modelling issue \u2013 \u2018How do I transition a simple batter slope from 2:1 to 5:1 across a range of x metres?\u2019<\/p>\n<p>I mean, this is something that is common practice within the industry, right? One thing I learned early in my design career is that no two linear metres of road are identical.<\/p>\n<p>After some digging around and looking into multiple ways to achieve this, I soon came to discover the absolute marvel that is the \u2018Subassembly Composer\u2019 (SC). This program ships with Civil 3D (from 2013 onwards), and simply lets you create (nearly) any kind of subassembly you can possibly imagine \u2013 with the added bonus of being able to apply intelligence to these subassemblies.<\/p>\n<p><a href=\"http:\/\/fromthegroundup.typepad.com\/.a\/6a01127918d1ef28a401b8d10feb90970c-pi\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;float: left;padding-top: 0px;padding-left: 0px;margin: 0px 10px 0px 0px;padding-right: 0px;border-top-width: 0px\" border=\"0\" alt=\"image\" align=\"left\" src=\"http:\/\/fromthegroundup.typepad.com\/.a\/6a01127918d1ef28a401b7c786697c970b-pi\" width=\"244\" height=\"193\" \/><\/a>Here\u2019s how I like to approach this. If you have installed the ANZ Country Kit in AutoCAD Civil 3D 2016, you will notice on the \u2018Assemblies ANZ\u2019 tab on the tool palette, there are a few new tools for \u2018BatterTransition\u2019 and \u2018NumberTransform\u2019 (more to come on that one).<\/p>\n<p>&#160;<\/p>\n<p>This subassembly was written in a few minutes pretty much as a learning tool for myself to get into the SC. It does, however, provide amazing depth and flexibility when you start to consider not only the predefined tools in the toolbox but the ability to use API functionality within the SC and also from the .NET math class.<\/p>\n<p>The key to transitioning a value across the range of a region comes through the expression<\/p>\n<p><strong>((Baseline.Station &#8211; Baseline.RegionStart) \/(baseline.RegionEnd &#8211; Baseline.RegionStart)) * slopei<\/strong><\/p>\n<p>Where \u2018slopei\u2019 is the delta slope value calculated from \u2018Value at End\u2019 \u2013 \u2018Value at Start\u2019<\/p>\n<p><a href=\"http:\/\/fromthegroundup.typepad.com\/.a\/6a01127918d1ef28a401b8d10feb94970c-pi\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;padding-top: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px\" border=\"0\" alt=\"image\" src=\"http:\/\/fromthegroundup.typepad.com\/.a\/6a01127918d1ef28a401b7c7866980970b-pi\" width=\"477\" height=\"221\" \/><\/a><\/p>\n<p>In order to apply the batter subassembly, and not end up with a roadway corridor full of excessive non-necessary regions, I took an approach of firstly building a roadway corridor out to the edge of hinge.<\/p>\n<p>From this point I extract the hinge string using the \u2018Create Feature Lines From Corridor\u2019 command from the Home tab on the ribbon, making sure the hinge line extracted maintains a dynamic link to the corridor (and making sure the Smoothing option is turned off as this creates extra vertices around any alignment curves)<\/p>\n<p><a href=\"http:\/\/fromthegroundup.typepad.com\/.a\/6a01127918d1ef28a401b7c7866986970b-pi\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;float: left;padding-top: 0px;padding-left: 0px;margin: 0px 13px 0px 0px;padding-right: 0px;border-top-width: 0px\" border=\"0\" alt=\"image\" align=\"left\" src=\"http:\/\/fromthegroundup.typepad.com\/.a\/6a01127918d1ef28a401b7c786698d970b-pi\" width=\"293\" height=\"191\" \/><\/a><\/p>\n<p><a href=\"http:\/\/fromthegroundup.typepad.com\/.a\/6a01127918d1ef28a401b8d10feb98970c-pi\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;padding-top: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px\" border=\"0\" alt=\"image\" src=\"http:\/\/fromthegroundup.typepad.com\/.a\/6a01127918d1ef28a401b8d10feb9c970c-pi\" width=\"166\" height=\"244\" \/><\/a><\/p>\n<p>Now that the feature string is linked to the mainline corridor, we can go about setting up an additional corridor to handle just the earthworks. To do this we setup a new assembly with a generic \u2018LinkWidthAndSlope\u2019 subassembly and set the parameters like below<\/p>\n<p><a href=\"http:\/\/fromthegroundup.typepad.com\/.a\/6a01127918d1ef28a401b8d10feba0970c-pi\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;float: left;padding-top: 0px;padding-left: 0px;margin: 0px 10px 0px 0px;padding-right: 0px;border-top-width: 0px\" border=\"0\" alt=\"image\" align=\"left\" src=\"http:\/\/fromthegroundup.typepad.com\/.a\/6a01127918d1ef28a401b7c7866992970b-pi\" width=\"244\" height=\"184\" \/><\/a>Point Code \u2013 none<\/p>\n<p>Link Codes \u2013 none<\/p>\n<ul>\n<li>Omit Link \u2013 Yes (this is critical) <\/li>\n<\/ul>\n<p>&#160;<\/p>\n<p>&#160;<\/p>\n<p>&#160;<\/p>\n<p><a href=\"http:\/\/fromthegroundup.typepad.com\/.a\/6a01127918d1ef28a401b8d10feba4970c-pi\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;float: left;padding-top: 0px;padding-left: 0px;margin: 0px 10px 0px 0px;padding-right: 0px;border-top-width: 0px\" border=\"0\" alt=\"image\" align=\"left\" src=\"http:\/\/fromthegroundup.typepad.com\/.a\/6a01127918d1ef28a401b8d10feba8970c-pi\" width=\"244\" height=\"180\" \/><\/a><\/p>\n<p>We then attach the \u2018BatterTransition\u2019 subassembly to the previous link. We can then change the values to suit our requirements (I\u2019ve used 2:1 to 5:1)<\/p>\n<p>&#160;<\/p>\n<p>&#160;<\/p>\n<p>&#160;<\/p>\n<p>Looking at the whole assembly now, we see our hidden link (which I have relabelled to \u2018SubString\u2019) and the batter slope.<\/p>\n<p><a href=\"http:\/\/fromthegroundup.typepad.com\/.a\/6a01127918d1ef28a401b8d10febac970c-pi\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;padding-top: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px\" border=\"0\" alt=\"image\" src=\"http:\/\/fromthegroundup.typepad.com\/.a\/6a01127918d1ef28a401bb082a6605970d-pi\" width=\"426\" height=\"202\" \/><\/a><\/p>\n<p>We can now create our earthworks corridor and assign some targets as follows (I\u2019ve called the corridor \u2018&lt;Corridor&gt; \u2013 Batters\u2019 just to keep the roadway and batter corridors close in the prospector).<\/p>\n<p>We just need to ensure that the Width and Elevation targets are set to the hinge string that we created dynamic to the corridor. In the image below, I have set the first range between Stn 700-750. This forces the batter to transition from 2:1 to 5:1 between these stations<\/p>\n<p><a href=\"http:\/\/fromthegroundup.typepad.com\/.a\/6a01127918d1ef28a401bb082a6609970d-pi\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;padding-top: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px\" border=\"0\" alt=\"image\" src=\"http:\/\/fromthegroundup.typepad.com\/.a\/6a01127918d1ef28a401b8d10febb5970c-pi\" width=\"487\" height=\"351\" \/><\/a><\/p>\n<p>As you can see, a smoothly transitioned slope!<\/p>\n<p><a href=\"http:\/\/fromthegroundup.typepad.com\/.a\/6a01127918d1ef28a401bb082a660d970d-pi\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;padding-top: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px\" border=\"0\" alt=\"image\" src=\"http:\/\/fromthegroundup.typepad.com\/.a\/6a01127918d1ef28a401b7c7866997970b-pi\" width=\"487\" height=\"336\" \/><\/a><\/p>\n<p>To finish off the batter slopes, we simply need to copy the batter transition assembly to create our various types, including constant slopes. In this example I have simply setup a 2:1 constant, a 5:1 constant and a 2:1-5:1 transition.<\/p>\n<p><a href=\"http:\/\/fromthegroundup.typepad.com\/.a\/6a01127918d1ef28a401b7c786699b970b-pi\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;padding-top: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px\" border=\"0\" alt=\"image\" src=\"http:\/\/fromthegroundup.typepad.com\/.a\/6a01127918d1ef28a401b7c786699f970b-pi\" width=\"485\" height=\"336\" \/><\/a><\/p>\n<p>We now use Civil 3D\u2019s corridor context-sensitive menu to \u2018Add Regions\u2019, Copy Regions\u2019, \u2018Match Parameters\u2019 and \u2018Region Properties\u2019 to add in the rest of the earthworks adjacent to the roadway.<\/p>\n<p>Personally, I have found that copying the initial region using the \u2018Copy Region\u2019 command and the changing the region\u2019s assembly using the \u2018Region Properties\u2019 to be a much faster way of applying multiple batter slope regions throughout a corridor. This is only due to the new Civil 3D 2015 feature of automatically reassigning similar targets (i.e. I don\u2019t have to go through and assign the hinge feature line targets repeatedly)<\/p>\n<p><a href=\"http:\/\/fromthegroundup.typepad.com\/.a\/6a01127918d1ef28a401b7c78669a4970b-pi\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;padding-top: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px\" border=\"0\" alt=\"image\" src=\"http:\/\/fromthegroundup.typepad.com\/.a\/6a01127918d1ef28a401b7c78669ab970b-pi\" width=\"244\" height=\"115\" \/><\/a><\/p>\n<p><em>Copy Region (2:1 to 5:1 batter slope)<\/em>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <\/p>\n<p><a href=\"http:\/\/fromthegroundup.typepad.com\/.a\/6a01127918d1ef28a401b7c78669b4970b-pi\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;padding-top: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px\" border=\"0\" alt=\"image\" src=\"http:\/\/fromthegroundup.typepad.com\/.a\/6a01127918d1ef28a401b8d10febc4970c-pi\" width=\"471\" height=\"268\" \/><\/a><\/p>\n<p><em>Region Properties changed to 2:1 constant slope<\/em><\/p>\n<p><a href=\"http:\/\/fromthegroundup.typepad.com\/.a\/6a01127918d1ef28a401b7c78669bf970b-pi\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;padding-top: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px\" border=\"0\" alt=\"image\" src=\"http:\/\/fromthegroundup.typepad.com\/.a\/6a01127918d1ef28a401b7c78669c3970b-pi\" width=\"469\" height=\"245\" \/><\/a><\/p>\n<p>What I love about this approach is:<\/p>\n<ol>\n<li>Once you have a few batters in place, sliding them around is a simple case of selecting a grip and sliding it to its new location (i.e. no dialogs or text editing). <\/li>\n<li>Should the mainline corridor move for some reason, that linked feature string we extracted &#8211; acting as a subsidiary &#8211; will ensure that the batter slope corridor remains linked to the roadway, and we now have a fully dynamic corridor that also offers excellent performance. <\/li>\n<li>Separating the batters from the roadway minimises the amount of regions required for the roadway corridor. <\/li>\n<\/ol>\n<p><em>Perspective view of a batter transition.<\/em><\/p>\n<p><a href=\"http:\/\/fromthegroundup.typepad.com\/.a\/6a01127918d1ef28a401b8d10febc8970c-pi\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;padding-top: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px\" border=\"0\" alt=\"image\" src=\"http:\/\/fromthegroundup.typepad.com\/.a\/6a01127918d1ef28a401bb082a6611970d-pi\" width=\"476\" height=\"304\" \/><\/a><\/p>\n<p>This is just the tip of the iceberg with regards to what the Subassembly Composer can do! Once you start to play around with it, you will soon realise that anything can be modelled within Civil 3D using corridors.<\/p>\n<p>Regards<\/p>\n<p>Andrew<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Coming from non-Civil 3D background, one of the first things that troubled me when migrating across was a simple earthworks modelling issue \u2013 \u2018How do I transition a simple batter slope from 2:1 to 5:1 across a range of x metres?\u2019<\/p>\n<p>I mean, this is something that is common practice within the industry,<\/p>\n","protected":false},"author":338,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[8,32],"tags":[],"class_list":["post-152","post","type-post","status-publish","format-standard","hentry","category-autodesk-2016-release","category-tips-and-tricks"],"acf":[],"_links":{"self":[{"href":"https:\/\/blogs.autodesk.com\/from-the-ground-up\/wp-json\/wp\/v2\/posts\/152","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.autodesk.com\/from-the-ground-up\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.autodesk.com\/from-the-ground-up\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.autodesk.com\/from-the-ground-up\/wp-json\/wp\/v2\/users\/338"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.autodesk.com\/from-the-ground-up\/wp-json\/wp\/v2\/comments?post=152"}],"version-history":[{"count":0,"href":"https:\/\/blogs.autodesk.com\/from-the-ground-up\/wp-json\/wp\/v2\/posts\/152\/revisions"}],"wp:attachment":[{"href":"https:\/\/blogs.autodesk.com\/from-the-ground-up\/wp-json\/wp\/v2\/media?parent=152"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.autodesk.com\/from-the-ground-up\/wp-json\/wp\/v2\/categories?post=152"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.autodesk.com\/from-the-ground-up\/wp-json\/wp\/v2\/tags?post=152"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}