Description
Key Learnings
- Learn how to convert 2D lines to HVAC BIM objects
- Learn how to perform early HVAC calculation by using “dummy” equipment families combined with Dynamo
- Learn how to use new HVAC custom nodes for Dynamo
- Learn how to perform quality control of HVAC design by using Dynamo and A360
Speaker
- Alejandro MataAlejandro Mata is Automation Manager at Integrated Digital Solutions department in Ramboll Denmark. He is MSc. HVAC design engineer with a background in civil engineering and architectural technology from DTU-Technical University of Denmark. Alejandro is passionate about enhancing the performance of AEC industry by promoting a better utilization of building technology, towards automation of digital design processes. His focus is to work smarter and achieve the most effective practices to enhance data utilization and digital collaboration among AEC parties. He has been using has using Autodesk, Inc., products for the last 10 years, with a detailed focus in Revit MEP software, and the Dynamo extension complemented with Business Intelligence cloud solutions. He has gained experience in the last 5 years through well-known Nordic projects. Additionally, he has worked as a teaching assistant at DTU and loves sharing knowledge.
ALEJANDRO: So I'm Alejandro. I'm coming from Denmark, and I'm a HVAC engineer. So basically, what we are going to present right now is going to be how you can improve early HVAC design by creating a more smart and optimized HVAC model that can help you to make better calculations in early design phases.
So how many of you have been using Dynamo? For how long have you been using?
AUDIENCE: [INAUDIBLE].
ALEJANDRO: Less than one year?
AUDIENCE: About a year.
ALEJANDRO: How many people?
AUDIENCE: [INAUDIBLE].
ALEJANDRO: More than one year? More than three years? OK. So they are quite different ones. That's OK.
So basically, here you can see the learning objectives. So basically, we are going to start for a pretty basic kind of a start-- how to convert 2D lines to 3D HVAC components and then, basically, how you can make the next-- it will be how you can make calculations for piping and ventilation when you don't have it, when you are not done with your model.
So a little bit from where I am coming-- I'm coming from MOE. And basically, we are a consulting engineering company. We work a lot with energy, energy industrial design buildings, and infrastructure. As you can see, all these buildings, they have really high requirements from the client, from the municipality, and also from the architect.
So our MEP [? system ?] cannot affect the architecture, but at the same time, it has to be really, really efficient. So for example, here you can see this one is going to be almost finished for next year. It's going to be the first waste energy that you can [? keep ?] on the roof. And right now we're working with this one that is going to be CO2 neutral, which is kind of a good achievement.
So why early energy design and integrated design is so important-- it is important because in early phases, we have the opportunity to increase the design value of our building with a low cost. But on the other hand, in early phases, it requires a higher workload. But then, this workload, it will keep constant during the more detailed phases.
But as you can see here, down here, if we make early design, we can have a better, good decision, and at the end, it will improve the quality of our solution. So here, you can see this is an industrial [INAUDIBLE] project that we are doing in our company. And basically, this guy, he's trying to make a matrix where, before doing something about some discipline involved in the project, you can kind of try to see how in the future that decision will affect all the different disciplines, but without doing it.
So he's trying to see the correlation between all the different disciplines involved in the project. So here, today, we are going to focus on energy design. But we are going to be a little more focused.
So basically, we are going to be on these kind of [? circle ?] because in Denmark, when we talk about energy design, normally, the workload is distributed for different specialties. We have energy and indoor climate, LCA, and the HVAC design. But of course, all the other disciplines are affecting our input, what we are doing, so we have to be able to create integrated BIM model so we can communicate with the other guys that are working on the same cycle.
So here you can see one of the goals of this presentation is how to try to create an HVAC model from day one of the project. But until today, this has been really difficult because of tradition, lack of training, or software limitations. There are too many factors.
What is happening is, when we don't start at the beginning with our HVAC model, every time that we change from phase-to-phase during the development of the project, we are losing information. So basically, at the end of the project, our goal that we were expecting at the beginning is going to be lower because we have been losing information during the different phases of the project.
So one of the main problems is we don't have-- and right now, it's getting better with Dynamo, but in the past, we haven't had a better integration of our design calculation with the geometry that actually we are designing. So basically, how we can be able to start as soon as possible with our HVAC model, basically, is-- of course, I'm pretty sure that you know they already have this kind of placeholder that you can kind of draw with lines.
But of course, this kind of feature that Autodesk provides us, especially for experienced engineers who don't have really much skill with technology, they are really difficult then to sketch with this kind of solution. And they really prefer hand sketching.
Another thing that is a problem is HVAC model cannot be used for calculations until we are finished with all the modeling. So this is kind of a really huge challenge because you are missing some components. You can not perform, maybe, your pressure drop calculation or your velocity. So we have to have a look at that.
But here comes our lovely friend, Dynamo. So it allows us to be more creative and think outside of the box. In general, you cannot say the program cannot do that because there are too many people. We do it in this way because the program can do what we want. So this is how we think.
So right now, we are starting with some action. So we are going to start for-- do you have some questions so far? No? OK.
So we are going to start with the same, the first workflow-- how to go from a hand sketch to BIM. So basically, here you can see the different workflows that there are, that we have been testing.
And the traditional actually has been, when we started implementing BIM, it was like you made your hand sketch. Then you make it in CAD. And then, after designing the project, you may get some others just because they are requiring you, not just because you want to use it for the design.
But also the kind of the BIMtopia thing is that, if you want to, you can start using the BIM model from day one, but this thing with the software BIM tools, it got really difficult for an experienced engineer to be creative and provide a good solution out of this kind of technology. So the other things were here, where it comes, like the workflow that I'm proposing right now.
We are trying to teach our engineers to use more digital sketching, like a Windows Surface Pro. And now they are [? coming, ?] the Surface to use. And then, afterward, when they are using it, we can use these kind of-- here, you can see more detail, the workflow.
So actually, this is the workflow that we are using. So we are trying to let our engineers sketch with-- you can use many different [INAUDIBLE] applications, but the one that we like most is Illustrator. So then, when he's finished with the sketch, then you can export it to the DWG.
And then, when you link it in Revit, then you can use Dynamo to import some geometry to our HVAC model. So you can save a lot of time, and you cannot wait until later phases to start with BIM model. So also, we can improve the collaboration.
So basically, here is the structure of the script. It's not really complicated. So the thing is, basically, it is divided in forest structure. So basically, the first model, what it does, is it takes the information from the drawing. And what it does is it takes the origin and end point of the line from the CAD line to start to be able to create our 3D geometry here.
And here, you can see that there are some inputs before creating anything. We decided which kind of pipe we're going to use or which system. And then, at the end, we assign some geometry information.
So now, we are going to go a little bit more deep. So basically, this is the starting of our script. What it does here is it gets the drawing from our link. We always link our DWG file. We don't import it so we don't [? exploit it ?] inside.
And then, what we want it to import is, you can see here-- it gets the geometry, and we import the line and policurve. The rest of the component, we don't care at all. So therefore, what we do here is kind of to put all of them together and merge the things like the node.
So at the end, we have our geometry that we want to transfer to 3D. And with this, now we get the starting and end point. So then, with a node that I will explain afterward, we are able to perform our 3D elements.
The other input that we are going to make is-- actually, we have to say to the script which kind of type, element that we want to do. Basically, you don't have to be more specific about what you-- you just have to say if it is heating, is cooling, is [INAUDIBLE], it just does that.
And then, the other thing here is, of course, we have to specify the piping system, which is kind of related to what I explained before. And another that is really important when we do this kind of generational 3D geometry is we have to define our level because, as you know, the pipes, the ducts that we do in Revit, they are referring to a level.
So if the architect changes something, and it is not referred to the right level, then it's really difficult to change. So it's really important that we start in the right way. So here, we have this node. Actually, this node, you can find in dynamoBIM.org, but of course, I will upload all of the code, all the nodes that we are using here on the application, so you can start playing with them and try to see what you can do with them.
So basically, here, it gets all the information that we get from the drawing, from the input before. We have here the origin point, the end point, the piping system, the piping type, and referral level. And then, with this thing, it's able to create our 3D component.
How this node works-- it's basically really simple. It's just by Revit API. It runs the comment new pipe or new duct, and it gives the coordinate and the information that we have defined before. So that's why it's able to perform it.
And then, the last thing, if we wanted to make it a little bit better, is we can define, also, the size, the diameter of our piping, of our ducts, because, if we don't define here, the script will be randomly assigning a particular side. And this is how we think always.
I try to assign a small diameter because, if you have a small diameter, then you can kind of use the autosizing tool. And then, when you start connecting more connection nodes, you assign a different air diffuser or any other mechanical equipment, then you can be able to generate the right sizing of the element without having too much effort.
So basically, this script, what it does, it works great with the workflow. And the thing is, where I see the potential, the thing is not about how well it does because it's pretty simple, and if you compare-- of course, if it's a big project, it will mean a lot of save.
But where I see the big advantage of it is to start as soon as possible with the model because the sooner that start, the better communication that we will have with other disciplines. And also, we will be able-- I will present-- afterward, we will be able to make some calculations.
However, these scripts have some limitations. And the limitation is it doesn't generate the connection, the fitting. But of course, by Revit API, it is possible to do [INAUDIBLE] thing. You have to get more in depth, and you have to create a kind of [INAUDIBLE] a more advanced application.
But I'm pretty sure in the next year, it will be possible to do that. Our whole conversion from 2D to 3D-- in one minute. So that's really nice.
Do you have any questions about this script?
AUDIENCE: Do you have any examples of what it would look like-- [INAUDIBLE]?
ALEJANDRO: Yes. I will. I haven't done a video, but basically, I put it here. Basically, it looks something like this. So basically, what you can do, you see-- like I did really simple. But the thing, how it will look, it will not make the connection. And the good thing of this script, also, is in AutoCAD, if you make, also, AutoCAD 3D, it will draw you the vertical line, as well.
So then, I'm going to start with the DUMMY connection nodes for MEP design information regarding heating design. So basically, the idea of this workflow is, when we are deciding heating, and we are placing our main pipe, our radiator, sometimes when we have to collaborate with our energy engineers, we are not able to provide accurate information about our system because we are not finished with all the modeling.
So basically, you can see, here, the conventional. Normally, when you do that, you place the radiator, then place the pipe to main supply, and then you use the piping design. And then, at the end, you kind of coordinate with the other people. But at this point of the project, it can be too late to achieve the requirement that you have.
And then, a lot of times it happens, like you have to put a lot of solar panels or other things. But that's not good. So the thing that I'm going to show you now is going to be-- do you know what is a dummy? I will present it right now.
And then, the thing when we use this kind of dummy, we kind of get some output, and then this is coordinated with the other energy engineers, with the architects, and then, going on with the development of our model. So if we want to use our model for calculation, we don't have to wait until the end.
So basically, what I'm going to show right now is-- the aim of the script is going to perform heating piping design calculation earlier in the phase without modeling the radiator pipe to the floor heating or radiator, and then, how to dynamically integrate it with the heat loss MEP Spaces design information. So basically, this kind of solution. these are dummies.
And these are pretty basic solutions. This is our mechanical equipment family. And basically, it has a connector on here and here. And what you define here, you cannot see here, but you can see the mechanical flow and the volume flow rate assigned to this connector. And then, this connector, you can, with Dynamo-- we will link it to the radiator, so they can't receive information without being connected.
But before, I'm going to put some video about how to import, to insert this kind of dummy, how this Dummy works. Basically, you insert the [? inside equipment ?] family, and you have to insert it, normally, like a kind of diffuser. And then you align to the pipe, and then you have to connect it manually because when you insert family, it doesn't connect to the connection.
This kind of dummy, you have the information that will come from the radiators. And it's really easy to use. However, in the market, there are some plugins for Revit that kind of make this more smart. Or at the end of the lecture, you will be able to kind of make more [? about ?] a script to automate this process because, if it's a huge project, it can take a lot of time.
So here is the structure of our script. Basically, it has three main components. Basically, we have here the dummies, MEP Spaces, and radiator heating devices. And then we have, here in the middle, how to sort out which connection node radiator in each room. And at the end, you make the transformation of the design calculation back to Revit.
So here, you can see we have-- it's really difficult to read, but here, you have to get the bounding box from MEP Spaces because how we will make afterwards, the intersection-- it will be by bounding box because here, also the dummy families will get the bounding box, and the radiator will get the bounding box.
The reason why we get the bounding box is because, a lot of times, when we have our main pipe on the top of the ceiling, you cannot really make an intersection between the MEP Space and the connection node because they are in different rooms. But when you make the bounding box, you can offset for this intersection.
So here is the first intersection that we have to do. When we have our connection nodes, it will have to intersect to the MEP Space that we load. And then, in order to be able to do this, we have to use this kind of code. And then, where it didn't [? make it, ?] it will offset our bounding box.
So here, our mask, you will see some true and false values. And these values, it will be able to sort out all the radiators with the right dummies. When you get here to the mask, in order to replace the true values with the right family, with the right dummy family-- there are many different ways to do this kind of transition between mask from true, false values, and then replace the true value.
But for me, where I like to do more is just to make this kind of [INAUDIBLE]. So basically, what it does is you create this equation. And basically, you say to replace the value, the true value for the masks from the list. It's really simple.
And then at the end here, you can see that we have our dummies on the right MEP Space. So when we have our dummies in the right MEP Spaces, we have to do the same with the radiator. So we have to be able to transfer, afterward, the information from one to another.
So here is the same workflow from before, but here, difference-- you can see we just do a straight bounding box intersection because our radiator, normally, they are within the room. And before, we had to make this offset of the bounding room because we have a pipe on the top of the ceiling. So it didn't intersect. But in this case, it's not necessary.
Of course, it will depend, from one project to another. And then you do the same thing. And here you can see, in one row, we were having two radiators and one-on-one. In another, two. So basically, when you have these kind of-- sorry.
Here, when you have the radiator sorted out by data-- so basically, what you do here, you have to retreat the heating capacity of the radiator. And this will allow you to transfer the right information to the connection node so you can have the volume flow rate on the connection node. So you can use it, maybe, for autosizing on the pipe right away.
So when you have these kind of things, you get the heating capacity of the radiator. And then you have to sum it up. And at the end, you have a total heating capacity per room because, normally, in early design, what you do is you have just a connection, like a connection pipe per room. So that's the idea.
And when you have this thing, you can see these values are sorted out in the same order of the connection node, of the dummy. So then, the information, it will match correctly. It will not mess up. And then we put it back on the family with the [INAUDIBLE], so we have it here.
But in order to be able to make this kind of out-of-sight thing with pipe, we have to also send out to the dummies our volume flow rate. And how we do it-- we made a Python script, but you can do it with the normal formula from Dynamo.
It's easier. And of course, it depends on imperial to metric. So then, at the end, what you do with this workflow, you are able to have the connection of the heating capacity of the radiators and the volume flow rate that will be on the connection without connecting all your components. So you'll be able to make a calculation in early phases.
So the evaluation of this script, it's basically for heating design. It's useful because you can coordinate it with the-- especially for, in Denmark, we have a lot of huge heating demand. And we have to keep a lot of coordination with the indoor plumbing energy. So as an HVAC engineer or MEP engineer, we are designing a system, and we cannot wait until the end to give them a precise result.
So this script allows us to provide a useful output. Then, when we do this, as I mentioned before, we can automate the dimension of piping by using the default option from Revit. However, also here, you can see, like the insertion of dummy families on radiator dimensioning is not automatic.
So you have to explain, for example, if the architect changed some geometry, and the energy engineer gives you some he lost from your MEP Space, then the radiator, it will not change automatically. You have to do it by yourself.
But in early phase, once you have the right radiator or another heating equipment, the connection node, it will update right. So then you can give an output automatically to the energy engineer without having to redo all the calculations.
So right now I'm going to present-- do you have any question for this script?
AUDIENCE: So the radiators, they have [INAUDIBLE] in them already [INAUDIBLE]?
ALEJANDRO: No. You have to define them.
AUDIENCE: [INAUDIBLE].
ALEJANDRO: But you can. For example, in our company, we are testing to make this kind of inputting the power capacity by linking our energy model to the architecture geometry. So if we change the heat loss, it will change, update, as well. And then, it will make, also, an intersection between radiators.
And then you can assign automatically the right heat capacity. But you have to be a little but more advanced. But it is possible to do it. Just you have to be innovative and don't be afraid of this. It is possible, and it will save you a lot of time. And you will see in the end, the output for the project will be really, really great.
Other questions for this script?
So right now, I'm going to present our HVAC calculation with our finished model. And it's going to be focused on ventilation for pressure drop. So basically, it's the same principle over again. So we cannot wait until the end to provide to the architect or energy engineer the right output.
We have to be able to start as soon as possible, make partial calculation, coordinate it, [? and keep ?] the level of detail of our model, make the coordination again. So we are making sure that we are always on the right track. So what I'm going to show you is how to-- this is really more advanced.
In some nodes I have developed myself-- I mean, I'm not done especially, but it's just to show you what I have done and the output and the result that I get with this. So basically, what it does is, with this script, you can make a pressure drop calculation and velocity when you have an unfinished model and you have open connectors. It will be able to hook up this open connection virtually by Revit API.
So you are able to run the calculation. And the metric that we are using, the ConnectTo method, this is from the Revit API. So basically, here, you have a visualization. So when we have this kind of model, and we know [INAUDIBLE] from the roof is going to look like this. And then we have our main supply duct from here.
And then we have, here, all these things. We have these dummy families that I explained before that take the information from the MEP Space. And then at the end, you have [? to know ?] that this part is going to be your critical point to dimension your [? 800 ?] unit.
But how you can be able to make sure the HVAC, the [? 800 ?] unit that you are providing or you are talking with the client on the energy [INAUDIBLE] is the right during the early designer stages-- because you cannot do that. You need to connect these connectors to here, and these connectors to here, to here, so you are able to run.
So basically, with the connection with the script that I will present afterwards, when you connect this connector from here to here virtually-- this is the system inspector from Revit-- it will be able to get to the data and the design flow with an unfinished model. And from here-- from here until the end.
So basically, with this kind of partial modeling, you can get pressure drop calculations quite-- it's not 100% accurate because, when we are missing these kind of parts, the part that we are we are missing, it will not take into consideration for the pressure drop calculation. But for us, it has been really useful because, when we do these things, we are aware that we have to be below of our requirement.
So when we are finished with the model, we don't go over here. We don't we don't go over it. And then, at the end, our model, it will look like this. So basically, in early stages, if, in this partial model, the result that we are getting is not good, when we get here, until the end, it could be [? worse. ?] But here, in early phase, we have the opportunity to improve our design and improve our engineering value.
So I'm going to present right now the code. And you can see it's really simple. But these nodes, there are not coming from Dynamo. I code them myself. But I will make sure they are available for you, so you can try to play with this.
So basically, what it does-- you select the ducts manually. And you know every duct has two connectors. So when you have the connector here, you have to get access to the connection. Then you get the connector, and then you have to get the connectors that are not connected.
And then, by using the Revit API, you connect virtually one connector to another. So then the Revit, it can run you the pressure drop calculation. So basically, here you can see I selected one duct here and another duct here. So with this here, you have the connector. And via the connector manager, you have access to the connector.
So you can see we have four connectors. And these parts, for HVAC design, MEP design, it's really important because when you have access to the connectors, it gives you all the design data that you are using. So then, when you have the open connectors, when you have here, the connector, basically, what you do in the workflow, it's really simple.
You try to use a virtual Boolean mask. And then you have to use these node. And this node, basically, what it tells you, it tells you if it's connected or not. And it gives you false and true value. So by doing this here, you have the two connectors that are disconnected, and you want to connect virtually so you can make a partial calculation.
And the last part of this script is going to be, when you have the two connector, basically, it's really simple. I mean, if you make a [INAUDIBLE], and you get one connected to one input, and the other connected to another input. So then this node, where it will make, it will connect them.
So here, I make a little video. So it doesn't become a really-- you can have more idea about what it makes. So basically, you can see here that we have these two connectors. We have the question marks. These mean that it's connected. So we select it.
So then when we select it, we see that, as soon as we click here, these two question marks, they are gone because they are already connected. And then we do it. It's really simple to use. And everyone can use it, and it will make you able to calculate in early design.
And then, here, the same. It's just two clicks. And you don't have to model anything, and you don't have to do anything complicated. And then, if you go here to the system inspector, you can see, actually, the workflow, the flow of our system is connected. And what it's doing it's taking the shortest point from here to here. And then at the end, it will make the same.
So these are all the nodes that I made. So you can start using. So you have here the connector origin. And also, you can see the MEP system, the domain, the [? origin. ?] For me, one node that is really interesting, and then, I think it can afford you a lot of opportunities, this one. When you get the origin of the connector because with this thing-- and in combination with the other one.
For example, you can try to see which connector I have open. I want to place, for example, a diffuser or a connection node. And then you can place it on the same coordinate. And then, using the script that I presented before, you can connect the family to the pipe automatically . So basically, you can automate the entire design process almost.
So here, the valoration and enabling to [? drop in a ?] connection are really easy. And you don't have to spend time for modeling. And the total pressure drop can be roughly estimated. Normally, we have found values around 70% accurate.
But of course, the more that you use it in your project, you will generate a kind of a database. So if you know that you were starting one project with one value, and at the end, you got another, you can see the deviation.
So basically, the more that you use, the better idea that you will have at the end. So that is really exciting. And the only thing that is a little bit annoying is when you make kind of the connection virtually, and you want to disconnect it, Revit API gives you the opportunity to disconnect, also, virtually.
But the problem is, when you have [INAUDIBLE] connected, all the connectors are connected. So you cannot make a Boolean mask, to see which of them I want to disconnect. So then, when you do this, the duct that you have connected virtually, you have to remove it. But of course, you can maybe make just a slice and remove the last part. So you're don't have to remove the entire duct.
Here is the one project that we just delivered the thing. This is a commercial center. And actually, we used the kind of the workflow represented here, trying to use as much as possible [INAUDIBLE] in connection with MEP Spaces with our volume flow rate, our heat loss and tried to make early calculations from the beginning.
And then at one point of the project because the client wanted a specific thing, we realized making these calculations, we were getting about-- especially this thing. It showed the pressure drop for our [? 800 ?] unit. And we were getting 520 pascal, and on our return it was 250.
So that was the size that the client was wishing for. But by using this, we realized that we were not doing great really early in the project. So we were able to talk with the client and other disciplines, with the structural engineers.
And actually, it was surprising because just providing a better design, trying to improve all the connections, trying to visualize the data, and making an effort to calculate early, we were able, at the end, we [? ended ?] with 119 pascal. And we didn't do more high-efficient components. Just-- we do a better design and a better integration with the other disciplines and a better coordination of our design data.
So this is the final workflow, with all these scripts where you can achieve it. Right now, it has been in our industry, in HVAC engineering, it's getting better and better. We are still a little bit behind, I feel like, from architects or structural engineers. But I feel like we are getting better.
So the things [? like ?] [? on ?] conventional-- we have been trying to use our BIM model and tried to just make an update of our design systems at the end of each milestone. But actually, with this workflow, with this kind of script, with the nodes that I am providing you, you can start making, trying to use all the calculations you do.
And then, basically, the idea is every time the architects make a change, you just write your script, you update the calculation. And then you'll get back, you'll see the results, so it gets integrated with all the parts.
And so what we do with this kind of high collaboration is we are creating a high design value for the client. And also, we are reducing the risk of bad decisions in the beginning because the problem is if we make a bad decision in our system at the beginning, then at the end, it will be really difficult to solve it.
And another thing with this kind of integration with data, early designs, you can save a lot of time because, normally, when you run the first time this calculation, you just do it one time. The rest of the time you just run again the script, and what you have to do is just to control the data and use your time not for production.
You can use your time to make a better design and for communication. It will improve, will make higher the design value on that project. And at the end, of course, this is [INAUDIBLE] is information management and information consistency. So we will be able to have a better quality control of all the things if we don't wait till the end, and we try to push out a little bit, and get better and better.
So thanks a lot for your time.
[APPLAUSE]
It was really nice.
Do you have any questions?
Can I ask you one thing, if you don't ask me?
AUDIENCE: [INAUDIBLE].
ALEJANDRO: Have you made, on your company, this kind of workflow, kind of tried to make calculations with BIM model which are not finished?
AUDIENCE: [INAUDIBLE].
ALEJANDRO: And were they--
AUDIENCE: I found it was most successful on the plumbing side. Rather than piping up all the different plumbing fixtures-- rather than piping up all the plumbing fixtures in a bathroom, which can be pretty time consuming if you're sloping it, and everything, we'll just put one of those dummy parts in there. And it just represents the fixture units for the whole group. And then if the architect just moves the bathroom, you're not down all that time throwing out those pipes. Yeah.
ALEJANDRO: So that's a good thing. I mean--
AUDIENCE: Yeah. [INAUDIBLE].
ALEJANDRO: Yes. So thanks a lot.
AUDIENCE: Thank you.
ALEJANDRO: You're welcome.
AUDIENCE: You have a nice day.
ALEJANDRO: You, too.
Downloads
Tags
Product | |
Industries | |
Topics |