Friday, September 18, 2009

Duplicate Mark Values

This warning means what it says, you have two elements that have the same mark value. Why are they sharing the same value? It's pretty simple really when a project is using worksets. We each work in our own local files and each file is a copy of the central file.

Let's take a classic example, Doors. I add doors, you add doors. In my file and your file the next door number is, let's pick 108. I added a door and Revit thinks it is door 109. You add a door and Revit thinks it is door 109. No problem until you Synchronize with Central (SWC) (there see I remembered the new language). When the central file receives my data first, no worries. When you SWC that's when the error occurs, so it IS your fault! Sort of...guilt by association.

The next number is 109 and we are both correct except that we are briefly isolated by our Local Files. No isolation after the SWC and the error(s) is/are trapped. The central file does not oversee the delivery of unique Mark values, maybe it should? It only reacts to work done in our local files.

Some of these errors, like our doors, get resolved as the design progresses. A door number gets a better value as soon as room numbering is sorted out because we endeavor to define the door number then. Others don't get resolved naturally because we don't usually itemize them, but Revit does.

An example of this is Air Terminals in Revit MEP. They get tagged but not usually by a unique mark value like a door. We could but it doesn't happen in practice very often. Instead they are usually tagged by Type, like windows are often tagged by architects. Speaking of windows, they suffer from this issue too. The same scenario exists for these yet there is no natural process to resolve the mark values other than to spend time fixing them.

In this instance, and other similar items, Revit creates extra work for us because it is necessary to minimize warnings in order to ensure the best performance while working on our projects. It might be worthwhile to have a way to define which elements Revit should incrementally assign a Mark Value. For example, hypothetically, we could tell Revit to ignore Air Terminals via Mechanical Settings. This would eliminate a lot of warnings when several people are building their model simultaneously.

In the meantime we need a hero API programmer to provide a free application (or reasonably inexpensive) to renumber all items of a user selected category so they all have unique Mark values again. Since we don't care what their real Mark value is the application can be merciless and simply renumber them all starting with 1.

[Added because of a comment, thanks!]
I dismissed the Element Positioning tool in the past because it didn't seem to work properly for me, I've revised my opinion today, user clumsiness. This tool is part of the Extensions for Revit, available via Autodesk Subscription only. There are versions for each Revit flavor. Revit Structure (RST) has the fullest collection of tools because they were originally written for RST and later the ones that would be useful for RAC and RME were made available. I decided to make another VIDEO to explain how it works. You can listen and watch here too.


Anonymous said...

The "Element Positioning" plugin in Revit Extensions does the job you describe, here the quote from the help file:

The Extension is used to create position tags for selected elements in a Revit ® model. All element types available in Revit ®, except annotations and loads, are taken into account during positioning. After elements and positioning parameters are selected, element tags / names (for all elements or for selected ones) are generated in the Extension. Position tags are placed in the element properties (in the Mark cell), in the current (start) view, or in views you select (the option specified in the Extension)."


Steve said...


Have you tried the tool? It doesn't change the numbers to unique values in my testing. There are too many settings for what I'm proposing.

The categories of elements that "we" don't number means "we" don't care what Mark value they get but they do need to be unique so I'd like a "shotgun" approach that just renumbers them all without regard for sequence, since it doesn't "matter".

The Element Position tool renumbers them but it just uses the same mark value for each and it doesn't resolve the Duplicate Mark error(s).

Now I could be doing something wrong of it might be broken but I've played with it quite a bit without "joy". 8-)

Steve said... thing I never tried was selecting elements first..that does renumber them, but a bit more work.

Jason Grant said...


I am working on an API class for AU. I understand exactly what you are trying to do and in the past the only way I could get it to renumber was to (for example) select all the lights, cut and paste back in same place. Not a great solution. I should be able to get an API working for it.

Do you have any other great API ideas? I would like to get as many possible for AU and will share non-company specific ones (like the remark) after the session.

Steve said...

Okay, played some more and I realized that I wasn't getting the application to remember a change I was making. Once it remembers it works. I made a video and added it to the post.

Jason, I've got lots of stuff running around my head but it is coming up empty since you asked. I'll ping you if my head starts function again, hopefully!

Unknown said...

Oh Steve.

That was just to easy. I have emailed you the code that does this with one click :)


Phillip Miller

Erik said...

Subject of discussion on AUGI as well.

I like the second solutoin posted by Martin Schmid (if you don't care that it won't have a value.) We have used this to clean up models that have a ton of "Duplicate Mark Values."

Steve said...

Phillip - I haven't got the email yet *-)
Erik - That method will work but is too much work still! Phillips routine should be the "bomb"! If I ever get it!

Erik said...

Frankly, I don't know why Revit can't reconile this. Revit assigns every object a unique number (GUID, right?) when it is placed in the model. It doen't matter how many people are working in the model. Why not something similar for Mark Values?

I guess to do this Revit must be constantly communiating with the central file behind the scenes. If that's the case, I imagine performance could be an issue.

Which begs the question; If I check out some worksets and edit at risk (say, at home)how does Revit reconile THOSE numbers? Hmmmmmmmmm.....

Steve said...

With worksets Revit manages things at a deeper level while leaving the Mark value at the user affected level. It won't let me alter every family's mark value if I can borrow it though. That makes it a bit harder to resolve while others are busy working.

At-Risk...Revit doesn't deal with it at all so to speak. If you edit something at risk and someone else borrows the same element while you are at risk...say goodbye to your work. You won't be able to SWC. Your only option is to copy/paste to a new local file.

Unknown said...

Hi Steve

I have resent that email. Hopefully you have it now.


Alan J. said...

Hi Phillip

Any chance of sharing the dll or source?



Steve said...

AJ - follow this url:

Dan Tartaglia said...

I created a simple tool that removes (blanks) the value from all Lighting Fixture Mark parameters. There are certain Categories you would not use the Mark parameter for the instances. Please let me know if you want the code.

Erik said...

I do, Dan. I do...

Unknown said...

I do something a little tricky - I leave the default mark values to be automatically generated by Revit, and then I create a 'Shared Mark' parameter - I use this for door numbering and scheduling. This tricks Revit - Revit doesn't care if two elements have the same 'Shared Mark'.

As with all workarounds - use with care. Its not 'best practice' BIM...

my blog here

Steve said...

Using a different parameter doesn't eliminate the pointless warning in the Review Warnings list though.

Unknown said...

That's true, but I can change the 'Mark' parameter to whatever I like to get rid of the warning - I don't have to worry about how this will affect schedules and tags.