AU Class
AU Class
class - AU

Zero to Hero—Tackling Dynamo from Scratch for MEP Engineers

Share this class

Description

The Dynamo extension can be overwhelming to look at when visualizing large graphs. This class will cover how to start with simple goals and present content to colleagues in a manner that will not intimidate them. We will be focusing on Dynamo graphs that benefit MEP (mechanical, electrical, and plumbing) engineering firms in the design process. Some basic understanding of Dynamo by attendees is appreciated. This session features Dynamo Studio and Revit MEP. AIA Approved

Key Learnings

  • Learn how to extract information from a model quickly
  • Learn how to manage calculations and make decisions in a model
  • Learn how to automatically size Revit family components based on a given range of criteria
  • Explore ideas to reality

Speaker

  • Craig Chappell
    Craig Chappell is the Virtual Design and Construction Technology Specialist for TDIndustries (TD) in Dallas, Texas. He has been developing Revit software tools and techniques since 2008 and has extensive experience in managing project models and providing guidance. His role at TD includes working with Partners to advance the Engineering and VDC teams and help them learn how to work more intelligently and efficiently. He has also developed content for Navisworks, Dynamo and Fabrication. He served as Adjunct Faculty at Kansas State University teaching Revit in the Department of Architectural Engineering and Construction for four years. He is currently an associate faculty member at Collin College in the Computer-Aided Drafting and Design Department and serves on their Faculty Advisory Board. He continues to develop some of his own curriculum and teach students and colleagues in numerous disciplines about using Revit and Dynamo to aid in the drafting and design process.
Video Player is loading.
Current Time 0:00
Duration 50:28
Loaded: 0.33%
Stream Type LIVE
Remaining Time 50:28
 
1x
  • Chapters
  • descriptions off, selected
  • en (Main), selected
Transcript

CRAIG CHAPPELL I think, for the sake of time, I'm going to go ahead and get started. There's apparently a line outside, and she's not letting them in until exactly 3 o'clock. But I want to maximize our time to give to you guys that are already in here. They might miss who I am. That's okay. So, let's go ahead and get started.

I really want to thank you guys for being here. This is Zero to Hero, Tackling Dynamo from Scratch for MEP Engineers. If you notice, any examples I give, I've actually turned off the 3D preview because I'm not using Dynamo to create any geometry, necessarily. I'm using it for engineering calculations.

This is the summary I have to show you. These are the objectives that I have to show you, that were in the handout, but what I want to reiterate on that is, I want to show you how I've done some Excel, using a Node to get a lot of information, trying to discover what I can use. Naming equipment by location in the model. So, I'm using lists with the geometry to figure out how to name them. And I'm doing a basic calculation to show how I can use sliders and other information with engineering calculations to get live input.

And then, I want to go back, after showing a couple examples, go back into some basic theories I think it's important to understand. And then, one I like is, if you have standards in your office for sizing components, you can create those in Dynamo, whether you want to do it automatically or not, and if you want to do it manually, you can show that. And then finally, I want to talk about how to make a peanut butter and jelly sandwich.

So, I'd ask that if you can please whole comments like about 45 minutes to speak, I've got some demonstrations I want to go through several times as I break it down further, and I also want to point out that with visual programming, there's a lot of different ways to skin a cat. So I understand that what I'm showing you may work how I did it, you may see a different way to do it, and that's fine. That's what I like about visual programming.

So, a little bit about me. My name is Craig Chappell, I'm the VDC Technology Specialist at TD Engineering-- TDIndustries, sorry. We do basically the lifecycle of a building, from engineering design assist, into virtual design and construction. We also have a group of guys that do building system analysis, to find efficiencies in the building, and of course, we do prefab and construction. I'm finishing up a four-year term with as an adjunct faculty at Kansas State University, where I taught Revit to their fourth and fifth year seniors, and then I've had about 12 years experience in the AEC industry. Before that, I'm actually a proud graduate of the United States Merchant Marine Academy, and I have about 900 days at sea, on deep-sea ships.

So, what about you? Do I have any architects in the room? Anybody willing to admit? Got one. Okay, there goes my-- oh, two. Well, there goes my presentation. Any structural? Anybody leaning towards structural or civil? What about MEP? Awesome. Great.

So, how do you use Dynamo? Who has never opened Dynamo before coming to AU? Got a few. Who's done some playing around with it? Okay, and who's been using it in production? Okay, there's a few of you. Good.

So, what I'm going to do-- all these videos, I'll hopefully get to somehow, the PowerPoint, the notes, everything's for you, okay? So, I'm trying to have you pay attention so I don't lose anybody, because I'm trying to get a lot going.

