AU Class
AU Class
class - AU

Building Reusable Subassemblies

Share this class

Description

With Subassembly Composer for AutoCAD Civil 3D software, users build custom subassemblies to drive their corridor models to the next level. But what about creating subassemblies that are useful across many projects? In this class we will demonstrate how to successfully parameterize a custom subassembly, complete with targets. We will also explore a 4-sided example that Sundt Construction, Inc., has found very useful in corridor modeling.

Key Learnings

  • Learn how to create a custom subassembly
  • Discover input and output parameters
  • Learn how to handle subassembly targets
  • Learn how to parameterize subassemblies for reuse

Speaker

  • Eric Cylwik
    Eric is the modeling engineer for Sundt's Transportation and Infrastructure division. Before working for the Civil division, Eric focused on adapting Building Information Modelings (BIM) from the office to the field for concrete. He now focuses on creating BIMs that highlight technology’s capability to enhance construction performance in the field. Focusing on infrastructure, Cylwik has been able to capitalize on parametric modeling to create construction-quality bridge, road, and trench models that are used for survey surfaces, machine control, quantity takeoffs, utility coordination, constructability reviews, and visualizations. Cylwik has helped Sundt procure over $1 billion of alternative delivery method projects. He graduated from Arizona State University with a degree in design studies with an emphasis in digital visualization. He is also a certified professional in several vertical and horizontal BIM and virtual design and construction software programs.
Video Player is loading.
Current Time 0:00
Duration 1:02:34
Loaded: 0.27%
Stream Type LIVE
Remaining Time 1:02:34
 
1x
  • Chapters
  • descriptions off, selected
  • en (Main), selected
Transcript

ERIC CYLWIK: Anyways, my name is Eric Cylwik, and I am a virtual construction engineer at Sundt Construction. How many people are familiar with Sundt or have heard the name before? Not many? A few of you guys. Okay, so some of the content that I'm going to be showing today I've shown before, but we'll cover that stuff briefly. And I must say I'm really excited to be here and just to see how many people have showed up and signed up for this class. The last time I did a class on subassemblies I think there was maybe 30 or 40 people. And so it seems like the concept is growing within the civil 3D user base, and it's really great to see. I think there's a lot of power behind those tools. And I'm talking about some of that power today.

So the class is titled-- Building reusable subassemblies-- and the whole idea behind this is creating, in this case, a single subassembly that allows you to go in and engineer your project. And it removes a lot of overhead associated with managing subassembly libraries and managing how all of your assemblies come together. So there's a lot of downstream benefits, and it reduces a lot of QA/QC that might go into building a subassembly library and then tweaking things from project to project.

I've noticed that when I go in and try to do something really detailed and hammer out a specific problem, I end up having to remake that for literally every single project. And since I'm a construction company, I work for multiple owners, right? And so even a TxDOT project will look just a little different than the past one. And so then I have to go in and rebuild the subassembly and tweak it a little bit and make it meet that project's needs.

And so we've really started to look at ways to take those subassemblies and make them parametric and completely flexible that allow us to reuse them on more and more projects. The goal ultimately being able to create content that's easy, quick, and ultimately brings the value that we need it to bring.

So today we're going to be talking about how to create a custom subassembly. In this particular case, we're going to be focusing on what I'll call a quadrilateral four-sided shape. A lot of the concepts that I'll be talking about today were actually created by a guy that works in our virtual construction department. And he is by trade a mathematician, so he thinks about things a little bit differently than I would like to think about them. But they're very different ways to solve a problem. They're almost formulaic in the way that he thinks about creating these models and maybe the most efficient way to do so.

So we'll be creating that quadrilateral as well as one other subassembly. We'll talk about how to properly handle subassembly targets, utilize input and output parameters, and weeded throughout this hour is going to be how does parametrize the subassemblies for reuse. So I'm going to start off talking a little bit about Sundt's background and how we got to where we are.

We are a construction company, which is quite odd that a construction company is using civil 3D and creating corridors of design content. I don't know too many other out there that are doing that particular approach. We're going to then create the custom subassemblies. We're going to talk about input and output parameters, targets, and ultimately again show how those are re-used. So based on the audience in here, I'm thinking that's probably about nap time, and I think that's it will look like in here in about 30 minutes. So Sundt's VDC background-- and this is a picture of a project that Sundt worked on in the Dallas-fort Worth area, and it was a really unique project. And we'll dive into that and why I chose this particular picture here in just a second.

But the Sundt's venture down this idea started in 2007. Our CEO went to an AGC conference and saw somebody present on BIM. And it was clash detection, right? What the commercial and vertical guys love, like, Oh, that's so cool. We got all this crap that we're trying to fit into the ceiling. Well, infrastructure is very different, right?

And so in between 2007 and 2010, we really figured out on our commercial and vertical sides, how to use that technology and where it was beneficial for us to use it. And then in 2010, they said, OK, we're going to take one of those guys and put them in Heavy Civil. And whether that group wants them or not, they're going to be there. And their job is to figure out how to make this technology work. And as Sundt started to do that, we really started to focus on taking those concepts of building information modeling on the vertical side and making them apply on the civil side, where are areas that we can identify where we're doing a lot of data re-entry or areas where we can create content once and use it throughout the entire life of the project.

And then in 2011, we started to get involved with Federal Highway Works Every Day Counts initiatives. How many people are familiar with those? A few of you guys. So there's actually some really, really great content out there from the Federal Highway Works Administration here in the US, and it's a program called Every Day Counts. And they select specific technology-focused initiatives. And they really create a lot of training content. They'll create template libraries. They'll raise awareness about it.

But one of their focuses for the past two Every Day Counts rounds has been 3D modeling, or what they're terming 3D models, in Engineered 3D Models for Construction. And the idea is they want to look at, holistically, how a data model can be used on a infrastructure site throughout the life of that structure, so from early design all the way through demolition. And they have a whole bunch of webinars that you can stream at any point in time. I'd highly recommend those. And Sundt was involved with those as well as some of the regional presentations. And it seemed to be quite a way to kind of generate some attention and drum up some noise about this topic.

So here's an example of one of Sundt's projects. This is from 2011, I believe. And this is the Sellwood Bridge in Portland, Oregon. Is anyone here from the Oregon area? One guy. What's that?

AUDIENCE: I work right under that bridge.

ERIC CYLWIK: Oh, it's a beautiful bridge, huh? So this bridge has a crazy background. When the last time they went around and rated the structural integrity of all the bridges in the US, they gave it a scale of 0 to 100-- 0 being your bridge's falling over at the moment, 100 being your bridge is brand new and perfect and well-suited for its environments. And when they rated this bridge, it received 2 out of 100.

There were spots on this bridge where there was a pedestrian walkway underneath, and they literally had metal band-aids on the bridge holding the concrete together. This bridge was failing immediately, and it was because they built it in the mid-1920s. And soon after, they realized that there was a landslide on the west bank, and so the entire life of the bridge the thing had been crunching. And so it was to the point where it's failing. They limited the gross vehicle weight to 10,000 pounds. And so if you had a heart attack on the other side of the river, and there was an ambulance right across this bridge, they had to go about four miles in either direction.

And on top of that, the people in Portland, for whatever reason, love their bridges. And I don't know if this is a thing. I'm from Arizona, so we don't really know what water is or what bridges to do. Maybe it's just because I'm from there, and I don't have a love for bridges. But in Portland, they have a crazy bookstore called Powell's Books, and they love that store. And in that store, they have a shirt with all the bridges from Portland on it. And it's like, wow, you guys love your bridges.

And one of those bridges on there is the Sellwood Bridge. And so this bridge is an iconic structure for them, and they know they needed to replace it. But it's also the only way to cross the bridge within a few miles. So Sundt, they actually won an alternative project delivery method called CMGC, where that's a qualifications-based process for the contractor.

So some put together a bid, and we did a whole bunch of homework. We actually went out and paid a subcontractor to create a 3D laser scan of the area, created a point cloud, and then from that we modeled the existing structures-- over here in the red and some of these colored objects, the point cloud in this image on the left is in white and black over there on the right. But it allowed us to sit in our office in Phoenix, Arizona and come up with a construction plan that we knew would work because we knew the exact spatial dimensions that they sat out there while we were planning the work. So when it came time to propose this to the owner, we created a semi-photorealistic environment on top of that point cloud and then use that to express our construction intent.

