Skip to main content

DynaTools is out!

Since long time I was thinking to create some custom node for Dynamo and now, that time, came.
Starting from very simple lines of code, to understand the structure of the ZeroTouchNode (https://github.com/DynamoDS/Dynamo/wiki/Zero-Touch-Plugin-Development), I've finally released my first packege called DynaTools. Ok, the name is not very cool but I didn't spend too much to find it. So let's start with a little explanation of each node.

First of all, the package is developed on Dynamo 1.2.1 but I'll compile soon for Dynamo1.3.0.
You need to search and download the package to be able to use it :)

Then this is a complete list of nodes included in the latest release (not that much nodes but I promise, they'll increase!)

CollectorTools

Collectors

A bounce of nodes that collect categories (mostly MEP) with useful parameters
Collectors.CableTray: collect all cable trays in the model 
Collectors.Duct: collect all ducts in the model
Collectors.Pipe: collect all pipes in the model 
Collectors.ElementByCategoryFromDocument: this node is able to collect all elements of a given category from a given document. Documents nodes can be connected to this node.

Documents

Use those nodes with the collectors from document to retrieve elements from both, the active document and linked documents
Documents.activeDocument: this node returns the active document instance
Documents.linkedDocuments: this node returns all the instances of linked documents

Elements

Elements.GetElementsParameters: this node is able to read a list of elements and collect all instance and type parameters from each element. This node should be used carefully because can collect a huge amount of information in one shot. Is test with a quite big model and two different categories at the same time with more than 85000 lines and it runs in less than one minute so, very cool! Together with an export to Excel and with SelectionTools nodes can create very fast quantification.

SelectionTools

Selections

All those nodes have a "refresh" input in order to refresh the selection in the viewport. The refresh input is a simple boolean node.
Selections.ActiveSelection: it returns the selected elements in the viewport
Selections.ActiveSelectionOfCategory: it returns the selected elements in the viewport from a given category
Selections.SelectFromViewport: this is a realtime selection of elements. You need to push the finish button in the Revit interface at the end of selection.
Selections.SelectFromViewportOfCategory: this is a realtime selection of elements of a given category. You need to push the finish button in the Revit interface at the end of selection.
Selections.SelectFromRetainOrder: this is a realtime selection of elements and the node stores the order of selection. You need to push the finish button in the Revit interface at the end of selection.
Selections.SelectFromOfCategoryRetainOrder: this is a realtime selection of elements of a given category and the node stores the order of selection. You need to push the finish button in the Revit interface at the end of selection.

SQLTools

Most of the nodes are based on a connection string provided by the connect nodes

Connect

Connect.Server: test a connection to a server
Connect.Database: create a connection to a database

Create

Create.Database: create a new database on the selected server
Create.Table: create a new table on the selected database
Create.AddColumnsToTable: add columns to a selected table in the database

Drop

Drop.Database: delete a database on the selected server
Drop.Table: delete a table on the selected database
Drop.ColumnsFromTable: delete columns from a selected table in the database

Insert

Insert.IntoTable: insert data into a selected table. Depending on the numbers of columns, this node inserts an entire row on the given table. You can also use an Excel to import data and feed the database

Select

Select.ColumnFromTableByName: select the content of a column
Select.ColumnNamesFromTable: this node returns the list of columns names. Can be used together with the previous node, changing the lacing to longest) to retrieve the content of the entire table.

Conclusion

I hope those nodes will help your day by day activities and I promise more is on the way!
See you on the next article


Comments

Post a comment

Popular posts from this blog

Dynamo, Revit, Excel, UI...what a wonderful day!

Introduction Today I'll show you two examples of how to use Dynamo to export existing Revit schedules and how to compose a custom schedule on the fly, to be exported to Excel.
Both of them with a very nice graphical user interface thanks to Data-Shapes (https://data-shapes.net/) package.
Export Schedules Let's start from the easier. The idea behind this script is to export a list of existing schedules to an Excel file, creating for each schedule a separate tab. To be able to complete this script you'll need two packages: Data-Shapes for the graphical interfacesBimorphNodes to extract schedules data The script is very easy and you have to focus only on how to create an interface Then you can use your input to feed the next nodes. Finished! So just push the run button (or use Dynamo Player is you are in Revit 2017.1 or 2017.2) and enjoy the interface.

Export parameters to Excel In the second script I'll focus on something more interesting. Many times we need to just extr…

Tunnel modeling with Dynamo

Introduction Last week I had a nice conversation with one of my Italian friends. The focus of the conversation was how to model a tunnel in Revit starting from an Excel list of points coming out from Civil 3D.
So the answer was: Dynamo of course!

First input, the section of the tunnel with his diameter; I can't share the details but lets say that we have:

Theoretical excavation profile: 200 mm Precast segment thickness: 500 mm Whit this two elements and the excel of the theoretical cent alignment, we can do everything! Revit profile family The first family we're going to create is a simple circle profile with a diameter parameter. This family will be as a mass category to be able to nest it later in an adaptive component family for the tunnel.  Just save this family...easy!
Tunnel model Now we can create a new family as generic adaptive component and load the profile just created. It's important that the family is able to host rebars for future structural modeling. Whit th…

Multi-pipe support configurator with Dynamo

As always everything is coming from my childhood…ops no, that's another story.
As always everything starts on a white recycled paper just in front of my keyboard; a simple idea becomes immediately a sketch with Revit parameters.


I tried many times different kind of plugins for automatic supports placement, but no one of these is able to create a multi-pipes supports (if I'm wrong, please let me know the name of the plugin). The idea for this script in Dynamo, is to create a support for a bounce of pipes going parallel for a while, and create a group that is possible to copy along the path. I'll not focus on the creation of the families that you need for the support but just to explain the main idea, I have 3 different pieces (steel bar, u-bolt and threaded rod) that I'll compose together to create the final support. The first challenge is to align the pipes to the same BOP (bottom of pipe) because they have to stand on the steel bar and locked with the u-bolt.  The bas…