Hi there, i just wondering if its possible to transfer families with associate Project Parameters (shared parameter) values between model files.
Thanks in advance.
Hi there, i just wondering if its possible to transfer families with associate Project Parameters (shared parameter) values between model files.
Thanks in advance.
I think you just need to copy a family from one project to another.
In Revit: add the link, select the family (Tab select) and copy to clipboard, paste in the same place in the destination file.
I would be harder to copy the family without the parameters
Hi Marcel, thanks for your response, i was concerning about that workflow, but i want to know how to manage for like 200 families in a row, i managed to copy this shared parameter in the project to one inside builtin parameter inside the family, then export all families and import in the other Files but i need another clean workflow.
Thanks
There is a good addin from CCT Software called Shared Parameter Manager, might be what you are looking for.
So you want to copy the parameter values aswell?
Yes yes, te values concerning those shared parameters in the project.
You need to set up an experiment in a clean test file and learn the standard behaviour in Revit, then figure out how to do the same in Dynamo.
Ok, thanks
Hi there, im trying to bring to the current document all the family types from linked model with their project parameters.
When i try it the new Family Type add a value to avoid have same names, how can i avoid that? i want to overwrite the existing match families in the current document.
Here the code taken from the forum.
import clr
clr.AddReference('RevitServices')
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager
doc = DocumentManager.Instance.CurrentDBDocument
clr.AddReference('RevitAPI')
from Autodesk.Revit.DB import *
from System.Collections.Generic import List
clr.AddReference('RevitNodes')
import Revit
clr.ImportExtensions(Revit.Elements)
def singleton(x):
if hasattr(x,'__iter__'): return x[0]
else : return x
def tolist(x):
if hasattr(x,'__iter__'): return x
else : return [x]
class CustomCopyHandler(IDuplicateTypeNamesHandler):
def OnDuplicateTypeNamesFound(self, args):
return DuplicateTypeAction.UseDestinationTypes
linkInst = UnwrapElement(singleton(IN[0]) )
elements = UnwrapElement(tolist(IN[1]) )
linkDoc = linkInst.GetLinkDocument()
tf1 = linkInst.GetTotalTransform()
eId = List[ElementId]()
for e in elements:
try:
id1 = e.Id
except:
continue
eId.Add(id1)
TransactionManager.Instance.EnsureInTransaction(doc)
co = CopyPasteOptions()
co.SetDuplicateTypeNamesHandler(CustomCopyHandler())
copy = ElementTransformUtils.CopyElements(linkDoc, eId, doc, tf1, co)
TransactionManager.Instance.TransactionTaskDone()
OUT = [doc.GetElement(i).ToDSType(False) for i in copy]
Perhaps an even easier solution: delete everything except the families you want to transfer in the old file. Move the remaining content to a conspicuous location (day 300’ below the origin point). Link old file into the new file, and then bind the link.