By sbarrettThis file contains a Marionette network that converts 2D polys into Massing Models. It reads the Record Format info attached to the poly and uses that information to create the Massing Model. It also transfers all attached Records to the Massing Model. This network is useful for converting shapefile data into Massing Models. To use the network, select the wrapper and make sure that all the fields in the Object Info palette correspond correctly to the objects that you want to convert. All of the info that you want to use to create the Massing Model must be in a single record, but all attached records will be transferred over by the script.
Also included in the file is a worksheet that allows you to calculate Floor Usage Data for each floor of a multistory building. If you have one type of usage on the first floor, and a different type of usage on the upper floors, you can calculate that in the worksheet. (If you have more than two types of usage, it can only calculate the first two types.) To change the usage type in the worksheet, just type the name of the usage type, like "Retail" or "Residential" into the top row of one of the Area by Usage Type Columns. The lower rows will adjust appropriately.
By DomCAbout this File
This tool is available in english ("Apartment Tag") and german ("Wohnungsstempel"). The contents are nearly the same just translated.
This Marionette Tool summarize all Space-Areas, which are part of the same Appartement Number and shows the result in a symbol based Marionette stamp. Alternatively we can pull out sum of apartment area with a worksheet. But this Marionette is also a nice method to do this.
1. The Marionette Objects access to the field "11_Room ID" of the space object. Every other field can be used if necessary by editing script.
2. With the Marionette PIOs field "ApartmentID" you can tell the stamp, which apartment should be displayed
3. With the Checkbox "Layer from Apartment Tag". You can make the Tag collecting spaces of the tag's layer. Otherwise it will collect areas from the layer of the layer popup
4. You can exclude Spaces with specified keywords. Delimiter for Keywords is "$"
Über diese Datei
Dieses Werkzeug ist auf Deutsch ("Wohnungsstempel") und auf Englisch ("Apartment Tag") verfügbar. Die Inhalte sind bis auf die übersetzten Bezeichnungen nahezu gleich.
Der Marionette Wohnungsstempel fasst Wohnungsflächen zusammen und zeigt diese in einem Symbolbasierten Marionette-Stempel an. Raumflächen können auch mittels Tabellen ausgezogen werden. Der Wohungsstempel ist eine komfortable alternative.
1. Räume welche zur gleichen Wohung gehören, werden mit dem Standardfeld "Raum ID" identifiziert. Auch andere Kriterien für die Wohungszugehörigkeit können festgelegt werden, dazu muss das Script geändert werden.
2. Im Feld "WohnungsID" wird eingestellt, welche Wohung angezeigt werden soll.
3. Mit der Checkbox "Ebene von Wohungsstempel" lassen sich explizit die Räume auf die Ebene des Wohungsstempels eingrenzen. Ist die Checkbox deaktiviert, gilt die Einstellung "Räume von Ebene:"
4. Räume mit bestimmten Namen, können hier ausgeschlossen werden. Trennung der Namen erfolgt mit "$"
By ahedleyI would like to contribute for free 12 marionette networks.
They comprise of 12 architectural arches; Semi-Circle, Segmental, Equilateral, Lancet, Drop, Tudor, Turkish, Rampant, Parabolic, Involuted, Arabic and Ogee Arches.
All the networks are parametric, customizable and can be freely modified.
Would appreciate your comments.
This tool was
commissioned by ComputerWorks GmbH
edited by: Markus Graf and Pascal Völz
supervised by: Antonio Landsberger
Compatibility: Vectorworks 2019 and higher.
Area Verification is a Marionette tool used to graphicallly and tabularly verify the surface area of spaces/rooms (circle, rectangle, poly line & polygon) in the class "Rooms". To do that the Marionette network divides the areas into calculatable subareas: circles, rectangles, triangles.
The graphical area verification using subareas is often required when applying for permits (building construction, landscaping).
For easier usage a wrapper node is provided.
How to use:
a) Place the geometries (spaces/rooms) in the class "Rooms".
b) Run the wrapper node.
c) Update table.
- update table when running script
- implement an add-on to turn spaces into polygons (soon)
By Nico_beImagine: You have just received a file containing a large number of objects that need to be transformed into symbols. This typically happens when I buy a file containing objects that are not symbols after import.
This tool transforms the objects that meet the chosen criteria into symbols in OIP and places them in a new folder whose name you specify.
In OIP Choose : The symbol préfix; the name for the symbol folder and the criteria configuration.
Automatically convert groups V2019.vwx
By DomCA nice, small Marionette for creating bar diagrams. This is much more simpler and more flexible than a spread sheet bar diagram.
2. Col Values -> mandatory
3. RefValue -> A bar with this value, has the height of the BArHeigtRefValue field
6. Invert -> A bigvalues results in small bar
There is a 2 minute movie (without audio)
By DomCDuring my last Marionette-Project, I produced some simple geometry nodes. Which maybe can be useful to can make geometrical constructions instead of mathematical (trigonometry) calculations.
"Perpendicular from Point to Line", "Parallel from Line through Point", "Circle-Circle Intersection", "Line-Circle Intersection", "Line-Line Intersection", "2 Circle Middleline" and some more.
Also the more Complicated Nodes "Circle tangent to 2 Circle", "Point or Circle tangent to 3 Circles"
By DomCThis Network ist not very flexible (world based values, just one row) but still useful.
You can insert and and ungroup for individual layout etc.
1. First delete all classes and replace to "none" or "keine"
2. copy the object on your file
3. If you do not delete classes on the original, you will paste the classes from the example in your file
By DomCIn this Example there are used some custom Nodes:
1. "GetSubstring" --> Search for a string inside another string and returns Position and count. This will be necessary to set them to a Text Style Resource.
2. "GetInsideChar" --> Returns strings which are inside specified characters (normally quote or double quote)
3. "GetSubstringExcludeQuote" --> Same as the first one, but it to not return text inside quotes
4. "GetNumberFromString" --> Search for Numbers inside a String.
5. "GetNextObj" --> Put This in a Wrapper and it will return the next object after this node. This is a great one!! Can be used also for input geometry inside a script network. Without naming or other smut.
This could be improved by further code (find standalone or text in word, find integer, find float, etc.) But It works for most cases perfectly.
By sbarrettHere is a script that converts a NURBS surface to a wall with components that can be exported to IFC. The wall is an Auto Hybrid object made up of 3D Solids that match the thicknesses and attributes of the components of a referenced wall style. CWS_1212_IFC.vwx
A couple caveats: Make sure that wall style names do not have a single or double quotation symbol in the name - it will get misinterpreted by the String Node. Also, if your base surface is an Interpolated Surface, use the tool in the 3D Power Pack - Rebuild NURBS... - to convert it to a standard NURBS surface.
By Nico_beIn French :
Parfois un plan de mesurage ne contient que les textes des niveaux sans aucun symbole ou point 3D. Il n'est donc pas possible de créer un terrain 3D.
Ce script permet de créer pour l'ensemble des points des points 3D ayant pour valeur Z le texte lui même, sur une autre couche .
In English :
Sometimes a measurement plan contains only the texts of the levels without any symbol or 3D point. It is therefore not possible to create a 3D terrain.
This script makes it possible to create 3D points for the set of points having the value Z the text itself, on another layer.
By Luis M RuizThis set of wrappers are good for creating multiple shells from a solid object.
Steps: Name you solid object > set the desire thickness > spacing > run the script.
By DomCThis example shows, how to create a record format with fields from an external csv or text-tab file with marionette.
This example maybe needs the following know how which is not automatically is handled by the script:
1. Save Text with excel, open office or any other application as separated text file or tab separated text file.
2. Setup the "import txt" node-popup with the needed text encoding. Try utf-8, Latin1, macLatin_2 or other encoding to handle umlauts or special character issues.
3. The Exmaple just checks the first line of the text-file and creates record fields from them
4. The path to the text-input in the attached example is related to the document path. Save first your Vectorworks document. Or use an absolute path input.
5. No warranty or charge for this script, play first on a new file or on the attached file.
I whish you success with it
By sbarrettThis is a Marionette network that converts a mesh to 3D locus points. This is very useful for converting meshes of terrains imported into SketchUp from Google Earth into Vectorworks Site Models. Once you have a SketchUp mesh, import it into Vectorworks and give the mesh a name. Take the wrapper in this file and place it in the same drawing. Change the name of the mesh in the OIP of the wrapper to the name you gave the SketchUp mesh. Raising the number of the grid density will make your site model more accurate, but it might take the wrapper up to a minute or two run. When you run the script, you will get a group of 3D loci. Ungroup the loci, and keeping them selected, go to AEC -> Terrain -> Create Site Model... (in the Architect Workspace). Choose your settings and click ok
By sbarrettCreating stories, levels, and layers can be a tedious process, especially for tall, multistory projects. This wrapper allows you to automate that process based on an overall building height, typical floor heights, and default levels. You can create up to 4 Layer Levels and 2 Layerless Levels. To create fewer Levels, leave any of the Layer 1, Layer 2, Layer 3, Layer 4, Layerless Level 5, and/or Layerless Level 6 fields blank.
To use this script in a new file, simply import the wrapper into the file, place it in the drawing, and run the script. The settings of the script are very similar to the levels and layers created in the Vectorworks template, but you can customize them in the OIP of the wrapper. To change the Story suffixes and Story names, double click on the wrapper and the select the Get Story Names node. There are settings that you can change in the OIP of this node as well.
NOTE: Existing stories and story-associated layers that match the names of the new stories and layers will be deleted every time you run this script. Existing stories that DO NOT match the names of the new stories will not be deleted but may interfere with the creation of new stories. It is recommended that this script is run in a file without existing stories, levels, or story-associated layers.
By DomCThis Network shows how to create fields from an existing xls or txt file.
By DomCThis Scripts help you exporting your layout structure to get an external list of your drawings if needed.
Exports Sheet Name, Title, Page Size and Page Numbers. Export Folder can be selected. FileName.txt can be set in ObjectInfo of wrapper. Grey and orange nodes (Screenshot) are custom nodes. "Manipulate File" is edited (codex utf_8) to support special characters like äöüé etc.
Note: I think Excel on Mac has issues handle the exported file's special characters (utf_8 encoding), not my fault I guess. The codex can be changed inside "Manipulate File" Node if you are not happy with the exported text encoding or find/replace on the other Software.
By AlanWHi just a file that may assist in the learning of Marionette.
I have a lot of files that i feel should be out there that may assist. Hope this is the right location to place them.
By DomCThe standard behaviour of the extrude along path tool is to center the profile on the path and after creation we are able move it. This works pretty good. If we use the extrude along path node, is is not so easy to move the profile group after creation. This example shows how to do.
1. Put a 2D locus point in your (blue) symbol as a reference point and put it in the background (cmd/ctrl + B)
2. the script will measure this point and after creation of the extrude along path it will move the profile group
- A custom node to get the profile group of the path
- A custom node to reset the extrude along path object after moving profile group
Multiple experiments of profiles created from a nurbs surface in order to create multiple rails with dozens or hundreds of nurbs profiles simultaneously. This Marionnette is based off of Freeform truss objects, so all credit goes to @Marissa Farrell. Thank you!
By DomCImagine you have client, which delivers you a room list. And a list, which objects have to be in this rooms. You can consider this lists with hundreds of rooms on your left screen and click them one by one in your rooms. You will make errors and your eyes will get squared.
Another real interesting example how you could accelerate a routine job with a marionette script.
By AlanWJust a bit of fun with one of Marissa's wonderful nodes. Just run the network.
By DomCThis example is based on a custom node. which returns a line pattern. This pattern is based on several while and random loops. I have not found a proper way to run a while loop over a marionette network so this is better to create in a custom node.
It is easier to play with the example, than explaining exactly how it works.
Have fun with it. This is my base study to find a workflow to project any pattern on a NURBS Surface which would be a real scope of usage.
Movie Link (first Part of Movie)
Growing Lines 1.0.0.mp4
By BertfThis is my first marionette and it's based on @Marissa Farrell's image processing!
It takes an image and creates a Halftone object of it with black circles:
Final objective is that I'll add cnc DXF milling information to this marionette so that it can be milled on a CNC machine.
(We've milled Halftone parts in the past using Jason Dorie's Halftone program http://jasondorie.com/page_cnc.html)
Maybe add a line milling. The image below is milled by us in the past with Jason's program.
Be able to change the dimensions of the final halftone image. Now it takes the pixel width and height of the image, but I would like this to be some adjustable parameters. Changing the height and width with Set Height and Set Width has no effect. Somebody has a suggestion on how to do this?
Now the marionette looks at the color of each pixel on a grid with step "Distance between Circle Centers". Related to that color, it creates a circle with according radius on the position of that pixel:
The problem with this method is that that single pixel on the grid has total control on the radius and the one pixel just next to the chosen one has no relevance. A better mechanisme would be that the size of the circle is related to the average color of all the pixels in the area of the square "Distance between Circle Centers"x"Distance between Circle Centers". Anyone with some advice on handeling this? I got some little progress on it:
Here we have 2 lists. One with all the pixels. X,Y coordinates of the pixel, Z is the radius of the circle according to the color. The other list has the X,Y values of the centers of where the final circles have to be placed.
Following this we need to check the distance of all the image points to the center points. If this is smaller than a condition, then that point's radius had to be taken into account for calculating the average radius of that centerpoint. Any one has a quick hint on how to create this in marionette?