Hello,
To come around the issue of not been able to include some system families element’s instance parameters into a schedule (like floors “Thickness”) I need to create a Macro that “goes through” all the model’s floors one by one, getting the desired instance parameter value and copping it into an auxiliary project or shared parameter (includable in a schedule) that I created (like "Floor_Thickness_Sch" or something similar...). Please take note that I don’t want to use this for tagging, what I really need is a way of showing the floor’s thickness in a schedule.
Since I’m new to Revit programming I would like to request the experts help for writing this piece of code.
Assuming the auxiliary instance parameter is already created and available in the floors (instance) properties, I think the structure of the macro should look something like this:
1 – Find the “first” floor’s ID
2 – Read and store the value of the desired instance parameter (in this case the “Thickness” instance parameter) for the floor identified in the step 1 or 4 (depending on if this is or not the first cycle’s run);
3 – Paste the value into the auxiliary instance parameter ("Floor_Thickness_Sch") of the current floor;
4 – Move on identifying the “next” floor’s ID and perform tasks 2 to 4 until there are no more floors left in the project
I know a little about VB programming (and almost nothing of the other languages available for Revit API), so, ideas in VB would be very helpful.
Thanks a lot!
Hi,
You find a Dynamo solution with downloadable scripts for this on the German DynamoBIM blog here:
http://dynamobim.de/blog/parameter-kopieren/
I have just translated the description of the steps documented in the German blog post for you as follows.
Room height label (or any other instance parameters) - The prerequisite for this script is a shared parameter in your Revit file that is assigned to the category "room":
- picture in the blogpost -
You can choose the name of the parameter, as you wish, it is only important that you specify it, minding capital letters in the Dynamo script:
- picture in the blogpost -
Dynamo takes care about the rest for you - if you leave the Dynamo window with the script in the background open and select the automatic execution, the values will be updated with each change.
- picture in the blogpost -
The room height parameter is a shared parameter that you can select now for the tag family.
- picture in the blogpost -
Wall thickness label (or access any type parameters)
On the way described earlier, you can read all the copy parameters - in case of type parameters you will need to change the script a little:
- picture in the blogpost -
The conditions here are the same as with the previous example; So you need a shared parameter in which the determined value should be written.
I hope this information was helpful.
Please hit the Accept as Solution button if my post fully solves your issue or answers your question. You can also give Kudos for helpful posts.
Best regards,
Dear Zsolt,
Thank you very much for your interesting and comprehensive answer!
It fits in very well with my discussion yesterday of the pyRevit RevitPythonShell library:
http://thebuildingcoder.typepad.com/blog/2016/04/the-pyrevit-ironpython-script-library.html
Dear Matrena,
Thank you for your query.
'Request' is a rather harsh word in English... a softer way of putting things might be 'appreciate some assistance' 🙂
If you really insist on someone else doing the work for you, you can always contact Autodesk Consulting and ask them for a quote.
If you are interested in addressing this yourself, please refer to the Revit API getting started material; I suggest working through the DevTV and My First Revit Plugin tutorials first of all:
http://thebuildingcoder.typepad.com/blog/about-the-author.html#2
The easiest way to get going with the Revit API without installing an external development environment is to implement and play with macros using the built-in SharpDevelop IDE (integrated development environment).
I hope this helps.
Best regards,
Jeremy
Hi,
this page does not exist.
Where can i find downloadable scripts for Dynamo?
thanks
What page?
Search for 'dynamo revit':
Cheers,
Jeremy
Hi,
this page does not exist.
Where can i find downloadable scripts for Dynamo?
thanks
Hi @p.grezzi,
Indeed the link got outdated or the script I was referring to got moved.
Here you can find packages for Dynamo:
https://www.dynamopackages.com/
You can also find a collection of useful links (for customers with German language) here:
http://bimblog.typepad.com/autodesk_bim_blog/2015/07/dynamo-linkliste.html
...and here:
http://blogs.autodesk.com/bimblog/category/dynamo
I hope that helps.
Please, don´t forget to mark this as accepted solution if it does 😉
Best regards,
I admit I share @matrena 's attitude towards Autodesk having users fit out the software with missing functionality. I now chose this way and wanted to adopt the dynamo script shared by @Zsolt.Varga only to find that link no longer exists. I will now try to figure out which of the scripts might fill the gap as Zsolt's second comment does not directly link to an updated version of the earlier script.
Dear Michael,
I searched the German Dynamo forum for 'parameter kopieren' as suggested above, and found the following updated link:
https://blogs.autodesk.com/bimblog/parameter-kopieren
I hope this helps.
Cheers,
Jeremy
Hi probably you can use simple dynamo script and export it to Excel. Here is the sample for parameter you are searching for (Thickness). With the same manner you can create any set of parameters you like.