i am trying to automaticly find the seating height of the chairs in my project.
So i take the insert point of the chair then get the bounding box…get the minimum valua and then add like 80mm so i get the edge of the seating.
Then i go up for a 1000mm and shoot a Ray down to find the height of the seating.
but unfortunatly the ray isn;t detecting everything
i also tried point.project but that doesn’t work on all objects either.
they are all family elements… but if i look at element.geometry… some are solids other are meshes and some are surfaces… but still there must be a way to detect all
You can specify the target types for rays using the Revit API class ReferenceIntersector. The FindReferenceTarget enum can accept all elements, or just meshes/faces etc.
I’d say try playing with it at the API level and if that doesn’t work then it must be a limitation of that class. Typically I’ve had a good amount of reliability from it so far. DataShapes has a good exposed node in Python for this, as well as a summary here:
Best way to get height of a chair is actually to go about 2m upward, then ray downward. You then take the ray length from the 2m and that’s your chair height.
Your geometry is fine! Try union solids at first (for each chair), and just find intersections with lines and solids, get vertices of resulting lines, get Min.Z.
the raytrace of datashapes is giving better results… there is an option to not only use linked files but also the elements in the project… now only had two objects fail out of the 71. so this is good enough for me… made a filter so it shows up the once that are not set… thanks for the help