Wall Intersection Against other Walls within Same List (Check for Overlapping)

I have a lot of overlapping walls on one floor of my building, and I’d like to ID them and remove using Dynamo.
I’m able to isolate all the walls and distill them into curves using Clockwork’s Element.Location+ node, but how do I then check each curve within the list against every other curve within the same list to find overlap?

Make sense?

Thanks guys!


Quick thoughts :

  • There is a List.UniqueItems node that might be useful. Won’t work on duplicates Walls if they have different IDs but I guess it will work on the curves. There is also a similar node in the Clockwork package, List.CountOccurences which one of the outputs is the list of the unique elements.
  • You can test every curve against all the others by using the == node or the Geometry.AlmostEqualTo node, and set the lacing to cross product. From there, you’ll have a list of booleans and you’ll have to build something up to filter the list (using List.FilterByBoolMask) : a Python node should do the trick.
1 Like

Have you considered checking the project’s warnings for overlapping walls and the elements from there?

This is the more direct way to solve this, thanks Jacob. Although narrowing down all the locations of overlapping walls in Revit is pretty tiresome to toil through.

I wish I had time right now to go further down the Dynamo rabbit hole since it seems it could be a faster way to resolve this once the graph works.

Instead of manually reviewing the warning list, why not do the following with Dynamo:

  1. Create a new y/n project parameter called “warning review” and assign it to all categories.
  2. Get the warnings from the model.
  3. Get all the elements from the associated warnings.
  4. Clear out any duplicated elements.
  5. Set the “warning review” value to ‘true’ for all elements in the list.
  6. Generate a new 3D view called “warning review”
  7. Set a filter to halftone/transparent all elements with a ‘warning review’ value not equal to true (so null or false).

Anyone can now open that view, see an element which needs fixing, update it, and adjust accordingly. Further, you can schedule this for easier review (it’d catch the view specific elements as well). The schedule is super nice as you can set up a ‘warning review day’ and assign users groups of elements.

Again by Dynamo -

  1. Write up a list of users
  2. Get list of warnings,
  3. Shuffle list of warnings to spread the pain and learning
  4. Divide warning list into even lists by number of users
  5. Assign user name to a ‘responsible to clean’ parameter
  6. Set up a schedule view for each user, filtering each schedule by user name and grouping by ‘resolved’ status.
  7. Have users make comments as to why in a ‘resolution comment’ field if they can’t resolve something completely.

Personally I like manually pulling my warning reports and exporting to html instead of pulling it live, even though it has a degree of manual labor to it. The HTML file can be easily edited to focus on areas of concern or what to ignore before I start diving into the work, and Dynamo can pull elements from it just fine I so can still schedule it. Plus this way I have a snapshot of what was broken on a given date allowing me to track warnings and infer information about user habits over time (John joined the team in March, left in April, and while he was on the team we got 200 ‘off axis warnings’ a week, but since he left we only have a few - there may be a correlation there).