Creating a schedule that shows what sheet Panelboard schedules are on using Dynamo

revit
dynamo

#1

Hi,

I am a first time Dynamo user but have previous experience with coding. I usually work with the electrical side of Revit 2017 and 2018 and my company has dynamo version .9 installed. If i need an more recent version, I would not have a problem having IT install it. Before I get started learning more about Dynamo, I wanted to know if it is possible to automate the task that I do to keep track of panelboard schedule placement. My goal is to have it so the code will detect if a panelboard schedule is or is not on a sheet and also tell me what sheet it is on if it is on a sheet. Ideally I would like the output to be a revit schedule but excel is good as well. The purpose of this is more for a QC check to make sure that I do not have duplicate panel schedules on a project and to quickly find a schedule on a sheet when doing circuit revisions.

I am looking for ideas and packages to get me started. If someone already coded it, then that would be nice but I would love to code this myself. This is my first Dynamo task and chance to get back into coding again :slight_smile:


#2

I would HIGHLY encourage an upgrade to 1.3.2. List.Levels alone makes it worthwhile.

As far as your specific graph, I haven’t come across this myself, but I believe you can get schedules on a sheet fairly easily. The excellent Archilab package has some good tools towards this end. Also, be sure to run though the primer before you get started - it’ll save you a LOT of headaches in the long run.

http://dynamoprimer.com/en/


#3

archilab as a node called Schedules on Sheets


#4

Thanks for that website. I am currently going thru it right now. As for the package, I am having difficulty adding it to my computer. What term do I search with to get the archilab package.


#5

okay i used the schedules on sheets node, however it does not show panel schedules. Are there other nodes that will show panel schedules


#6

Can you post a sample rvt file for use? I’m not an electrical guy.


#7

Yes I can post a simple RVT file with a couple of panelboard schedules on some sheets.

https://drive.google.com/open?id=1jRv8Q0eQzxV9qct5Kmy4Fa_87mHm7HjK


#8

Hmm, the archilab node works for me with your test file but I had to make a regular
schedule view first. Do you get an error from this node or is the output just missing the panel schedules? What version of archilab do you have?
image

EDIT: I just read above that you are still using Dynamo 0.9, this is likely the reason if your output is not including the panel schedules. Regardless though, I don’t see this node being helpful for your purpose as it does not identify which sheet each schedule is on. This solution here should work: Best method for retrieving sheet number from schedule? Collect your PanelScheduleSheetInstances using All Elements of Type instead of ScheduleSheetInstances.

I’m sort of inclined to think that Dynamo 0.9 might not support these elements if the archi-lab node failed for you, though


#9

Step 1 is to update. There is no reason not to go to 1.3.2.


#10

I got IT to update me to 2.0 and I installed archi-lab version 2018.01xxx. My output looks similar to what you have in your screenshot. However I was trying to find the right node to take the PanelScheduleInstances and translate that into something I can use.

I am going to try your solution to see if that will work for me. Is All Elements of Type a part of the standard nodes for version 2.0?

Attached is what I have done so far. I am trying to figure out how to use the Type Id number to find what sheet that schedule is on then that would be perfect. Let me know what you think.

https://drive.google.com/open?id=160Y9qRFXgJo_IaPDGJHy1TBtN4d9lq--


#11

I got IT to update me to version 2.0 which hopefully is better than 1.3.2


#12

Okay I got the Schedule IDs, Now I am trying to figure out how to use that to get the sheet numbers that the schedule ID occurs on.


#13

Can you upload an image of your graph so far? Sounds like you’re close!


#14

It not completely done but I am getting close. So I was able to gain the panel board name info as shown in the watch node. Now I need the sheet that each panelboardinstance occurs on and I will be set. It was mentioned that I can use the schedule ID to accomplish this.


#15

I’d just put “ScheduleId” as the propertyName input for Element.TryGetPropertyValue so you don’t have to do any list management afterward :slight_smile: Once you have the ID, convert it to an integer using String from Object and then String to Number. Then you can use it with the Wombat node Element.ById to get the schedule view.

So the part you’re close to getting now is which schedule is which instance on a sheet, and the bit you’re missing is finding out which sheet the instance is on. You can get the sheet from the ScheduleSheetInstances with Element.OwnerView from the package Clockwork


#16

Would I be using the Panelscheduleinstances instead of the ScheduleSheetInstances when using Element.OwnerView.

Also thanks for the tip. That eliminated some nodes.

It seems that I am still running into the issue of trying to get the sheet number to show up :frowning:


#17

Oops - sorry I’d forgotten for a second we were working with Panel Schedule Instances. Element.OwnerView should work with those!


#18

It showed null for me:(. going to work on it more tonight


#19

Hmm, Element.OwnerView worked for me, but perhaps it is a 2.0 thing (I’m in 1.3.2)? Were you connecting it to the PanelScheduleSheetInstances? Regardless, since you are already using the Element.TryGetPropertyValues, you can also get the OwnerViewId like so:


Retrieving corresponding Schedule with schedulesheetinstance
#20

That looks like it would work for me. My question is, I should be able to get the sheet number from the output of the bottom node by using the element.parameter node. Note that code looks nice. I have allot to learn about dynamo.