So if the superintendent was talking about, well, we're going to take your bridge that was built in the mid-1920s. We know it got a 2 out of 100 on its last rating. But we're actually going to disconnected from its substructure, and we're just going to move it. That way we can build a new bridge. We think that's a lot easier. It'll save a lot of time. And if you have somebody talking about that who's from Arizona, you're going to think, this guy's an idiot. He's never seen a bridge before in his life. You can't move a bridge like that.

So we put together this environment in an animation. And we're going to build a new approach bridge over here. This is the west side where the landslide is actually happening. We're going to build a new approach bridge, and then we install some temporary shoring and then a translation beam. And we actually disconnected the entire 1100 foot long steel structure from its supports and then moved it 30-60 feet to the north. And then we created this animation that pauses shows traffic phasing at every single major phase of the project and how they were going to move through that.

And ultimately, after we were selected for this project, the project manager narrated a version of this, and it ended up on YouTube. So that way all the residents can be aware of what's going on in their neighborhood. And this was huge for the owner. And this was huge for Sundt. The ability to get in and use technology like this and explore options and validate qualitatively and quantitatively what we wanted to do with this process was huge. And so it went over really well. And they started to say, well, maybe this BIM stuff is actually pretty good for Heavy Civil environments.

And so we started to dive deeper into the technology. And we're at the point now where we're trying to figure out how to solve some more specific engineering tasks. We've discovered pretty early on it's great at solving these macro concepts of, well, how are we going to move this bridge? But some of the more specific things, that's where it gets really tricky.

So that was the pre-visualization of the bridge slide. And this is the actual time-lapse of the bridge slide. It only took 8 hours to move 60 feet. So we presented it on that in about January of 2011, and I think the bridge slide happened in about January of 2012. I believe. It was a pretty cool day and a great project to be able to explore this kind of technology in this kind of use.

Then from there, we started to explore. Well, now that we've got this kind of technology, what can we do with Civil 3D? This is a highway project. We have a whole bunch of roadway structures, started to go in and make some utilities to see what that look like. We started to make some parametric MSE walls, which was the class that I had previously presented on subassembly composer. And we started to get in and do all of these things-- started to pull out information for automated machine guidance, started to review some design documents this way, and really started to look at some of the detailed questions that we run into during construction and use the technology to solve those answers.

Another early example that we got into is the original picture that I had up here, where there is some arches on a bridge. And this is a peeled back version of that. We have the concrete here. It's very transparent.

But the structure of this arch was designed to be an extremely long span and to be pre-cast about half a mile away from the actual location where this arch was going to land. And so it was a pre-cast post-tension network arch bridge, and to the knowledge of the engineer, I believe this was the first of its kind anywhere in the world. And it was a really unique structure. And it was a hard bid project.

So Sundt really needed to ensure that we weren't over extending our risk-taking by saying we could actually build this structure. It's not like we go to a historical cost database that we have and figure out what our production rate for this kind of an arch is, right? And so we went in and created and modeled every single bit of rebar in there, every single embed, and all the post-tensioning as well. And so this model that we're looking at is a mash up of Revit, Civil 3D, and then we're looking at it Navisworks, and some other components as well.

But it really allowed us to get in and say, well, instead of having an S1 stir up from point A to point B, they had S1, S2, S3, S4, all the way up S25. And oh, by the way, S5 is rotated 4.76 v I mean, this stuff was so exact and so precise because it needed to be in organic shape and be able to span this huge river that they had in the middle. And as a result of this design in the engineering, they needed no false work for this entire bridge, would cast the columns in place and then essentially just set the arches on those.

And so as much as I would like to say we thought we would bend everything on this project to reduce our risk, we didn't think about bending this guy. So about a week after these arches open, they're 163 feet long, about 45 feet tall, and they're 4 and 1/2 feet thick. And this BMX daredevil guy got up there and rode the arches, which was definitely not something that we had built into the model. So we weren't able to analyze his risk and build in proper contingency.

So you can kind of see the river down here. I think the river is about 100 feet wide. And it's probably up in the air about 160 feet here. So as much as I will say that we like to use technology to the fullest, we still don't capture everything. So don't let me misguide you here. If you guys Google 7th Street Bridge BMX, you can watch this full video, and there is definitely some police action at the end.

Anyway, so getting into the meat and potatoes of this class, we are going to start to go in and build a custom subassembly. And one thing that I will note before we really get into this is class was marked as intermediate, and so my kind of expectation of the audience is that you guys have at least opened up some assembly composer, you're familiar with how to use it, what the Workflow Designer looks like, and some of the parts and pieces. So I'm not necessarily going to explain every single step, but I will king of go through things.

And if you guys have a specific question or missed something, I am happy to answer questions as I'm presenting. Although it seems like you guys have to have believed everything that I've told you so far. So I think we're off on a good start. So let me open up subassembly composer. Any questions so far?

AUDIENCE: What software did you use for the animation?

ERIC CYLWIK: For the BMX?

AUDIENCE: The animation you showed of the phasing from the bridge?

ERIC CYLWIK: So the first phasing where we showed the traffic and stuff? So the question was, what software did you use for the Sellwood Bridge phasing animation? And that was a weird mash up 3D Studio Max for some of the structure and site components, Revit Structure for some of the bridge components, Civil 3D for some of the roadway, and then Navisworks for the actual time-- for the portion of it, and that was link to a P6 schedule that P&M and created. So it ends here.

OK, perfect. And then some of the arrows and stuff were put on afterwards in After Effects Those components are a little bit tricky and not very 3D friendly. Any other questions? Perfect, we'll get rolling.

So the first thing we're going to do is create this quadrilateral shape. And again, it's a really basic way to create a four-sided object that can respond to different parameters. So we'll call this AU Quad Basic to start with. So I'm just naming the subassembly on the packet settings tab, and I'm going to change its default value to write. I have had issues if I don't give it a default value on the side parameter. Sometimes I have some issues downstream with that.

So I'm going to go through and create all my parameters first. I would like to say that this is the ideal workflow, but obviously, you don't know how many parameters you're going to need sometimes until you get into it. But in this case, I cheated and built a shape already. So we're going to call this one top slope. And one thing that I will note as well is, one of the bugs in some assembly composer, if you name an input parameter or an output parameter and then later change its type to something else, it does rename it. So soon as I click off of slope, it renamed it the parameter 7. So as you guys are working on this kind of content, please note that will happen.

So we want a top slope. We're going to need a top width for this quadrilateral. And we're going to need an inside height. And I will explain inside vs outside and all that fun stuff in just a second. This guy is going to be a slope.

So I'm just creating all the different parameters that we're going to need in order to make this one shape truly parametric. An outside slope, and then we're also going to need a bottom slope.

One other thing you'll learn is never delete parameters unless you've saved it recently. Subassembly composer does crash quite often when you're deleting a parameter. So I'm going to add a sequence to my workflow flowchart here. I'm going to open it and start to add points. I'm going to add also two more parameters over here I'm going to change in the string.

One thing that I found extremely beneficial is to always create string parameters for any codes that you're going to pass to shape links or points. If you hard code it, they are extremely difficult to remove, and you end up having to mess around with a lot of your styles in Civil 3D. So I always make a parameter so that way if I don't want the shape code to show for some reason, I can just change the parameter in Civil 3D live and have it as a no-display.

So I'm also going to do a points code, a links code, and then a shape code. For the points code, we're just going to call it basic for right now. The links code will be pave. And the shape code will be pave. We're going to change the top width to 12 feet, the average width of a lane here in the US. And the inside height, we're going to change it to 0.5 feet.

So this 0.1 in this point code's field, I'm going to type in points code. So that way I have the ability to again change that point code later live in Civil 3D. For this point, too, I'm going to change it to a slope and delta X, so that way it's going to start from 0.1 and go the width of I've identified as top width. And then we're going to change the-- we want this top one as top slope for the slope, and then for the delta X we're going to do top width.

After that I'm going to hit fit-to-screen. And what did I do here? Top slope, I'm going to change this to a negative 2%. As well as the bottom slope, I'm going change to a negative 2%.

So now we have 0.1 and then 0.2 is delta X of what I've entered for the top width, and the slope is being driven by that top slope parameter. I'm going to add another point, and this time I'm going to choose slope and delta Y. And I'm going to go from 0.1. And for this I'm going to go for inside slope. And then the delta Y is going to be the negative of the inside height value. I'm going to change this inside slope to negative as well.

