I have created a schedule that lists all the materials in my project and I can list either by material-order or family-order.
This is great. I can see exactly how many different materials I have in my scene (and realize they are too many).
What I would like to be able to do is to change the material name from within the schedule.
Say I made a wood-material named simply "Wood".
From the schedule, I would want to find all the different wood-related materials ("wood - furring", "Wood - Stud Layer", "Structure - Timber Insulated Panel - Insulation blah-blah") and just change the material name to my new and nice "Wood".
Is that doable?
If not from Schedules, then what other fast ways are there?
I haven't seen the schedule you created so I'm not sure how it looks like but technically speaking you should be able to change material from the schedule...HOWEVER, let say you've got some families with shared nested components, the material parameter of those wont be accessible from the schedual. So I guess it is not doable using schedules.
However it should be easily doable using dynamo.
With a fairly small graph you should be able to create a list of all elements based on the value of their material parameter then Re-Set that parameter's value for the listed elements using a node called Element.SetParameterByName
This would be the easiest and quickest
YOUTUBE | BIM | COMPUTATIONAL DESIGN | PARAMETRIC DESIGN | GENERATIVE DESIGN | VISUAL PROGRAMMING
If you find this reply helpful kindly hit the LIKE BUTTON and if applicable please ACCEPT AS SOLUTION
@RDAOU wrote:I haven't seen the schedule you created so I'm not sure how it looks like but technically speaking you should be able to change material from the schedule...HOWEVER, let say you've got some families with shared nested components, the material parameter of those wont be accessible from the schedual. So I guess it is not doable using schedules.
This is the schedule I made
All it lets me do is to select the family in question. This does help a bit. Say I have assigned correct materials to most of the families and now I am tracking down those families that still have some odd material.
@RDAOU wrote:However it should be easily doable using dynamo.
With a fairly small graph you should be able to create a list of all elements based on the value of their material parameter then Re-Set that parameter's value for the listed elements using a node called Element.SetParameterByName
Do you have any dynamo script that I could look at? I am quite of a beginner in Dynamo.
Also, your idea is to kind of do a batch for each material that I need to swap out? And would it be able to swap out materials inside families as well?
I realize that best practice with materials in families, especially those with nested families, is to link the materials as parameters. This would let us change the material from within the project and with no need to dig into the families to fiddle with materials there...
FWIW For materials it is quite useful to assign/associate global parameters to swap materials for multiple types/instances at once, but unfortunately it is not possible to associate globals within floor/wall assemblies this way.
@Haider_of_Sweden wrote:Do you have any dynamo script that I could look at? I am quite of a beginner in Dynamo.
Also, your idea is to kind of do a batch for each material that I need to swap out? And would it be able to swap out materials inside families as well?
I realize that best practice with materials in families, especially those with nested families, is to link the materials as parameters. This would let us change the material from within the project and with no need to dig into the families to fiddle with materials there...
I cannot share a the graphs we use but I have put together is a quick example (animated gif) showing how you can create a simple list, filter it and set material of all families to match material of 1 element of the list. You can work with dictionaries and create more filtering arguments depending on the purpose of the graph. The idea is not only to batch process but also to facilitate/automate a certain routine without digging into the families, plans or schedules.
As for the Best Practice...Best practices depend on the workflows. We do not always associate Mat/dims parameters of nested shared families to the host. In most of the complex families we use we rely on type catalogues and key schedules, and the shared nested families are associated only to a Family <Type> parameter in the host. When parameters are associated to the host, those parameters become useless read only. Meaning in your case you will need to trace those families back to the parent family and change them therein.
YOUTUBE | BIM | COMPUTATIONAL DESIGN | PARAMETRIC DESIGN | GENERATIVE DESIGN | VISUAL PROGRAMMING
If you find this reply helpful kindly hit the LIKE BUTTON and if applicable please ACCEPT AS SOLUTION
Sie finden nicht, was Sie suchen? Fragen Sie die Community oder teilen Sie Ihr Wissen mit anderen.