I had a client email me about Parameters. They were having a tough time getting their head around the different types, so I thought I would make a quick post about it.
In Revit there are
four five kinds of Parameters:
Global Parameters (New in 2017)
System Parameters which include the two you highlighted are built-in to Revit and cannot be changed, but they are always available. This means they show in tags, schedules, projects, families, etc. Project Parameters are custom parameters you add to a project. When adding a project parameter, it is available to all objects of the specified category throughout the project and CAN appear in schedules but NOT tags. You create them with the command on the Manage tab of the ribbon. Family parameters are only available to the Family in which they are added. They do NOT show in tags or schedules nor to other Families of the same category. However, you can make a custom parameter (Project or Family) available to tags and schedules by making them a Shared Parameter. Shared Parameters are defined in an external text file (a Shared Parameter file) and you can access them also on the Manage tab. It is VERY important that you have a single shared parameter file for the entire firm to “share” thus the name. You do NOT want more than one Shared Parameter file. All this file is used for is to define the parameter. Once defined, it knows how to behave. So ALL shared parameters will be created from this single source file. The end users will not need to have access to, nor do they need to even know about the Shared Parameter file. Kind of like a recipe for your favorite cookies. You need the recipe to get the cookies right, but you don’t need the recipe to enjoy eating them.
If you think there is any chance that a custom parameter will want to be scheduled or tagged, you should make it a shared parameter. So on your titleblock, you need to make those custom parameters at LEAST a project parameter. This will tell Revit what to do with them. But consider making them Shared for additional flexibility down the road.
*Update for 2017 – Had a comment below about Global Parameters (GP). So I added them to the table. Global parameters work in a project environment. They can be assigned to drive the values of instance and type parameters of elements in the project. So if you flex the global parameter, it can potentially impact several objects or types across the project. They are user-defined, but can be pre-built in your office standard template (RTE) files if you want. They can only be assigned to properties that are “exposed” by the factory. So certain things cannot yet be driven by GP. Most dimensions can also be labeled directly in a project environment with GP as well. This allows you to build relationships across the project to elements that are not necessarily physically next to one another.
|Kind of Parameter||Who Creates it||Where does it live||Appear in Tags||Appear in Schedules||Description|
|System Parameters||Built in||Project and Family||Yes||Yes||Built-in to Revit, You cannot change it|
|Shared Parameters||User Defined||Project and Family||Yes||Yes||Custom Parameter created for the highest portability and flexibility|
|Project Parameters||User Defined||Project||No||Yes||Custom Parameter accessible to all objects in a Project|
|Global Parameters||User Defined||Project||No||No||Custom Parameter that can drive exposed instance and type parameters in the project|
|Family Parameters||User Defined||Family||No||No||Custom Parameter accessible only to the Family|
Hope that helps to clarify things a bit.
44 Responses to Revit Parameters
Comments are closed.
- Off Topic (1)
- Project Soane (2)
- BIM After Dark (Revit Kid) (2)
- Tips and Tricks (29)
- Oddities (5)
- Book News (23)
- Video Training News (7)
- Speaking Engagements (5)
- Renaissance Revit (12)
- Off Topic (8)
- Revit Concepts (1)
Hi, thanks for all the information you put out there for us.
I have a question regarding Shared Parameters.
I have in my project a shared parameter for Wind Zone, it is an instance parameter and I have it marked for “Project Information”.
When I start a New project I add the wind zone through the project parameters and it reports to tags in the project, but it will not report to schedules.
When I create a new schedule I add the wind zone parameter to the schedule and ensure it is marked for the schedule ie “Structural Foundations is ticked in the Categories list”, the parameter appears in the schedule but will not report the wind zone? Any help would be great.
Thanks for the comment. I need a little more information. What kind of parameter is “Wind Zone”? Is this a text, number, integer, etc? Did you apply the project parameter to Structural Foundations? Or to other categories as well? I suspect that one of the settings is in conflict either in the shared parameter or the schedule. If you are interested in having me look at your file, I can provide this service. Please contact me directly via the contact form here on the site to request a quote for this.
Hello, first of all thanks for your clarification.
I have a question relevant the System Parameters:
I understood that the Room Bounding is a System Parameter and it’s possible to find it in some categories or families (and chang it as yes/no) but not in all.
Finally my question is: there is a way to include this kind of system parameter in the Structural beam family (as structural esposed element inside of room)? I not understand very well the reason why the Structural Column is considered as Room Bounding and structural beam no
This will be helpful in order to calculate the net Volume of some room where are exposed not only the Column but also the beams.
Thanks in advance for your eventyally cooperation.
Thanks for your comment. Autodesk determines which categories are Room Bounding. I cannot say why columns are room bounding and beams are not, but I know of no way to add that feature to categories not supporting it.
Many thanks Paul for your prompt reply.
I also leaved this question to Autodesk Sustomer Support (I just hope that someone from Autodesk will take in proper consideration my comments in order to improve the further releases).
My pleasure. And I hope they take your suggestions. Very good ideas. Take care.
How to find unused parameter in a family because I used no of parameter some are assigned and some for mathematical purpose and some are create and used initially, after optimizing the family formula some parameter are unused. I would like to identify and Delete those parameter that are not assigned.
There isn’t an automated way to do it. What I usually do is select each parameter (one at a time) and then click the Remove button. It will display a dialog. The dialog will either simply confirm deletion, or it will warn you that the parameter is in use. If it is in use, click the cancel button and move on to the next one. If it just confirms, but is not in use, you can click OK and remove it. If you have a lot of parameters, it is tedious, but it works.
Hope that helps.
Another distinction between shared and project parameters is that project parameters are available to key schedules, while shared parameters are not. An unfortunate side effect of this is that information that is controlled by a key schedule cannot appear in a tag. Do you know of a work around for this?
I wish I did have a work around for this, or better, that this limitation did not exist. It is one of those things I like to refer to as “Artificial barriers”. Ah well.
So, i deeply need an advice about sth. Like can we assign a yes/no parameters for rooms. This will sound crayz but i have to do 2 different functions in same model. That means some rooms for Design 1 let’s say, some are Design 2 option. We have to place those in the same place and hide on of them in a single option.
We need to show these two options to the client whenever he asks for it. Design options don’t work good for us, it has such a big project and got a few linked files in it. We can’t do 2 model files it’s such a big scale and we’re a copule of people.
What would you suggest for this?
Filters? Phase? Rooms and Spaces? Design Options?
What you describe sounds complicated and not very effective. I am not sure why Design Options will not work for you, but this is what they are designed to do: manage alternative options. It “MAY” be possible to do this with phases, but again, Design Options would be my first choice.
It’s because of we need to make groups. It’s a residental project but as i tried to explain we always need to work as if it is a office function.
So i guess we gonna do 2 different model based on flat and links each one for each option.
I will check out design options again basen on your idea though. Thanks so much
I have a very simple question:
As far as I understand floors are System Family, so are their parameters, right?
So how can I show a floor Thickness ( the actual parameter) in a tag?
I use revit 15 and when I try to create a tag I can only choose from Shared Parameter, but in summary table you say that system parameters CAN appear in tags and schedule. So how?
Thanks in advance
Thank you for the question. So, let me clarify. System parameters can be included in tags. However, it is up to Autodesk to decide which ones will be “exposed”. With each release they expose more parameters but sadly not all of them are available. So I am afraid that you might have to resort to adding a dimension to get the thickness of the slab.
Thank you for your prompt answer.
I have been trying to find a solution to this for month! I suppose I have to give up for now.
Thanks again for all your very useful help
My pleasure. Sorry that I didn’t have the answer you were looking for.
Thank you for the explanation, very calrifying.
But since we have Global Parameters, how would you complete the table? Do you think they would fit in it?
I think I could answer this:
Live in Project and Family
But not sure of the other aspects you are considering.
Looks like it might be time to update this post. I added an update to address Global Parameters. Refresh the post if it doesn’t show. Thanks.
Great! Thank you Paul
Paul – Is there a way to use the system parameters for a profile in a parts schedule?
System Parameters are built-in. There is not system parameter that reads the profile used in a Part division. You can add shared parameters for Parts, but you cannot make a parameter that automatically reads the profile used.
Thanks – Is there a way to use the original element parameter and assign it to a part shared parameter. I work for a cast stone manufacture and when I create a part from a wall sweep or Generic Model I lose its length. I want to create a schedule of all are cast stone items in one schedule. The best way to do this is using a parts schedule I think. Any help you can give me would be appreciated.
I was able to generate a Parts schedule and it reported the length of the sweeps on a wall. I am using Revit 2017. Not sure if that is new. The other option is to create the sweeps manually wall by wall. If you do this, you can assign them to a subcategory of walls and even generate a separate wall sweep schedule. Here’s an image:
Paul – again thank-you for your time. I want to just add a little more to the problem and that is if I create an integrated wall sweep and break it into parts of any length it those parts report back a volume and a Length for each piece. If I create a wall manual sweep and create an part and divide it up into different lengths each piece reports back a volume but no lengths. (I am not sure why that is). So I need to calculate the lengths by dividing the volume / area of the profile that I used to create the sweep with which I have to add manually. If the profile changes I need to update this profile area manually also (not the best solution). If you have time to look at this and see if there is a better way again I would appreciate it. I know time is valuable so I understand if you don’t have the time to look into it.
Thanks again for your help
I see the issue. I did not split up a host sweep in my tests. If it does not report the length, then unfortunately it is a limitation of the software, and nothing you are doing wrong. So sadly you will have to do the math as you indicate. But I think that for such things, Excel is never far away… Best of luck!
Thanks – again for your timely reply.
First a sincere “Thank you!” for all of your efforts in the Revit community. When it comes to looking for answers, I look for your content first.
My team uses “Conduit Run Schedules” in conjunction with “Conduits without fittings”. We have created shared parameters with the ability to be shared with Schedules enabled. We then bring these Shared parameters into our Project and assign them to Conduits, Conduit fittings and Conduit Runs. We enter data such as ???Feeding To???, ???Feeding From???, ???Feeder No.??? etc??? When creating a Conduit Run Schedule we don???t see any of our information populated in the Feeder Run Schedule. In fact, unless we enter the feeder No. into the Comments parameter, they don???t even populate the schedule. Why is this, and is there a way around this? Currently we have to enter data in twice. Once during the modeling process, and the 2nd on our Schedules. It is so time consuming and leaves the door open for inaccurate information if changes occur.
Thank you for all you do for the community!
My apologies for the late reply. I had to go to my team for some help on this answer. One of my co-authors, Martin Schmid has given me the following reply:
“The short of it is that the implementation of conduit runs is incomplete for what this user is trying to accomplish. Conduit runs are basically a continuous collection of conduit and fittings, designed with the ability to report the overall length of that run (it is a quasi-implementation of making bent conduit.. but in reality it is just conduit and fittings, as evidenced by the fact that the individual components are schedulable independent of the run itself). The behavior here with regard to the parameters is sort of like assemblies. If you added a shared project parameter to the Assemblies, Doors, and Walls category, and then populated a value of that param on an Assembly instance, the value doesn???t propagate to the doors or windows in the assembly??? and conversely, if you modify a value on one of the walls in that category, it doesn???t propagate to the assembly itself.
The fact that the Comments property value propagates from the run to the instances, but not vice versa, is ‘interesting’ behavior.. not typical behavior for other parameters in Revit.. This is why it doesn’t happen with shared params assigned to these categories.
What the user is trying to do in this case, I can???t be 100% sure??? it isn???t something we???ve deeply investigated. However, Applied Software???s Aeries and Greenlee???s Bendworks, both have functionality that I believe has drilled into the needs of the electrical contractor, and may provide value to what it is this user is trying to accomplish.”
I have not personally tried to replicate what you are doing, but regardless, Martin’s reply seems logical to me the way he explains it. I do hope that sheds some light on things for you.
There is also calculated parameters, my problem currently is using this “calculated parameter” inside a family/titleblock
Thank you for the information,
I have problem,
In dome of our project’s files I some rooms system parameters are not available in Room Style Schedule’s Fields (Key schedule), such as Wall finish, floor finish, etc.. I do not know the reason ???? is it system bug??
You probably already have a key schedule. Properties cannot be on more than one key schedule at a time.
Good morning Paul,
I have a client that wants to tell if a beam has been designed or not in their structural model. Possibly by a color I remember seeing info on doing this but can’t find anything anymore. I first instinct is to create a parameter and then implement a filter to control the color. I was looking for your thoughts. Thank you for your time.
Filters should give you what you need. Whether you need a custom parameter depends on the specifics. But possibly.
i am having two families, namely floor based insert plates & wall based vertical insert plates.. the parameters defined in the floor based horizontal plates families are L1, W1 & D and they can be called in the material take off sheet so that the dimensions are visible.. but the parameters in the vertical insert plate family are not possible to call… may i have a solution??
Most likely the issue is shared parameters. Make sure that the parameters you want in your schedule are shared and they will be able to show in schedules and tags. If you only need in schedules, you can make them project parameters instead.
Thanks for all the post. Your posts and book are my go to source when I have revit issues.
I have a question regarding families and schedule.
We are trying to custom make all of our medical equipment families, somewhere around 600 families which we use in almost all the projects.
We would like to add roughly 10 parameters that schedules when we make the equipment schedule in Revit. The plan is to fill in the parameter such as provided by / installed by/ make / model etc in the family and when we bring that family in our project our equipment schedule would populate automatically.
We tried in couple of families but it did work, family would bring the parameter but we had to fill up the schedule each time we bring that family.
Can you please help? You might have working solution for this issue.
We are unsuccessful to find the straight forward solution except making two schedules.
Thanks in advance.
Did you make the parameters shared parameters? If so, they should schedule just fine.
Thank u very much for your reply. I am not that familier with the shared parameter therefore I started to read the blog posts regarding shared parameter. I will post the update once I try shared parameter.
Hi Paul, I have a peculiar requirement and facing problem in this. I want to add a parameter “Work Package” (e.g. Civil work, Interior work and so on. This helps a lot in making separate BOQs and contracts. So i created a parameter “BOQ Package” as a shared parameters. I called them in project parameters(instance based) and assigned to all categories. So i can differentiate which element will be done in civil work and which in Interiors work contract. Problem is: Now it appears in all elements which is good. but the values i enter in one categories do not appear in other catagory to choose from. e.f. if i choose “Interior work” for a wall, it will be available to choose for other walls but not in any other catagory. Why does it appear in all catagories?
Despite the fact that you added this to all categories, it is behaving exactly “as designed”. Each category is separate and equal at the top of the hierarchy. So while they can share parameters, they cannot share values. You would have to enter those values into each category that needs them. It is possible you could do a global parameter and hook it up to all those that require it, but I fear this would still be a lot of work. Ultimately the parameter per instance might not be the best way to approach this, but I don’t fully understand what you hope to have for a deliverable, so I cannot advise further.
I am wondering if you have any trusted resources or best practices you can direct me to as as a new BIM Manager when it comes to shared parameter file management?. The office I started at is currently copying and pasting a shared parameter file into every project, which I have understood as a big no-no. On top of that, there is a lot of redundancy and in my humble opinion too many parameters that are over categorized. Do you have any recommendations on how to untangle shared parameter files and all their associations in families/projects, or should I just give up and accept the path we are on?
My best example is the OOTB System Parameter ‘Type Mark’ is usually blank and not used in tags. Instead, shared parameters called ‘Door Type Mark’, ‘Window Type Mark’, ‘Parking Type Mark’, etc. have been added to category specific families and their tags. Since Shared Parameters are applied categorically either through the family editor or within the project, I find adding the category to a shared parameter name is unnecessary and makes tasks like updating a suite of tags to have new font in a label a laborious chore since I can’t just change the category of the tag, but I also now have to reset the shared parameter for each tag to match the hundreds of families across multiple categories too.
Below is how I see this comparison. Am I overthinking this?
1 OOTB system parameter across many families, tags, schedules
Door > Type Mark
Window > Type Mark
Curtain Wall > Type Mark
Parking > Type Mark
Turned into this : 4 custom shared parameters that must be individually applied and managed within every family/tag per category, and the risk of miscategorized combos
Door > Door Type Mark
Window > Window Type Mark
Window > Door Type Mark
Door > Window Type Mark (it can easily happen if you utilize an existing sliding window and convert it into a sliding door and don’t modify shared parameters)
Curtain Wall > Curtain Wall Type Mark
Parking > Parking type mark
My running logic has always been to try and keep shared parameters to lowest common denominator and only add shared parameters when an existing one cannot be applied logically. Add specificity only after general parameters are tapped out.
I don’t want to knock your employer, but unless there is an exceedingly good reason to do things the way you described (multiple redundant shared parameters spread across multiple files) I would not recommend that approach at all. You are correct. Best practice says have ONE shared parameter file. Period. Every project can access this one master file. What most people fail to grasp about shared parameters is that the shared parameter file is ONLY used at the time of creation. There is not any kind of live link to the file. The file does not need to be included with project deliverables. It is for internal use only. Further, since every parameter gets a GUID (Global Unique ID), having the “same” parameter in multiple shared parameter files are NOT the same parameter to Revit. Even though they might have the same name and settings. The names are for the humans on the project. The GUID is what Revit sees. So again, unless there is some reason that I am unaware of in your scenario, having multiple shared parameter files is generally not the way to go.
As to the subject of replicating out of the box parameters with shared parameters and adding category to the names, I would not do either. I highly recommend having a few shared parameters as possible. Not replicating existing built-in parameters, and keeping names simple and descriptive. So pretty much the opposite of what you have described is being done now.
Cleaning this up is not going to be easy I’m afraid. But I would look at tools by CTC Software. They have tools to merge and manage shared parameter files. Also tools to apply shared parameters to families and projects.
If you want to talk further about your specific situation, drop me an email and we can continue this off line.
Your email is bouncing. Tried replying, MS Office says undeliverable