And for whatever reason, on this inside slope, I've noticed that sometimes if you have a 0-1 slope entered and you have a negative value in your inside height, sometimes Civil 3D throws an error, saying that they both need to either be positive or negative. So if you change your inside slope to a positive value-- I just entered one-- and then you change it back to zero, it clears that error. So I don't know exactly why or specifically when, sometimes that works sometimes it doesn't.

So I just change that to a 1, and then I'm going to change it back to his 0. So that way we have a completely vertical face on the inside. And then I'm going to add the intersection point as the 0.4. And again, I'm going to give this points code for the code. And I'm going to do that for the other ones that I forgot here.

And then this one is going to be intersection 2 points in slope. And so I'm going to say start from 0.2 and then go at a slope that I've identified in the parameters, or the user has identified in the parameters as outside slope. And then I'm going to say start the other intersection line from 0.3 and go at a slope of bottom slope. And then here, we need to tell it to extend slope 1, slope 2, and then reverse slope 1. And so now it's started to create 0.4, which is the intersection of this 0.3 and 0.2 at those slopes.

And so I will say right now, if you guys are completely lost and have no idea what I'm doing in subassembly composer, I would encourage you to spend a little more time in there. But I would also encourage you after this class-- they are recording this. And there are some classes in previous years by, I believe her last name is pronounced Mercer, Katy Mercer, as well as Peter Funk on some of the more basic functions of subassembly composer and exactly how to use these features that I'm using. And they start off with a much more basic example of how to get into that. And again, since we had this class marked as intermediate, I'm assuming that everybody had some sort of familiarity with it. But there is a way to kind of catch up and watch some other free content from AU. So now we have those four points in there. If I go in and I change the top slope from a negative 2% percent or a negative 50 and we'll say positive 2%, 0.2 updates. And then 0.4 stays the same. But then if I go in and I change the outside slope from zero to one to one to one, you can see that those points are kind of responding respectively to those parameters.

So I'm going to go in now and start to add links. And a lot of people will use the automatic link creation. When you add a new point, there's an option to automatically add a link to the previous one. Once you get into some of the more complicated subassemblies, it's a much better approach due to some kind of buggy-ness in the corridor modeling if your links are all connected from start to finish, if that makes sense.

So if you have a closed shape in Subassembly Composer and it's an advanced shape, you will want to start and either work clockwise or counterclockwise all the way around your points. So I tend not to use the automatic link creation because of that fact. Once something crosses the base line, for example, it'll explode and be a lot more obtrusive in your viewport if you don't follow that method. Yeah--

AUDIENCE: Is that just for the links, or also for the points?

ERIC CYLWIK: So the question is, is that just for the links or also the points? And that is just for the links. There's really nothing you can do when you cross the base line and the actual feature lines kind of scatter a little bit. But you can complicate it when it's following a link across the center line by having them in a non-linear order.

So I'm going to go in and add these links now. And I'm going to again put in the link codes area. I'm going to call that parameter Links Code. And I'm going to start out at 0.1, go 0.2. My next link is going to go from 0.2 to 0.4. And I'm going to give it that proper code-- and from 0.4 to point 0.3, and then from 0.3 to 0.1, and Links Code.

And then I'm going to add the shape in here. And I'm going to give you the code of Shape Code. And I'm going to add the four links.

And so now we have this quadrilateral, again, a really mathematical way to approach a four-sided shape. And as we get in, we can start to mess around with some of these parameters and say, switch this back to a negative 2%. Or we can change what we're calling the inside height from 0.5 to 2. And that shape expands.

Let me make this a little bit larger here. As far as some of these names that we've started to use, the point of origin is always going to be what we call the top inside point. The top link extending outward from there is going to be your top, which contains the top slope and the top width.

And then after that, this down to 0.4, that 0.4 is determined again by the outside slope, which is the far outside of that subassembly and then also the bottom slope. And that bottom slope is labeled as such. And then the inside, that is controlled by the inside height as well as the inside slope.

So if you think about this, we have top. Top is top. Outside is the furthest point away from the origin. The inside is the closest point to the origin of the subassembly.

And we can go in and mess around with any of those. So if we want to have an inside slope of one or even three as well, it would start to kind of do that and respond to that. So it's a really great way to get in and make a pretty parametric part kind of quickly off the bat.

So I'm going to save this. And then we're going to import it into Civil 3D. So I'm jumping over to Civil 3D 2016.

And I'm just in a brand new drawing. I'm going to make a new assembly. And for the code set style, I'm going to make sure it's all codes. And I'm going to place that assembly.

I'm going to make a new pallet over here on the tool palette. How many people are familiar with this to a pallet on the left? All right, perfect-- just wanted to make sure before I get into this and start pressing buttons around here.

So we'll call this one Class. And I'm going to import that subassembly. Yes, based on the name of those other folders, it did take me to test runs to figure out exactly how to make this not crash during the demo. And now that I've said that, it's probably going to crash.

So one thing that I've found really helpful is as soon as I import something into the tool palette, I usually right click on it and hit Refresh. Because until you hit that Refresh and actually have it generate that image, it doesn't pull in that packet file and import it. So as soon as you hit that Refresh button, it runs through that process. And if you going to have issues placing your subassembly, it'll actually notify you then through the Event Viewer.

So now I'm going to place this subassembly. And I'm going to place it four times for a roadway section that is a TxDOT favorite. So this first one, I'm going to call this AC01 the first lift of AC. I'm going to leave the shape code as Pave. I'm going to change the inside height from 0.5 to two inches. And I'm going to change the outside slope to zero.

And so again, this is four copies of that same subassembly that we just created. And on this one, I'm going to change the shape code to Pave1. And you'll see that shape code update in real time. I'm going to change that outside slope to zero. And I'm going to change the inside height to four inches, giving us a total AC thickness of six inches and two lifts.

I'm going to click on this third one down. I'm going to call the shape code Base. And again, that color will update live in the view port. The outside slope I'm going to leave at a one to one. I'm going to change the inside height to one and a quarter foot. And for the top width, we're going to make it 12.5.

And so one thing that's in the standard that this is kind of typical assembly is based on is that from the top right outside corner of the AC, they'd project an imaginary slope down at a one to one to figure out where the top of this flex base material is. So that's why I have an extra 0.5 width on this particular material.

And then again, that outside slope is one to one, which is perfect for this particular material. And this bottom one, we're going to call Sub-base. And I am going to change the inside height to 0.5, which is perfect.

And now since we don't have the full on version of the subassemblies yet, the easiest way to figure this out is to measure the total width of this bottom layer, which is 13.7755.

AUDIENCE: [INAUDIBLE].

ERIC CYLWIK: What was that? Oh.

AUDIENCE: You [INAUDIBLE].

ERIC CYLWIK: Oh, yeah. I was going just for the x there. And then I'm going to change the outside slope to zero. And so now with a single subassembly, we have something that looks pretty parametric from the viewport, right?

And Civil 3D does have some components built into it that have similar behavior to this, right? This will be a little bit more flexible than that. But what we're going to start to do now is explore this idea of what makes these much more usable and can make them much more usable than what's stock inside Civil 3D.

And so to give you some examples of how we've used them at Sundt, this is the project that kind of inspired this particular subassembly and again, was created by Ryan Haines, the individual that was modeling this project.

And so this is the full width of the subassembly up here. This is for an airfield project. And it's about 230 feet wide, I believe. And then over here on the left side, we have an under drain that's going to run along the runway.

But everything in this one subassembly is that same quadrilateral that we are building right now. And then to look at, again, these are all that same subassembly. So the mathematician created a single problem that solves everything. So kind of that theory of everything, right, that movie-- this is what that subassembly's hope was to accomplish, right?

And so you can kind of see where he used multiple versions or multiple instances of the subassembly where you had a material that had just a little extra width for whatever reason. So he'd go in and have this stick out just a little bit. And then he has these three instances of that same subassembly to help answer some of these questions as far as what that shape looks like.

So if you start to think about subassemblies as kind of a tangram approach, it sometimes takes a little bit longer to build the assembly the first time. But troubleshooting after that is a million times easier, right? We now have one subassembly that drives literally everything on this project for the proposed content.

AUDIENCE: So for something this complicated, there would be so many subassemblies, you must keep very good track of the name of them.

ERIC CYLWIK: The actual names in the property? Yes, absolutely. Yeah. So he has a very clear name of, you know, this is the GCABC Part One, this is the GCABC Part Two, and that kind of stuff.