When I first got into what can I do as an engineer and Dynamo, one of the things I realized is, you have levels. You have your categories, and then your elements, and your parameters. It's very important to understand those levels as you're getting data in and out of Revit. So, one of the things I like to do is figure out what can I get a hold of? So, I kind of want to-- this is a video-- again, you'll have access to it-- where I'm just showing you a simple demonstration of using Excel, pushing information to Excel. If you right-click on the graph, if you guys know, you can get the search bar.

So, all I'm doing here is I'm taking that Excel right to file, and I'm creating the nodes that are going to feed that. And I use this a lot because, how do I know what I can manipulate if I don't know what I can touch? So I'm going through here. And I like to use a select model element node, because I'll just go in and pick a water closet fixture, or any model, like an exhaust fan, an air terminal, anything you've got. So I'm just starting, and this is just a sample of what I was doing where I want to be able to see mass lists of information just to kind of feel what I'm doing.

And one of the things I like to show in here, in this little video, it's kind of important to arrange your nodes so your colleagues can see well, and what's nice, if you select them, and you right-click, you can get the aligned selection, and I can align the selection of nodes to the right, left, top, bottom, and I could also distribute them, or average them so it automatically pops them together. And it's a great way to not play around with each node at a time. And that's it. What I would do at this point is just select a model element, run the graph and then in Excel, it would give me this list of every element that I can touch, so that I can start to learn what I'm dealing with and what I can adjust.

So, here's a question for you. Can anybody tell me, if you already have to have an Excel file created to run Dynamo, and not get any errors, anybody know? Who wants this? Who is it back there? Who is it? Look at that. I'm not liable for any injuries. False. What's really cool about Dynamo is that you share the script with a colleague, and they run it, and you don't have the file yet, it will create the folder, it will create the file for you.

Okay, so let's go into managing some calculations. Or this one where the Dynamo player, which is new, I have these exhaust fans in the model, and notice none of the marked values are there. When I hit Run, it's going to search, by level, what my exhaust fans are, and then number them from left to right. So, if you have a large hospital-- I used to do health care back in the day-- but a large hospital, and I didn't want to worry about naming them right away, I could run this Dynamo player graph, and it would do it. And what's really cool here, if I start to move them around, re-assign levels to show you that it's just playing with it, when I run it again, it'll update. So, it's looking through the model at the information when you run it, and updating it. Pretty cool.

So, that's the video of it, and here's the graph. I like to organize my graphs by color to help people understand what they're doing. So, I use the darker blue for inputs. So, I'm looking for mechanical equipment, exhaust, level, and one thing that's in the hand I mentioned, if you see these three-digit prefix, these kind of primers look kind of funny, my talk last year AU 2015, I went through this-- it's in a hand out, look for that video, on my web site there's information on that as well, I'm not going to talk about that here because it's not pertinent to this lecture.

So then, what I'm doing is I'm saying, how am I going to develop my selections? Because I'm asking Dynamo to look at every single mechanical equipment as a selection in the model, but I only want to see exhaust. So I'm reducing the selection down to exhaust, and then all of this is my action items, and I'm going to go through this again in a different set up of the graph, so you can kind of see-- right now I have the connectors turned off. The next example, I'll have the same graph rearranged with connectors.

So, I'm looking at the geometry. I'm going to number the values, and base by location and level, and add the hyphen, and that way I can push the values back to Revit. So here's the exact same graph rewritten, rearranged for you, and the examples that I'm going to give to you guys is going to have both. One will be frozen so it doesn't do it twice, but that way you guys can see all this when you get back home. So, again here's my inputs, but in this case, they are not necessarily in the same spot, and then here's where I'm developed this.

So, what I want to point out here is, here's my list of exhaust fans that I've been able to grab. Notice that it's just a list of 10 right now. What I'm going to do here is, I'm going to sort them based on the levels. If you look at the two left watch nodes, I have the list as it originally was. Here's my level information. If you see here, it's in no particular order. I want to get it in order, so I'm going to use my list sort-by key, and I'm going to use the list as my exhaust fan list, and my key is my levels. So, what's going to happen here is on the output, is it's going to sort my list of exhaust fans by the level, and I'm also going to get that list, my key, assorted keys, it's going to give me that list here.

The other thing I do here is, this is great, this is from the rhythm package, so this is not out of the box Dynamo, you will want to download the rhythm package for this. This is going to remove prior to character, and this string right here actually has a space in it the character of a space, because what's happening is right now is called level space one. So, I want to actually extract the level naming from the model, I'm not using any string input, I'm getting this information from the model. So, what I'm getting here is this assorted levels, I'm getting it down to just the number. And if you get a project where the architect wants to play around with a little bit, use some funky level names, you would just edit how you're removing the text you don't want.

Here's where it gets fun, because what I wanted to stress to you guys-- I didn't want to go into Excel very much, because there's a lot of cool stuff in Excel, I could spend a whole other hour, or two hours on Excel-- I wanted to focus on controlling lists. Because with engineering and controlling calculations, I really feel like this is where the most important part of our time would be. So, what I've done here is I've grouped by key.

