Needing to “Manually” Edit Revit Families Created in Dynamo

I have recently have been asked if it was possible to manual edit a parametric family created using dynamo.

In my experience, there are two reasons you would want to be able to edit the families manually in Revit once they are created:

  1. Your design team / project management does not completely trust or understand parametric design. they want the safety net of being able to go back to what they know: they want the option for someone at any point to be able to interact with family “manually”.
  2. The other reason is that you want to be able to  modify these parameters through a schedule.

I will address both situations:

  1. First, I was told this very thing on a project: that others (who did not know how to use dynamo or any parametric design) need to be able to interact with the families/geometry I created using dynamo. However, the farther we went into the project, and the more complexity that was added, the more  this area became my sole responsibility (there was one other person working on a parallel track, but he was also using dynamo and we shared much between us). But I am getting ahead of myself. Because of the decision, four people were tasked with the geometry to manual create the complex geometry using adaptive points and massing families in Revit. It was a long an tedious process but we managed and got really good at it. However, as more and more was asked of these geometries, the more it became clear that we did not have a choice but to use Dynamo. So I started experimenting with work flow to replace our original manual methods using Dynamo after hours and quick began getting result. (The key is taking baby steps in a situation like this, and giving your team leaders quick short term results one step at a time so that they gain trust of it. But asking me about this another time.) The results were so good in fact, that I was able to start doing what took 2-4 people a week to produce (for either original creation or  updates), in a matter of a day to a few hours (to develop the workflow) and updates took minutes.  Thus the need for anyone else (who did not know dynamo) to interact with these geometries or families became a non-point. It sure would have saved us a lot of time and man-power had we gone with the dynamo created families earlier.
  2. To the second point, you can use schedules to change values through dynamo by referencing the data tables or excel file to set instance parameters, so this also is a non-issue.
  3. An additional benefit to using Dynamo generated families and geometries is that they are lighter and more efficient. Manually created Revit families contain a lot of reference geometries (the more complex the family the heavier they become, especially when you start nesting many adaptive components in mass families). In the example above, there was an extensive ceiling system, that when done manually with adaptive components created a 400 MB Revit file. When the same geometry was created using free-form type geometries in Revit through Dynamo (FreeFormElement type geometries are a hidden gem of 2015 and on, see this link) the file came out as a mere 10 Mb—pretty good I’d say!

So now that you have it, I don’t think there is any reason to “edit” the families manually.

One last piece of advice I will give you: Do not use the import geometry instance in Dynamo, as it is essentially the same as importing an SAT. You want to use things like form.byloft and the nodes from the Spring Nodes package, form.bygeometry and familyinstance.bygeometry—they produce native Revit geometry through the FreeFormelements geometry type).


See the conversation on the Dynamo forum.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s