And that, we'll also kind of hound in on that a little bit later. Because one of the things that's really great about these is these sections are all parametric. So if he changes a slope up at the top, this whole thing raises with it. And the widths will change. And he's constrained it by some of these outside slopes. So he's got a lot of information automatically built into this.

And so how many people are familiar with subassembly targets? I'll come back to you in just a second. Is anybody not familiar with subassembly targets? OK, so one, or two, or 10 people. All right, this guy had a quick question, though. Sorry.

AUDIENCE: If you've got different subassemblies but they have the same color and the same reaction, does that mean that's the same material?

ERIC CYLWIK: So yeah, these ones will represent that same material, in this case what's called a--

AUDIENCE: But those are multiple subassemblies to represent that same material.

ERIC CYLWIK: Absolutely. And that's a huge advantage as to why I never hard code codes, hard wire codes into the subassembly shapes. Because I did that really early on. And then my standards changed, and I went to update them. And I kept on having these white, solid shapes where my subassemblies were.

And I was like, what the heck? I don't have any styles in here for this. I duh-duh-duh. And then I went back into the Subassembly Composer. File and opened it. And I had manually typed in engineer fill. And there was no shape code style for engineered fill, so it just dropped a white box in there.

And so because of this, he uses that same subassembly and then in that Properties window, just changes the name of the code.

AUDIENCE: So when you calculate quantities with this, will it group all the same material together? Or does it give you a different volume for each one of the subassemblies?

ERIC CYLWIK: So the question was, if we ran a quantity report on this, would it group all of the same subassembly shape codes together and spit out a single report, or would it generate reports per subassembly? And the answer is per material. So it would automatically group all those things together and spit out--

AUDIENCE: So it knows it's the same material.

ERIC CYLWIK: Correct-- it doesn't know it's the same material. And then it also allows you to do a lot more flexible things with your styles and the way things are displayed. Any other questions so far? Perfect.

So then some assembly targets are the idea-- I had this really cool video that I'm going to show in just a second. But before that, I want to preface this. I don't know if you guys know Angel Espinoza. He's been around the Civil 3D community for a long time, very brilliant guy.

And I was telling him about this cool video. And he was like, yeah, I saw that. And he was like, well, when I explain that concept, I just take a bungee cord. He's like, and if you think about a subassembly target, it's kind of like taking a bungee cord.

And so we identified a width of 12 for our width of this lane. And he said, if you think about it, you can tell the bungee cord it's normally 12. But you can stretch it horizontally, and it makes it larger. Or you can shrink it, and it kind of curls up on itself. And then you can also would manually override the elevation. And so the idea of targets is that you can have a standard, and then it can deviate from that standard when it's fed that information.

And so this is a video of a recent research project where they're calling it face mapping. So we have a guy who's up here talking or making facial gestures. And then you have a guy down here. And they're using a Microsoft Kinect to build a 3D model. And they're projecting his motion onto this guy's 3D model. So even though he's not talking, it looks like he is, right?

And so my idea behind this is that even though you have a subassembly that is a perfect square, you can override it so that maybe that shoulder changes its slope as it approaches an intersection. You can do that. You can take one thing and kind of make it look like the other if you feed it the right information.

So we're going to go back into the demo now. We're going to add those target override potentials into our subassembly. So this is that same subassembly we were just in. And this next part is actually pretty easy.

So we're going to go to the Target Parameters tab in Subassembly Composer. And before I do that, I'm going to go into the packet settings and give this a new name. Call this one Targets, and save it as a new subassembly.

And then I'm going to go to the Target Parameters tab. And I'm going to make two targets. One of them is going to be an elevation, and one of them is going to be an offset.

And as soon as I do that, you'll notice that in the preview window, there are now these little things that if you click and drag on them, you can move them. And it also updates the preview value down here. So I'm going to name them Quad Elevations. That way I kind of what target I'm looking at. And then also this one's going to be Quad Offset.

And so right now they're not linked up to any of my geometry. So the offset can do whatever it wants. But the geometry is not going to respect that.

So what I'm going to do is I'm going to go to 0.2. And one approach-- so as much parametrics as I would like to build into this, you have to lock it down at some point so that way there's some sort of consistency.

And so we decided that the only target you would be able to use would be the top outside corner. So that way you would kind of drive that top slope. And then you can kind of-- there's some other features you could build into this to kind of drive the bottom slope as well.

But we stuck with that top outside slope. So we're going to specify that the 0.2, which is again a slope and delta x option-- we're going to change the offset target, which overrides the delta x to this Quad Offset parameter that I just created. And then immediately underneath that, we're going to tell it that the elevation can be overridden by the Quad Elevation.

So now as I come in and move this Quad Offset, that lane width automatically changes. And the distance where that P4 is, technically the elevation of P4 is changing slightly here. And as I come in and start to move around the Quad Elevation, you see how the shape starts to distort. And it respects those things that we've told it to do and also kind of keeps all of that stuff in line.

And as somebody pointed out earlier, this is always going to be able to generate quantities, pull out automated machine guidance services, and all that kind of fun stuff as well. So I'm going to make these look a little bit more close to what we had it looking like earlier. And then I'm going to save this again. And then we're going to jump over to Civil.

And in the same file, I'm going to make a new assembly. And I am going to import that new subassembly that I created. And I'm going to tell it to refresh the image. And then I'm going to run through really quick and rebuild it to make it look like exactly the previous assembly that we had built.

AUDIENCE: The refresh image thing, is that new in 2016?

ERIC CYLWIK: No, that's in the least all versions since 2013 that I know of. Mhm. So again, I'm going to call this first top one AC01. And I'm going to give it the outside slope of zero to one. And I'm going to change the shape. The shape code's find at Pave. And I'm going to change it to two inches.

This guy, I'm going to change it to Pave1 for the shape code. The inside height, I'm going to tell it four inches, yielding a total height of six inches on this AC. The outside slope is a zero to one.

And then this guy, I'm going to make this a base. Outside slope, leave it at one to one. I'm going to change this 12.5. And for the height, I'm going to change it to 1.25.

And then this is going to be sub-base. And the top width was 13.7755. And then we're going to go outside slope of zero.

And so now we have that same subassembly. But what we're going to do now is I'm going to create a sample alignment. And we are going to show how that target allows you to flex things.

I create my profile view, so that way you can create a profile to actually be able to create a corridor. OK, and then I'm also going to add some offset alignments to this. So I'm going to say a 12 foot offset on each side. And then I am also going to come in and add an area where there's a linear transition that overrides what the default width is for this particular case.

So then we have the roadway. And these white lines are going to represent where that 12 foot, which is the default width of this particular assembly. And then where it's overridden here, that should extend out for a bus lane or what have you. And then it's going to come back in.

So now I'm going to make a corridor and use the target option that we have for the assembly. All right, 25 feet is probably actually OK. And so what I'm to do is I'm going to say AC01, which I named. And I forgot to name the others. I will name those in just a second.

I'm going to tell it that hey, the width will normally be 12. But if when you're building this particular applied assembly, go check for a target. And if it finds that target, it's going to say, how far away is that target? And it's going to override that top width value to whatever that is.

So it I'm only going to hook up the target for this top AC level. And I'm going to hit OK, OK. And then it's going to build. And so now we can see that, hey, it's building. And this is that 12 foot width, which is perfectly tying in with where the corridor is showing that feature line. And then after that, it jumps out.

But if I come in and start to look at-- grab a sample line of this corridor, switch it to the all code style, and we take a look at it, there's the 12 foot width typical thing based on what the assembly is showing. And then if we come in and look at the area where we've overridden the width, we'll notice that only that AC top layer comes out.

Well, that's not quite what we want, right? We want this to be a little bit more respective than that. We want to be able to go in here and say, well, I also want that second level of AC to come out. And I also need the flex base as well as the CSB layer to come out.

So now we've done that. And you'll see that those lines right at 12 feet have disappeared. And they've all started to respect that offset.

But there's another problem with this. If we come in and look at this, is that what our typical section looks like? No. And that sucks. Because now you have to go in, and you have to then do another offset line that somehow matches that extra 13.7755 width. Well, that's awful.

And another thing that sucks about that is once you get into more complex projects, you have to spend, like, hours mapping targets and clicking on the right line versus this. And then if you change the line, it automatically forces a corridor rebuild. And there's no way to turn that off. So then you spend a whole bunch of time waiting for corridor rebuilds when you're not even doing anything with that line or you didn't know that you were. And it's just-- it's a pretty bad mess.

