Find Python code “FilledRegion.ByCurves in ActiveView”

Hi,

It’s a @Kulkul’s script :

# From Kulkul
import clr
# Import RevitAPI
clr.AddReference('RevitAPI')
import Autodesk
from Autodesk.Revit.DB import *

# Import ToDSType(bool) extension method
clr.AddReference('RevitNodes')
import Revit
# Import Element wrapper extension methods
clr.ImportExtensions(Revit.Elements)
# Import geometry conversion extension methods
clr.ImportExtensions(Revit.GeometryConversion)

# Import DocumentManager and TransactionManager
clr.AddReference('RevitServices')
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager

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

#The inputs to this node will be stored as a list in the IN variable.
doc =  DocumentManager.Instance.CurrentDBDocument

listCurves = IN[0]
listFilledRegionName = IN[1]

viewId = doc.ActiveView.Id

TransactionManager.Instance.EnsureInTransaction(doc)

listFilledRegion = []

for filledRegionName in listFilledRegionName:
	for fr in FilteredElementCollector(doc).OfClass(FilledRegionType):
		if Element.Name.GetValue(fr) == filledRegionName:
			listFilledRegion.append(fr)

regions = []

for curve,filledRegion in zip(listCurves, listFilledRegion):
	curveLoopList = []
	floorCurves = CurveLoop()
	for line in curve:
		floorCurves.Append(line.ToRevitType())
	curveLoopList.Add(floorCurves)
	
	coloredRegion = FilledRegion.Create(doc, filledRegion.Id, viewId, curveLoopList)
	regions.append(coloredRegion.ToDSType(False))

TransactionManager.Instance.TransactionTaskDone()

OUT = regions
1 Like