So I'm using, again, I'm using my levels as my key, and if you notice, the exhaust fans, before was just in one level list. I had all 10 in one single list. Now if I come back to this, notice that I have a sub list of the two on level one, the three on level two, the two on level three, and so on.

So, what gets fun is with the latest update of Dynamo, they added the levels in here, and I got to honest with you, I don't think I'm very good at Dynamo. I don't know why. But when I look at this and I think, OK, what is this [? et one, ?] et two, [? et three? ?] I had no idea what it was. And just with process of experimentation, I realized that once I split up my list into the sub lists now I can maintain this list and then sort the list in those sublists. So, what I'm doing here is by saying sort by key et level two, I'm keeping the levels in order, and as a secondary sort, I'm sorting with in those sub lists where they're located in the x-coordinate. You guys see that?

So, now that I have that I want to make a sequence, cause I need my marked values. I've got my level information, I need to get my dash here, the hyphen in the second. The next thing I'm going to do in this graphic, I need my individual mark numbers. So, I have two exhaust fans on level one, three exhaust fans on level two, and so on. So, in a sequence here, I'm using my count. How many fans do I have on each level? And I'm going to add those together in this list, and then I'm going to flatten it here, you see this flatten node, so what I have now is I have one, two one, two three, one, two, one, two, three. Because that's how many fans I have on each level in a sequence. All right?

And then finally I do a count of how many fans I have to get that middle character to get that separation, and what we end up with is, you see over here on the example, now I have a list for the exhaust fans in the order of their level and their x-coordinate geometry that gives me my values. And at pushes it back into the model.

What's nice about this graph and using the Dynamo player is I don't need to preset how many levels the building has. I have no I have no idea, it doesn't matter. It's going to look at the model, whether it has 10 levels or two levels, if there's a component that's not on a level, it just omits that. So, you don't have to come in and manually create anything. In the video, you notice all I did was hit the Dynamo player, and it analyzed everything for me and redid it. I like this example because, yes, I'm identifying the exhaust fans, but what other components might you want to model and add mark used to, and have it do it across your entire project in a second. Okay?

So, this is showing a little bit of some calculations. I kept it basic, I know it could get more complex with sizing a coil, and I'm going to go into detail about what it's doing. But I'm showing you the Revit schedule up here, and here's the actual view for the schedule, and this is the graph. And what I've done is incorporated basically my air across the coil, my heating water through a coil, what is my air as far as the CFMs the air. And that way I can kind of play around with my coil size, my GPM requirement. And what's nice about this is in this example, I'm only showing three coils, but there's no limit to how many coils you could manipulate.

And what I did in this example is, if you see up here as I'm playing around with it, now I just switch from manual input of my heating water to a slider. I'm using an F node, and when it's untrue my slider becomes my input value. So I'm able to play around with my equations and see in real time what are my GPM requirements for those coils.

And what's really cool about that is if you're making Revit families, where your coils are pushing GPMs to your pipe sizes, you'll be able to see if your pipe system is sized properly by playing with it. In the kind of demonstration thought with this was, if we're working on a project and we just didn't get the performance from the boiler we needed, And we're only getting 110 degrees of air for the hot water, how would that impact our model? And we're not having to go through and redo the calculations several times, I can kind of play with it and see what we have.

So, this is the graph, again, set up in groups with the connectors turned off, so, that way you can see that I'm grouping by my inputs. Here's my selection, because what I'm doing again is I'm grabbing all the mechanical equipment, I'm reducing it down to what I want to deal with, and I go through the filter by building a mask in another example, to kind of explain that more.

Now, what's really important for engineering and Revit, is that Dynamo has no units. While you're calculating with N-Dynamo, all the numbers are unitless, but when you export the information from Revit into Dynamo, I like to call them absolute units, where length is in feet-- for imperial, length is in feet, time is in seconds, and temperature's in Kelvin.

So, that gets really interesting, because if I want to do calculations with the information I'm used to putting in Excel or handwriting on paper, I need to convert them. And this is something I'll show you in a second, where I've created these nodes with predefined formulas so that while I'm doing these equations, I'm not having to write in what that conversion from Kelvin to Fahrenheit is every time. I can just copy this node for Kelvin to Fahrenheit. So when the information comes from Revit into Dynamo, I run through that conversion, now I'm good.

And what's important here, as you guys are getting used to this and trying to play around with it, you really want to have controlled experimentation. What is the unit coming out, what is it in Revit, and when I export the information into Dynamo, what does the watch node show me? And then try to figure out what unit of measurement that is, so you can figure out what those conversions are.

