Thanks for all the tutorials Gavin! I tried to filter few of the elements using the Boolean mask and got the end list as I wanted (certain groups). When I try to use set parameter node to them (to change their names) I get a warning that I should be feeding the elements in the place of strings. So looks like the Boolean mask converted the elements to string. Is there any way to convert them back to elements? I tried searching on the dynamobim forum and was not able to find the answer.
Ideally the best way to deal with this is to get the elements as opposed to their name by the time you apply the mask. If you are using something like element.name to cross check group names for a match, get the bool mask, but pull in the element list one step before the name node instead. Feel free to gmail me youe script if it's more complex than that :)
Nice video Gavin! I'm trying to create a script that create a ID for every component according to its position in the grid lines. Your video has clarified how to do the beginning and the ending of my script. But I would like to know which nodes should I use to link the grid line to families? Thank you.
Thanks Tito. I would get all grids as curves then get all intersections of those curves. If you can create a list of the same order with the grid numbers, you can use 'closest point' to find the nearest grid point as an index of that list, then get the reference at that same index. I think I'll add this one to my list to do - a handy workflow!
@@AussieBIMGuru Nice video I'm a new dynamo user and I've a same problem as Tito Moura Can you please put a video showing how to do that or a handy workflow as you mentioned? Thanks.
Thanks for this tutorial! Maybe some easy beginner question, but I'm still missing a step there. So I'm getting a parameter value from all elements -> filter it by mask -> becomming an in-list with the "wrong" values, that I want to replace. I want to set back the "right" parameter only to those elements in the in-list. How can I feed now only these elements? With the Node Set element by name I couldn't find out how to do this. Thank you for your help!
Okay, I think I figured it out with the ElementFilter.ByParameterStringValue, which gets already the elements, for which values I want to set the new one. Could it be?
Hi there Denitsa, in this case if you filter both the parameter values and elements themselves this should limit the inputs for a element.setparameterbyname node for both the elements and values inputs. You could use a string.contains or equals node to validate the parameter value in order to mask the two lists going into the final node. Hope that helps/makes sense, and keep up the learning journey!
Hi Gavin! I hope you have nice vacations, still continuing my journey with your tutorials though :). I would be actually interested in your opinion about some point. Which method do you prefer to use, by delivering smth high detailed from a model, like 1:5? For example showing brackets, metal sheets, insulations, facade transitions, dimensions.... I'm catching myself drawing "fast" in Autocad or taking 2D info from Revit, with 2D objects, but I doubt this methods already. Which could be some friendlier, faster way in your opinion? Thank you!
@@denitsas_simulation usually I use 2d components but overlaid on a revit view where possible. If it is a typical detail sometimes I'll use a drafting view however. I would usually just use Autocad as a reference, then replace the detail with Revit detail components instead - this way in future this detail is available for editing natively and can be used on other projects also.
Thank you for this great tutorial. Closer to the end of it, I had a problem creating and manipulating the parameter "Wall Top RL". I have 56 elements for both the AllElementsofCategory and the value input (the summation of the UnconnectedHeight and BaseConstraint), yet I keep getting this error: "Parameter names and values must have matching list lengths!". Could you help me with this one?
@@AussieBIMGuru There were basically no difference between mine work and the work you done at this video. I tried a few changes to match the list shapes; extracted the output TO a Watch list and then linked them all. Also checked the selected wall instances(also selected them by types) for the parameters. But those lists have the same number of elements which are 56. I don't know man. What do you mean flattening the nodes by the way? Kind a beginner for all this, excuse me for that.. :)
Flattening is by feeding the output into a List.Flatten node first, this puts all data at one level so it isnt in sublists. Might be worth giving lesson 4 another watch to reinforce list concepts.
This is the first time I’ve learned to use the node“Category.ByName” rather than “Categories”,gained experience,thank you!
You're welcome! Great way to get around new categories being added in new Revit versions.
The format of this tutorial was incredible. So much content reviewed in a very short period of time. - Thank you for sharing with us.
Glad it was helpful!
Thank you so much for the tutorial! Super helpful!! ps. I couldn't move my eyes away from your cat other than the content lol
Haha yes they are indeed the stars of the show!
Thanks for this tutorial. It is really helpful. Mainly this video Shows you think Smarter.
You're welcome Saugata! You sound like you think smarter also, I'm glad the channel helped
@@AussieBIMGuru definitely...
Thanks for all the tutorials Gavin!
I tried to filter few of the elements using the Boolean mask and got the end list as I wanted (certain groups). When I try to use set parameter node to them (to change their names) I get a warning that I should be feeding the elements in the place of strings. So looks like the Boolean mask converted the elements to string. Is there any way to convert them back to elements?
I tried searching on the dynamobim forum and was not able to find the answer.
Ideally the best way to deal with this is to get the elements as opposed to their name by the time you apply the mask.
If you are using something like element.name to cross check group names for a match, get the bool mask, but pull in the element list one step before the name node instead.
Feel free to gmail me youe script if it's more complex than that :)
Nice video Gavin!
I'm trying to create a script that create a ID for every component according to its position in the grid lines. Your video has clarified how to do the beginning and the ending of my script. But I would like to know which nodes should I use to link the grid line to families?
Thank you.
Thanks Tito.
I would get all grids as curves then get all intersections of those curves. If you can create a list of the same order with the grid numbers, you can use 'closest point' to find the nearest grid point as an index of that list, then get the reference at that same index.
I think I'll add this one to my list to do - a handy workflow!
@@AussieBIMGuru Thank you for your supporting as always. I will try to get this done.
@@titomoura7014 you're welcome! It's mainly an excercise in list management and index matching.
@@AussieBIMGuru Nice video
I'm a new dynamo user and I've a same problem as Tito Moura
Can you please put a video showing how to do that or a handy workflow as you mentioned?
Thanks.
@@REDO_79 if you check my dynamo playlist i have a workflow for closest grids to elements on there.
Nice videos! we learn a lot about how to work with cats... I mean, Dynamo...😉
Haha yes both are equally important lessons!
Thanks for this tutorial! Maybe some easy beginner question, but I'm still missing a step there. So I'm getting a parameter value from all elements -> filter it by mask -> becomming an in-list with the "wrong" values, that I want to replace. I want to set back the "right" parameter only to those elements in the in-list. How can I feed now only these elements? With the Node Set element by name I couldn't find out how to do this. Thank you for your help!
Okay, I think I figured it out with the ElementFilter.ByParameterStringValue, which gets already the elements, for which values I want to set the new one. Could it be?
Hi there Denitsa, in this case if you filter both the parameter values and elements themselves this should limit the inputs for a element.setparameterbyname node for both the elements and values inputs. You could use a string.contains or equals node to validate the parameter value in order to mask the two lists going into the final node.
Hope that helps/makes sense, and keep up the learning journey!
@@AussieBIMGuru Thank you, Gavin for your quick answer. I'm starting to understand it. The theory sounds always easy. Keep the nice work!
Hi Gavin! I hope you have nice vacations, still continuing my journey with your tutorials though :). I would be actually interested in your opinion about some point. Which method do you prefer to use, by delivering smth high detailed from a model, like 1:5? For example showing brackets, metal sheets, insulations, facade transitions, dimensions.... I'm catching myself drawing "fast" in Autocad or taking 2D info from Revit, with 2D objects, but I doubt this methods already. Which could be some friendlier, faster way in your opinion? Thank you!
@@denitsas_simulation usually I use 2d components but overlaid on a revit view where possible. If it is a typical detail sometimes I'll use a drafting view however.
I would usually just use Autocad as a reference, then replace the detail with Revit detail components instead - this way in future this detail is available for editing natively and can be used on other projects also.
Thank you for this great tutorial. Closer to the end of it, I had a problem creating and manipulating the parameter "Wall Top RL". I have 56 elements for both the AllElementsofCategory and the value input (the summation of the UnconnectedHeight and BaseConstraint), yet I keep getting this error: "Parameter names and values must have matching list lengths!". Could you help me with this one?
Hrm make sure the list shapes match also, so everything is at the same level. A flatten node might do the job here if needed.
@@AussieBIMGuru There were basically no difference between mine work and the work you done at this video. I tried a few changes to match the list shapes; extracted the output TO a Watch list and then linked them all. Also checked the selected wall instances(also selected them by types) for the parameters. But those lists have the same number of elements which are 56. I don't know man. What do you mean flattening the nodes by the way? Kind a beginner for all this, excuse me for that.. :)
Flattening is by feeding the output into a List.Flatten node first, this puts all data at one level so it isnt in sublists. Might be worth giving lesson 4 another watch to reinforce list concepts.
Thanks👃👃👃
You're welcome!
For god's sake, pet the cat.
Haha answering the pat request is only rewarded by more pat requests.