Skip to content
Dimitar Venkov edited this page Nov 4, 2017 · 6 revisions

This page is made possible thanks to the great work of Andreas Dieckmann and the Clockwork package

The below is a snapshot from the 132.1.0 release:

File.Size
Outputs the the file size in kilobytes or megabytes. Provide a file path as a string. Set kbOnly to true for a consistent output.
Input(s): path (var[]), kbOnly (bool - false)
Output(s): size
Contains Python code!
Nested Custom Node(s): Python Script, Input, Output
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/File.Size.dyf

Filter.BySelection
Check the items that you'd like to filter in. Unchecked items will be sent to the out list. The optional names input will override the object representation.
Input(s): list, names (var[]..[] - null), customMsg (string - "Choose the objects you'd like to filter), checkAll (bool - false), reset (bool - true)
Output(s): bool
Contains Python code!
Nested Custom Node(s): Python Script, Input, Output
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/Filter.BySelection.dyf

List.DragDropReorder
Press and hold on an item to move it up or down the list. To confirm and close the window, select "Save Order". The optional names input will override the object representation.
Input(s): list, names (var[]..[] - null), customMsg (string - "Reorder the items by dragging & dropping them."), reset (bool - true)
Output(s): list
Contains Python code!
Nested Custom Node(s): Input, Output, Python Script
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/List.DragDropReorder.dyf

List.DropDown
Selects one list item by a drop-down combo box. The optional names input will override the object representation.
Input(s): list, names (var[]..[] - null), customMsg (string - "Choose an item and press Select"), reset (bool - true)
Output(s): selection
Contains Python code!
Nested Custom Node(s): Python Script, Input, Output
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/List.DropDown.dyf

List.DropFirstLast
Removes the first and last items from the list
Input(s): list (var[]..[])
Output(s): list, F&L
Nested Custom Node(s): Code Block, Input, Output
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/List.DropFirstLast.dyf

List.EveryOther
Useful for when you want to combine an item on the list with every other item on the list. For example in list {1,2,3} , "2" will be paired up only with "1" and "3" and will not be paired up with itself.
Input(s): list (var[]..[])
Output(s): lists
Nested Custom Node(s): Code Block, List.RemoveItemAtIndex, Input, Output
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/List.EveryOther.dyf

List.GetEvenOdd
Gets the even and odd indices from the list.
Input(s): list (var[]..[])
Output(s): even, odd
Nested Custom Node(s): Input, Output, Code Block
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/List.GetEvenOdd.dyf

List.MergeByBoolMask
Merge two lists by a boolean mask list. The true count in the mask should be the same as the length of the true list and vice versa for the false list.
Input(s): In (var[]..[]), Out (var[]..[]), mask (var[]..[])
Output(s): list
Contains Python code!
Nested Custom Node(s): Python Script, Output, Input
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/List.MergeByBoolMask.dyf

List.Randomise&Divide
Shiffles the input list and divides it into sub-lists based on ratios(1/4 + 1/2 + 1/4 will give you three lists split accordingly) The smalest ratio will always be 1 / the list length and the largest ratio will be 1. A seed input can shuffle the list further.
Input(s): list (var[]..[]), ratios, seed (double - 1)
Output(s): lists
Contains Python code!
Nested Custom Node(s): Input, Output, Python Script
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/List.Randomise&Divide.dyf

List.Split
Splits a list at the desired length
Input(s): list (var[]..[]), amount (int)
Output(s): list1, list2
Nested Custom Node(s): Code Block, Input, Output
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/List.Split.dyf

List.Subpairs
Pair up each list item with the next one and drop the list item.
Input(s): list (var[]..[])
Output(s): lists
Nested Custom Node(s): Code Block, Input, Output
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/List.Subpairs.dyf

NullAllIndicesOf
list all of the indices of a list that match the specified value. Capable of handling null values, part of the SmartCopyMonitor workflow.
Input(s): list (var[]), value (var)
Output(s): indices
Nested Custom Node(s): Code Block, Input, Output
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/NullAllIndicesOf.dyf

NullIndexOf
Similar to the bult-in node but provides a null value instead of -1 of failure. Part of the SmartCopyMonitor workflow.
Input(s): list (var[]), element (var)
Output(s): index
Nested Custom Node(s): Code Block, Output, Input
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/NullIndexOf.dyf

NullReorder
Simiar to the built-in function with the difference that it can handle null indices. Part of the SmartCopyMonitor workflow.
Input(s): list (var[]), indices (var[])
Output(s): list
Nested Custom Node(s): Code Block, Output, Input
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/NullReorder.dyf

NullSetDifference
Similar to the built in node, with a built-in safety for null values. Part of the SmartCopyMonitor workflow.
Input(s): list1 (var[]), list2 (var[])
Output(s): list
Nested Custom Node(s): Code Block, Output, Input
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/NullSetDifference.dyf

Dictionary.ByKeysValues
Dictionaries are an incredibly powerful tool for making associative sets between two equal length lists. The first list must be of unique strings (or numbers) and will be the key and the second list will be the matching values (it can be made up of geometry, elements, even other lists) The search keys list will provide the corresponding value to the input key.
Input(s): keys (var[]), values (var[]..[]), searchKeys (var[]), defaultValue (var[]..[] - null)
Output(s): result
Contains Python code!
Nested Custom Node(s): Python Script, Input, Output
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/Dictionary.ByKeysValues.dyf

Math.AlmostEqual
Checks if a number is almost equal to a value with a specified tollerance.
Input(s): a (var), b (var), tolerance (double - 0.0001)
Output(s): bool
Nested Custom Node(s): Input, Code Block, Output
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/Math.AlmostEqual.dyf

Filter.ByClassName
Filters a list of objects by the object's class name. Note that Dynamo elements belong to different classes than their Revit counterparts. Use the Object.Class node to check an object's class.
Input(s): object (var[]), optionalName (var[] - null), className (var[])
Output(s): bool
Contains Python code!
Nested Custom Node(s): Python Script, Input, Output
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/Filter.ByClassName.dyf

Number.ToString
Converts the input number(s) to string. You can optionally limit the number of digits.
Input(s): num (var[]), digits (int - null)
Output(s): str
Contains Python code!
Nested Custom Node(s): Python Script, Input, Output
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/Number.ToString.dyf

Feet2Fraction
Converts a decimal foot value to a fractional foot/inch string.
Input(s): number (var)
Output(s): fraction(str)
Nested Custom Node(s): Code Block, Input, Output, Number.ToString
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/Feet2Fraction.dyf

Fraction2Feet
Converts a fractioned feet /inch string value into a decimal foot value.
Input(s): fraction (var)
Output(s): number
Nested Custom Node(s): Code Block, Input, Output
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/Fraction2Feet.dyf

Watch+
This node that serializes the input information and presents it in a resizable text window.
Input(s): input, addIndexes (bool - true), reset (bool - true)
Output(s): str
Contains Python code!
Nested Custom Node(s): Python Script, Input, Output
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/Watch+.dyf

Polygon.IsRectangular
Determines if a polygon (or a polycurve) is rectangular or square. If you want to differenciate between square and rectangular polys, use the XOR output.
Input(s): poly (var[])
Output(s): isSquare, isRectangle, XOR
Contains Python code!
Nested Custom Node(s): Python Script, Input, Output, Code Block
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/Polygon.IsRectangular.dyf

BoundingBox.2dRectangle
Returns a 2d rectangle from a bounding box
Input(s): boundingBox (BoundingBox)
Output(s): rectangle
Nested Custom Node(s): Code Block, Input, Output
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/BoundingBox.2dRectangle.dyf

BoundingBox.MidPoint
Fetches the mid point of the bounding box.
Input(s): boundingBox (BoundingBox)
Output(s): point
Nested Custom Node(s): Code Block, Output, Input
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/BoundingBox.MidPoint.dyf

BoundingBox.Scale
Scales the bounding box in three dimensions according to it's center.
Input(s): boundingBox (BoundingBox), xAmmount (double - 1), yAmmount (double - 1), zAmmount (double - 1)
Output(s): boundingBox
Nested Custom Node(s): Input, Output, Code Block
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/BoundingBox.Scale.dyf

ClosedCurve.Offset+
Offsets a curve both ways and correctly differenciates the external and internal offset. If an offset goes beyond the curve's bounds, the result will fail and a null value will be appended instead. Also works for convex curves like arcs.
Input(s): curve (var), distance (double)
Output(s): internal offset, external offset
Nested Custom Node(s): Code Block, Input, Output
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/ClosedCurve.Offset+.dyf

Curve.Offset+
Offsets a curve towards the specified point
Input(s): curve (var), distance (var), point (var)
Output(s): curve
Nested Custom Node(s): Code Block, Geometry.DistanceTo, Input, Output
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/Curve.Offset+.dyf

CurveLoop.Simplify
Attempts to simplify an open or a closed curve loop by connecting straight separate line segments into a single line.
Input(s): curveLoop (var[])
Output(s): curveLoop
Nested Custom Node(s): Code Block, Input, Output
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/CurveLoop.Simplify.dyf

Delaunay2D.ByPoints
Create a delaunay triangulation of a set of planar points. You can get the result as points or as lines.
Input(s): points (var[]), asPoints (bool - false)
Output(s): pts/lines
Nested Custom Node(s): Code Block, Input, Output
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/Delaunay2D.ByPoints.dyf

Geometry.Extents
Gets the dimensions of the geometry's bounding box.
Input(s): geometry (var)
Output(s): width, length, height
Nested Custom Node(s): Code Block, Input, Output
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/Geometry.Extents.dyf

Geometry.GroupByDistance
Splits the list of geometry elements into groups if the distance between them is less than the provided margin.
Input(s): geometry (var[]), margin (double - 1)
Output(s): geometry[][]
Contains Python code!
Nested Custom Node(s): Python Script, Input, Output
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/Geometry.GroupByDistance.dyf

Geometry.IndexByDistance
Provides the index of the closest or farthest geometry. Should prove faster than getting the geometry and finding its index in two separate operations.
Input(s): geometry (var[]), other (var[]), isClosest (bool - true)
Output(s): index, distance
Contains Python code!
Nested Custom Node(s): Output, Python Script, Input, Code Block
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/Geometry.IndexByDistance.dyf

Geometry.ReadTag
Design script geometry can store a <string, object> dictionary for the duration of the active graph. If no parameter with the active name is found, a null value will be returned instead.
Input(s): geometry (Geometry), tagName (string)
Output(s): value
Contains Python code!
Nested Custom Node(s): Python Script, Input, Output
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/Geometry.ReadTag.dyf

Geometry.SplitRecursively
Splits a surface or a solid recursively, using the resulting reduced geometry for every consecutive split. Select a point or another geometry to control the direction of the split.
Input(s): geometry (var), tools (var[]), pickPoint (var)
Output(s): geometry
Nested Custom Node(s): Code Block, Input, Output
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/Geometry.SplitRecursively.dyf

Geometry.WriteTag
Design script geometry can store a <string, object> dictionary for the duration of the active graph. You can store a name/value pair and retrieve it further down the graph.
Input(s): geometry (Geometry), tagName (string), value (var), override (bool - true)
Output(s): geometry, setPreviously
Contains Python code!
Nested Custom Node(s): Python Script, Output, Input, Code Block
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/Geometry.WriteTag.dyf

Line.StraightenXY
Checks a line's end points for irregularities and corrects them if they are at or below the specified margin. The default margin is 1/5000 of the curve length, which is conservative.
Input(s): line (var), margin (double - 5000)
Output(s): line
Nested Custom Node(s): Output, Code Block, Input
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/Line.StraightenXY.dyf

Line.StraightenZ
Checks a line's end points for irregularities in the Z axis and corrects them if they are at or below the specified margin. The default margin is 1/5000 of the curve length, which is conservative.
Input(s): line (var), margin (double - 5000)
Output(s): line
Nested Custom Node(s): Code Block, Input, Output
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/Line.StraightenZ.dyf

LineLoop.Merge
Attempts to join lines into a single chain of joined curves. The node returns the new lines as a chain and with the original order. The success outputs returns the success of the execution as a true/false boolean.
Input(s): lines (var[]), margin (double - 100)
Output(s): lines, ordered, success
Contains Python code!
Nested Custom Node(s): Input, Output, Python Script, Code Block
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/LineLoop.Merge.dyf

Mesh.ToPolySurface
Converts a Dynamo mesh to a polysurface. Uses multithreading - optimized for 4 cores.
Input(s): mesh (var[])
Output(s): PolySurface
Contains Python code!
Nested Custom Node(s): Python Script, Input, Output
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/Mesh.ToPolySurface.dyf

Mesh.ToToolkitMesh
Converts a Dynamo mesh to a toolkit mesh. You obviously need to have the appropriate version of the mesh toolkit package downloaded first.
Input(s): mesh (var)
Output(s): tkMesh
Nested Custom Node(s): Code Block, Input, Output
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/Mesh.ToToolkitMesh.dyf

N-hedron.ByOriginVector
Creates a multi-sided poyhedron with defined side length and total height.
Input(s): origin (Point - Point.Origin()), axis (Vector - Vector.ZAxis()), sides (int - 3), length (double - 10), height (double - 8)
Output(s): solid
Nested Custom Node(s): Code Block, Input, Output
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/N-hedron.ByOriginVector.dyf

PlanarFace.FixDomain
Corrects the surface domain of a 3 or 4 point planar face extracted from Revit.
Input(s): surf (var)
Output(s): surface
Nested Custom Node(s): Code Block, Output, Input
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/PlanarFace.FixDomain.dyf

Point.PullOntoPlane
Pulls (projects) the point onto the input plane, following the plane normal.
Input(s): point (var), plane (var)
Output(s): point
Nested Custom Node(s): Code Block, Input, Output
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/Point.PullOntoPlane.dyf

Points.ConvexHull2D
Computes the XY convex hull of a given set of points based on the monotone chain algorithm.
Input(s): points (var[]), elevation (double - 0)
Output(s): points
Contains Python code!
Nested Custom Node(s): Python Script, Input, Output
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/Points.ConvexHull2D.dyf

Points.PruneDuplicates+
An alternative to the built in node, that performs faster at the price of loosing the order of the points. All floating point valies are rounded to the nearest 4 decimal points. You can optionally remove duplicate Z values by setting "keepDuplicateZ" to false.
Input(s): points (var[]), keepDuplicateZ (bool - true)
Output(s): points
Contains Python code!
Nested Custom Node(s): Python Script, Input, Output
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/Points.PruneDuplicates+.dyf

PolyCurve.ArcChamfer
Symmetrically chamfers the corners of the polycurve by the designated distance and close with tangent arcs.
Input(s): polycurve (var), distance (var), flip (bool - false)
Output(s): polycurve
Nested Custom Node(s): Code Block, Input, Output
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/PolyCurve.ArcChamfer.dyf

PolyCurve.Chamfer
Symmetrically chamfers the corners of the polycurve by the designated distance
Input(s): polycurve (var), distance (var)
Output(s): polycurve
Nested Custom Node(s): Input, Output, Code Block
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/PolyCurve.Chamfer.dyf

PolyCurve.Fillet+
Fillet a polycurve in its plane. Unlike the built in node, this works in both in the CW and the CCW direction.
Input(s): polycurve (var), radius (var)
Output(s): polycurve
Nested Custom Node(s): Code Block, Input, Output
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/PolyCurve.Fillet+.dyf

Polygon.2DArea
Returns the planar area of the input polygon(s). Not accurate for self-intersecting polys.
Input(s): polygon (var[])
Output(s): area
Contains Python code!
Nested Custom Node(s): Python Script, Input, Output
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/Polygon.2DArea.dyf

Polygon.3DArea
Returns the planar area of the input polygon(s) in euclidean space. Not accurate for self-intersecting polys.
Input(s): polygon (var[])
Output(s): area
Contains Python code!
Nested Custom Node(s): Python Script, Input, Output
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/Polygon.3DArea.dyf

Polygon.ContainmentTest+
A less accurate method that should perform faster than the built-in node for large data sets.
Input(s): polygon (var), points (var[])
Output(s): bool
Contains Python code!
Nested Custom Node(s): Python Script, Output, Input
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/Polygon.ContainmentTest+.dyf

Star.ByCenterRadiusRays
Fun little node to create star shapes.
Input(s): NumberOfRays (int - 7), StarOrigin (Point - Point.Origin()), StarRadius (double - 5), RayPercentage (double - 55)
Output(s): PolyCurve
Nested Custom Node(s): Input, Output, Code Block
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/Star.ByCenterRadiusRays.dyf

ToolkitMeshToMesh
Attempts to convert a toolkit mesh to a Dynamo mesh. You obviously need to have the appropriate version of the mesh toolkit package downloaded first.
Input(s): tkMesh (var)
Output(s): mesh
Nested Custom Node(s): Code Block, Input, Output
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/ToolkitMeshToMesh.dyf

Ln2Str
Serilize a line to a string. You can use a custom delimier between the coordinates and apply an optional rounding. Works great with Revit text based parameters or Excel.
Input(s): line (var[]), separator (string - ","), digits (int - null)
Output(s): string
Contains Python code!
Nested Custom Node(s): Output, Input, Python Script
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/Ln2Str.dyf

Pt2Str
Serilize a point to a string. You can use a custom delimier between the coordinates and apply an optional rounding. Works great with Revit text based parameters or Excel.
Input(s): point (var[]), separator (string - ","), digits (int - null)
Output(s): string
Contains Python code!
Nested Custom Node(s): Input, Output, Python Script
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/Pt2Str.dyf

Str2Ln
De-serilize a Revit parameter string into a geometric line.
Input(s): str (var), separator (string - ",")
Output(s): line
Nested Custom Node(s): Code Block, Input, Output
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/Str2Ln.dyf

Str2Pt
De-serilize a Revit parameter string into a geometric point.
Input(s): str (var), separator (string - ",")
Output(s): point
Nested Custom Node(s): Code Block, Output, Input
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/Str2Pt.dyf

Collector.AllElementsOf
Works with either categories or types and uses the built in collecotor functions. Can be applied as a function. No ties to the Document.Changed event.
Input(s): CategoryOrType (var), refresh (bool - true)
Output(s): elements
Nested Custom Node(s): Code Block, Input, Output
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/Collector.AllElementsOf.dyf

Collector.CurrentSelection
Gets the currently selected elements. Connect a boolean switch to refresh the selection.
Input(s): refresh (bool - true)
Output(s): element(s)
Contains Python code!
Nested Custom Node(s): Python Script, Input, Output
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/Collector.CurrentSelection.dyf

Collector.ElementSketch
Get the actual sketch lines of a sketch based element (floor, ceiling, modified wall, etc.) . You can optionally fetch the matching model curves, however this might prove comptationally heavy on larger data sets. Does not work with elements from linked files.
Input(s): element (var[]), fetchModelCurves (bool - false), refresh (bool - true)
Output(s): curves, model curves
Contains Python code!
Nested Custom Node(s): Python Script, Input, Output, Code Block
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/Collector.ElementSketch.dyf

Collector.ElementsInView
Selects all elements visible in the input view.
Input(s): view (var[]), category (var - null), refresh (bool - true)
Output(s): element(s)
Contains Python code!
Nested Custom Node(s): Python Script, Output, Input
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/Collector.ElementsInView.dyf

Collector.LinkedInstanceElements
Extract elements by category from the selected linked instances. The transform CS can be used to get the exact location of the elements in the host file. If an error occurs or the linked document is unloaded, an error will be returned in the elements output and the appropriate transform will be a null. You can use those nulls to filter out the errors.
Input(s): LinkInstance (var[]), category (Category), refresh (bool - true)
Output(s): elements, transform
Contains Python code!
Nested Custom Node(s): Python Script, Input, Output, Code Block
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/Collector.LinkedInstanceElements.dyf

Collector.Revisions
Collects all revision clouds from a specific date.
Input(s): date (string), refresh (bool - true)
Output(s): matched, all revisions
Contains Python code!
Nested Custom Node(s): Code Block
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/Collector.Revisions.dyf

Collector.Sheets
Search for sheets by either their name or their number. Use a false boolean switch to search by number.
Input(s): searchFor (var[]), NameOrNumber (bool - true), refresh (bool - true)
Output(s): exact match, partial match
Contains Python code!
Nested Custom Node(s): Code Block
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/Collector.Sheets.dyf

Collector.Views
Search for views based on naming. You can choose to either include or exclude schedules. Use the sheet collector for sheets.
Input(s): name (var[]), IncludeSchedules (bool - false), refresh (bool - true)
Output(s): exact match, partial match
Contains Python code!
Nested Custom Node(s): Code Block
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/Collector.Views.dyf

Color2Decimal
Converts a Dynamo colour its Revit equivalent decimal value.
Input(s): color (Color)
Output(s): decimal
Nested Custom Node(s): Code Block, Input, Output
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/Color2Decimal.dyf

Decimal2Color
Converts a revit colour decimal value to its Dynamo equivalent.
Input(s): decimal (var)
Output(s): color
Nested Custom Node(s): Code Block, Input, Output
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/Decimal2Color.dyf

BrepShape.ByGeometry
Convert the input geometry to DirectShape element inside the Revit document. Works only in Revit 2017 and later. Usies the more advanced BrepBuilder. It supports solids or surfaces, however periodic faces like spheres, cylinders and cones are not supported. Each created DS will have a unique type. Make sure that each input geometry has a unique name. You can either feed a single category and material for all geometries or a unique one for each geometry - the node's lacing is set to longest by default. The default category is Generic Model.
Input(s): geometry (var[]), category (var[] - null), name (var[]), material (var[] - null)
Output(s): DirectShape
Contains Python code!
Nested Custom Node(s): Python Script, Input, Output
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/BrepShape.ByGeometry.dyf

DirectShape.ByGeometry
Convert the input geometry to DirectShape element inside the Revit document. It supports solids or surfaces. It is based on an alternative process that uses a SAT import and can produce smooth surfaces. Each created DS will have a unique type. Make sure that each input geometry has a unique name. You can either feed a single category for all geometries or a unique category for each geometry - the node's lacing is set to longest by default. The default category is Generic Models.
Input(s): geometry (var[]), category (var[] - null), name (var[])
Output(s): DirectShape
Contains Python code!
Nested Custom Node(s): Output, Input, Python Script
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/DirectShape.ByGeometry.dyf

DirectShape.Transform
Transforms the typed DirectShape element from the identity coordinate system to the input coordinate system(s), in a manner similar to Dynamo's Geometry.Transform node.
Input(s): directShape (var), coordSystem (var[])
Output(s): directShape
Contains Python code!
Nested Custom Node(s): Python Script, Input, Output
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/DirectShape.Transform.dyf

DirectShape.Translate
Copy the input DirectShape element with the help of a translation vector, similarly to the Geometry.Translate node. This method should prove more efficient than Element.Copy
Input(s): directShape (var), vector (var[])
Output(s): directShape
Contains Python code!
Nested Custom Node(s): Python Script, Input, Output
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/DirectShape.Translate.dyf

Doc.CentralPath
If the document is workshared, the node returns the path to the central document as a string. Otherwise a null value will be returned.
Input(s): refresh (bool - true)
Output(s): path
Contains Python code!
Nested Custom Node(s): Doc.CentralPath, Output, Input
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/Doc.CentralPath.dyf

Doc.CopyFromLinkInstance
The node will use the total transformation of the link instance to copy the input elements into the local document.
Input(s): LinkInstance (var), element (var[])
Output(s): local element
Contains Python code!
Nested Custom Node(s): Python Scrpit, Input, Output
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/Doc.CopyFromLinkInstance.dyf

Doc.DeleteElements
Attempts to delete the input list of elements from the active Revit document.The node returns the number of successfully deleted elements and their Ids as a string. Carefully observe the deleted elements count. It may be greater than the input list because hosted elements or tags will be deleted as well. If an element in the list can not be deleted (for example last revision or last view), the whole list will fail to be deleted.
Input(s): element (var[]), confirm (bool)
Output(s): count, deletedIds(str), failedIds(str)
Contains Python code!
Nested Custom Node(s): Python Script, Input, Output, Code Block
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/Doc.DeleteElements.dyf

Element.IsCut
Tests if the element is being cut by any void instances. If any cuts exist all cutting elements will be provided.
Input(s): element (var[])
Output(s): bool, cutter
Contains Python code!
Nested Custom Node(s): Python Script, Input, Output, Code Block
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/Element.IsCut.dyf

Element.IsCutting
Tests if the input element (or elements) is a void cut and if it is cutting any elements. In such cases, the cut elements will be provided.
Input(s): element (var[])
Output(s): bool, cutElements
Contains Python code!
Nested Custom Node(s): Python Script, Input, Output, Code Block
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/Element.IsCutting.dyf

Element.RemoveVoidCut
Removes the void cut between the input elements, if such exists.
Input(s): elementBeingCut (var), cuttingElement (var[])
Output(s): uncutCount
Contains Python code!
Nested Custom Node(s): Python Script, Input, Output
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/Element.RemoveVoidCut.dyf

Element.SetLocation
Attempts to modify the location of the input element. This can effectively add as a move comand in Revit. Works for both line based and point based elements.
Input(s): element (var[]), location (var[])
Output(s): element
Contains Python code!
Nested Custom Node(s): Input, Output, Python Script
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/Element.SetLocation.dyf

Element.Unjoin
Unjoins the element(s) in the second list from the primary input element.
Input(s): firstElement (var), secondElement (var[])
Output(s): unjoinCount
Contains Python code!
Nested Custom Node(s): Python Script, Input, Output
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/Element.Unjoin.dyf

NullGetParameter
Similar to the built in node.Capable of handling null values, part of the SmartCopyMonitor workflow.
Input(s): element (var), parameter (var)
Output(s): value
Nested Custom Node(s): Code Block, Input, Output
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/NullGetParameter.dyf

NullSetParameter
Similar to the built-in function but with the ability to handle null values. Part of the SmartCopyMon workflow.
Input(s): element (var), parameter (var), value (var)
Output(s): element
Nested Custom Node(s): Code Block, Output, Input
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/NullSetParameter.dyf

AdaptiveFamily.ByFacetedGeometry
Genearate a new eight point adaptive component family type from any solid or polysurface consisting of planar faces. Faces with openigs are not supported.
Input(s): geometry (var[]), familyTemplatePath (var), familyName (var[]), category (var[] - Category.ByName("OST_GenericModel")), materialName (var[] - null), subcategoryName (var[] - null)
Output(s): type, family
Contains Python code!
Nested Custom Node(s): Python Script, Input, Output, Code Block
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/AdaptiveFamily.ByFacetedGeometry.dyf

ElementType.Duplicate
Create duplicate element types. If the type exists, it will be appended instead.
Input(s): elementType (var[]), newName (var[])
Output(s): ElementType
Contains Python code!
Nested Custom Node(s): Python Script, Input, Output
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/ElementType.Duplicate.dyf

ElementType.Instances
Fetches all instances of the input element type
Input(s): type
Output(s): instances
Contains Python code!
Nested Custom Node(s): Python Script, Input, Output
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/ElementType.Instances.dyf

FamilyInstance.ByFacePoints
Places instances on the input face oriented to the face's U tangent and the global Z axis.
Input(s): face (var), type (var), point (var[])
Output(s): familyInstance
Contains Python code!
Nested Custom Node(s): Python Script, Input, Output
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/FamilyInstance.ByFacePoints.dyf

FamilyInstance.ByGeometry
You must provide a valid family template path that will be used for all input geometry objects. The project units(and not the templates) will be used to determine the size of the output geometry. The provided category will be used only if the family template supports it. If not, the default template category will be used instead. Likewise, the family material(provided as a string) will be set only if a material with that name exists in the template. If not, the default material will be used instead ("By Category"). For void cuts, the material settings will be ignored. The Subcategory name is an optional input. If you'd like to skip assigning a Subcategory to any new instance, simply use null. The node expects a unique family name for each geometry object. The rest of the input lists will be processed as if the node lacing is set to longest.
Input(s): geometry (var[]), familyTemplatePath (var), familyName (var[]), category (var[] - Category.ByName("OST_GenericModel")), materialName (var[] - null), isVoid (var[] - false), subcategoryName (var[] - null)
Output(s): instance, family
Contains Python code!
Nested Custom Node(s): Python Script, Input, Output, Code Block
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/FamilyInstance.ByGeometry.dyf

HostedInstance.ByPoints
Creates hosted family instances(doors/windows) at the specified points. You can feed either a single family type or a unique type for each instance.
Input(s): host (var[]), type (var[]), point (var[])
Output(s): FamilyInstance
Contains Python code!
Nested Custom Node(s): Input, Output, Python Script
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/HostedInstance.ByPoints.dyf

ViewInstance.ByPoint
Places a view hosted family instance at a given point in the view (e.g. a detail component, 2d annotation).
Input(s): view (var[]), type (var[]), point (var[])
Output(s): FamilyInstance
Contains Python code!
Nested Custom Node(s): Python Script, Output, Input
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/ViewInstance.ByPoint.dyf

Form.ByGeometry
Convert the input geometry to a Revit Form object. Forms can exist only in the family environment. You can convert complicated solids or surfaces directly into forms. A form can act as a void. Provide either one true boolean value to convert a form into a void. The node's lacing is set to longest by default.
Input(s): geometry (var[]), isVoid (var[] - false)
Output(s): Form
Contains Python code!
Nested Custom Node(s): Python Script, Input, Output
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/Form.ByGeometry.dyf

FloorOpening.ByCurves
Create hosted floor opeinngs through the input floors. The second input is a list of sub-lists of the boundary curves.
Input(s): host (var[]), curves (var[][])
Output(s): opening
Contains Python code!
Nested Custom Node(s): Python Script, Input, Output
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/FloorOpening.ByCurves.dyf

Shaft.ByCurves
Creates a shaft opening. The top level MUST be higher than the base level for a successful execution. You can either provide one base and top level for all shafts or have unique levels for each shaft instance.
Input(s): curves (var[][]), baseLevel (var[]), topLevel (var[])
Output(s): Opening
Contains Python code!
Nested Custom Node(s): Python Script, Input, Output
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/Shaft.ByCurves.dyf

SelectEdges
Select multiple edges from inside the Revit UI. Be sure to press "Finish" once done. You can use a Boolean toggle to refresh your selection.
Input(s): refresh (bool - true)
Output(s): edges
Contains Python code!
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/SelectEdges.dyf

SelectElements(ordered)
Select multiple elements from the Revit document in the desired order. Hit ESC to stop picking. To refresh the node, connect a boolean switch node.
Input(s): refresh (bool - true)
Output(s): elements
Contains Python code!
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/SelectElements(ordered).dyf

SelectFaces+
Select multiple faces from inside the Revit UI. Be sure to press "Finish" once done. Unlike the built-in node, face references of instances will be added sucessfully and you'l get the pick points. You can use a Boolean toggle to refresh your selection.
Input(s): refresh (bool - true)
Output(s): faces, pickPoints
Contains Python code!
Nested Custom Node(s): Code Block, Python Script, Input, Output
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/SelectFaces+.dyf

SelectInRevit
Selects the input elements inside the Revit UI.
Input(s): element (var[]), reset (bool - true;)
Output(s): success?
Contains Python code!
Nested Custom Node(s): Python Script, Input, Output
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/SelectInRevit.dyf

SelectLinkedElement
Select the linked instance first, followed by the element. If your selection fails, just press escape. To refresh the node, connect a boolean switch node.
Input(s): refresh (bool - true)
Output(s): element
Contains Python code!
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/SelectLinkedElement.dyf

SelectLinkedElements
Select the linked instance first, followed by the elements. To finish the selection, press Finish. If your selection fails, just press escape or Cancel. To refresh the node, connect a boolean switch node.
Input(s): refresh (bool - true)
Output(s): element(s)
Contains Python code!
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/SelectLinkedElements.dyf

SelectLinkedElements(ordered)
Select the linked instance first. Then select multiple elements from the Revit document in the desired order. Hit ESC to stop picking. To refresh the node, connect a boolean switch node.
Input(s): refresh (bool - true)
Output(s): elements
Contains Python code!
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/SelectLinkedElements(ordered).dyf

SelectLinkedFace
Select the linked instance first, followed by the face. If your selection fails, just press escape. To refresh the node, connect a boolean switch node.
Input(s): refresh (bool - true)
Output(s): surface
Contains Python code!
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/SelectLinkedFace.dyf

Beams.FixExtents
Detects all beams from the input list with broken extents(actual length - cut length < margin) and attemts to correct them.
Input(s): beams (var[]), margin (double - 300)
Output(s): result
Contains Python code!
Nested Custom Node(s): Code Block, Python Script, Input, Output, Filter.ByClassName
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/Beams.FixExtents.dyf

Elements.GroupByDistance
You'll need two equal length lists of geometry objects and elements. Splits the list of elements into groups if the distance between the coresponding geometry is less than the provided margin.
Input(s): elements (var[]), geometry (var[]), margin (double - 10)
Output(s): elements, points
Contains Python code!
Nested Custom Node(s): Python Script, Input, Output, Code Block
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/Elements.GroupByDistance.dyf

ErrorReport.Parse
Process a Revit error report (HTML file) and extract the error types, all affected elements and the total number of errors. If you are executing from a document different than the one the error report belongs to, be sure to set "fetch_elements" to false.
Input(s): report (var), fetch_elements (bool - true)
Output(s): error messages, affected elements, unique errors, number of errors
Contains Python code!
Nested Custom Node(s): Code Block, Python Script, Input, Output
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/ErrorReport.Parse.dyf

FamilyTemplatePaths
Fetches the default family template paths
Output(s): FamilyTemplateFolder, GenericModelTemplate, MassFamilyTemplate
Contains Python code!
Nested Custom Node(s): List.FirstItem, List.FilterByBoolMask, Directory.Contents, Directory.FromPath, String.Contains, String, FilePath.FileName, FamilyTemplatePath, Output
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/FamilyTemplatePaths.dyf

Filter.ByCategoryName
Filters the input elements by their category name. You can input multiple category names.
Input(s): element (var[]), categoryName (var[])
Output(s): in, out, nulls
Contains Python code!
Nested Custom Node(s): Python Script, Input, Output, Code Block
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/Filter.ByCategoryName.dyf

GetRelativeLevel
Select the level closest to the input height from the list of input levels
Input(s): zHeight (var[]), elevations (var[]), levels (var[]), belowOnly (bool - false)
Output(s): level
Contains Python code!
Nested Custom Node(s): Python Script, Input, Output
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/GetRelativeLevel.dyf

InterferenceCheck.Parse
Process a Revit interference check (HTML file) and extract the interference categories, all affected elements and the total number of clashes. If you are executing from a document different than the one the error report belongs to, be sure to set "fetch_elements" to false.
Input(s): report (var), fetch_elements (bool - true)
Output(s): clash categories, affected elements, unique cases, number of clashes
Contains Python code!
Nested Custom Node(s): Python Script, Output, Code Block, Input
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/InterferenceCheck.Parse.dyf

RevitProcess.EmptyWorkingSet
Use at your own risk! Removes as many pages as possible from the working set of the active Revit session.
Input(s): object
Output(s): success
Contains Python code!
Nested Custom Node(s): Python Script, Output, Input
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/RevitProcess.EmptyWorkingSet.dyf

ScopeBox.Geometry
Fetches the base curve and solid representation of a scope box element.
Input(s): scopeBox (var)
Output(s): polyCurve, solid
Nested Custom Node(s): Code Block, Input, Output
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/ScopeBox.Geometry.dyf

AreaPlan.ByLevelName
Creates an area plan at the designated levels. Each new view needs a name. An area scheme must first be activated before it can be used. To activate a scheme, place one view of that type in the project(you can then delete it). If a view with the same scheme and name exists, you'll get a null instead.
Input(s): level (var[]), name (var[]), schemeName (var)
Output(s): AreaPlan
Contains Python code!
Nested Custom Node(s): Python Script, Input, Output
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/AreaPlan.ByLevelName.dyf

Doc.ActiveView
Selects the current document's active view. Supports more view types than the built-in option. Will be depreciated once the bult in node works with all plan types.
Input(s): refresh (bool - true)
Output(s): view
Contains Python code!
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/Doc.ActiveView.dyf

Sheet.Views+
Extracts all views and schedules (minus the revision schedule) placed on the input sheet (or sheets). Will be depreciated once the bult in node works with all plan types.
Input(s): sheet (var[])
Output(s): view(s), schedule(s)
Contains Python code!
Nested Custom Node(s): Python Script, Input, Output, Code Block
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/Sheet.Views+.dyf

ViewSet.ByViewsName
Creates a set of views(or sheets) for printing. If the set exists, set Overwrite to true to replace it.
Input(s): views (var[]), setName (var), Overwrite (bool - false)
Output(s): result
Contains Python code!
Nested Custom Node(s): Python Script, Input, Output
Link to file: https://github.com/dimven/SpringNodes/tree/master/Nodes/ViewSet.ByViewsName.dyf