And then what I'm doing here is-- these are the nodes I'll show you in a second too-- where I'm able to create predefined formulas, so that when I'm working in my graph, I'm not having to do custom nodes with all the equations in there. I have to find formulas somewhere else in the same file and I'm able to have just the inputs and the output. And this is a way to round to the nearest half of a GPM. So as the GPM goes up and down, I'm not getting tenths of a DPM, it rounds to the nearest half of a GPM for me. And then when it's all said and done, I push it back to the model, and I'm able to update all the information in real time.

So, let's go back through that one more time. So, here's all my parameter inputs. And this is where I'm getting my selection, I'm narrowing it down to what I want to deal with, all right? So, this is where I'm getting my air across the coil, my air flow across the coil, and what a lot of engineers-- you guys like to have safety factors in your design a little bit. Well, what this is here is that envelope loss, necessarily, where I can kind of add a fudge factor if I wanted to. If I wanted to make the calculation a little bit safer, this would allow me to add some heating requirements to that coil manually. And then here's my water in and out.

And you notice here, I'm converting each component, I'm converting it from cubic feet per second to cubic feet per minute. And then, I'm not really sure what the power absolute value is, but I was able to do some experimentation and use a conversion that works, so that's what that is. I'm sure I just don't know yet.

So, I'm developing my input from my calculations, and then once I have that, it's just a matter of adding the calculations where all the nodes fill in the inputs, and then push back to the model.

Okay, so hopefully that wasn't too overwhelming, because what I wanted to do was show you some neat stuff of what you can do. And now want to dive it back and do some basic theory and Dynamo. Is anybody lost completely? Am I losing anybody? Don't be afraid admit it.

So, this is a very fun example, just get something that works. And I actually like-- two times two was the one I was thinking of. So I'm going to start with the new graph. I'm using a string input, and just kind of watch it here. And actually, I've got some handouts I printed out if you guys want to pass them around, if anybody wants to look through them while we're talking. Look at them, passing around.

So, notice here that I'm using a preview node which can be helpful, because in this example, as I'm building it, notice that my first time I ran it that four a number. So, now I'm going to use a string from object. And what that's going to do is, it's going to take that number four as a number value, and convert it to four as a letter value, or as a string. And just to show you some changes, I changed that two to a three, when I run it again, I'm going to get nine as a result. But that's not a number, it's a string. It's really important to understand the inputs in Dynamo.

So, what I want to do next is, I want to take "my square is" as text, and then add the value I'm getting from my math. And notice that once you add a string or a connector to an already existing input, it detaches the old one and puts a new one in. So, when I run it again, now I have a list in my watch, and that shows me what I'm looking for. And just for example here, I'm going to drop down and lock the preview, so that as things change, I can see what I'm dealing with there.

And Concatenate is a nice thing where I can take the two items from this string, and bring them together as one string. And what's interesting here is, notice that my preview is still there, but my watch node zeroed out, it went back to nothing. So depending on how-- as you're building your graph, as you're starting to experiment and play with it, to me it depends on whether you want to use the preview of the node, or a watch node, because as you're changing connectors, if the run function is no longer done, your watch nodes will blank out. So in some cases, I like to go ahead and use of the preview.

And then what's also important, if you have a selection and you create a group, this is how you're able to group things together, as how you saw the colors before. I've seen a lot of presentations at AU where they're showing the Dynamo graphs, and they're showing some very clean organization of the groups. And then, you only get like 10 colors. I' a guy so I don't care. If you get like ten colors to deal with, I'm fine with that. So, again, I like to think of, from the spectrum there, you see the blue on the right, over to pink and purple on the left. So I think of blue through the warm colors of calculations, into pink and purple for results. That's just what I've been doing, it's not kind of any industry standard, but I do find it helpful.

So, that's basically-- once you have it, the groups, you can rename them. So that was just a kind of simple, I want to do something in Dynamo to have some success right away, play around with it. There's three categories of nodes in Dynamo. You have your create nodes, which have a little green plus sign, or you see the green bar. If you're looking in the menu you'll see it's green there. Create notes are creating content. You have your query nodes, which are searching for content. You get a blue question mark or the blue bar. That's how you're asking for information from Revit. And then the other one is your action nodes. That's how you're going to perform or create an action, so you'll see a red lightning bolt or red line.

To use some quick examples, that range, or the sequence before that we use in a graph, I have a start, an, end and a STEP. Yes, you can use a custom code walk to do this very. Easily I'm just trying to show an example here. So that's a create node. A query node is like we did before, where I went to get the parameter value. So I'm looking at what element am I trying to get a hold of? And then what parameter I'm looking at, and that gives me a list of values. So it's looking for information from Revit to bring into Dynamo.

