Creating a link between a model family and an annotation family

Hi all,

Complete Dynamo newbie here, I’ve spent hours trying to find an existing solution to my problem but I think I currently lack even the basic terminology to ask the right question! So here it is:

I have created a 2D Generic Annotation family version of a 3D Electrical Fixture family, for use in a drafting view schematic. Both 2D and 3D families contain a set of the same shared parameters. I want to create a dynamo graph that, when run, will find Elec Fixture 001 and copy this set of shared parameter values across to Generic Annotation 001, etc.

Or to put it another way:

An Electrical Fixture family contains FOUR shared parameters:

  1. EB No. (i.e. “EB 001”)
  2. Sh Param A (integer)
  3. Sh Param B (integer)
  4. Sh Param C (integer)

A Generic Annotation family contains the same four shared parameters.

I want to create a graph that finds “EB 001” (Elec Fixture) and copies the values for Sh Param A, B & C into the counterpart parameters in “EB 001” (Generic Annotation family) at the click of a button.

I think its similar to something called “family linking” in Rushforth Tools plug-in, however I do not have access to this plug in. I just want to make sure that when I create an electrical box schematic in a drafting view, I can name each of the boxes identically to the 3D boxes that exist in my Revit model, and then ‘push’ the parameter data from one to the other.

If anyone can give me a hint as to where I should begin I’d be indebted to you! As I said at the start, I’m new to Dynamo and even having had a play I don’t think I’m phrasing the logic correctly in my head to get it working in a graph!

Many thanks,

JMH

This is a nice use case, but building such a sample model would likely take someone a good bit of time before they even get to writing out a graph to help you. Can you post a sample rvt with the minimal number of instances to use as a proof of concept, and nothing else?

A basic outline of a graph to get started:

  1. get all families of the annotation type, pull the name of each, and make a dictionary where the key is the name and the value is the family instance.
  2. Get all the model instances, and pull the relevant name and parameter values of each in a sublist series (ie: [ [name, val1, val2, val3], [name, val1, val2, val3]…]).
  3. Use the name from each sublist to pull the annotation object out of the dictionary, and then set the values for parameter 1, 2 and 3 according to the associated values.

Hi Jacob,

Thanks for your response. Here’s the basic model containing the two families:
Google Drive

I’ll have a bash at a graph based on your outline, thanks. It’s going to take a lot of googling!

Cheers,

JMH

1 Like