So what we can do from here is we're going to start to play with input and output parameters. Because if I create a target and that top one is no longer 12 feet wide, Civil 3D has the ability to say from the top one to the one below it, hey, I'm not 12 feet. I'm actually 13.721 feet. And then that one will respond and say, hey, I'm actually 13.721 feet. And it can pass it on downstream.

So then what ends up happening is we only have to make one target and map that one target. And it automatically updates all of the corresponding subassemblies. So we are going to go do that after I make sure I'm not skipping over anything in my PowerPoint.

And so input and output parameters allow you to really get in and play with some of the geometry in a kind of predefined manner, right? So I mentioned that the AC level to the flex base level has an extra width offset of one to one of whatever the height of that AC is. And that's a constant offset. So we can go in, and we can address that through these input and output parameters.

And I'm going to go through and set that up on this quadrilateral. And then I will encourage any of you that are thinking about leaving to stick around for immediately after that. I'm going to a subassembly that I think is pretty unique. And it's going to complement this and really make this whole process kind of make sense and be really, really, reusable for anything that you might be getting into.

Does anybody have any questions so far? Any complaints? Perfect. That's what I like.

OK, so we are going to go back into Subassembly Composer. And I'm going to go again into the Packet Settings tab. And I'm going to change this from targets. And we call this Outs to imply that this one has outputs.

So for those of you that aren't unfamiliar with Subassembly Composer, the reason I keep on saving new versions of these is not just to roll back if a crash happens. But you can actually, if you want to re-import the same subassembly into Civil 3D, you have to completely close Civil 3D, and reopen it, and then re-import it. And it's a nightmare.

So I'm kind of sidestepping that by making a whole bunch of different versions of the same subassembly. So my modeling practices normally are not this shady, I promise.

AUDIENCE: So if you find a mistake in your subassembly, you can correct-- that's the process, you have to feed it back into Civil 3D?

ERIC CYLWIK: Great question. So the question was, if you have find a mistake in your subassembly, how do you update that in Civil 3D? And you do have to go through that process of closing Civil 3D, reopening, it and re-importing it.

And there's quite a bit of documentation on it, because it is such a pain. And it's not, like, ever obvious. You're not going to be like, oh, well, I obviously need to close Civil 3D, and delete this from the tool palette, and then reopen it. And before I execute it in a drawing, I need to import this and overwrite the old one. Like, that's just not obvious, right?

And there's good reasons as to why there is that limitation. So I'm not trying to sound like I'm bagging on it too much. But there's documentation out there if you look on how to replace a subassembly in Civil 3D.

AUDIENCE: So for the assembly you've created, now once you update, you'll re-import that in, update your assembly, and put it into Civil 3D.

ERIC CYLWIK: Yeah, so there's limitations to that. So I will say, you're not allowed-- so let me think of how to phrase this. So the question was, will it always update your subassemblies in the assembly? And there are caveats to that.

You're not allowed to add a parameter. So you can't go to the Parameters tab and add a new parameter called Shape Code Two. So in your DWG, it actually saves kind of a dummy version of the information that you've entered for that subassembly.

And so if you make a new parameter, it breaks that link. And that dummy no longer works. And you actually have to then delete your subassembly and start over with it in that drawing.

So there are some caveats to where you can't add new targets. You can't add new parameters. But other than that, you can rename your default properties. You can go in and add new variables, which I'm not showing here today. But there's some other things you can do, but there are hard limitations, as you can't edit parameters.

AUDIENCE: So if you make a new subassembly, do you instead of making your full-blown corridor or your full-blown assembly, do you, like, test it a little bit so that you don't have to go back and recreate the whole thing over and over again?

ERIC CYLWIK: Yeah, absolutely. So the question was, do I go in and test a subassembly before I re-import it so that way I don't have to go in and custom create an assembly every time? And absolutely.

Another thing that you can do is you can actually-- this is, I think it's a somewhat not known feature. But if you click on the actual red Assembly tick mark in your viewport, you can click and drag it onto your tool palette. And then that will travel with its subassemblies from project to project.

So like, when we start a TxDOT project, I have a library of typical TxDOT sections that we have. And I click, and drag it, and drop it into my tool palette for the next one. So I literally click it and have a 80% correct typical section for those projects as we approach them.

Does that answer your question?

AUDIENCE: When you say a TxDOT project, what does that mean?

ERIC CYLWIK: The Texas Department of Transportation.

AUDIENCE: Thanks.

ERIC CYLWIK: Yes, sorry. Sorry about that. Texas is just way too long to say-- Department of Transportation, yeah.

AUDIENCE: Are those files downward compatible?

ERIC CYLWIK: Sorry, say that again?

AUDIENCE: Are most of your files downward compatible?

ERIC CYLWIK: They are upward compatible. So if you work on it in 2015, it works in 2015, 2016, and potential future ones. It is not backwards compatible, because they're continuing to add new features every year. Yeah--

AUDIENCE: I had created a bunch of subassemblies for different clients. And I'm trying to figure out the best way to share those easily. Right now, I have to [INAUDIBLE].

ERIC CYLWIK: So the question is, how do you share easily subassemblies with different users or with different entities? And I'm actually going to bench that question. I want to be able to get through all this content.

It's extremely difficult. Wisconsin DOT does have some documentation on a script that they've written that allows their-- so Wisconsin DOT, for those of you that don't know, has standardized on Civil 3D. And every week, or month, or something like that, they push up new subassemblies to all their design consultants of their standards.

So they have some documentation on how to do that. And it's a really great reference. Come up and speak with me afterwards if you'd like some contact info for somebody that can hook you up with that.

So we are going to go in and add some output parameters. So I'm going to make a new sequence over here. And we're going to call this one Outputs.

And I'm going to go to the Input Output Parameters tab. And I'm going to use my little cheat sheet here. And I'm going to add six more parameters. And I'm going to change all their directions from input to output in this little window.

AUDIENCE: What's the difference?

ERIC CYLWIK: So an input parameter something is that a user specifies. An output parameter is something that's created at run-time for each applied assembly as the corridor is moving along. So we'll see here in just a second exactly what that kind of looks like.

So we want these last two to be slope here. So you'll notice I'm almost making an exact copy as far as the names here of what the input is. And the reason that is is because it allows us to then take information out of this subassembly and feed it into the next quadrilateral subassembly.

So some of the stuff that was in those sections that Ryan created for that airfield project, you'll notice that things started to-- oops. Some things would automatically slope together. And that's how we accomplish this.

Uh-oh. It's not liking me right now. There we go. OK, so I accidentally added an extra parameter here. I'm not going to delete it, because I think it'll cause a crash. But just know that that shouldn't be there. Pretend it's not there.

OK, so now I've created all these output parameters. And the thing we need to tell the Subassembly Composer to do is to actually go in and assign a value to those. So one thing that's kind of neat about Subassembly composer is it's actually very closely linked to .NET programming.

That's kind of Microsoft environment. So you could actually get to some pretty intense programming things that have been set up and kind of already predefined in some of those libraries. And so they've also kind of extended that specifically for subassemblies.

So one thing that's really helpful is I want to identify this bottom slope here. And so I'm going to say 0.3. And then I'm going to tell it, I want to say, slope 2.4. And the syntax is documented online if you hit F1 after in Subassembly Composer.

But what this is going to do is it's going to calculate the slope from those two points and store it in this output parameter. And the reason is so any time I'm dealing with an output parameter, I always generate it from the geometry even though theoretically I could go in here and say, well this equals the bottom slope input.

Well, that's not always true. Because there's going to be moments where it's overridden by that target or maybe something else happens to that subassembly based on constraints that I've added. And that's not the exact input. So I kind of have the basis that every time I'm doing an output parameter, it's always calculated from geometry after the subassembly is built.

So for this bottom width, I'm going to say P4 dot x minus P3 dot x, which is essentially the offset of P4 for minus P3, which is just a really quick and easy way to get the actual distance between the two on just the x-axis. And all this part here is documented in the handout. So as I go through these formulas, don't get too bogged down with them.

But P3y minus P1 dot y-- this is supposed to say outside width, which would be P4 dot x minus P2 dot x. Top slope-- P1 dot slope to P2. And then the last output parameter from this one is the top width. And that's going to be P2 dot x minus P1 dot x.

OK, so I am going to save this subassembly as this AU Quad Outs. And then I'm actually going to make a new Subassembly Composer instance, so that way I can start a new subassembly. And I'm going to go through this one a little bit fast. And I'm going to use switches, which is a little bit different than I think most people would hope for.

