This Examples shows, how to automatically create sheet layers and viewports from objects of the design layers. In this example, a sheet layer will be created for every exhibition place available on the design layer. It creates a 1:20 close-up from the specific exhibitor's place and an overview plan with a marker of the exhibitors place.
This Network-Template could be used whenever you want to create automatically documentations out of your drawing. As Example:
- Put a Viewport of every Space Object in your drawing on SheetLayers
- Put Viewports from Building Elements close-ups (Windows, Doors etc.) on sheet layers
Also this Network contains some very powerful custom nodes:
1. Enhances BBox, Enhanced Rectangle, PutByRefPoint those are just to save time for calculating width, length and ref point of objects
2. Function Two (like standard function node with two inputs), SetParent
(1. and 2. Already available on this forum)
5. VP Layer Visibility
6. Add VP Ann (Annotations in Viewport)
7. Nodes for getting Marionette OIP Data which is not possible with "Get Record Field"
By DomCThis Nodes breaks up and scale a 3D Solid Geometry and the result is similar like a 2D Geometry reshaped by the 2D Reshape Tool.
The Input Geometry (Geometries) have to be grouped. You can input it from symbol or control geometry.
The Node is designed with some love to detail and make the job in many situation just right. It follows some rules:
1. reference Point is left bottom back
2. Overlapping geometries over the zero point to left, back or bottom are handled symmetric. You can use locus points to direct the correct symmetry.
3. The nodes cut a geometry in 3 parts. the end parts are called "caps". The Node allows to scale the caps or the middle part (in most cases the right mode)
4. It is necessary the input geometry is a group.
5. Grouped Objects completely inside caps, will be moved as well
6. Objects between the caps, will be moved half value
This advantage of this node, is to allow an incredible fast production of a specific type of PlugIn Objects (Reshape in x, y, z direction Middle Part is scaled like Tables, Pillars, Handles etc.)
Simple Example (Pillar):
More Complex Example(Window Element):
This node returns the name of a symbol chosen via selection dialog with previews of the symbols in the current document. If a folder name is given, only its content is shown.
When dealing with a big number of different symbols with long and possibly names difficult to remember, just click the "Select Symbol ..." (OIP) and visually select the symbol within the dialog window.
Created by ComputerWorks GmbH.
Compatibility: Vectorworks 2019 and higher.
By DomChttps://youtu.be/vuCvK4OwN80 German Movie
https://youtu.be/Nm0te1zmpVY English Movie
Structure of the Input:
1. Group with Geometry group (send to back) and Reshape Zone definition (send to front). Best practice is to use a blue smbol without screen plane objects
2. Reshape Zone group has further groups. Every reshape zones (polygons) is grouped with a dimension object. The dimension is the link to the script. The parameter name is a prefix of the dimension text
3. Use one of the existing examples to understand the system
1. Supportes not 3D, Chain Dimension, path objects, rectangles. Container objects are not reshaped but moved (like the reshape tool)
2. user origin has to be set to vectorworks origin
3. not mix of screen-plane and layer plane. Use all layer-plane
Parametric Symbol v2018.vwx
By STERNontwerpNodes that make it possible to transfer data without wires
(For instance if you want to use the info that was used 100 nodes back and your wires get too long)
By DomCPutByRefPoint(great, powerful), LinearArea(good), ConvertToGroup (very specific)
This node will take an anchor object and a list of other objects to align.
The OIP has X and Y position options on how the objects should be aligned.
This node will only align objects in 2D.
By DomC"Create Symbol" creates a new symbol definition on the active document. Refresh resource manager if you create a new symbol with this node by just switch to another document and back in the resource manager.
This node does not use "List absorb" so you can just insert one object into the symbol definition. Recommended to first create an empty symbol and then use "Set Parent" to attach several objects into the symbol.
This node converts referenced symbol to group using the specified conversion options.
Don't convert subobjects Convert plug-in and symbol subobjects Convert all subobjects Group (*)
Keep group (leaves symbol contents in a group - in addition to the usual grouping by Marionette) Ungroup group (ungroups symbol content, but you get the usual grouping by Marionette)
(*) Information for Marionette aficionados:
Due to the nature of the underlying VectorScript command vs.SymbolToGroup(), simply using this.SetLinksObjects() doesn't work. In order to overwrite the network output properly, the following had to be done:
"Keep group" actually moves all group content into a new group, then deletes the old group "Ungroup group" actually recreates all group content outside the group, then deletes the old group
Created by ComputerWorks GmbH.
Compatibility: Vectorworks 2019 and higher.
By DomCImporter Nodes for the most used external python packages.
Tested with VW 2020 SP1, Mojave 10.14.6 and Windows 10
By MRothThis node is an alternative to the default Objects by Criteria-Node.
I like to use it into a menu command cause its easyer to get the selectet objects.
By DomCWith this two nodes, we are able to set or get the parameter of an Marionette PIO or wrapper.
Can be used to access the values in the OIP by script or another Marionette.
The Screenshot shows an example in which every of those pillar is an own marionette PIO (Script as symbol to instance the PIO).
It is not possible to write the parameters via Worksheet. Also it is not possible to read Marionette Object parameters directly into a worksheet. To read Marionette object parameters in a worksheet I recommend to write data into a record format and list those values in a worksheet.
This node returns the length of sublists of the input list.
As an addition to the default node "Get List Length" this new node is useful when used in networks with nested lists.
Created by ComputerWorks GmbH, based on "Get List Length".
Compatibility: Vectorworks 2019 and higher
By GregiIt got struggled by using one "tool" to subtract from more than one Objects. This Node is fixing it.
You can use Solid Boolean V3 in situations, where you want to use the same hObj2 ("tool") for more than just one boolean. It creates a copy of the Object and deletes it at the end of network ("vs.Marionette_DisposeObj()")
By sbarrettThis is a wrapper that serves a similar function to Grasshopper's Graph Mapper component. To use the wrapper, connect it to a network, give it a minimum and maximum value for its domain range, the number of values you want in your list, and use a Name node to connect a drawn NURBS curve to the hCurve input. When you reshape the curve and run the network, the output list of values will change. You can use these values to shape, scale, array, or anything else in your network. Within the Curve Map Wrapper file is an example of a railing Marionette object and in the second file there is a vase Marionette object. Both use the Curve Map wrapper. This wrapper can be used in Marionette objects or regular Marionette networks.
By DomCAttached a vwx with nodes. Some of them already shared as separate files. Also the list is not complete, not perfect and has no warranty of being up to date. Also some nodes may be outdated, obsolet or buggy.
1. I tried to track the nodes with an addition record format
2. Marionette Nodes are linked to a record format, this record format contains descreption and Other infos from to the node.
3. Also this Record contains a rating of the node (internal rating for me) like is this node hard to make, will it be useful for many users or just for one special case etc.
4. The Record can be linked manually to a node and then the node's Data can be written by a script. Ration Infos logically has to be attached manually
5. On the document is a worksheet with all nodes listed
The Info below is originally from the nodes (included original misspelling etc :-)
Symbol3D ObjOnSpace SymbolPopupSymFolder SetWallHole IsMember_already SortNestedList CreateDictsV Sort RotatePtRoundPt FibonacciSphere Wrapper C_Tangent_to_CC PtPerpendicularOnLine CircCircInters CircleLineInters LineLineIntersec Pt to Circle Center 2CircleCenterLine 2Circle_4Pts Apollonius PCC CCC v1 subPoints addPoints PtTangToCircle Wrapper Wrapper Get Z atXY Grow Radial is cw Wrapper Wrapper Wrapper 2D Pt Shaker v01 HexCircleGrid GetPtVectors GetPolar180 DialogFolder ExportPDF ImportSU function4 GetNextObject PageBased_mm VersionInfo Button MeshFromPoints collectObjectOnArea Any SetPage BBox Overlap GetString GetString GetNumber GetInsideChar Print GetMultiRecValue GetActFile GetNumDatabaseRow GetSubCell GetMultiRecField Backward DupInContainer Solid Intersect List DupOnAcLayer DupOnAcLayer ConvertToGroup Reset Obj BasicSolidReshapeScale NumToRow ObjByClassAndLayer Set Class MinItem If_ SpaceWithObj LocusMS GetPointClusters ConcaveHull Create Viewport Add VP Ann VP Layer Set Mrntt OIP Field Get Mrntt OIP Field Insert Symbol in Folder CreateLayer FilterValues PtArrayStartEnd ValuesToSaldo Vector to Angle PointRectangle Wrapper Eval Eval AttachUnit Color Custom Pulldown EnhRectangle RoundedBoard 2D_BBox_Enhanced TypeToString TypePopup TypeCounter GetRes Get Sym Name Name2Index Text in Lines TextBlockInLines SetDimTextSize SetTextSize ListToLabel TextBlockInLines RecToTable OpenDocFolder GetActFile ListDir FileInfo os_stat DateTime GetActFile DialogFolder PlayMP3 Wrapper Linear Array xyz PutByRefPt SymbolinFolder Link Text GetDictValue Repeat_List shuffle shuffle_dup_true looser itemsToList Remove Duplicate Items UnnestL GetFiles Imp ini Imp txt Solid Boolean GetRNames Concat MergeList Flatten List S LinearDimLight Change Sheet Title Get Sheet Title Get Layer Name Get SheetL Size Get Sheet Page N Manipulate File UTF Custom Pulldown
Descreption Insert a Symbol Returns a List of Objects for every Space Creates a popup of all Symbols in a Folder. You have to edit Script to change Folder Set the input Geometry as a Wall hole of an object Returns isM, if the corresponding object is already in the list Example list1 = [5,10,3,5] list2 = [a,b,c,d] notM = [a,b,c] isM = [d] Sorts the elements in a list Creates a Dictionary from an input key and a input value Sorts the elements in a list Rotate a Point around the center point This node creates points on a sphere surface Draws a parallel line through a specific point Finds the intersection of two circles returns the section point from a point perpendicular on a line Finds the intersection of two circles Finds the intersection of a circle and a Line Returns true if two infinite lines intersect, and if so, provides a point where they intersect. The intersection point can be outside of the line segments Finds the two infinite intersections of a line from center to a point Resurns the intersection of the Line trough the middle of the Circles Calculates Two Circles. The First one passes pt0 and pt1 and the pt2,pt2_alt which has the lowes distance to pt3. The second circle pass the remaining point Returns the tangential Circles which touch the 3 input circles Subtract two Points: c = a - b Add two Points: c = a - b Finds the two tangent points from a point to a circle Returns the Z elevation of a point X,Y on the specified object Grow a radius Value of input Points, till they touch others or with a min offset quecks, if point is part of a cw or ccw direction, needs minimum 3 pts
input 2D or 3D Points Deletes Randomly Values of Input List. If density is 100 nothing will be deleted A Hexagonal Circle Stacking lattice Get 2D and 3D Angles of Points related to one center point Return the angle and distance to (0,0) Open a Dialog Box to Choose a Folder Set Origin and height, width of the page File Names or Folder Names of the input Directory Enter your Formula in Input Field Put This in a Wrapper with another Object. This node Returns the next Object (Stacking Ordner) after this node A Real value defined in the OIP in document units An example of how to use the Button widget. When the button is pressed, it will run the script contained in the specified definition. Draws mesh or output polys from a regular rectangular horizontal grid of points collects objects, which middle point is on a circle, poly or recangle Create any value using the python eval function Set Origin and height, width of the page Checks on ever obj1 input, if one or more object from input obj2 overlap bounding box Returns the string between two characters Returns new, string position and length. Prints the incoming items into a text object or the python console. The option 'Run scripts in developer Mode' must be enabled in Vector Works to see the console output. Returns the Data from a Record field. If the Object input is a list values are concat. Path of the Actual Document Gets number of Databese Rows and columns in the referenced Worksheet Gets the numeric or String value of the referenced cell subrow Returns the Data from a Record field. If the Object input is a list values are concat. send to Back Duplicates Objects in a Container or active Layer This node performs a boolean operation between lists of objects. The operation will be performed for each possible combination of objects in the lists supplied. Adds an object to the current layer Adds an object to the current layer Convert Symbol or PIO to group Update the specified object using the current settings and parameter values. This node will Intersect a Solid in 3 Parts. Cap1, Cap2 and Space. Scale middle (space) or scale caps Converts as Example 1 to A and 56 to BD. Creates a Criteria by class and Layer Assigns a class to the referenced object Returns the smallest item in the list If test is true, pass the value to true output otherwise to false output Returns all Spaces which overlap or touch the bounding box of the objs input Creates a 2D or a 3D locus object Detects Clusters of Points Finds the convex hull of points Creates a Viewport Add an Annotation to the Viewport Add an Annotation to the Viewport Sets the value of a OIP Field, It uses a search and replace function for the field Name. If you have more fealds with similar names which match the search name it returns error code. Use Reset node after all changes of the PIOs Get a value from an Marionette Wrapper or PIO Move Symbol in a Symbol Folder. If no symbol name is inputted or the Symbol do not exist, this node just creates the folder Creates a Design or a Sheet Layer (OIP Pupup to change layer type) Extract Values within a specific range Creates Pt array between two points [1,2,3,4,5,6] goes to [1,3,6,10,15,21 Converts a 2D or 3D vector to an angle in degrees Output 4 corner points of a rectangle Enter your Formula in Input Field Enter your Formula in Input Field change input values to right document units gets the Fill Back color of the node and returns it A Dialog with 3 Popups Creates a rectangle with the provided specifications, supports point of reference 3D Quader mit Verrundeten Kanten oder Einfache geometrie Returns the bounding box's coordinates of the projection of an object on the screen plane "Type Counter" collects Objects from an input criteria. It count, how many objects from which type there in this criteria. List of document resources from a specific type Returns the name of the referenced Symbol. Returns "none" if the object has no name assigned. Converts as example a name from a dimension standard or a text style to an index number Creates Text Line by Line, from an Input List Creates Text Line by Line, from an Input List Sets the Text Size of a Text Obj Get Input RowNames and Lines and Attach them to the input text blocks, which have the same name like the row name. Group text objects, which are no fields Creates Text Line by Line, from an Input List Returns the value of a data record field. Open the input Folder in Finder or Windows Explorer. Combine with GetActFile Node to have parent folder of active Document Path of the Actual Document File Names or Folder Names of the input Directory Returns the Value from the Python os stat function OutputActualDateTime Path of the Actual Document Open a Dialog Box to Choose a Folder Creates a duplicate array of objects in x y or z direction Moves a Refered Point from a 2D,3D Object to a specified 3D Point
for planar obj works in 2D view Creates a List of all Symbols in a Folder Link a Text Field in a Symbol to a Record Field Returns the value of the input dict key Repeats the complete input n Times Randomize the input list Randomize the input list Deletes Randomly Values of Input List. If density is 100 nothing will be deleted Input value1,value2 ... output [value1,value2 ....] Removes the duplicate items from the input list. Separates a list into its constituent items File Names or Folder Names of the input Directory Import an ini file with sections, keys and values Import a Tab or character separated Text-File This node performs a boolean operation between lists of objects. The operation will be performed for each possible combination of objects in the lists supplied. Returns the Record Names attached to the Input Object Enter your Formula in Input Field Adds an List to the end of a list Flattens a list, or list of lists Creates a linear dimension with standard specifications Changes the Description value of a Sheet Layer Returns the name of the referenced layer Returns the name of the referenced layer Returns the width and height of the sheet layer Returns the Number of pages Open a file at the specified path A Dialog with 3 Popups
By MRothThis node converts an ncs color code to an rgb color.
The color value is only an approximation and varies from the real NCS color depending on the screen and printer.
By MRothThis node returns TRUE if at least one input is TRUE. In some cases where you have many booleans, it is easier to use this node instead of the default or-node.
By MRothUnlike the default string node, this node can also convert lists into individual strings and Python elements into strings.
By MRothThis Node sends an object to the back of the stacking order.
If several items are moved backwards, the first item in the list will appear at the top, cause the subsequent items are placed behind the first item.
By MRothThis Node sends an object to the front of the stacking order.
If several items are moved foreward, the first item in the list will appear at the bottom, cause the subsequent items are placed in front of the first item.
ODBC connection is useful for those that have an external database and want to use values from it within Vectorworks. It is also helpful going the other way, allowing users to edit their external database from within Vectorworks.
These are more advanced nodes that will require an understanding of setting up and working with external databases.
Converts a string to a "name" (object handle).
I found myself using concatenated strings to name objects (e.g. a series of squares named: sq1, sq2, sq3) after which a manual operation was performed and then another marionette network was run to pull new information from individual adjusted objects. I wanted the wrap the network and set it receive input via the string dialogue node (i.e. you click and type the name of the object you want to modify) but I needed a node to turn the strings into an "object name" and use that to get the object handle.
This node is pretty simple, but I think it's pretty useful if you are creating a two-step system with human modification in the middle and want to regain control of a bunch of objects named by concatenation.