Skip to content

Commit

Permalink
Update room.py
Browse files Browse the repository at this point in the history
  • Loading branch information
marcantondahmen committed Dec 2, 2020
1 parent 9d6dbcd commit 28bf8ef
Showing 1 changed file with 30 additions and 14 deletions.
44 changes: 30 additions & 14 deletions revitron/room.py
Original file line number Diff line number Diff line change
Expand Up @@ -264,28 +264,44 @@ def traceHeight(self, view3D, elementFilter = None, gridSize = 5, inset = 0.05):
Both properties are nested objects containing an Min and a Max value.
"""
import revitron
points = self.getPointGrid(gridSize, inset) + self.getBoundaryInsetPoints(inset)
# Set z to the lower quarter.
z = self.getBboxCenter().Z / 2

if self.element.Location:
points = self.getPointGrid(gridSize, inset) + self.getBoundaryInsetPoints(inset)
# Set z to the lower quarter.
z = self.getBboxCenter().Z / 2
else:
points = []

intersectionsTop = []
intersectionsBottom = []

for point in points:
point = revitron.DB.XYZ(point.X, point.Y, z)
raytracer = revitron.Raytracer(point, view3D)
intersectionsTop.append(raytracer.findIntersection(revitron.DB.XYZ(0,0,1), elementFilter).Z)
intersectionsBottom.append(raytracer.findIntersection(revitron.DB.XYZ(0,0,-1), elementFilter).Z)

top = revitron.AttrDict({
'min': min(intersectionsTop),
'max': max(intersectionsTop)
})
try:
intersectionsTop.append(raytracer.findIntersection(revitron.DB.XYZ(0,0,1), elementFilter).Z)
except:
pass
try:
intersectionsBottom.append(raytracer.findIntersection(revitron.DB.XYZ(0,0,-1), elementFilter).Z)
except:
pass

try:
top = revitron.AttrDict({
'min': min(intersectionsTop),
'max': max(intersectionsTop)
})
except:
top = None

bottom = revitron.AttrDict({
'min': min(intersectionsBottom),
'max': max(intersectionsBottom)
})
try:
bottom = revitron.AttrDict({
'min': min(intersectionsBottom),
'max': max(intersectionsBottom)
})
except:
bottom = None

return revitron.AttrDict({
'top': top,
Expand Down

0 comments on commit 28bf8ef

Please sign in to comment.