Another thing I'm going to do also is I'm going to go to View, Define Enumeration. And then enumeration is a list. So that way the user has to select from the list. So instead of being able to enter any shape code you want, you can create an enumeration and limit them to maybe just three shape codes based on your Department of Transportation standards or something like that.

So we are going to create a enumerated group called Math Op. And the first one is going to be Add. The second one is going to be Subtract. This one is going to be Multiply. And the last one is going to be Divide.

And we're going to hit OK. And I'm going to save this before it crashes. And we're going to change this default input side to one. And then I'm going to create a few parameters here.

So this first one is going to be A that the user can enter. The second one is going to be B. This one is going to be called Math Result. And it's actually going to be an output parameter.

And this one is going to be called Math Operator. And it's going to be that enumeration that we created. So it's going to rename this here. And the default there is Add. And then we're going to have a point code, again, because I hate manually entering point codes.

So what we're going to do is we're going to define a variable. And we're going to call this result. And it's going to be a double. And the default value is zero.

And then we're going to have a switch. And so this is just a way to look at many potentials and select one. And then after this, we're going to have a defined variable. We'll work on some of this here.

And this defined variable, we're going to say that the-- how do we want to set the variable value here? Set variable value. And so this is kind of where the magic is for really making things parametric is we're going to say that the result-- in this case, the default is going to be addition. So the result is going to be A plus B.

And then after this, we're going to set it up so that this subassembly kicks out a parameter that is whatever mathematical operation it performed, which sounds really basic. Don't get me wrong. And it is.

But the power of this allows us to go in and do things like, hey, I want to take the two heights of these two subassemblies, add them together, and then add that to the width of them. And that's going to be the new width of the next subassembly. So we're going to get to that in here, just a second.

And for the sake of time, I'm only going to hook up Add and Multiply here. So I'm going to then also go in and set variable value. And I'm going to say, after-- one of the other options for the switch is this guy, which is going to be Multiply. And this one's going to be a Math Operator dot value. I'm going to say result equals A times B.

And then after this, we're going to go to that set output parameter. And we're saying no matter which one, whether you add or whether you multiply, we are going to change Math Result to equal the result parameter up here at the top. So I'm going to save this as our Math Operator.

And then we're going to have it actually draw a point as well. So that way, it has some sort of visual representation for this. And I'm going to use the point code parameter that the user enters.

AUDIENCE: [INAUDIBLE].

ERIC CYLWIK: Oh, thank you. Yeah, the-- set to a double and not a string over here. Point code-- OK, so we're going to save this. And now we're going to go back into Civil 3D.

[COUGH]

Excuse me. And we are going to finish this off. We're going to make a new assembly here. And we're going to import the new subassemblies we've created.

So we're going to do the targets, or sorry, the outs as well as the operator. Import both of them and then refresh them, their image here. So I'm going to place the first two of these.

And here's where naming it's really important. So I'm going to say, AC01. And the outside is zero to one, twelve. I'm going to change this height to two inches.

And then this guy's going to be called AC02. And it's going to have a Pave1 style with an outside slope of zero. And the height is four inches.

And then we are going to place three math operators. So I'm going to do one, two, three. And then I'm going to come over to the assemblies and rename them.

That doesn't look promising. AC01, AC02-- we're going call this one Add Heights. This next one is going to be called Multiply Multi-Negative. And then this one's going to be called Add Width.

So what we're going to do is we're going to tell, hey, this is AC layer two, the actual width of this AC layer two should be coming from the AC layer one bottom width. and the slope for the bottom as well as the top is going to come from the subassembly above it as well. So I'm going to come in here and say Top Slope.

And so now just to show you what that looks like live in the viewport, if I come in here and update this width to four feet, it automatically updates the subassemblies underneath it. If I change this bottom slope from a negative 50 to negative two to one, it's going to update that subassembly beneath it, right? So you have the ability to now come in and say, this one subassembly, do this. And all the subassemblies after it will follow that process.

And here this is going to be a little bit of an intense dive. But we're going to take the height of the first one and the second one. And we're going to add them together using this Math Operator. I"m going to hit Apply.

And then we're also going to then take that value, so the Add Height result. We're going to say multiply by negative one. Because since the heights are technically negative because those layers are going down, we need to get that to a positive. And then we're going to add it to the width of the top subassembly, OK? And so--

AUDIENCE: [INAUDIBLE]?

ERIC CYLWIK: Yes, exactly. And that will give us that one to one offset. So now I'm going to go in and place another subassembly here. And we are going to call this one Base. And we're going to change this inside height to 1.25.

And I'm not going to change its width. But I am going to go back into the assembly properties now. And I'm going to tell it that its width is actually coming from that last Math Operator that we used.

AUDIENCE: Does the order on the left have anything to do with the way it processes like a mark point would?

ERIC CYLWIK: Sorry, say that again?

AUDIENCE: Do the subassemblies on the left hand side there need to be in any particular order to pick up those outputs?

ERIC CYLWIK: Great question. So the question was, do the subassemblies on the left hand side need to be in any particular order? You can only pass things downstream.

So if you have not enough, you have to use the Insert command when you're placing yourself assembly and all that kind of stuff. So yes, it is very important. You can only logically move down that tree.

So multiply by negative one gives me-- oh, here we are. That's the negative one I want. OK. OK, so now we can see that this bottom piece, if I come in and change this top guy from four foot wide to five foot wide, it automatically bumps that out and keeps that offset.

The other thing we can do is if I come in here and now change the inside height from two inches to two feet, it's automatically going to go in and project that one to one down. And so now we have a have a truly parametric assembly that responds to these design constraints that uses only two subassemblies.

So I'm going to finish this out real quick. And then I'll wrap up. I'm a minute over. And believe it or not, I do attend Toastmasters. And I hate when people go over. I'm internally torn right now.

So one thing I didn't do was rename this one as Flex Base. And that makes-- so if you don't have them named properly, it's really difficult to grab their input output parameters. So let me rename this. And I'll open up this Properties window again.

And I will tell this one that the top width is equal to the bottom width of the Flex Base and that the outside deal is zero. So now if I come in here and I change this back to two inches instead of two feet, what's going to happen is all of that stuff is going to update.

So to kind of show you the completion here, we're going to come back into the corridor. We're going to change out the assembly to this Quad Full. And I'm going to apply only one target to the very top layer and let it rebuild.

And now our assembly here, with only one target, is automatically generating all of that. And so that's why this stuff is so important and so critical for staying on top of designs and staying on top of changes. You build in your standards once, and it stays parametric all the way through.

Let me go through my last closing slide real quick. I appreciate you guys hanging in here for just a second. You guys do have the opportunity to rate my class at the end, and that's the only way.

So I've presented here a few times before. And the only reason they let me back is because I convinced everybody to lie and say they enjoyed my class. So I would appreciate it if you guys would lie.

But today we learned how to do parametric subassemblies, how to pass parameters, and kind of that math operator is kind of the sneak attack in there that really makes this stuff come together.

So I hope you guys have a great AU. And I'm going to stick around for a few minutes to answer questions. Thank you guys.

[APPLAUSE]

______
icon-svg-close-thick

Cookie preferences

Your privacy is important to us and so is an optimal experience. To help us customize information and build applications, we collect data about your use of this site.

May we collect and use your data?

Learn more about the Third Party Services we use and our Privacy Statement.

Strictly necessary – required for our site to work and to provide services to you

These cookies allow us to record your preferences or login information, respond to your requests or fulfill items in your shopping cart.

Improve your experience – allows us to show you what is relevant to you

These cookies enable us to provide enhanced functionality and personalization. They may be set by us or by third party providers whose services we use to deliver information and experiences tailored to you. If you do not allow these cookies, some or all of these services may not be available for you.

Customize your advertising – permits us to offer targeted advertising to you

These cookies collect data about you based on your activities and interests in order to show you relevant ads and to track effectiveness. By collecting this data, the ads you see will be more tailored to your interests. If you do not allow these cookies, you will experience less targeted advertising.

icon-svg-close-thick

THIRD PARTY SERVICES

Learn more about the Third-Party Services we use in each category, and how we use the data we collect from you online.

icon-svg-hide-thick

icon-svg-show-thick

Strictly necessary – required for our site to work and to provide services to you

