Disclaimer: Complete Dynamo Novice here:
I work for a consulting Engineer Firm and I am hoping to utilize Dynamo to correlate each instance of an Equipment Tag (both Multi-Category and Generic Annotation) with which sheets (Sheet Number) they reside on.
For example, there may be a pump (using the Mark parameter) that shows up on a mechanical plan drawing, an electrical power plan, and a HVAC plan drawing. I would like to have a schedule of each tag and which drawings it shows up on. I know Revit isn’t really built this way and it is more based on which view is on a particular sheet, but we use this information as part of our QAQC process.
Please let me know if additional information is need,
A few quick questions:
- Are you scheduling in Revit or in Excel?
- Would you have a new line for each tag on each sheet or would you schedule each tag once with all the sheets it shows up on?
I would recommend scheduling in Excel because it gives you more freedom in what and how you schedule things.
Thanks for the questions Nick,
Are you scheduling in Revit or in Excel?
Ideally this data is exported into Excel as you recommended.
Would you have a new line for each tag on each sheet or would you schedule each tag once with all the sheets it shows up on?
Yes, each tag would be a new row in the export. We have our on web based software that we populate with equipment data, which is kept in a database. We would then take this export and compare the two data sets as part of our QAQC process.
At the minimum each equipment tag row would have the Tag #, and the corresponding drawing number(s) that each tag resides on. If you could take it step further, it would be nice to have a column for drawing numbers for each discipline (Process, Mechanical, Electrical, etc), but this may be tricky if each discipline has it’s own model (our current workflow).
Does this answer your questions?
Sorry, my second question was worded poorly, but I think you answered it.
Since tags are view specific, each element could have multiple tags across multiple views. You would want each element (tag mark) scheduled once, with all the tag locations on a single line - not a new line for each location.
You have two options here: If you don’t have any overlapping tags between dependent views (ie. every tag in a view is unique) you can just get all elements of type (tag type) and get their owner view. If you have duplicate tags between depend views (ie. the same tag shows up in multiple views) you would have to compare your list of tags to visible elements in every view.
The first option will be MUCH faster and easier. The second option would likely require Python to process that much data and would still likely be a lot of computations. Once you have your tags and views you just need to sort and group your data appropriately for Excel.
Second option could be amended by pulling the Workset value for each tag.
After that you can get the view from the Workset name, and then the sheet number value from the view. Once you have the sheet number for each tag, you can group the sheet numbers using the element is pulled from the tag’s host (a model element) as the key.
If your elements exist across multiple models the later may be difficult, so using a tag value might be easier than the host element.
Just want to be sure I understand correctly when you say the same “tag” showing up in multiple view. It will be very common for a piece of equipment to show up on multiple views, but I assume that each view will have a separate “tag”.
In our current workflow we do not have worksets active (hopefully this changes soon).
With that said it sounds like I should be able to get all the elements of a tag type, and also get their owner view to correlate to which sheet it shows up on? Do you have any basic direction on how to build this script in Dynamo or screen shot of something similar? Or which components are need and how they are connected?
Correct. The only potential issue is if you tag an element in a parent or dependent view where the same element/tag would also show up in another dependent view. Then you’d end up with the same tag in multiple views.
Clockwork has the node for getting the owner view and you may want to look at some other “export to excel” posts to make sure your lists are setup correctly. Otherwise, it’s pretty straight forward so you should be able to get pretty close. You can always post back here with new questions.
Ok, I’ve developed my graph, and it seems like it may be missing a component, or something is in the wrong order, as I am not getting an data out to excel. Any Ideas on what I am missing here? I think there may be more steps to get the tags relationship to the sheet numbers.
Any help here would be greatly appreciated.
Here’s a screen shot of the graph I have so far
Can you show a preview of the data you’re writing to Excel?
You’ll need to get the owner view of the tag as well so you can get the sheet that view resides on.
I haven’t been able to get this to write to excel yet, so it isn’t functioning properly. This screen shot would be an example of what my end goal is. I’ve added column headers for clarity, but they are not required. The first column would list all the tags (ideally just one instance of each “Mark” parameter), then the following columns would list which sheet numbers it resides on. I suppose the initial export could be a new row for each tag and its corresponding sheet number, and from there we could sort the data.
In this screenshot I’ve also included the tag family and the parameter associated with the label.
Here is a screen shot of the title block family parameters including Sheet Number