And then finally, my list by sort key, which I've really grown to love, that's an action. It's taking that list of information, and it's doing something with it. So, one thing I do want to go over for a second too, is it's really important to understand what are my inputs from my nodes, what are the nodes giving me as output? Because you can really get in trouble if you don't pay attention to this.

Billions are true false. I've got any auto-sizing, I want to go into that, a little more detail, but it's just a true-false. You can use this to control your graph, how information is going through it. And then it's important to understand the difference between a string and a number, because you can use numbers in strings, but in the handout I go through a demonstration of how, I think it was 3 plus 2.5 ends up being like 32.5 or something like that. Because it's taking the characters in the string, and just bring them together. It's not adding to numbers. So it's important to understand whether you're using strings or numbers.

And also geometry. Dynamo really started out for architectural and structural, I think for engineers, I think we're really starting to get a handle of it. I've really grown to like it a lot. But understand the geometry, elements have geometry that you can play around with. Lists, everything's a list in Dynamo. It's really important to understand how to manipulate those lists.

And then finally, you have your elements, and what I want to point out here is, when you have a list of elements, you're actually going to get your model ID number with it, that green highlighted model element ID. And what I learned today in another class, if I click on that, and it's in a view that's open, it'll actually snap to that view. So that's something I didn't know about until an hour ago. So that's pretty cool.

But what's important here is, if I'm dealing with a graph, and I lose track of my input, and I forget that I'm dealing with model components, notice here that in this watch node, I've got my model components. What's going on up here? I don't have any green numbers. So what's happening is my element get parameter by name is not looking at elements, it's looking at text. , So I'm getting this error because back here at my filter, my list is coming from a text string output. If I do it the right way, I'm using my element's of category from here to my list

Does everybody see this? Because this is what held me up for an hour or so on this. It's kind of like troubleshooting programming. When you think you're done with the graph, you think you've got Dynamo all ready to go, and you hit run, something's not right, now you got to go back and figure out, are all my connectors in the right spots?

So, what's happened here, and this is a mistake that I made, is I had to go through here and figure out where my input for my list filter is coming from and what happened was I was not using my model element list. So, I like to use watch nodes with almost every node as I'm building my graph, so I can see that, yes, I'm still using model components. I'm not just playing around with text.

So, here's a demonstration of how I was using my predefined formulas. And I found this through the Google search of Dynamo. I think the Dynamo Primer had an article on it, basically saying that you can take a custom node, I can define a formula, and then some basic code on what that formula is going to do.

And what I am doing here is I'm just double clicking on the graph to get a new code block, and then with these already in the graph, these have to be in the same file. I'm just going up here and I'm highlighting the definition here that has what it is and its inputs. And I'm pasting it into my code block, and then I'm also just grabbing the title up here.

This is a great way for your unit conversions, if you're going to have some equations in your graph, that you can centralize what the equations are going to do, so that if you have multiple instances where you're trying to do a lot of work, and you want to change or update an equation with a different idea, you're not having to go through and change six of them. You have a centralized spot where you can change it once.

So, who can tell me what is the subcategory of this node? I've got a little mean foam ball, stress ball, it's crying tears of joy. Anybody? Create, query, or action? I need a hand. Anybody want to take a shot? Action. There you go. And what's nice here is, you start to think about it, the menus do show you here what you're dealing with. So this is a fun one. My background's in mechanical. I tend to, when I'm thinking of test projects or things that test to play around with, I tend to go to mechanical, so if you're electrical or plumbing, I'm sorry.

One thing I want to show here in this administration is, it's important to understand Boolean, and how to manipulate lists of Boolean values. So I'm creating a list here, notice that these values are purple, because when I'm creating that list, the value of true, the value of false, are definitions in Dynamo. So they're going to turn purple when I use them here.

This is a and b. So if a and b are true, it's true. If a is true and b is false, I'm going to get false. And then this other example here is if a or b is true, then the value is true. So what you can see here is I'm able to manipulate these. And this is important for a part of this next video I'm going to do.

And you can see here-- sorry, is this is how I'm using this basically in a Boolean mask. So when I'm filtering the elements, what I want you guys to catch in this next demonstration on how I'm able to automatically control sizing of elements based on a range of another part, I'm using Boolean lists of true and false values, and I'm manipulating those lists. So, basically here's my list as an input. I'm using this Boolean mask, these are true/false as input and output. So this is a video where I've got some basic diffusers, I've got my types, my connection size, and my CFM. And pay attention to it as I change information. I'm not just changing the number, I know I just could cheat on that. I'm actually changing the connector size of that diffuser.

This was a fun discovery I had too. I had a guy ask me, hey, what happens if I change the size of diffuser? Dynamo can re-evaluate the CFM, and say, no, that's not a 6 inch or 8 inch, that's a 12 inch. And then, you're not always going to have the same type of diffuser, right? You're going to have a whole library of diffusers. So, I want to be able to manipulate one set different from another.

