Selection of Filtered Category Based on either Revit Scope Box or Between Grids/Grid REF Levels

Hi there Guys,

Firstly BIG thank you to everyone for all their hard work to get this forum packed with all kinds of Helpful Stuff.

I have done a fair bit of searching and cant seem to find a solution to my current problem.

I’m trying to find an easier way to select by a Filtered Category the Elements within a quadrant and between set Grid levels and apply set values to the Elements parameters.

I am hoping to Use Dynamo and automate the Following Process;

At the moment I am using Several scope Boxes(Each Scope box per Quadrant/level - essentially 4 scope boxes per level. The Top & Base of the Scope Box’s are set between Reference Levels and then select manually all items within the Set scope box then filter Category and assign the remaining elements with the respective… Quadrant(1-4) and Level(1-10) and a set Task_Name which is aligned with the Category. For example with the Level 1- Quadrant 1 Scope box Set i select all Elements and Filter only the Lighting Fixture Category and set the following parameters;

Parameter | Value

Actual_Level = Level 1
Actual_Quadrant = Quadrant 1
Task_Name = L1_Lighting Fit off Quadrant 1

I’m hoping eventually to be able to Set Task_Name per Level/Quadrant/Category in excel and apply them to Dynamo and inadvertently Revit and Its Elements.


Anyhow hopefully there is an absolute legend in here that can help me with this as im a complete beginner where Dynamo is concerned.

Thanks in Advance.


Assuming there is a reason you can’t just use parameters of the elements for narrowing down the level, and room for the quadrant (so completely geometry/Dynamo driven). If you can use those values than you should as it would be much quicker (but sometimes this just isn’t an option which I get). So, a geometry driven solution:

  1. Start by collecting the elements by category. Then get the location of each element.

  2. Then get all levels and pull the elevations sort the levels by the elevation keys. Pull the Z value of each point in step 1 and ask which key in the level elevations is the first to not be greater than the Z value - the index before that is the level the fixture is on. Group the lights by the level as a key.

  3. Pull the location of the X axis quadrant divider and the Y axis divider, pull the lines onto the same plane (if they aren’t already), and find the intersection of these two lines. This point represents the ‘origin’ of your quadrants.

  4. Build w vector from the quadrant origin (step 3) to every fixture location (step 1). Find the angle about the Z axis between these vectors and the X axis. Now it’s just a simple if statement angle > 270 ? “Q4” : angle > 180 ? “Q3” : angle > 90 ? “Q2” : “Q1” ;

  5. Pull the name from the for each sub group (final key in step 2) and write the level + quadrant values to the desired parameters, and finally do an excel export (though likely you could just update the graph to automate setting these values too if desired).

Again, if you can tie elements to rooms, and rooms to quadrants, this could be done much faster by pulling parameter values. Be sure to watch your lacing and list levels as you go because they will mater quite a bit.

Hi JacobSmall,

Thanks for your quick response.
Unfortunately Architectural Rooms can sometimes be set wrong or are incomplete, because of this I am trying to steer away from relying on rooms\spaces\zones.

By using Scope Boxes i can use the same Dynamo Program for another project. All I would need to do is set the Scope Boxes in revit and then let the program do the work.
But the problem i have is i know very little about Dynamo and what you have explained is well above my understanding.
I did however come across someone else talking about selection based on scope boxes which i can visually follow but I am not sure of the steps i would take to provide a filter based on Catagory and then apply the required Parameters.
This is the link to the other forum…

Hope this Helps