# FamilyInstance By geometry

**URL:** <https://forum.dynamobim.com/t/familyinstance-by-geometry/102825>\
**Category:** Geometry\
**Tags:** springnodes, geometry, package\
**Created:** [July 17, 2024, 3:13am UTC](https://forum.dynamobim.com/t/familyinstance-by-geometry/102825 "2024-07-17T03:13:55Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![jj06jj](https://avatars.discourse-cdn.com/v4/letter/j/87869e/32.png) [@jj06jj](https://forum.dynamobim.com/u/jj06jj)\
**Post date:** [July 17, 2024, 3:13am UTC](https://forum.dynamobim.com/t/familyinstance-by-geometry/102825/1 "2024-07-17T03:13:55Z")

</div>

I would like to know the best solution for placing geometry generated within Dynamo as a family in Revit for each version of Revit.

I have been using the FamilyInstance.ByGometry node in Springs since Revit 2021, but I think we had to change it for each version of Revit, like the following, so I want to put the information together here.  
[Revit 2022 ByGeometry](https://forum.dynamobim.com/t/revit-2022-bygeometry/74034)

If anything, I would like to have it incorporated as a standard node.

Thank you to all the experts for your help!

---

<div class="post-metadata">

**Author:** ![jacob.small](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.dynamobim.com/jacob.small/32/161030_2.png) [@jacob.small](https://forum.dynamobim.com/u/jacob.small)\
**Post date:** [July 17, 2024, 7:01am UTC](https://forum.dynamobim.com/t/familyinstance-by-geometry/102825/2 "2024-07-17T07:01:49Z")

</div>

FamilyType.ByGeometry and FamilyInstance.ByPoint are both out of the box nodes. Use the min point of the geometry’s bounding box as the insertion point.

---

<div class="post-metadata">

**Author:** ![jj06jj](https://avatars.discourse-cdn.com/v4/letter/j/87869e/32.png) [@jj06jj](https://forum.dynamobim.com/u/jj06jj)\
**Post date:** [July 22, 2024, 7:23am UTC](https://forum.dynamobim.com/t/familyinstance-by-geometry/102825/3 "2024-07-22T07:23:58Z")

</div>

When geometry is Polysurface, what should we do?  
Also, FamilyType.ByGeometry cannot reflect the material in the geometry, so I use FamilyInstance.ByGometry.

---

<div class="post-metadata">

**Author:** ![jacob.small](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.dynamobim.com/jacob.small/32/161030_2.png) [@jacob.small](https://forum.dynamobim.com/u/jacob.small)\
**Post date:** [July 22, 2024, 8:07am UTC](https://forum.dynamobim.com/t/familyinstance-by-geometry/102825/4 "2024-07-22T08:07:41Z")

</div>

Polysurface likely needs to be changed into a solid. FamilyType will respect material of the material exists in the family template.

---

<div class="post-metadata">

**Author:** ![jj06jj](https://avatars.discourse-cdn.com/v4/letter/j/87869e/32.png) [@jj06jj](https://forum.dynamobim.com/u/jj06jj)\
**Post date:** [July 22, 2024, 8:34am UTC](https://forum.dynamobim.com/t/familyinstance-by-geometry/102825/5 "2024-07-22T08:34:59Z")

</div>

Sometimes it is not possible to add thickness to Polysurface for complex shapes. This is why I use Polysurface instead of Solid.  
I’m using Revit 2023 and I am calling the material in the family template using Material.ByName but it doesn’t seem to be reflected.

---

<div class="post-metadata">

**Author:** ![jacob.small](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.dynamobim.com/jacob.small/32/161030_2.png) [@jacob.small](https://forum.dynamobim.com/u/jacob.small)\
**Post date:** [July 22, 2024, 10:10am UTC](https://forum.dynamobim.com/t/familyinstance-by-geometry/102825/6 "2024-07-22T10:10:06Z")

</div>

Post a dataset and family template and I can try to look at this for you this afternoon.

As PolySurfaces don’t exist in Revit (Revit models real world stuff - everything in reality has a thickness, so your models should too) you likely want to move to something real.

---

<div class="post-metadata">

**Author:** ![jj06jj](https://avatars.discourse-cdn.com/v4/letter/j/87869e/32.png) [@jj06jj](https://forum.dynamobim.com/u/jj06jj)\
**Post date:** [July 23, 2024, 12:42am UTC](https://forum.dynamobim.com/t/familyinstance-by-geometry/102825/7 "2024-07-23T00:42:53Z")

</div>

Attached below is data for which materials cannot be set.  
[https://drive.google.com/drive/folders/10WQAWxy4A8TzLHWPnJi5FaQln7QZoSRg?usp=sharing](https://drive.google.com/drive/folders/10WQAWxy4A8TzLHWPnJi5FaQln7QZoSRg?usp=sharing)

---

<div class="post-metadata">

**Author:** ![jj06jj](https://avatars.discourse-cdn.com/v4/letter/j/87869e/32.png) [@jj06jj](https://forum.dynamobim.com/u/jj06jj)\
**Post date:** [September 12, 2024, 6:42am UTC](https://forum.dynamobim.com/t/familyinstance-by-geometry/102825/8 "2024-09-12T06:42:54Z")

</div>

@jacob.small  
What would you like to know about this one?

> [@FamilyInstance By geometry](https://forum.dynamobim.com/t/familyinstance-by-geometry/102825/7):
>
> Attached below is data for which materials cannot be set. [https://drive.google.com/drive/folders/10WQAWxy4A8TzLHWPnJi5FaQln7QZoSRg?usp=sharing](https://drive.google.com/drive/folders/10WQAWxy4A8TzLHWPnJi5FaQln7QZoSRg?usp=sharing)

---

<div class="post-metadata">

**Author:** ![jacob.small](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.dynamobim.com/jacob.small/32/161030_2.png) [@jacob.small](https://forum.dynamobim.com/u/jacob.small)\
**Post date:** [September 12, 2024, 8:51am UTC](https://forum.dynamobim.com/t/familyinstance-by-geometry/102825/9 "2024-09-12T08:51:30Z")

</div>

Sorry for the delay - my availability filled up from when i asked for the dataset and when it got posted and lost track of this. Checking on it now but my time is tight now so no promises.

---

<div class="post-metadata">

**Author:** ![jacob.small](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.dynamobim.com/jacob.small/32/161030_2.png) [@jacob.small](https://forum.dynamobim.com/u/jacob.small)\
**Post date:** [September 12, 2024, 9:14am UTC](https://forum.dynamobim.com/t/familyinstance-by-geometry/102825/10 "2024-09-12T09:14:11Z")

</div>

Hmmm… seeing material not being respected, but I asked development to confirm incase it’s a localization thing. You might want to look into Synthesize toolkit for an alternative, but know this may require getting the right package installed for each environment/release.

---

<div class="post-metadata">

**Author:** ![jj06jj](https://avatars.discourse-cdn.com/v4/letter/j/87869e/32.png) [@jj06jj](https://forum.dynamobim.com/u/jj06jj)\
**Post date:** [September 12, 2024, 9:55am UTC](https://forum.dynamobim.com/t/familyinstance-by-geometry/102825/11 "2024-09-12T09:55:35Z")

</div>

@jacob.small  
Thank you.  
I will check on the Synthesize toolkit, but please let me know if there is any progress from development.

---

<div class="post-metadata">

**Author:** ![sovitek](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.dynamobim.com/sovitek/32/116237_2.png) [@sovitek](https://forum.dynamobim.com/u/sovitek)\
**Post date:** [September 12, 2024, 9:59am UTC](https://forum.dynamobim.com/t/familyinstance-by-geometry/102825/12 "2024-09-12T09:59:24Z")

</div>

Hi @jj06jj Rhythm have just add a family.instance by geometry to the package [should work in most version]…probably it could work as well

---

<div class="post-metadata">

**Author:** ![emrullah.yildiz](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.dynamobim.com/emrullah.yildiz/32/177572_2.png) [@emrullah.yildiz](https://forum.dynamobim.com/u/emrullah.yildiz)\
**Post date:** [September 13, 2024, 9:34pm UTC](https://forum.dynamobim.com/t/familyinstance-by-geometry/102825/13 "2024-09-13T21:34:44Z")

</div>

Hi @jj06jj,

Thank you very much for your feedback! We will be investigating the situation with FamilyType.ByGeometry node and come back with an update.

Here is an alternative method: After the geometry creation, you can associate _Instance Material_ _parameter of the family template_ with \*Instance Material parameter of the geometry. and then use Element.SetParameterValueByName node to assign the material through Dynamo.

A step by step explanation for the alternative solution:

1 - In Dynamo, create Revit Family Types from Dynamo geometries using FamilyType.ByGeometry node.  
2 - In Dynamo, place the elements in Revit environment using FamilyInstance.ByPoint node.  
3 - In Revit project environment, click on one of the created Revit elements and click on ‘Edit Family’ button to go into the family environment.  
4 - In Revit Family Editor, create a new ‘Instance’ parameter called MaterialInstance.  
5 - In Revit Family Editor, click on the geometry that was created with Dynamo and click on the little box next to the Material parameter of the geometry and assign the MaterialInstance to it.  
6 - In Revit Family Editor, save it and load the family into the Revit project.  
7- In Revit project environment, now you will see the instance Material parameter of the geometry when you click on it.  
7 - In Dynamo environment, freeze the FamilyType.ByGeometry node and create an algorithm to set the material parameter of the geometries.

Here is some screenshots of the process:

1- Dynamo environment - you can create different algorithms such as assigning materials directly after the FamilyInstance.ByPoint but you still need to associate paremeters between the family template and geometry in the Family Editor before assigning materials through Dynamo:

 ![FamilyGeometry_2024-09-14_12-16-39](https://us1.discourse-cdn.com/flex022/uploads/dynamobim/original/3X/f/0/f0032a07b976ed873a4f55484723edfed7a4d901.png)

2 - Revit Family Editor Environment - The new Instance Material parameter:

 ![image](https://us1.discourse-cdn.com/flex022/uploads/dynamobim/original/3X/6/f/6fa37c3ffaa3e069f2137650ac11d7c7e958dca9.png)

3- Revit Family Editor Environment - The parameter association between geometry and template:

 ![image](https://us1.discourse-cdn.com/flex022/uploads/dynamobim/original/3X/b/f/bf72bb9a4daf3804c8d46869e932841abd463941.png)

4 - Revit project environment:

 ![image](https://us1.discourse-cdn.com/flex022/uploads/dynamobim/original/3X/3/8/38d9f55af1eff06133ad6b1f4208756b919bbe93.png)

Here is [a helpful video](https://www.youtube.com/watch?v=5D_x5BfKBnE) that explains how to assign materials to Revit elements using Dynamo.

---

<div class="post-metadata">

**Author:** ![sovitek](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.dynamobim.com/sovitek/32/116237_2.png) [@sovitek](https://forum.dynamobim.com/u/sovitek)\
**Post date:** [September 14, 2024, 12:36pm UTC](https://forum.dynamobim.com/t/familyinstance-by-geometry/102825/14 "2024-09-14T12:36:05Z")

</div>

¨Hi @emrullah.yildiz Great explanation there 😉 thx… and guess many off these steps can be automated as well 😉

![Revit_ic8siC5zH8](https://us1.discourse-cdn.com/flex022/uploads/dynamobim/original/3X/c/0/c07d8914651a93402d83f9836b01aa05be0f44d5.gif)

---

<div class="post-metadata">

**Author:** ![emrullah.yildiz](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.dynamobim.com/emrullah.yildiz/32/177572_2.png) [@emrullah.yildiz](https://forum.dynamobim.com/u/emrullah.yildiz)\
**Post date:** [September 14, 2024, 1:24pm UTC](https://forum.dynamobim.com/t/familyinstance-by-geometry/102825/15 "2024-09-14T13:24:24Z")

</div>

That is awesome! Thank you for sharing the graph!

---

<div class="post-metadata">

**Author:** ![jj06jj](https://avatars.discourse-cdn.com/v4/letter/j/87869e/32.png) [@jj06jj](https://forum.dynamobim.com/u/jj06jj)\
**Post date:** [October 20, 2025, 7:39am UTC](https://forum.dynamobim.com/t/familyinstance-by-geometry/102825/16 "2025-10-20T07:39:01Z")

</div>

Is there a way to assign parameters to forms (solid geometry) without opening the Family Editor?

---

<div class="post-metadata">

**Author:** ![sovitek](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.dynamobim.com/sovitek/32/116237_2.png) [@sovitek](https://forum.dynamobim.com/u/sovitek)\
**Post date:** [October 20, 2025, 7:45am UTC](https://forum.dynamobim.com/t/familyinstance-by-geometry/102825/17 "2025-10-20T07:45:04Z")

</div>

yes should be possible, with BG open the family document, genius loci have some nodes for that, or try birdtool multiplayer

---

<div class="post-metadata">

**Author:** ![jacob.small](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.dynamobim.com/jacob.small/32/161030_2.png) [@jacob.small](https://forum.dynamobim.com/u/jacob.small)\
**Post date:** [October 20, 2025, 9:53am UTC](https://forum.dynamobim.com/t/familyinstance-by-geometry/102825/18 "2025-10-20T09:53:40Z")

</div>

> [@jj06jj](#):
>
> Is there a way to assign parameters to forms (solid geometry)

I believe that if you have a shared parameter in the project that is assigned to a class, and then load a family in, the parameter gets added to the family. Values wont’ be set, but you can do that for types at this stage.

Default instance parameter values have to be set by opening the family editor though, either in the UI or using background processing as @sovitek noted.

---

<div class="post-metadata">

**Author:** ![emrullah.yildiz](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.dynamobim.com/emrullah.yildiz/32/177572_2.png) [@emrullah.yildiz](https://forum.dynamobim.com/u/emrullah.yildiz)\
**Post date:** [October 20, 2025, 7:25pm UTC](https://forum.dynamobim.com/t/familyinstance-by-geometry/102825/19 "2025-10-20T19:25:09Z")

</div>

By assigning parameters, do you mean modifying existing values or adding new parameters that don’t yet exist?  
If it’s the latter, only **shared parameters** can be added to Revit elements due to API limitations.

To update family parameters without opening the Family Editor, you’ll first need to collect them in Dynamo. Exploring the suggested packages mentioned above could be a good starting point.

---

<div class="post-metadata">

**Author:** ![jj06jj](https://avatars.discourse-cdn.com/v4/letter/j/87869e/32.png) [@jj06jj](https://forum.dynamobim.com/u/jj06jj)\
**Post date:** [October 21, 2025, 12:28am UTC](https://forum.dynamobim.com/t/familyinstance-by-geometry/102825/20 "2025-10-21T00:28:06Z")

</div>

Since the `FamilyInstance.ByGeometry` node from the Springs package was so easy to use, I would like to see this functionality implemented as standard. By the way, the material input on the `FamilyType.ByGeometry` node seems to be meaningless (or doesn’t seem to work), so what is it there for?

[Next page](https://forum.dynamobim.com/t/familyinstance-by-geometry/102825.md?page=2)
