Saturday, April 15, 2017
Introducing DynaTools Dynamo Package
DynaTools is out!
April 15, 2017
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!)
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.
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.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.
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.
Most of the nodes are based on a connection string provided by the connect nodes
Connect.Server: test a connection to a server
Connect.Database: create a connection to a database
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.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.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.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.
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
There's more information available on the BIM and Others blog.