Way to get all elements that are part of the same circuit?

Is there a way to do this? I’m trying to filter circuit schedule data by determining if the circuit contains a specific piece of equipment.

Any suggestions?

OR is there a way to access the System Browser with dynamo to look at the electrical circuit data, instead of pulling it from the Electrical Circuit parameters (which can be manually altered by people)…

So I can’t code in Python (yet), but it looks like these api topics would address it. I’m willing to take a shot at it - is there a good base python code block to build on for dynamo nodes?

http://revitapisearch.com/html/57763921-bcab-c4f6-5ba0-675220f66aae.htm

I couldn’t find a way of doing this with OOTB nodes, but with python it’s pretty easy:

here’s the code:

import clr
clr.AddReference('ProtoGeometry')
from Autodesk.DesignScript.Geometry import *
#The inputs to this node will be stored as a list in the IN variables.
systems = UnwrapElement(IN[0])
panels = []
elements = []

for x in systems:
	panels.append(x.BaseEquipment)
	sublist = []
	elementset = x.Elements
	for x in elementset:
		sublist.append(x)
	elements.append(sublist)

#Assign your output to the OUT variable.
OUT = panels, elements
7 Likes

Awesome!! I HAVE to learn python (working at night now, but obviously, just beginning). Thanks!!!

1 Like

This python code is very useful
but is there any code to get the data from system browser in the same order that appears in system browser

As far as I know getting information from the system browser isn’t possible through the Revit API

If you guys are looking to access the information held per electrical system in the order shown in the system browser the following may be a good starting point. I haven’t looked into it much yet as its not directly part of a task im working on, but thought id share as I found this post and it seems relevant.

There are 8 systems/circuits in my model - 6 fed off the DB, 1 feeding the DB from the Submain panel and 1 supplying the submain from the main source.

In the dynamo image ive highlighted the fourth elec system [4] and expanded its details in the watch. Take note of the Apparent Load Phase B “1687.67”. In the Revit image you can see ive highlighted the Submain panel circuit (its also selected in the system browser for clarity). In the properties you can see the Apparent load Phase B matches “1687” (although if its rounded it should be 1688 but lets not be pedantic).

Hence im pretty sure this outputs the systems in the correct order as an array/ list of lists. If you want to manipulate it all in python this is still a starting point - just stick a python node on the output of it.

Hope this helps.

(im a new user so only one image per post second image will follow)

second image - 4th elec system in revit

I see you have “/” instead of “,” on your circuits. How did you do that?

I was wondering how you were able to get the “/” instead of commas between your circuits? I have been trying to do this for a while but have been unable to do so.

Hi, i have a litle problem with the script.

Say:
File “”, line 10, in
AttributeError: ‘List[object]’ object has no attribute ‘BaseEquipment’

Can you help me please, i dont have much experience in Python

Thanks u

The error pretty much explains what’s going on. You’re supplying a list where python is expecting an element with access to BaseEquipment. This likely means your list structure differs from the example used here. You’ll either have to change the list structure or add another level of list management.

1 Like

Got it, i used List.Flatten and solved it; thanks you so much.