So, what's important here, is I have in this example a CD1a, and a CD2. Notice that as 300 CFM, it's OK on my two by two diffuser. But if I've got 300 CFM to a 12 by 12 diffuser, that's probably not likely. And just as a demonstration, I opted to make it default to 24 inches. Because you'd hope that if somebody is modeling this or designing this, and they see a 24 inch connection to a 12 by 12 diffuser, that's not right, right? I mean that's not good.

So, this is what we're dealing with. I'm getting my overall selection. And notice in this graph, the watch nodes, I've got all of my types from my demonstration. I've got 39 down here. But I only want to get, in this case, my CD1s. So here's my string contains. I'm using this node to evaluate that mark value of my diffusers. And what it's doing is it's giving this Boolean list of true, true, false, false, and so on.

The problem is, what if we have a standard where I have CD1s and CD1As. I don't want to-- if I have a list that contains CD1s, what's it going to do? It's going to grab all my CD1s and my CD1As. I don't want those CD1A's in this graph to continue on. So, I add another string contains, for that CD1A, but I include a not-A. So, this is a Boolean true-false. If you can kind of follow, they should go side by side here on this list. So if it's a CD1A, it's false.

So this is a list of the components in my model that are not CD1A. And if you can follow the logic, when I combine these two using this and, I'm getting a list of all my diffusers that are CD1, but not CD1A. Okay, so I'm able to reduce that down to one specific list. Once I have this list for my input, I'm going to get my CFMs, and this is highlighted blue, because in the next slide, this is a continuation. And I hope I don't lose anybody here because this is where it gets fun. Everybody having fun with this? Is anybody having fun? All right, this is great.

So, what this is doing is, this is actually conditional. I'm not getting any value out of these nodes except for true-false Booleans. And what I'm doing is I'm taking my CFM values from that list of my CD1A's, and I'm asking it, is that value of CFM below 100%, true or false? If it's true, it continues on. If it's false, I'm looking at it back down here.

Now, I don't want to start with, is my value below 1,000, because if it's true, it's going to continue on. You want to start with the lowest value, get those true values, and then like a if then conditional loop, as I go up in value, you're going to get your branches breaking apart. So, what I'm doing here is, this is my CFM ranges. I'm building my list of true-false Booleans. And this is really great because I'm actually going from the back, down. So, this is my if node. If it's below 100, it fills this first. So, here's my true value of, and this is in feet so that 6 inches is 0.5, half a foot. Right now, if it's false, then my input is here.

And this was a kind of mind-blowing, on tip of my head kind of idea, when I somehow figured this out, because I was just kind of playing around with an if statement, but then I'm like, what if I had two if statements that were together? And then I realized that by doing this, I could use my CFM ranges, and I could have conditional diameter sizing, and I could manipulate everything with this. And it's completely adjustable. So once I had that list of Boolean that gave me my values based on here, then I can go back and set. So that's what that's doing.

One thing to point out, you don't have to make a list here, that was the early on, and was it was an issue that I didn't want to redo. Can you hold that thought please? Or do you have a question?

AUDIENCE: That [INAUDIBLE] condition, so is it possible put them off in that block code?

CRAIG CHAPPELL: You could, if you wanted to combine it. I'm trying to break it apart visually for you guys. Sure, I don't know. If you wanted to--

AUDIENCE: I'm asking you. I'm not sure. I'm asking you if it's possible.

CRAIG CHAPPELL: You can-- if you guys know, if you grab a whole selection, and right-click in that graph, you can convert it to raw code. In the handout, I do show a figure where I take this graph-- now that you asked about it, this was not planned, that was a good segue-- in the handout, I take this graph and convert what I can to that raw code to simplify it.

I found that when you're trying to convey this message of what you've created to colleagues, it's better to open it up some. Because I deal with a lot of senior engineers that are very smart, they don't really trust technology a whole lot yet, and they don't just want to take me from my word. So I like to document and over document what I do. So does that answer your question? I guess--

Okay. So, what are some of the things that you do? And while I was kind of playing around with strings, what I could do with them, I said, can make a sheet list? Basically just saying how many levels are in the building, how many times is that split, how many schedule sheets do I have, how many details do I have? This is my sheet list, blank. I cheered out loud when Dynamo Player came out, but I cursed it also because there was no input.

And believe it or not, about a week and a half ago, a gentleman from France posted a data shapes package, which gives you a Windows pop up box. So without that graph that was kind of intimidating, you never see it. And when I put in this information, I'm actually inputting that into my graph, and when I hit execute, there's my sheet list. It can be 2 levels, it can be 100 levels, you can have a split once, where there'd be no A or B. And while I'm at it, I'll just push it to Excel. And if you rerun it and change the inputs, it'll make a new sheet list. You guys like that?

