I was wondering if there was a way to determine what is the surface(s) of a wall footing element parallel to a wall element? I know clockwork has some nice tool that I have been able to use but not close enough. I have noticed that dynamo will query the information from Revit differently if the wall is drawn left to right vs right to left and if it is rotated from north. Any insight is welcome. This maybe bases on the local coordinates of the wall elements but I don’t know.
@Mike_Martin Please provide a small file with a wall and footing to help explain your issue
Examples of your attempts and screenshots would also help.
I am trying to get the orange and blue line lengths.
Thanks for the inspiration. I was pretty close with the general calling of geometric information. The real struggle has been to make sure the code always calls the sides parallel to the wall. So that is where I was wondering if the foundation elements had a local coordinate system that I could filter by. So, the attached image shows a condition where I would like to only call the 15’ side length and drop the 3 other edges. Also, the length parallel to the wall may be less then the width of the footing. That would through a wrench in the list.takeitems approach.
Ok, here is a possible workflow for you:
- Get the wall associated with the foundation
- Get the location line of the wall
- Filter the lines parallell to the location line
For the two first points you need python script, here is a suggestion: (update: a tested version that works)
import clr clr.AddReference('RevitAPI') from Autodesk.Revit.DB import * from Autodesk.Revit.DB.Structure import * clr.AddReference('System') from System.Collections.Generic import List clr.AddReference('RevitNodes') import Revit clr.ImportExtensions(Revit.GeometryConversion) clr.ImportExtensions(Revit.Elements) clr.AddReference('RevitServices') import RevitServices from RevitServices.Persistence import DocumentManager from RevitServices.Transactions import TransactionManager doc = DocumentManager.Instance.CurrentDBDocument #Preparing input from dynamo to revit if isinstance(IN, list): elements = UnwrapElement(IN) else: elements = [UnwrapElement(IN)] OUT =  for e in elements: OUT.append(doc.GetElement(e.WallId).Location.Curve.ToProtoType())
Thanks for the idea. I will have to test this out now.