Hi, can I get some help from here?
Before many thanks for your any reply.
Question 1:
I have defined a def in python but its aways with warming - unexpected token ‘newline’, see the below snapshot. (This script is work to creat a default 3d view.)
Question 2:
Here is another script also with some issue - aways with the blow snapshot warming.
(This one is work to create some view filter.)
And here is the Python script includes two def be defined.
import Autodesk
from Autodesk.Revit.DB import *
import System
from System.Collections.Generic import *
doc = revit.ActiveUIDocument.Document
# Get category list of the project parameter
def _GetParamCat(param):
# Collect parameter and category list
params = []
cats = []
iterator = doc.ParameterBindings.ForwardIterator()
while iterator.MoveNext():
params.append(iterator.Key.Name)
thesecats = []
for cat in iterator.Current.Categories:
thesecats.append(Category.GetCategory(doc,cat.Id))
cats.append(thesecats)
#Return category list
if param in params:
return cats[params.index(param)]
else:
return ["%s is not a parameters name" %(param)]
def _CreatParamStrEqFilter(param):
cats = _GetParamCat(param)
#DB transaction
tran = Transaction(doc,"Creat ID Filter")
tran.Start()
#Get parameter from parameter category List
Elemcollector = []
for i in cats:
collector = FilteredElementCollector(doc).\
OfCategoryId(i.Id).\
WhereElementIsNotElementType().ToElements()
Elemcollector.extend(collector)
#Get all parameter values
pvalues = [""]
for elem in Elemcollector:
para = elem.LookupParameter(param)
pvalues.append(para.AsString())
pvalue = list(set(pvalues))
#Creatd a new rule
rules = []
for i in pvalue:
rules.append(ParameterFilterRuleFactory.CreateEqualsRule(para.Id,i,False))
#Typed category list ------- Important!!!
ids1 = list()
for i in cats:
ids1.append(i.Id)
catlist = List[ElementId](ids1)
rulelist = List[FilterRule](rules)
#Create parameter filter elmenets
filters = []
for i in pvalue:
if len(i) == 0:
name = 'Id - ' + i
else:
name = 'Id - Empty'
filters.append(ParameterFilterElement.Create(doc,name,catlist,rulelist[pvalue.index(i)])
tran.Commit()
return filters
a = _CreatParamStrEqFilter("ACTIVITY ID")
print a