So, how do you make a peanut butter and jelly sandwich? Has this been on the back of your head the whole time? Okay. This was a demonstration that I actually saw a long time ago, and it was, how do I convey a message with a good visual? You may think, okay, it's not very hard to make a peanut butter and jelly sandwich.

You walk into, let's say this demonstration, I'm not going to get here because it's going to get messy. You have a table, you've got a plate, you've got bread, you've got peanut butter, jelly, everything's there, and a knife. And you ask the group, can somebody tell me how to make a peanut butter and jelly sandwich? And they volunteer, not knowing what they're getting into, they come up on stage.

They're handed a mike, and they're sent behind the curtain, because then a second person comes up to the table with the instructions that they are to follow the first person's explanation explicitly. The first person behind the curtain has a microphone, they cannot see what's going on. The person in front of the room can only do exactly what they are told, and if you can imagine it very rarely goes well.

All right, so I use that as an idea to say, Dynamo, don't let it get frustrating. It can be easy. If you break down the steps. Take a goal. What do you want to do? When I thought about my sheet lists, how am I going to arrange my sheet lists? I'm not in Dynamo, I'm not in Revit. I'm just thinking. I'm writing a logic script kind of thing. How am I going to get my prefix? How am I going to get my levels? And you start to just piece those apart, and think of each piece separately.

And as I'm building these examples I showed you today, I got small successes that lead to larger successes, that when I actually figured it out, I'm like wow, this thing works. And then you're really shocked, and you get your coworkers over. They look at it like, "Oh, that's great." They look at these and they have no idea what you did.

So basically, you're not going to get into Dynamo first day and know what to do and to be honest with you, what really helped me, in my hand out, the last half of the handout are screenshots of all the nodes, or good examples of the nodes that are out of the box. I didn't have time to show the package nodes that I like to use, because frankly they change so much, and it's hard to keep up with that.

But what really helped me get beyond that beginner threshold was the sad truth of reading nodes and getting an idea of what each node is available, and then having ideas of what can I do. And it's no way around it, if you really want to get good at this, you've got to put in some time. I probably spent a good two, two and a half days of my time, reading through the library of nodes, just getting in my short term memory what's available. And then reading what the inputs were looking, for what the outputs were giving me, so that as I was able to create these graphs, I'm getting an idea in my head. I'm starting to piece it together.

And there's no easy button for Dynamo. To me, the limit is what you're capable of doing. Anybody go the Dynamo slam last night, and see the guys take off? That was crazy, what those guys can do. And I'm like, I don't even know what to do with that.

So basically, I didn't want to name anybody on [INAUDIBLE] packages. There's a lot of great resources online. The actual Dynamo blog, The Primer, is kind of like your help file if you guys don't know about it. If If you go to DynamoBim.org, their web site, I believe there's actually a link to the primer. The forums is a really great place to ask a question and try to get help. I haven't really used it a lot , but I have read-- because sometimes when you Google a question, somebody has already asked it and gotten an answer.

And then what's really cool here, is the Dynamo dictionary is actually in beta. I caught wind of it about two weeks ago where they're trying to build a library of what the nodes are, what they do, as well as an example, a small little example of the input you need, the output you need. It's really cool, so please go check that out like I said, it's in beta.

But what I want to stress you guys is get on Twitter. There's a lot of developers of Dynamo on Twitter, posting stuff, and that's where I kind of got into it as well. A lot of what I've learned, I've learned through Twitter, that Windows dialogue pop up box from Data Shapes, a gentleman by the name of Mustafa from France,

I actually caught when he posted, that he posted on Twitter, that he sent this package to the Dynamo website. And I was really happy to get into work Monday morning. My wife couldn't understand it. But I went to work excited on Monday morning, because I was going to figure out that Windows pop up box.

And I'm not good with Python, but I have a little bit of history with computer science, background 2000. So it's been a while. But I was able to take what he posted, kind of figure out what he's doing, and tweak it to what I need. So, that's a lot of information here. There's a lot of packages to use, and I was wondering if anybody had any questions or comments. Yes, Sir.

AUDIENCE: How can you tell what's a no response, where its inputs and outputs?

CRAIG CHAPPELL: You'll get-- see if I can bring it up-- it's not very intuitive, but when you hover over a node, it'll give you a little pop out.

AUDIENCE: Yeah, I've seen them.

CRAIG CHAPPELL: You've seen them? It's the strings, the variables. What I like to do is when I'm looking at a node, I want to play with that one node and figure it out. The concatenate, where it bringing strings together, I thought I was going to take the lists and just punch the lists into that concatenate and get flat lists, with all the strings together. You actually want to transpose the lists, so, when you get that list, you want to transpose it, and then concatenate it. And I figured that out by just saying, how do I join lists into one string? And I wasn't worrying about how to change the world. I just wanted to figure that one little bit out.

