# FormIt + Dynamo

![](https://193854745-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVWdttpiARClwDWoDArlA%2Fuploads%2FtLh4Xz4mnEF2f6o3oIkk%2F20181213%20formit%20%2B%20dynamo%20hero%20image.png?alt=media\&token=b7961605-ae04-4274-855f-8728ddf8e9e1)

FormIt for Windows has Dynamo built-in for incredible computational design workflows.

## What's New With FormIt + Dynamo

[FormIt 2024](https://formit.autodesk.com/blog/post/introducing-formit-2024/) includes [Dynamo 2.17](https://dynamobim.org/dynamo-core-2-17-release/)!

FormIt 2024.1 fixes a critical issue preventing Dynamo from running when Revit 2024 was also installed.

### **Data Graphs, Send Levels to Excel, and Faceting Control**

[FormIt 2023](https://formit.autodesk.com/blog/post/introducing-formit-2023/) enables running Dynamo graphs[ without a SendToFormIt node](#graph-types), adds the ability to [send FormIt levels to Excel](#send-formit-levels-to-excel), and adds control of [curve and surface faceting via new FormItGroupOptions nodes](https://windows.help.formit.autodesk.com/tool-library/curve-+-surface-faceting).

### **Dimension Inputs and Early JS API Access**

[FormIt 2022.1](https://formit.autodesk.com/blog/post/introducing-formit-2022-1) adds the ability to use [familiar FormIt dimensions as inputs](https://formit.autodesk.com/page/formit-dynamo#dynamo-input-nodes), introduces [object-level options](https://formit.autodesk.com/page/formit-dynamo#dynamo-formit-options-nodes), and offers an early preview of [JavaScript API access](https://formit.autodesk.com/page/formit-dynamo#dynamo-js-api-nodes). Get it [here](https://formit.autodesk.com/page/download).

### **Multiple SendToFormIt Nodes**

[FormIt 2021.3](https://formit.autodesk.com/blog/post/introducing-formit-2021-3) adds the ability to use [multiple SendToFormIt nodes and nested Dynamo graphs](https://formit.autodesk.com/page/formit-dynamo#dynamo-groups).

### **SelectFromFormIt Node**

[FormIt 2021](https://formit.autodesk.com/blog/post/introducing-formit-2021) adds the [SelectFromFormIt](https://formit.autodesk.com/page/formit-dynamo#dynamo-formit-nodes) node, and enables always-connected sessions, multi-instance editing, and more.

## Getting Started

Learn about the interface and link your Dynamo directories to FormIt.

### **First Time Setup**

First time using FormIt + Dynamo? You may need to [configure your system](https://formit.autodesk.com/page/formit-dynamo#dynamo-important-notes) first, in order to see the 3D canvas in Dynamo.

### **The Dynamo Panel**

Use the Dynamo panel to launch Dynamo, place Dynamo Groups, and edit Dynamo graphs:

![Dynamo panel](https://193854745-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVWdttpiARClwDWoDArlA%2Fuploads%2FTkpd83xUF4D1glFRIgI1%2Fdynamo_dynamopanel.png?alt=media\&token=7eefce8c-827f-4c45-b645-e3e8c97485f1)

### **Adding and Managing Local Dynamo Directories**

* The Dynamo panel works just like the [Content Library](https://windows.help.formit.autodesk.com/building-the-farnsworth-house/import-export-and-content-library), allowing you to link and manage local directories containing Dynamo files.
* Click the "Link Directory" button in the Dynamo panel, and then click (+) again in the Preferences dialog to select a directory to link to FormIt: <img src="https://193854745-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVWdttpiARClwDWoDArlA%2Fuploads%2F4J03Gjdj87FttDoCPukK%2Fdynamo_selectdirectory.png?alt=media&#x26;token=d763990c-0ab5-4e42-81c1-62fbe626027e" alt="" data-size="line">
* Switch between linked directories using the drop-down:

![](https://193854745-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVWdttpiARClwDWoDArlA%2Fuploads%2FXD1F0d6hndSTavzFeNnN%2Fdynamo_dropdown.png?alt=media\&token=ed635ec5-547c-41de-aeb8-6f97a1cff817)

* You'll only be able to view .dyn files and subfolders through the Dynamo panel.
* Use the Filter bar to filter out Dynamo files and subfolders so you can easily find what you need:

![](https://193854745-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVWdttpiARClwDWoDArlA%2Fuploads%2FRQBjDNr0Rm8gVegrssqe%2Fdynamo_filter.png?alt=media\&token=2ba162e8-3474-4141-8b80-686f10974b72)

## Different Ways to Dynamo

Author and edit graphs in Dynamo, or flex parameters in FormIt without ever seeing the graph. Or both at once!

### **Graph Types**

FormIt supports three types of Dynamo graphs:

* Data graph: Data graphs have no *SendToFormIt* nodes and are used to surface or pass data through FormIt. For example, you can use data graphs to send data to Excel or calculate non-geometric data and display it in a Watch Node.
* Geometry graph: These graphs produce geometry immediately and need to be placed into the canvas to see their parameters. After clicking the thumbnail, the geometry will appear on the cursor for placement into the 3D scene. This graph requires at least one *SendToFormIt* node to be present and receiving geometry at the end of the graph.
* Selection graph: These graphs require FormIt selections before running. You'll see a prompt in the upper-left corner of FormIt to indicate what needs to be selected. After providing the selection, the graph will run and generate geometry relative to the selection. This graph requires at least one *SendToFormIt* node to be present and receiving geometry at the end of the graph.

![](https://193854745-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVWdttpiARClwDWoDArlA%2Fuploads%2FPrhsGQY8kYUjIEMlc4Td%2Fdynamo-graph-types.png?alt=media\&token=f19591f7-41a2-4acd-b06e-428aed94f447)

### **Geometry Graph: Place Dynamo Group into FormIt**

![](https://193854745-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVWdttpiARClwDWoDArlA%2Fuploads%2FqxjrzLPF9rG6vPgDynWL%2Fdynamo_stairsgif.gif?alt=media\&token=1ddbc6a4-7a5b-485d-ae85-d2acaa40b8dc)

* In the Dynamo panel, click the thumbnail of the Dynamo graph you want to run.
  * You can use the built-in samples, or [link a library](https://formit.autodesk.com/page/formit-dynamo#dynamo-getting-started) of your own Dynamo files.
* Placing the geometry into FormIt will embed a copy of the Dynamo graph into the FormIt file.
  * To generate geometry, a [SendToFormIt](https://formit.autodesk.com/page/formit-dynamo#dynamo-formit-nodes) node needs to be attached to output geometry nodes in the graph.
* The geometry from the SendToFormIt node will be available on your cursor for placement.
  * When the graph has [SelectFromFormIt](https://formit.autodesk.com/page/formit-dynamo#dynamo-formit-nodes) nodes marked as Is Input, FormIt will ask first for the selection (each selection node in vertical order), then generate the geometry in the correct place relative to the selection.
* A copy of the original Dynamo file is now embedded into the FormIt Group and is independent of the source graph.
* Upon placement, the Properties panel will automatically toggle to reveal the available parameters.

### **Geometry Graph: Modify Parameters**

![](https://193854745-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVWdttpiARClwDWoDArlA%2Fuploads%2FetinZtysTu6yOhCeRRhE%2Fdynamo_stairsgif2_modifyparameters.gif?alt=media\&token=952a58d4-e512-4ff4-a5b9-8627c82067ed)

* After placing a Dynamo Group, select it and switch to the Properties panel, or simply double-click the Group to automatically switch to Properties.
  * Any input nodes marked as "Is Input" in Dynamo will be listed here.
  * [**SelectFromFormIt**](https://formit.autodesk.com/page/formit-dynamo#dynamo-formit-nodes) input nodes will show up as buttons at the top, and can be used to update the selection that's used to drive the graph.
  * FormIt supports these input nodes: Number Sliders, Integer Sliders, Boolean Toggles, and Number/String fields.
* Make changes to the inputs in FormIt, then click Run. The Run button will turn blue to indicate parameters have been modified, and the graph needs to be run.
  * Dynamo will run in the background to process the changes and return updated geometry in FormIt.
  * In FormIt 2022 and newer, the first run from the Properties panel spins up a dedicated Dynamo instance, making subsequent edits much faster.
  * You can continue using FormIt while Dynamo is running.&#x20;
* Note that all geometry inside each SendToFormIt Group will be deleted and replaced when the Dynamo graph runs.

### Data Graph: Send FormIt Levels to Excel

In FormIt 2023 and newer, you can use Dynamo to send FormIt levels to Excel:&#x20;

* Download the [sample Dynamo graph here](https://formit-help.s3.amazonaws.com/Send+Levels+to+Excel.dyn).
* Point the Dynamo palette to the local directory where the Dynamo graph was saved.
* Right-click on the thumbnail, and click *Edit Embedded Graph.*
* Create an empty Excel spreadsheet somewhere.
* Edit the Spreadsheet Location field to use the path to the Excel spreadsheet.
* Edit any other fields you'd like such as Sheet Name.
* Close Dynamo and save the graph.

Now you can simply click the example file in the palette, and it'll run in FormIt without needing to generate geometry.&#x20;

You'll see the Dynamo inputs appear in the Dynamo palette, and you'll see Excel open up to display the results from the graph.&#x20;

As you make changes to the model, you can click the graph thumbnail again, or the *Run* button, to update the spreadsheet with the level data from the latest version of the FormIt sketch.

![](https://193854745-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVWdttpiARClwDWoDArlA%2Fuploads%2FikV7lhrfFFMAZ7GmWOxH%2Fdynamo-send-levels-to-excel.gif?alt=media\&token=425abfcf-266a-44ec-a5f3-32f1e94e681a)

### Launch a New Dynamo Window

![](https://193854745-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVWdttpiARClwDWoDArlA%2Fuploads%2Fh5PgQeMrsMeOkWHblkUq%2Fdynamo_launchwindow.gif?alt=media\&token=ef7d2e21-1b1e-4e4e-ac28-2ab96ef801f7)

* In FormIt 2021 and newer, clicking the Launch Dynamo button in the Dynamo panel will start a connected session with FormIt automatically.
  * This opens a graph template in Dynamo, and will automatically generate the template geometry in FormIt.
  * The resulting geometry will appear in a new Group, at the origin of the current Group editing context. It's best to be in the desired Group context before starting Dynamo.&#x20;
  * The template includes both FormIt nodes, and some example geometry. Adjusting the sliders will adjust the cube's size in both applications.
  * From here, you can open different Dynamo graphs, or build something new using these basic components in the template and Save As in Dynamo to a new location.

### **Edit Embedded + Source Graphs**

Existing Dynamo graphs can be edited in two distinct ways: by editing Embedded Graphs that have already been placed in FormIt, or by editing the Source Graph that's saved on your computer.

### **Embedded Graphs**

After placing a Dynamo object into FormIt, its underlying graph is copied and embedded into the current FormIt file. Editing this in Dynamo happens through the **Edit Embedded Graph** button.

![](https://193854745-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVWdttpiARClwDWoDArlA%2Fuploads%2FBiJHaUhZXUpXwzC6XLRJ%2Fdynamo_embeddedgraph.png?alt=media\&token=2022058e-764b-4974-a1de-c02643178264)

![](https://193854745-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVWdttpiARClwDWoDArlA%2Fuploads%2FYjemwpmOXdscatRIy6LP%2Fdynamo_editgraphgif.gif?alt=media\&token=8792b491-5dab-4e8e-82f1-881efc1c47b2)

* Select the Dynamo Group and switch to the Properties panel, or simply double-click the Group to automatically switch to Properties.
* Click the **Edit Embedded Graph** button.
* In Dynamo, you'll notice the file name at the top will now contain "(FormIt)", which means you're editing a graph that is embedded in this FormIt file, and not modifying the Source Graph.
* Make sure one or more [SendToFormIt](https://formit.autodesk.com/page/formit-dynamo#dynamo-formit-nodes) nodes is connected to the geometry you want to send to FormIt.
* FormIt will display updates to the geometry in realtime as you adjust the graph.
* If you don't save changes in Dynamo, FormIt will roll back to the last-saved version of the Dynamo graph.
* Note that all geometry inside each SendToFormIt Group will be deleted and replaced when the Dynamo graph runs.

### **Source Graphs**

Source Graphs are displayed in the Dynamo panel after [linking local directories](https://formit.autodesk.com/page/formit-dynamo#dynamo-getting-started). These graphs are stored on your computer, and can be edited in Dynamo by clicking the Edit Source Graph button.

![](https://193854745-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVWdttpiARClwDWoDArlA%2Fuploads%2FjX0F4xYEp4Rdszm7lx98%2Fdynamo_editsourcegraph.png?alt=media\&token=9bcdb4e6-c97f-4fb2-8202-36c16bf929d3)

![](https://193854745-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVWdttpiARClwDWoDArlA%2Fuploads%2FiZ4Y6FWsHyuKboNtFdCx%2Fdynamo_sourcegraphgif.gif?alt=media\&token=9c2af2f0-20b5-48ea-8cad-80fc743ada9e)

* [Link a directory](https://formit.autodesk.com/page/formit-dynamo#dynamo-getting-started) containing Dynamo files to the Dynamo Panel, then navigate to that location in the panel.&#x20;
* Right click the thumbnail of the Dynamo graph you want to edit (or click the arrow), and select the **Edit Source Graph** button.
* Dynamo will launch with the requested graph opened, and in FormIt, you'll see the geometry from the graph's final output appear.
  * For graphs that use one or more [SelectFromFormIt](https://formit.autodesk.com/page/formit-dynamo#dynamo-formit-nodes) nodes as an input, you may not see the resulting geometry until the SelectFromFormIt nodes are populated with selections.
* The resulting geometry will appear in a new Group, at the origin of the current Group editing context.
  * It's best to be in the desired Group context before clicking Edit Source Graph.
* When finished editing, save and close Dynamo. In FormIt, the source graph has been copied and embedded in the FormIt file.
  * If you need to make more edits to the **Source Graph**, delete the embedded copy and follow these steps again.

### **Control Curve + Surface Faceting**

* Starting in FormIt 2023, you can control the faceting of curves and surfaces attached to SendToFormIt nodes by using the FormItGroupOptions nodes SetCurveFacetingCount and SetSurfaceFacetingCount.

  <img src="https://193854745-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVWdttpiARClwDWoDArlA%2Fuploads%2FHK0mjthxcB5BvdLIB7w3%2Fdynamo-formitgroupoptions-faceting-nodes.png?alt=media&#x26;token=0a64a7a4-824c-40ec-8503-f2dc59314bd9" alt="" data-size="original">
* These nodes will override the global curve and surface faceting settings, which are defined under Edit -> Preferences -> Units + Accuracy.
* This is very useful if your Dynamo graph needs to generate curved objects using specific faceting values, alleviating the need to change the global setting for each Dynamo graph run in the current session.

![](https://193854745-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVWdttpiARClwDWoDArlA%2Fuploads%2FXiBzUx5wawc2ika5E83E%2Fdynamo-formitgroupoptions-faceting.gif?alt=media\&token=b517e77e-3559-42d7-b737-2ea718114780)

* You can also globally set faceting settings in Edit -> Preferences -> Units + Precision
* After adjusting the faceting quality in Preferences, rerun the graph to use the new global faceting settings.

![](https://193854745-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVWdttpiARClwDWoDArlA%2Fuploads%2Fhttf7qUgCyqcXcq1sw0P%2Fdynamo_controlcurve.gif?alt=media\&token=eb64a8da-ec39-4a51-b714-38086defd91a)

[Learn more about curve and surface faceting settings in FormIt.](https://windows.help.formit.autodesk.com/tool-library/curve-+-surface-faceting)

## Using FormIt Groups with Dynamo

Harness the power FormIt Groups for better Dynamo geometry organization and incredible workflows.

### **Groups and the SelectFromFormIt Node**

* When selecting geometry for a [SelectFromFormIt](https://formit.autodesk.com/page/formit-dynamo#dynamo-formit-nodes) node, it's useful to store the geometry in a FormIt Group, and select the Group instead.
  * Doing so gives you the flexibility to change the contents of the selected FormIt Group, then simply re-run the graph that is referencing the Group to see the updated result.
* If you select ungrouped geometry, changes to that geometry may result in FormIt asking you to re-select the geometry the next time the graph is run.

### **Generating Geometry in Groups**

* When a Dynamo graph is run in FormIt, its geometric results are contained in a FormIt Group.
* Each [SendToFormIt](https://formit.autodesk.com/page/formit-dynamo#dynamo-formit-nodes) node in the graph creates a sub-Group to contain the geometry from the node input port.
* After generating a Dynamo object in FormIt, the entire graph and its parameters are embedded as a copy in the FormIt file.
* When the graph runs, the geometry inside each sub-Group is deleted and regenerated.
  * Use caution when modifying geometry or painting surfaces inside sub-Groups, as those changes will be lost when the Dynamo graph runs next.
  * However, if you paint sub-Groups (not geometry inside them) with FormIt materials, those materials will persist between runs. See below.

### **Working with Groups and Materials**

* When using multiple **SendToFormIt** nodes, you can organize the nodes by material, so you can paint different FormIt sub-Groups with different materials.
* In this example, an entire building is generated from simple planes in FormIt. Each building component requiring unique materials gets its own **SendToFormIt** node:

![](https://193854745-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVWdttpiARClwDWoDArlA%2Fuploads%2F4mO38PkGIfDYFezdPQzQ%2Fdynamo_sendtoformit.png?alt=media\&token=e8b90316-f68a-490a-896a-f40d3a4f7ac7)

* After applying materials to each of the sub-Groups, the materials persist between Dynamo runs:

![](https://193854745-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVWdttpiARClwDWoDArlA%2Fuploads%2FlC6QaR736IPcbDlEaEEQ%2Fdynamo_materialsgif.gif?alt=media\&token=454c95d6-ff6d-41fb-8e8c-5711fc90dfca)

### **Nesting Dynamo Groups**

* You can use the **SelectFromFormIt** node to select the sub-Group results from one Dynamo graph to drive the results of another graph.&#x20;
* Building on the example above, the glazing output of the building generator graph is used as the selection geometry for the built-in Storefront Curtainwall sample:

![](https://193854745-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVWdttpiARClwDWoDArlA%2Fuploads%2FMxcnrvy593i79uF4bHls%2Fdynamo_storefront_curtainwallgif.gif?alt=media\&token=e081940e-ffde-4be8-b651-9d0e8d4ff603)

* When the building shape changes, you can simply select the mullion system Group, and click Run in the Properties panel.
  * Although the contents of the glazing Group changed, the Group itself didn't, so there's no need to re-select the glazing when re-running the graph.
* The above model is available in FormIt 2022 and newer as the "Roof Planes Building" in the **Building Masses** subfolder of **Dynamo Samples**.
* Combined with FormI&#x74;**'**&#x73; vast capabilities, you can use Dynamo to create and flex an entirely parametric design - complete with materials and nested logic - in the rich context of a powerful conceptual modeler:

![](https://193854745-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVWdttpiARClwDWoDArlA%2Fuploads%2Fp943Y56t7Zb97ugB7W5h%2Fdynamo_parametricdesigngif.gif?alt=media\&token=17e1aebc-bfec-4436-b10d-be066b205ad4)

### **Standard FormIt Group Behavior Still Applies**

* Other than what's outlined above, Dynamo Groups in FormIt operate by the same rules as other Groups:
  * Placing a new Dynamo object from the Dynamo panel makes a Unique Group, and will not affect any instances of the same object already placed in the sketch.
  * Copying and pasting Dynamo Groups keeps them identical. Any changes made to one copy's Dynamo graph will also update the geometry in its identical instances, unless they are made Unique.
  * You can make Dynamo Groups Unique with shortcut MU or through the Context Menu:

![](https://193854745-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVWdttpiARClwDWoDArlA%2Fuploads%2FuWTgce5ZoUslBnEIbx3t%2Fdynamo_makeunique.png?alt=media\&token=4058980a-0a33-4f23-bcb2-b65e38765c63)

## Essential FormIt Nodes

The most powerful nodes to send data between FormIt and Dynamo.

### **The SendToFormIt Node**

* To generate Dynamo objects in FormIt, attach the desired geometric node outputs to the *geometry* input of at least one SendToFormIt node:

![](https://193854745-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVWdttpiARClwDWoDArlA%2Fuploads%2FEuUFOaUhbeEkYLbpdw5e%2Fdynamo_sendtoformitnode.png?alt=media\&token=d25d7eca-85ca-4881-a103-9fca2e010c19)

* FormItGroupOptions is a new (optional) port in FormIt 2022 and is detailed in the **FormItGroupOptions Nodes** section below.
* In FormIt 2021.3 and newer, you can use multiple SendToFormIt nodes to organize your Dynamo results into tidy FormIt Groups and sub-Groups.
* [See how Dynamo works with FormIt Groups](https://formit.autodesk.com/page/formit-dynamo#dynamo-groups).

![](https://193854745-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVWdttpiARClwDWoDArlA%2Fuploads%2FDQmRo9R14pr9jLBxlM0q%2Fdynamo_sendtoformitnodes.png?alt=media\&token=6fd9a4c7-8b24-4544-9661-596f49b3b239)

* The SendToFormIt node respects the Is Output flag, which is checked by default. You can right-click the node to verify:

![](https://193854745-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVWdttpiARClwDWoDArlA%2Fuploads%2FOKy0t1kpcWGTT1HkqU2I%2Fdynamo_isoutput.png?alt=media\&token=8c7e1ce4-961a-4549-b374-4902e09b2d13)

* When checked, the geometry attached to this SendToFormIt node will appear in FormIt, inside a sub-Group.
* When unchecked, no geometry will be sent to FormIt, and the corresponding sub-Group (if there is one) will be deleted.

### **The SelectFromFormIt Node**

* FormIt 2021 and newer offers the ability to select geometry from FormIt for use as inputs in Dynamo graphs:

![](https://193854745-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVWdttpiARClwDWoDArlA%2Fuploads%2FgyUiGJFvPLrGLEgFB0gl%2Fdynamo_selectfromformitnode.png?alt=media\&token=69faf809-54e8-43b1-885a-5d143c5890fd)

* The name of the SelectFromFormIt node will be used for prompts in FormIt, so you should name it in a way that describes what type of FormIt geometry should be selected:

![](https://193854745-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVWdttpiARClwDWoDArlA%2Fuploads%2FCsP8vRm3HzX93NLYTD78%2Fdynamo_selectobjectstoarraynode.png?alt=media\&token=3bfd0a71-c07a-49b6-9313-fb33ba9fe1a4)

* When the Select From FormIt button is clicked from the Dynamo graph editor or the Properties panel, FormIt will start a selection wizard mode to walk you through selecting geometry:

![](https://193854745-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVWdttpiARClwDWoDArlA%2Fuploads%2FTV6YYtFtlic9fbXeOUpv%2Fdynamo_selectobjectstoarrayUI.png?alt=media\&token=75ddcc60-566d-43e4-bd1a-2ae91220fdad)

* The SelectFromFormIt node respects the Is Input flag, which is checked by default. This needs to be checked for selection to work in FormIt. Right-click the node to verify.

![](https://193854745-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVWdttpiARClwDWoDArlA%2Fuploads%2FAOKdJQTcyuwaeSVDW9rP%2Fdynamo_isinput.png?alt=media\&token=2edef6da-9503-4153-a4f4-e7f24ad5ab67)

* When Is Input is checked:
  * The Dynamo panel thumbnail of the graph will indicate that a selection is required:

![](https://193854745-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVWdttpiARClwDWoDArlA%2Fuploads%2F6oOSbAGg6Ib8T4h7Pt77%2Fdynamo_patharray.png?alt=media\&token=65b3bfaa-5b89-49a1-aee0-995237a50a2b)

* When running the graph, the FormIt selection wizard will walk you through setting selections for each SelectFromFormIt node, starting at the top of the graph.
* After generating the first time, you'll see a button for each SelectFromFormIt node in the FormIt Properties panel.

![](https://193854745-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVWdttpiARClwDWoDArlA%2Fuploads%2FucXoIdaozZsFwmhQ6l2e%2Fdynamo_selectarraypath.png?alt=media\&token=272b22cb-30db-4d49-b1e9-93ed733fd53b)

* Clicking these will start the selection wizard, so you can change the selection used to generate the final geometry. The graph will re-run automatically after re-selecting.

### **Tips, tricks, and notes**

* Name the SelectFromFormIt node to indicate what type of geometry is expected. For example, "Select Site Boundary (Edges)"
  * You can select any type of FormIt geometry, but it's often best to contain the selection into a FormIt Group and [select that instead of the raw geometry](https://formit.autodesk.com/page/formit-dynamo#dynamo-groups).
* If you need to move the results of a selection-based Dynamo graph, it's best to move the selection geometry first, then re-run the graph, which will pick up on the updated selection geometry and reposition itself appropriately.&#x20;
  * You can also Group the Dynamo results **and** the selection, then move the containing Group.
* When FormIt geometry is sent to Dynamo, any attributes, Materials, or nested Groups will be lost when returning geometry back into FormIt.
* If you're editing a selection-based graph in Dynamo, and the selected geometry in FormIt changes, you'll need to re-select the geometry by clicking the "Select From FormIt" button on the SelectFromFormIt node.&#x20;
* When selecting in FormIt, the active [Selection Filter](https://windows.help.formit.autodesk.com/tool-library/select-edge-face-or-object#selection-filtering) is applied. For example, if you want to select FormIt vertices, you'll have to enable that in the Selection Filter.

![](https://193854745-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVWdttpiARClwDWoDArlA%2Fuploads%2FOTh2WX3TCOyGQNNZug5j%2Fdynamo_filterselection.png?alt=media\&token=05594a57-f5dc-42ee-b801-f0cd3d802428)

## Other Input Nodes

A wide array of input options for easy customization of Dynamo graphs in FormIt.

### **FormItLengthString Node**

In FormIt 2022.1.0 or newer, you can use the **FormItLengthString** node to specify dimensions in any supported FormIt unit type (feet-inch, inch, m, cm, mm) regardless of FormIt's unit setting in the active sketch.

![](https://193854745-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVWdttpiARClwDWoDArlA%2Fuploads%2FkHEDeJ3qKKNJBBsGz4wk%2Fdynamo_formitlengthstring.png?alt=media\&token=19171024-7afd-449d-956c-884a1529a06a)

As with other supported input nodes, the *FormItLengthString* will show up in the FormIt Properties palette when marked as Is Input, and when renamed, its new name will show up in FormIt:

![](https://193854745-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVWdttpiARClwDWoDArlA%2Fuploads%2FOWx25kuwuNGjB08zwtwl%2Fdynamo_propertiespalette.png?alt=media\&token=d72b6dc8-b3c7-4115-b46d-49e0f2398a09)

Each instance of the *FormItLengthString* node can be used in any unit type, so a single Dynamo graph could employ a mix of units, as shown above.

### **Switching from Raw Numbers to FormItLengthString**

In FormIt 2022.1.1 and newer, switching a graph to use FormItLengthString nodes (by placing the first one in a graph) or switching a graph to use raw numbers only (by removing the last FormItLengthString) will change certain behaviors while editing a graph in Dynamo:

* When using the [SelectFromFormIt](https://formit.autodesk.com/page/formit-dynamo#dynamo-formit-nodes) node while editing a graph, switching between raw numbers and the *FormItLengthString* node as above will require re-selecting the geometry for each *SelectFromFormItNode*, so the results continue to be scaled correctly in FormIt.
* After placing the first FormItLengthString node in a graph, all numbers in the graph intended as dimensions (including raw number inputs) will refer to meters (Dynamo's native unit under the hood).
  * The [SendToFormIt](https://formit.autodesk.com/page/formit-dynamo#dynamo-formit-nodes) node will account for the change and ensure generated geometry in FormIt remains the correct size.
  * Conversely, removing all FormItLengthString nodes from the graph will switch raw numbers to refer to whatever FormIt's unit settings are (old behavior).
* The numeric output of *FormItLengthString* nodes will also be in meters, but that won't change the size of the geometric results in FormIt:

![](https://193854745-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVWdttpiARClwDWoDArlA%2Fuploads%2FFP0ZvI6HaaDVKW6Y84Ey%2Fdynamo_outputinmeters.png?alt=media\&token=5f8f6f6a-be2f-4ff3-bcdc-958e2bd0bbb8)

### **Other Supported Input Nodes**

Standard Dynamo input nodes will display in the FormIt Properties panel when marked as "Is Input" in Dynamo:

* Number Slider
* Integer Slider
* Number
* String
* Boolean Toggle

You can rename the input nodes (recommended for clarity), and their new name will appear in FormIt:

![](https://193854745-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVWdttpiARClwDWoDArlA%2Fuploads%2FQeXNRKgwJlDUiWZqm4s6%2Fdynamo_cuboidsize.png?alt=media\&token=f342f9e6-9599-4493-9fe8-d0c01205bd87)

![](https://193854745-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVWdttpiARClwDWoDArlA%2Fuploads%2FfMYcJpHwYROczCPiv0Xc%2Fdynamo_inputs.png?alt=media\&token=c1579ae9-d410-49b1-a181-221f3a7123db)

## Other Output Nodes

Different methods to display non-geometric results from Dynamo to FormIt.

### **Watch Node**

Watch nodes marked as "Is Output" will display in the "Watch Node Outputs" section of the Properties panel in FormIt 2022 and newer:

![](https://193854745-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVWdttpiARClwDWoDArlA%2Fuploads%2FHZZHLvBMy1tCR3gUBqWY%2Fdynamo_watchnodes.png?alt=media\&token=1b223417-08ba-4b3e-bc90-01e9d70b4070)

### **Show FormIt Notifications**

In FormIt 2022.1 or newer, you can show FormIt-side notifications from a Dynamo graph using the **UI.ShowNotification** node:&#x20;

![](https://193854745-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVWdttpiARClwDWoDArlA%2Fuploads%2FrvWYn956JlY5z3JNTscz%2Fdynamo_notifications.png?alt=media\&token=ce0989ab-3e1a-43d0-aba1-c67e2385ae0e)

### **Log to the FormIt Console**

In FormIt 2022.1 or newer, you can log additional data directly to the FormIt application console (Script Output window) with the **FormIt.ConsoleLog** node:

![](https://193854745-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVWdttpiARClwDWoDArlA%2Fuploads%2F5J3Xly108aQJ0JvIDgZJ%2Fdynamo_logtoconsole.png?alt=media\&token=eb93bff1-2e73-4163-8ff6-e15eabffbdc7)

## FormIt Options Nodes

Control how data is sent to FormIt, either at the individual geometry level or at the containing Group level.

### **FormItGeometryOptions**

FormIt 2022.1 and newer offers the ability to customize how individual Dynamo geometries are sent to FormIt with **FormItGeometryOptions** nodes.

* Specify the Layer for individual geometries inside the generated Dynamo group.
* Specify a string attribute for the individual geometries inside the generated Dynamo Group.

*FormItGeometryOptions* nodes can be used upstream from the *SendToFormIt* node:

![](https://193854745-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVWdttpiARClwDWoDArlA%2Fuploads%2FB7weV4YLGw9lvIBly4r1%2Fdynamo_formitgeometryoptions.png?alt=media\&token=fd753838-b6ea-47b3-9091-d9e12bd7b994)

### **FormItGroupOptions**

FormIt 2022 and newer offers the ability to customize how the Dynamo group from the *SendToFormIt* node is generated in FormIt with **FormItGroupOptions** nodes.

* Specify whether the SendToFormIt node sends geometry to FormIt as a Mesh or an Object.
* Specify the Layer for the Group created by the SendToFormIt node.
* Specify a string attribute for the Group created by the SendToFormIt node.

You can use any combination of FormItGroupOptions nodes in any order by daisy-chaining them together:

![](https://193854745-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVWdttpiARClwDWoDArlA%2Fuploads%2FCUFb4h6N0PQ875sppRfj%2Fdynamo_daisychain.png?alt=media\&token=c16d8a66-b039-4fa4-b1fa-f81166c338ee)

## JavaScript API Nodes

FormIt 2022.1 and newer offers access to JavaScript APIs and custom functions from Dynamo via two new nodes:

### **CallJSAPI**

The **CallJSAPI** node allows you to invoke FormIt JavaScript APIs directly from Dynamo.

![](https://193854745-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVWdttpiARClwDWoDArlA%2Fuploads%2F4hNyoKJ3bSEdOWFyrC9X%2Fdynamo_calljsapi.png?alt=media\&token=eb03ffc5-cae1-4a66-9fb8-472271177c23)

For function names and parameters, take a look at our JavaScript documentation, which is divided into two parts: [FormIt API](https://formit3d.github.io/FormItExamplePlugins/docs/FormItJSAPI/group__mod__jsapi__formit.html) and [WSM API](https://formit3d.github.io/FormItExamplePlugins/docs/FormItJSAPI/group__mod__jsapi__wsm.html) (modeling kernel).

**CallPluginJS**

Conversely, the **CallPluginJS** node allows you to invoke custom functions from a loaded plugin, or a script snippet that's been executed from the Script Editor window.

![](https://193854745-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVWdttpiARClwDWoDArlA%2Fuploads%2FP1CdV3jtPkSXRHGRKUbT%2Fdynamo_callpluginjs.png?alt=media\&token=776e2a63-8480-4d57-b75a-503946504616)

## Important Notes

### **System Requirements**

* To use Dynamo in FormIt, you'll need [FormIt for Windows](https://formit.autodesk.com/page/download) v17.0 or later.
  * The FormIt + Dynamo integration receives new features and fixes regularly, so it's always best to download the latest update when available.
* You'll also need Windows 10. For technical reasons, older versions of Windows are no longer supported.

**Troubleshooting**

* If you have a system with an [NVIDIA or AMD graphics card](https://www.howtogeek.com/414201/how-to-check-what-graphics-card-gpu-is-in-your-pc/), or multiple cards, you may need to set FormIt and Dynamo to use your high-powered GPU:
  * *C:/Program Files/Autodesk/FormIt/FormIt.exe*
  * *C:/Program Files/Autodesk/FormIt/DynamoSandbox/FormItDynamoSandbox.exe*
  * If you have an NVIDIA card, [ensure you have the NVIDIA Control Panel installed](https://whatsabyte.com/blog/find-nvidia-control-panel/)
  * Use the [NVIDIA](https://nvidia.custhelp.com/app/answers/detail/a_id/2615/~/how-do-i-customize-optimus-profiles-and-settings%3F) or [AMD](https://www.amd.com/en/support/kb/faq/dh-017) control panels to set the following applications to use your discrete graphics card:
* If you're in a non-English locale, you may need to set the Windows 10 region settings to English to avoid issues with certain Dynamo nodes:
  * Search Start for "language" and choose "Language settings"
  * At the top right of the Language dialog, click "Administrative language settings"
  * Click the "Change system locale..." button
  * Choose "English (United States)"
* If you're experiencing graphs failing to generate results in FormIt when working with small geometry or numbers, try changing the Dynamo scaling setting to "Small":
  * Dynamo menu > Preferences > General > Geometry Scaling > Small

![](https://193854745-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVWdttpiARClwDWoDArlA%2Fuploads%2FjkzgzDAlbPbMihJHVeIN%2Fdynamo_geometryscaling.png?alt=media\&token=13052be8-be28-4fce-af17-a5166b76d454)

### **Get Support**

Need help with FormIt + Dynamo? [Let us know on the forums](https://forums.autodesk.com/t5/formit-forum/bd-p/142).


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://windows.help.formit.autodesk.com/formit-capabilities/formit-+-dynamo.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
