Hello everyone,
I want to set none for all family instances that have been Associate Global Parameter. Right now I’m solving it by removing Global Parameter and then recreating it, but it doesn’t seem to work very well.
Thank you so much.
Hi,
a solution with Python
import clr
import sys
import System
#
clr.AddReference('ProtoGeometry')
from Autodesk.DesignScript.Geometry import *
import Autodesk.DesignScript.Geometry as DS
#import Revit API
clr.AddReference('RevitAPI')
import Autodesk
from Autodesk.Revit.DB import *
import Autodesk.Revit.DB as DB
#import transactionManager and DocumentManager (RevitServices is specific to Dynamo)
clr.AddReference('RevitServices')
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager
doc = DocumentManager.Instance.CurrentDBDocument
def toList(x):
if isinstance(x, list):
return x
elif hasattr(x, "GetType") and x.GetType().GetInterface("IEnumerable") is not None:
return x
else :
return [x]
#Preparing input from dynamo to revit
lstelems = toList(UnwrapElement(IN[0]))
paraName = IN[1]
#Do some action in a Transaction
TransactionManager.Instance.EnsureInTransaction(doc)
for elem in lstelems:
para = elem.LookupParameter(paraName)
if para.CanBeAssociatedWithGlobalParameters():
para.DissociateFromGlobalParameter()
TransactionManager.Instance.TransactionTaskDone()
OUT = lstelems
1 Like