Qualtrics
We use Qualtrics to let you give us feedback via surveys or online forms. You may be randomly selected to participate in a survey, or you can actively decide to give us feedback. We collect data to better understand what actions you took before filling out a survey. This helps us troubleshoot issues you may have experienced. Qualtrics Privacy Policy
Akamai mPulse
We use Akamai mPulse to collect data about your behavior on our sites. This may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, your IP address or device ID, and your Autodesk ID. We use this data to measure our site performance and evaluate the ease of your online experience, so we can enhance our features. We also use advanced analytics methods to optimize your experience with email, customer support, and sales. Akamai mPulse Privacy Policy
Digital River
We use Digital River to collect data about your behavior on our sites. This may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, your IP address or device ID, and your Autodesk ID. We use this data to measure our site performance and evaluate the ease of your online experience, so we can enhance our features. We also use advanced analytics methods to optimize your experience with email, customer support, and sales. Digital River Privacy Policy
Dynatrace
We use Dynatrace to collect data about your behavior on our sites. This may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, your IP address or device ID, and your Autodesk ID. We use this data to measure our site performance and evaluate the ease of your online experience, so we can enhance our features. We also use advanced analytics methods to optimize your experience with email, customer support, and sales. Dynatrace Privacy Policy
Khoros
We use Khoros to collect data about your behavior on our sites. This may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, your IP address or device ID, and your Autodesk ID. We use this data to measure our site performance and evaluate the ease of your online experience, so we can enhance our features. We also use advanced analytics methods to optimize your experience with email, customer support, and sales. Khoros Privacy Policy
Launch Darkly
We use Launch Darkly to collect data about your behavior on our sites. This may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, your IP address or device ID, and your Autodesk ID. We use this data to measure our site performance and evaluate the ease of your online experience, so we can enhance our features. We also use advanced analytics methods to optimize your experience with email, customer support, and sales. Launch Darkly Privacy Policy
New Relic
We use New Relic to collect data about your behavior on our sites. This may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, your IP address or device ID, and your Autodesk ID. We use this data to measure our site performance and evaluate the ease of your online experience, so we can enhance our features. We also use advanced analytics methods to optimize your experience with email, customer support, and sales. New Relic Privacy Policy
Salesforce Live Agent
We use Salesforce Live Agent to collect data about your behavior on our sites. This may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, your IP address or device ID, and your Autodesk ID. We use this data to measure our site performance and evaluate the ease of your online experience, so we can enhance our features. We also use advanced analytics methods to optimize your experience with email, customer support, and sales. Salesforce Live Agent Privacy Policy
Wistia
We use Wistia to collect data about your behavior on our sites. This may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, your IP address or device ID, and your Autodesk ID. We use this data to measure our site performance and evaluate the ease of your online experience, so we can enhance our features. We also use advanced analytics methods to optimize your experience with email, customer support, and sales. Wistia Privacy Policy
Tealium
We use Tealium to collect data about your behavior on our sites. This may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. We use this data to measure our site performance and evaluate the ease of your online experience, so we can enhance our features. We also use advanced analytics methods to optimize your experience with email, customer support, and sales. Tealium Privacy Policy
Upsellit
We use Upsellit to collect data about your behavior on our sites. This may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. We use this data to measure our site performance and evaluate the ease of your online experience, so we can enhance our features. We also use advanced analytics methods to optimize your experience with email, customer support, and sales. Upsellit Privacy Policy
CJ Affiliates
We use CJ Affiliates to collect data about your behavior on our sites. This may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. We use this data to measure our site performance and evaluate the ease of your online experience, so we can enhance our features. We also use advanced analytics methods to optimize your experience with email, customer support, and sales. CJ Affiliates Privacy Policy
Commission Factory
We use Commission Factory to collect data about your behavior on our sites. This may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. We use this data to measure our site performance and evaluate the ease of your online experience, so we can enhance our features. We also use advanced analytics methods to optimize your experience with email, customer support, and sales. Commission Factory Privacy Policy
Google Analytics (Strictly Necessary)
We use Google Analytics (Strictly Necessary) to collect data about your behavior on our sites. This may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, your IP address or device ID, and your Autodesk ID. We use this data to measure our site performance and evaluate the ease of your online experience, so we can enhance our features. We also use advanced analytics methods to optimize your experience with email, customer support, and sales. Google Analytics (Strictly Necessary) Privacy Policy
Typepad Stats
We use Typepad Stats to collect data about your behaviour on our sites. This may include pages you’ve visited. We use this data to measure our site performance and evaluate the ease of your online experience, so we can enhance our platform to provide the most relevant content. This allows us to enhance your overall user experience. Typepad Stats Privacy Policy
Geo Targetly
We use Geo Targetly to direct website visitors to the most appropriate web page and/or serve tailored content based on their location. Geo Targetly uses the IP address of a website visitor to determine the approximate location of the visitor’s device. This helps ensure that the visitor views content in their (most likely) local language.Geo Targetly Privacy Policy
SpeedCurve
We use SpeedCurve to monitor and measure the performance of your website experience by measuring web page load times as well as the responsiveness of subsequent elements such as images, scripts, and text.SpeedCurve Privacy Policy
Qualified
Qualified is the Autodesk Live Chat agent platform. This platform provides services to allow our customers to communicate in real-time with Autodesk support. We may collect unique ID for specific browser sessions during a chat. Qualified Privacy Policy

icon-svg-hide-thick

icon-svg-show-thick

Improve your experience – allows us to show you what is relevant to you

Google Optimize
We use Google Optimize to test new features on our sites and customize your experience of these features. To do this, we collect behavioral data while you’re on our sites. This data may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, your IP address or device ID, your Autodesk ID, and others. You may experience a different version of our sites based on feature testing, or view personalized content based on your visitor attributes. Google Optimize Privacy Policy
ClickTale
We use ClickTale to better understand where you may encounter difficulties with our sites. We use session recording to help us see how you interact with our sites, including any elements on our pages. Your Personally Identifiable Information is masked and is not collected. ClickTale Privacy Policy
OneSignal
We use OneSignal to deploy digital advertising on sites supported by OneSignal. Ads are based on both OneSignal data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that OneSignal has collected from you. We use the data that we provide to OneSignal to better customize your digital advertising experience and present you with more relevant ads. OneSignal Privacy Policy
Optimizely
We use Optimizely to test new features on our sites and customize your experience of these features. To do this, we collect behavioral data while you’re on our sites. This data may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, your IP address or device ID, your Autodesk ID, and others. You may experience a different version of our sites based on feature testing, or view personalized content based on your visitor attributes. Optimizely Privacy Policy
Amplitude
We use Amplitude to test new features on our sites and customize your experience of these features. To do this, we collect behavioral data while you’re on our sites. This data may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, your IP address or device ID, your Autodesk ID, and others. You may experience a different version of our sites based on feature testing, or view personalized content based on your visitor attributes. Amplitude Privacy Policy
Snowplow
We use Snowplow to collect data about your behavior on our sites. This may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, your IP address or device ID, and your Autodesk ID. We use this data to measure our site performance and evaluate the ease of your online experience, so we can enhance our features. We also use advanced analytics methods to optimize your experience with email, customer support, and sales. Snowplow Privacy Policy
UserVoice
We use UserVoice to collect data about your behaviour on our sites. This may include pages you’ve visited. We use this data to measure our site performance and evaluate the ease of your online experience, so we can enhance our platform to provide the most relevant content. This allows us to enhance your overall user experience. UserVoice Privacy Policy
Clearbit
Clearbit allows real-time data enrichment to provide a personalized and relevant experience to our customers. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID.Clearbit Privacy Policy
YouTube
YouTube is a video sharing platform which allows users to view and share embedded videos on our websites. YouTube provides viewership metrics on video performance. YouTube Privacy Policy

icon-svg-hide-thick

icon-svg-show-thick

Customize your advertising – permits us to offer targeted advertising to you

