I’m trying to dimension to the finished face of 2 parallel walls.
If I use the walls as the elements in ‘Dimension.ByElements’ it will do it to the centre line. I don’t want to extract curves and dimension to those as the dimension will not be hosted to the actual walls. I though i could get the face references of the walls and use those but I am getting an error:
“Warning: One or more of the input types are not matching. Couldn’t find a version of ByElements that takes arguments of type (Revit.Elements.Views.FloorPlanView,__array,__array,string,string)”
It would appear that there is a difference between the surface extracted from a geometry and a selected model face. Though they both appear to be Autodesk.DesignScript.Geometry.Surfaces… I will investigate further in the morning.
The error I was encountering related to remaking the surface from a face, rather than extracting the surface directly.
Try using the Topology.Faces node directly from the wall elements themselves. This will return the wall faces as surfaces. It should work then.
Sorry but how would I go about amending this so that it takes a list of lines (3 lines one for each dimension) and 3 lists of elements to be dimensioned?
I thought I could create a custom node and just change the lacing but that doesn’t work. How does lacing working with Python nodes within a custom node? Is this possible or is it best to modify the Python itself?
from Autodesk.Revit.DB import *
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager
line = IN.ToRevitType()
for element in elements:
dim= doc.Create.NewDimension(doc.ActiveView, line, elementsRef).ToDSType(True)