Hello
I am trying to make a roof fascia
i don’t know how to make a reference array
This is a part of the code
RoofExtrusionLines are lines wich i used to create a roof (roof by extrusion)
refArrays = []
outList = []
for lines in RoofExtrusionLines:
rArr = ReferenceArray()
for l in lines:
rArr.Append(Reference(l))
refArrays.append(rArr)
TransactionManager.Instance.EnsureInTransaction(doc)
FasciaNew = doc.Create.NewFascia(Fascia, refArrays)
TransactionManager.Instance.TransactionTaskDone()
OUT = Fascia
I don’t see anything wrong with the code above. Are you importing everything from the Revit API to allow you to use the ReferenceArray constructor directly? e.g.
import clr
clr.AddReference('RevitAPI')
from Autodesk.Revit.DB import *
ref_array = ReferenceArray()
Hello
The problem is that i feed lines
Those lines i used to create the roof by extrusion
but i don’t no how to get reference of that roof to create a refference array wich i need to create the fascia
fascia.dyn (28.4 KB)
Hello cgartland
I solved the problem
index = [3,4,7,8]
fascias = []
opt = Options()
opt.ComputeReferences = True
roofSolid = footprintRoof.get_Geometry(opt)
edgeRefs = []
temp = []
for i in roofSolid:
edges = i.Edges
for j in edges:
edgeRefs.append(j.Reference)
ref3 = edgeRefs[3]
for i in index:
ref = edgeRefs[i]
TransactionManager.Instance.EnsureInTransaction(doc)
FasciaNew = doc.Create.NewFascia(Fascia, ref)
TransactionManager.Instance.TransactionTaskDone()
fascias.append(FasciaNew.ToDSType(False))
OUT = fascias