Adobe Analytics
We use Adobe Analytics to collect data about your behavior on our sites. This may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, your IP address or device ID, and your Autodesk ID. We use this data to measure our site performance and evaluate the ease of your online experience, so we can enhance our features. We also use advanced analytics methods to optimize your experience with email, customer support, and sales. Adobe Analytics Privacy Policy
Google Analytics (Web Analytics)
We use Google Analytics (Web Analytics) to collect data about your behavior on our sites. This may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. We use this data to measure our site performance and evaluate the ease of your online experience, so we can enhance our features. We also use advanced analytics methods to optimize your experience with email, customer support, and sales. Google Analytics (Web Analytics) Privacy Policy
AdWords
We use AdWords to deploy digital advertising on sites supported by AdWords. Ads are based on both AdWords data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that AdWords has collected from you. We use the data that we provide to AdWords to better customize your digital advertising experience and present you with more relevant ads. AdWords Privacy Policy
Marketo
We use Marketo to send you more timely and relevant email content. To do this, we collect data about your online behavior and your interaction with the emails we send. Data collected may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, your IP address or device ID, email open rates, links clicked, and others. We may combine this data with data collected from other sources to offer you improved sales or customer service experiences, as well as more relevant content based on advanced analytics processing. Marketo Privacy Policy
Doubleclick
We use Doubleclick to deploy digital advertising on sites supported by Doubleclick. Ads are based on both Doubleclick data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that Doubleclick has collected from you. We use the data that we provide to Doubleclick to better customize your digital advertising experience and present you with more relevant ads. Doubleclick Privacy Policy
HubSpot
We use HubSpot to send you more timely and relevant email content. To do this, we collect data about your online behavior and your interaction with the emails we send. Data collected may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, your IP address or device ID, email open rates, links clicked, and others. HubSpot Privacy Policy
Twitter
We use Twitter to deploy digital advertising on sites supported by Twitter. Ads are based on both Twitter data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that Twitter has collected from you. We use the data that we provide to Twitter to better customize your digital advertising experience and present you with more relevant ads. Twitter Privacy Policy
Facebook
We use Facebook to deploy digital advertising on sites supported by Facebook. Ads are based on both Facebook data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that Facebook has collected from you. We use the data that we provide to Facebook to better customize your digital advertising experience and present you with more relevant ads. Facebook Privacy Policy
LinkedIn
We use LinkedIn to deploy digital advertising on sites supported by LinkedIn. Ads are based on both LinkedIn data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that LinkedIn has collected from you. We use the data that we provide to LinkedIn to better customize your digital advertising experience and present you with more relevant ads. LinkedIn Privacy Policy
Yahoo! Japan
We use Yahoo! Japan to deploy digital advertising on sites supported by Yahoo! Japan. Ads are based on both Yahoo! Japan data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that Yahoo! Japan has collected from you. We use the data that we provide to Yahoo! Japan to better customize your digital advertising experience and present you with more relevant ads. Yahoo! Japan Privacy Policy
Naver
We use Naver to deploy digital advertising on sites supported by Naver. Ads are based on both Naver data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that Naver has collected from you. We use the data that we provide to Naver to better customize your digital advertising experience and present you with more relevant ads. Naver Privacy Policy
Quantcast
We use Quantcast to deploy digital advertising on sites supported by Quantcast. Ads are based on both Quantcast data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that Quantcast has collected from you. We use the data that we provide to Quantcast to better customize your digital advertising experience and present you with more relevant ads. Quantcast Privacy Policy
Call Tracking
We use Call Tracking to provide customized phone numbers for our campaigns. This gives you faster access to our agents and helps us more accurately evaluate our performance. We may collect data about your behavior on our sites based on the phone number provided. Call Tracking Privacy Policy
Wunderkind
We use Wunderkind to deploy digital advertising on sites supported by Wunderkind. Ads are based on both Wunderkind data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that Wunderkind has collected from you. We use the data that we provide to Wunderkind to better customize your digital advertising experience and present you with more relevant ads. Wunderkind Privacy Policy
ADC Media
We use ADC Media to deploy digital advertising on sites supported by ADC Media. Ads are based on both ADC Media data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that ADC Media has collected from you. We use the data that we provide to ADC Media to better customize your digital advertising experience and present you with more relevant ads. ADC Media Privacy Policy
AgrantSEM
We use AgrantSEM to deploy digital advertising on sites supported by AgrantSEM. Ads are based on both AgrantSEM data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that AgrantSEM has collected from you. We use the data that we provide to AgrantSEM to better customize your digital advertising experience and present you with more relevant ads. AgrantSEM Privacy Policy
Bidtellect
We use Bidtellect to deploy digital advertising on sites supported by Bidtellect. Ads are based on both Bidtellect data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that Bidtellect has collected from you. We use the data that we provide to Bidtellect to better customize your digital advertising experience and present you with more relevant ads. Bidtellect Privacy Policy
Bing
We use Bing to deploy digital advertising on sites supported by Bing. Ads are based on both Bing data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that Bing has collected from you. We use the data that we provide to Bing to better customize your digital advertising experience and present you with more relevant ads. Bing Privacy Policy
G2Crowd
We use G2Crowd to deploy digital advertising on sites supported by G2Crowd. Ads are based on both G2Crowd data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that G2Crowd has collected from you. We use the data that we provide to G2Crowd to better customize your digital advertising experience and present you with more relevant ads. G2Crowd Privacy Policy
NMPI Display
We use NMPI Display to deploy digital advertising on sites supported by NMPI Display. Ads are based on both NMPI Display data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that NMPI Display has collected from you. We use the data that we provide to NMPI Display to better customize your digital advertising experience and present you with more relevant ads. NMPI Display Privacy Policy
VK
We use VK to deploy digital advertising on sites supported by VK. Ads are based on both VK data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that VK has collected from you. We use the data that we provide to VK to better customize your digital advertising experience and present you with more relevant ads. VK Privacy Policy
Adobe Target
We use Adobe Target to test new features on our sites and customize your experience of these features. To do this, we collect behavioral data while you’re on our sites. This data may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, your IP address or device ID, your Autodesk ID, and others. You may experience a different version of our sites based on feature testing, or view personalized content based on your visitor attributes. Adobe Target Privacy Policy
Google Analytics (Advertising)
We use Google Analytics (Advertising) to deploy digital advertising on sites supported by Google Analytics (Advertising). Ads are based on both Google Analytics (Advertising) data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that Google Analytics (Advertising) has collected from you. We use the data that we provide to Google Analytics (Advertising) to better customize your digital advertising experience and present you with more relevant ads. Google Analytics (Advertising) Privacy Policy
Trendkite
We use Trendkite to deploy digital advertising on sites supported by Trendkite. Ads are based on both Trendkite data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that Trendkite has collected from you. We use the data that we provide to Trendkite to better customize your digital advertising experience and present you with more relevant ads. Trendkite Privacy Policy
Hotjar
We use Hotjar to deploy digital advertising on sites supported by Hotjar. Ads are based on both Hotjar data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that Hotjar has collected from you. We use the data that we provide to Hotjar to better customize your digital advertising experience and present you with more relevant ads. Hotjar Privacy Policy
6 Sense
We use 6 Sense to deploy digital advertising on sites supported by 6 Sense. Ads are based on both 6 Sense data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that 6 Sense has collected from you. We use the data that we provide to 6 Sense to better customize your digital advertising experience and present you with more relevant ads. 6 Sense Privacy Policy
Terminus
We use Terminus to deploy digital advertising on sites supported by Terminus. Ads are based on both Terminus data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that Terminus has collected from you. We use the data that we provide to Terminus to better customize your digital advertising experience and present you with more relevant ads. Terminus Privacy Policy
StackAdapt
We use StackAdapt to deploy digital advertising on sites supported by StackAdapt. Ads are based on both StackAdapt data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that StackAdapt has collected from you. We use the data that we provide to StackAdapt to better customize your digital advertising experience and present you with more relevant ads. StackAdapt Privacy Policy
The Trade Desk
We use The Trade Desk to deploy digital advertising on sites supported by The Trade Desk. Ads are based on both The Trade Desk data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that The Trade Desk has collected from you. We use the data that we provide to The Trade Desk to better customize your digital advertising experience and present you with more relevant ads. The Trade Desk Privacy Policy
RollWorks
We use RollWorks to deploy digital advertising on sites supported by RollWorks. Ads are based on both RollWorks data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that RollWorks has collected from you. We use the data that we provide to RollWorks to better customize your digital advertising experience and present you with more relevant ads. RollWorks Privacy Policy

Are you sure you want a less customized experience?

We can access your data only if you select "yes" for the categories on the previous screen. This lets us tailor our marketing so that it's more relevant for you. You can change your settings at any time by visiting our privacy statement

Your experience. Your choice.

We care about your privacy. The data we collect helps us understand how you use our products, what information you might be interested in, and what we can improve to make your engagement with Autodesk more rewarding.

May we collect and use your data to tailor your experience?

Explore the benefits of a customized experience by managing your privacy settings for this site or visit our Privacy Statement to learn more about your options.