Would you like to inspect the original subtitles? These are the user uploaded subtitles that are being translated:
1
00:00:00.05 --> 00:00:01.06
- [Instructor] The final section
2
00:00:01.06 --> 00:00:04.06
of any generative design script is the outputs.
3
00:00:04.06 --> 00:00:06.08
This is where we can indicate data
4
00:00:06.08 --> 00:00:08.04
to score each option,
5
00:00:08.04 --> 00:00:10.05
data that we want to send back to Revit
6
00:00:10.05 --> 00:00:13.09
and geometry that will be shown with each design.
7
00:00:13.09 --> 00:00:17.01
So in this lesson, let's create those outputs.
8
00:00:17.01 --> 00:00:20.00
I currently have the Revit and dynamo exercise files
9
00:00:20.00 --> 00:00:21.04
open for this lesson.
10
00:00:21.04 --> 00:00:24.03
Which is where we left off from in the last lesson.
11
00:00:24.03 --> 00:00:25.05
So to begin,
12
00:00:25.05 --> 00:00:28.01
let's start by grouping those evaluated nodes
13
00:00:28.01 --> 00:00:29.06
that we created
14
00:00:29.06 --> 00:00:36.04
and we'll rename that section to evaluate well length.
15
00:00:36.04 --> 00:00:40.08
Perfect. Now let's focus on the output section.
16
00:00:40.08 --> 00:00:42.08
In our case, there'll be four pieces
17
00:00:42.08 --> 00:00:47.03
of data that we'll want to either minimize or maximize.
18
00:00:47.03 --> 00:00:48.09
The first is the overall length
19
00:00:48.09 --> 00:00:51.06
of the windows in relation to the wall.
20
00:00:51.06 --> 00:00:53.04
We're already retrieving this
21
00:00:53.04 --> 00:00:56.00
from within the evaluator section that we did
22
00:00:56.00 --> 00:01:04.04
in the last lesson, from this subtraction node.
23
00:01:04.04 --> 00:01:05.07
At the moment
24
00:01:05.07 --> 00:01:10.02
we can see that it's outputting negative 2,618.
25
00:01:10.02 --> 00:01:14.01
When we optimize this graph, we want to reduce this number.
26
00:01:14.01 --> 00:01:16.09
However, sometimes we're going to have negative numbers
27
00:01:16.09 --> 00:01:19.00
which won't really make sense.
28
00:01:19.00 --> 00:01:21.01
We need to make them positive.
29
00:01:21.01 --> 00:01:24.03
So to do that, let's place an absolute node
30
00:01:24.03 --> 00:01:29.02
by right clicking and searching math dot abs
31
00:01:29.02 --> 00:01:33.01
and then plug that value into the absolute node.
32
00:01:33.01 --> 00:01:36.08
This node will always output a positive number
33
00:01:36.08 --> 00:01:37.06
as we can see
34
00:01:37.06 --> 00:01:42.02
we are now getting positive 2,618.
35
00:01:42.02 --> 00:01:44.04
Next let's right click the node
36
00:01:44.04 --> 00:01:48.03
and make sure it's an output by selecting is output
37
00:01:48.03 --> 00:01:51.04
and then we'll rename it so that it makes sense
38
00:01:51.04 --> 00:01:58.00
in rabbit, let's call it remaining length.
39
00:01:58.00 --> 00:02:01.01
The next output we need is the overlap value
40
00:02:01.01 --> 00:02:03.02
which is currently being output by this.
41
00:02:03.02 --> 00:02:05.02
If statement node
42
00:02:05.02 --> 00:02:07.04
we'll also want this to be a positive value
43
00:02:07.04 --> 00:02:09.03
so we can try to minimize it.
44
00:02:09.03 --> 00:02:12.05
So let's copy and paste this absolute node
45
00:02:12.05 --> 00:02:15.06
and we'll plug the output of the
46
00:02:15.06 --> 00:02:19.06
if statement node into the input of the absolute node
47
00:02:19.06 --> 00:02:24.09
and next let's rename the node to overlap.
48
00:02:24.09 --> 00:02:27.01
Perfect. There are two more data
49
00:02:27.01 --> 00:02:30.04
outputs which will help us optimize our designs.
50
00:02:30.04 --> 00:02:33.03
These are the height and width of the window that selected.
51
00:02:33.03 --> 00:02:36.03
In some cases we may want to minimize
52
00:02:36.03 --> 00:02:39.00
or maximize either of these values.
53
00:02:39.00 --> 00:02:40.07
So let's add
54
00:02:40.07 --> 00:02:45.02
in to watch nodes by searching for watch, and then copy
55
00:02:45.02 --> 00:02:48.01
and pasting that watch note.
56
00:02:48.01 --> 00:02:51.07
And then we'll retrieve the values that are being output
57
00:02:51.07 --> 00:02:56.06
by this list dot get item at index nodes
58
00:02:56.06 --> 00:02:59.06
as these are storing both the width and the height
59
00:02:59.06 --> 00:03:02.02
of the selected window.
60
00:03:02.02 --> 00:03:10.05
So let's plug both of those into the watch nodes
61
00:03:10.05 --> 00:03:12.05
and then we'll rename those appropriately.
62
00:03:12.05 --> 00:03:21.00
So the first will be the width and the second height
63
00:03:21.00 --> 00:03:29.02
and then let's make sure to set both of them as outputs.
64
00:03:29.02 --> 00:03:36.03
Great. Then let's group all of these outputs
65
00:03:36.03 --> 00:03:42.01
and we'll call that group scoring.
66
00:03:42.01 --> 00:03:44.08
Next we need to be able to visualize each design
67
00:03:44.08 --> 00:03:47.02
in the generative design dialogue for that.
68
00:03:47.02 --> 00:03:49.04
We want to see the windows removed
69
00:03:49.04 --> 00:03:51.07
from the wall to give us some indication
70
00:03:51.07 --> 00:03:53.02
of the window spacing.
71
00:03:53.02 --> 00:03:56.07
So to do that, let's add in a solid dot difference
72
00:03:56.07 --> 00:04:03.04
or node by searching for solid dot difference.
73
00:04:03.04 --> 00:04:06.01
This will remove a collection of geometry
74
00:04:06.01 --> 00:04:08.00
from another piece of geometry.
75
00:04:08.00 --> 00:04:09.05
So for the first input,
76
00:04:09.05 --> 00:04:12.05
let's add in the geometry of the wall
77
00:04:12.05 --> 00:04:18.04
whichever trade from this data dot remember node.
78
00:04:18.04 --> 00:04:23.00
Next let's subtract the cuboids of the windows
79
00:04:23.00 --> 00:04:27.04
which we can get from this cuboid.by lengths node.
80
00:04:27.04 --> 00:04:31.01
And we'll put that into the second input.
81
00:04:31.01 --> 00:04:31.09
To visualize this,
82
00:04:31.09 --> 00:04:34.05
we need to turn the preview of the cuboids
83
00:04:34.05 --> 00:04:38.09
off by right, clicking it and selecting preview
84
00:04:38.09 --> 00:04:41.08
and then let's decrease the amount of windows.
85
00:04:41.08 --> 00:04:44.03
So it can make sense of the model.
86
00:04:44.03 --> 00:04:47.09
Perfect.
87
00:04:47.09 --> 00:04:49.03
The generic
88
00:04:49.03 --> 00:04:52.07
of design dialogue in Revvit will actually display any
89
00:04:52.07 --> 00:04:54.00
of the preview geometry the way showing
90
00:04:54.00 --> 00:04:56.05
in dynamo for each option.
91
00:04:56.05 --> 00:04:58.03
So let's remove the points we currently have
92
00:04:58.03 --> 00:04:59.07
in the view by right
93
00:04:59.07 --> 00:05:03.02
clicking the geometry dot translate node and turning preview
94
00:05:03.02 --> 00:05:06.03
off. The last output that we'll need to set
95
00:05:06.03 --> 00:05:11.06
up is the integration of dynamo elements to Revvit elements.
96
00:05:11.06 --> 00:05:13.07
We'll need to place windows based
97
00:05:13.07 --> 00:05:15.07
on the window type that's selected
98
00:05:15.07 --> 00:05:18.04
at the point locations that we have generated
99
00:05:18.04 --> 00:05:20.08
in the generator section of the script.
100
00:05:20.08 --> 00:05:22.04
As we can see, I've already set
101
00:05:22.04 --> 00:05:25.06
up this integration in this last output block
102
00:05:25.06 --> 00:05:30.00
we need to place the window as a family, within a host.
103
00:05:30.00 --> 00:05:32.09
That is the wall, which is why I've needed to resort
104
00:05:32.09 --> 00:05:35.05
to a Python script, dynamo nodes.
105
00:05:35.05 --> 00:05:37.08
Don't provide this functionality out of the box.
106
00:05:37.08 --> 00:05:40.03
Unfortunately
107
00:05:40.03 --> 00:05:41.06
if you're familiar with Python, I suggest opening it
108
00:05:41.06 --> 00:05:45.06
up and having a look through the code for those that aren't.
109
00:05:45.06 --> 00:05:46.07
However
110
00:05:46.07 --> 00:05:51.06
it basically allows us to input a family type a wall
111
00:05:51.06 --> 00:05:53.01
and a list of points
112
00:05:53.01 --> 00:05:56.05
which it all then use to create windows at those points.
113
00:05:56.05 --> 00:05:57.07
So for the first input
114
00:05:57.07 --> 00:06:00.09
which will be the family type, I've added this get item
115
00:06:00.09 --> 00:06:04.07
at index node to that, let's add in the list
116
00:06:04.07 --> 00:06:11.05
of retrieved family types from the input section
117
00:06:11.05 --> 00:06:19.06
which will be from this list dot flattened node
118
00:06:19.06 --> 00:06:22.08
and for the index, let's use the current selection
119
00:06:22.08 --> 00:06:25.06
of the window type on the slider.
120
00:06:25.06 --> 00:06:26.08
So back
121
00:06:26.08 --> 00:06:29.09
at the input section, let's take this window selection
122
00:06:29.09 --> 00:06:33.09
and we'll plug it into the index of that node.
123
00:06:33.09 --> 00:06:35.09
As this Revvit integration, isn't included
124
00:06:35.09 --> 00:06:40.02
with each run of the script due to the gate node.
125
00:06:40.02 --> 00:06:42.02
This data does not need to come
126
00:06:42.02 --> 00:06:46.03
from my remember node for the second input.
127
00:06:46.03 --> 00:06:48.06
Let's use the selected wall.
128
00:06:48.06 --> 00:06:50.04
So all the way back
129
00:06:50.04 --> 00:06:54.08
in the input section, let's take this wall element
130
00:06:54.08 --> 00:06:58.05
and we'll plug it into input one.
131
00:06:58.05 --> 00:06:59.04
And finally
132
00:06:59.04 --> 00:07:01.03
for the last input, we'll need the generated points
133
00:07:01.03 --> 00:07:04.03
which will be fed into this data dot gate node.
134
00:07:04.03 --> 00:07:07.08
So let's that in these points, which we generated
135
00:07:07.08 --> 00:07:12.01
with this curve dot points at equal segment length node.
136
00:07:12.01 --> 00:07:12.09
And we'll plug that
137
00:07:12.09 --> 00:07:18.00
into the gate because these points are not input directly
138
00:07:18.00 --> 00:07:19.05
into the Python script.
139
00:07:19.05 --> 00:07:23.00
It won't be executed until we actually open this gate
140
00:07:23.00 --> 00:07:27.04
or we create the elements on the generic design dialogue.
11297
Can't find what you're looking for?
Get subtitles in any language from opensubtitles.com, and translate them here.