Python for Loop - Hide Grid Bubbles

Also working in my other projects, i think i just had wrong bool settings before.

Thanks a lot Nick for guiding me through :smiley:

Here is my final graph and python code, i changed the variables in the code to make more sense.

For my purposes i need 3 different bools for the grids:

  • Is x vector positive
  • Is y vector positive
  • Is vertical

This graph will now show the left bubbles and hide the right bubbles. If the grids are vertical then only the upper bubbles are active.

import clr
clr.AddReference('ProtoGeometry')
from Autodesk.DesignScript.Geometry import *

clr.AddReference("RevitNodes")
import Revit
clr.ImportExtensions(Revit.Elements)

clr.ImportExtensions(Revit.GeometryConversion)

clr.AddReference("RevitServices")
import RevitServices

from RevitServices.Persistence import *
from RevitServices.Transactions import TransactionManager
from System.Collections.Generic import *

clr.AddReference("RevitAPI")
import Autodesk
from Autodesk.Revit.DB import *

doc = DocumentManager.Instance.CurrentDBDocument
uiapp = DocumentManager.Instance.CurrentUIApplication
app = uiapp.Application
uidoc = DocumentManager.Instance.CurrentUIApplication.ActiveUIDocument

if isinstance(IN[1], list):
	gridList = UnwrapElement(IN[0])
	viewList = UnwrapElement(IN[1])
	xVectorPositiveList = UnwrapElement(IN[2])
	verticalList = UnwrapElement(IN[3])
	yVectorPositiveList = UnwrapElement(IN[4])
else:
	gridList = [UnwrapElement(IN[0])]
	viewList = [UnwrapElement(IN[1])]
	xVectorPositiveList = [UnwrapElement(IN[2])]
	verticalList = [UnwrapElement(IN[3])]
	yVectorPositiveList = [UnwrapElement(IN[4])]
	
TransactionManager.Instance.EnsureInTransaction(doc)

for grids, xVectorPositives, verticals, yVectorPositives, view in zip(gridList, xVectorPositiveList, verticalList, yVectorPositiveList, viewList):

	for grid, xVectorPositive, vertical, yVectorPositive in zip(grids, xVectorPositives, verticals, yVectorPositives):
		if xVectorPositive: #boolean check
			grid.ShowBubbleInView(DatumEnds.End0,view) 
			grid.HideBubbleInView(DatumEnds.End1,view)
		elif not xVectorPositive and not vertical:
			grid.ShowBubbleInView(DatumEnds.End1,view) 
			grid.HideBubbleInView(DatumEnds.End0,view)
		elif not xVectorPositive and vertical and yVectorPositive:
			grid.ShowBubbleInView(DatumEnds.End1,view)
			grid.HideBubbleInView(DatumEnds.End0,view)
		else:
			grid.ShowBubbleInView(DatumEnds.End0,view)
			grid.HideBubbleInView(DatumEnds.End1,view)
	
TransactionManager.Instance.TransactionTaskDone()

doc.Regenerate()

OUT = viewList
2 Likes