So, to answer your question, I guess, is a lot of little experimentation, what's that node, and how do I get that node to where I can control the result? One more, yes, Sir? The question was, can you deal with Instance and type? Out of the box, it wants Instance. I prefer, I talked about it last year in AU 2015, my class. I prefer Instance-based, because I can manipulate as a type through schedules, so I have found that I avoid type. There are some nodes that will reference type-based parameters, but in general, I prefer Instance. So, in a way, the question's kind of yes and no. The answer, sorry. Yes?

AUDIENCE: You're doing that [INAUDIBLE] with the [INAUDIBLE], and CFM automatically [INAUDIBLE]. Do you have to run the Dynamo program every [INAUDIBLE]?

CRAIG CHAPPELL: Okay, the question was, with sizing in the CFMs and the connector, do you want to run that automatically or manual, right? In the example for the video, I have on automatic for demonstration purposes. As an engineer I tend to run manual, because if you keep it on automatic, that's going to be-- every time you make a change in Revit, that's going to want to update it and re-evaluate it. So, I tend to run my graphs in manual, and there's not much benefit to running that graph automatically anyway, because when you make some changes, you just run it again, and it updates.

So, I typically, even when I'm building a graph, I keep it in manual, because a great point I heard earlier today was, never experiment with Dynamo in a live project because I routinely will crash Dynamo and Revit. And there's been a couple of times where that little spinning circle just kept going. I went to the break room, got a bottle of water, I went to the bathroom or whatever, and I come back and it's still going, and I had to force close the whole software, lost everything. Save often, experiment in a bogus model. Don't do anything with live production unless it's been vetted and ready to go. That's good. Yes, Sir?

AUDIENCE: The example [INAUDIBLE].

CRAIG CHAPPELL: Yes.

AUDIENCE: All these [INAUDIBLE] were out of the box?

CRAIG CHAPPELL: They were out of the box. What I did-- I don't know if it's a good idea or not, I've seen it both ways. Let me open it here. Where is my quill sizing? What I did was I renamed the header. So, it's doing the get parameter value, but I went ahead and renamed the parameter. I saw today earlier that a gentleman was using notes above it. So, this is actually the get parameter. You can see in the description what it is, but it's how you want to do it. I renamed the header to show that this is the parameter I'm getting from.

If you're curious about it, if you hover over it, you can actually get the description in the pop up. Some people have said don't change the node's name, and just add a note above it. But if you start playing around with your node movement, that note doesn't follow it. So I prefer to go ahead and rename it so that I can see that and move it around with it. Good? Okay. Anybody else? Yes, Sir.

AUDIENCE: Just slightly off-topic. [INAUDIBLE]

CRAIG CHAPPELL: Thank you. Yeah, follow the White Rabbit, take the red pill, thank you. It's the idea of, you're going off into Wonderland, you're taking that red pill, you're diving in the Matrix, because once you start to visualize this stuff-- I sit in meetings with project managers, and my notebook in the margins got, can Dynamo do this? Can Dynamo do that? Because they're talking to me about all this stuff that is going to take them hours to do. I'm thinking, okay, it may take me four hours to build the graph, but then it's a matter of seconds to run it.

So, I like to do Easter eggs in my videos to kind of see if you're paying attention or not, and I don't talk about it at all, so that's what that was, yeah. I was just having some fun. You guys like to have fun at AU? Okay, you know it's not all about just numbers and crunching them. So, anybody else?

AUDIENCE: [INAUDIBLE].

CRAIG CHAPPELL: I'm sorry?

AUDIENCE: [INAUDIBLE]?

CRAIG CHAPPELL: Oh, yes. Everything that you've seen will be shared. The PowerPoint we shared if the video doesn't come through. The video should be posted, we're recording today, so the videos should be posted online. Go check out my class from last year where I talk about the evolution of a design model, about getting calculations into Revit models.

I've quit using formulas in my families because now I'm using formulas in Dynamo, because what happens when you send your families and your files to clients? They've got all your equations. What happens when you send families that are a shell because Dynamo is controlling everything when you send that to your client? They're getting the results, they're not getting all the engine. So it kind of keeps the IP in-house.

But yes, for you guys, I'm not hiding it, I'm not trying to hide anything back. If you guys want to reach out to me, you're welcome to. And actually, let me-- so, please, please, go on for this class. Give me some feedback, good or bad, I won't try to coerce you. But please go through all your classes and provide feedback. I believe there is a chance to win some stuff.

And also if you haven't seen it yet, when you go by Hall C on level two, there's an Idea Exchange where you can talk to them about feedback from the customer to that. And if there's nothing else, then I'll go and wrap this up. I really thank you guys for being here and being attentive, I guess. And thank you for your time.

[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.