Jump to content


Vectorworks, Inc Employee
  • Content Count

  • Joined

  • Last visited

Everything posted by sbarrett

  1. Hi @Martin Lerch, I tested it and it appears to work great. The issue that you will have is that any geometry created by a Marionette script will be grouped. after the script is run and you ungroup the data tags, they appear to be associated properly with the space. I would recommend having the data tag also be the output of the script, that way you can manipulate it further along in the script (after it has been associated) if you wish.
  2. Version 1.0.0


    This 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.
  3. You can do this by choosing "Select Eligible Objects Mode" in the Mode bar of the Data Tag tool. If your tag is set to read a field from the Space object, you can hover over a Space with that Data Tag style selected and all spaces will highlight red. This works with any object type that the Data Tag is looking for. I took a screenshot of it using Doors and a Door-specific tag.
  4. Hello Martin, There are no default nodes, but there are a few scripting calls that have been added to Vectorscript and Python in 2019. You can find them here. https://developer.vectorworks.net/index.php/VS:Function_Reference#Data_Tag_Interface_Library In order to place a data tag, you could use the Symbol node and then I imagine you could create a custom node that uses the first command, https://developer.vectorworks.net/index.php/VS:DT_AssociateWithObj, to associate it with a Space. I think this would work if you are placing these Data Tags in design layers, but if you are trying to place them in the Annotation Space of a viewport, I would recommend adding Data Tags manually. There is a way to tag all relevant objects at once, so I imagine a script wouldn't bring much added efficiency.
  5. Yes, there is a node called convert to Poly Group. Here is a quick example of how to use it.TextToPoly.vwx TextToPoly.vwx
  6. Hey @Todd Drucker - I am excited to see you have started with Marionette! The first thing to remember though, is although Marionette is the same type of tool as Grasshopper, it's based off of Vectorworks' functionality and just as Grasshopper is based off of Rhino's functionality. Marionette doesn't really have an equivalent to "Morph" - some people have created arrays along surfaces with it, but they usually have to do it mathematically. There is however a command in the model menu called "Create Surface Array" that pretty much does this. It take a 2D or 3D object and arrays it across a NURBS surface, So I think you might have better luck if you model the column using curves and a loft surface (you can create this with Marionette if you like or just model it manually), the modeled pattern, and then use the Surface Array command. Tip, if you convert the 3D object to a mesh, it will morph around the Surface Array.
  7. I think you could try using a Mix2 node and choose the Cross Reference mode in the Object Info palette of the node. The important thing for list handling in this instance is that there are the same number of values flowing to each input. The Mix 2 node allows you to repeat values in the way that you want. Mix2 Cross Reference Example.vwx
  8. sbarrett

    Bulkhead tool

    Actually, if you uncheck smooth corners, you don't need the Change Vertex Type node at all, so you can remove that whole section.
  9. sbarrett

    Bulkhead tool

    also, you should remove the Get 2D Vertex node and instead connect the Series node directly to the iIndex input of the Change Vertex Type node - its looking for integers, not points.
  10. I am not sure what is going wrong here based on the image. Can you send the file?
  11. When you use the "Sel=True" criteria in an Obj by Criteria node, the network will ONLY work once the network becomes a Menu Command. So when you are building that menu command, use a different criteria to test the rest of the network. When everything BUT the Obj by Criteria node is set how you want it, you change your criteria to be Sel=True, wrap it, and convert it to a menu command. As far as your wrapper in that file, I believe it is because the name of the wrapper is only a number. If I delete the name it works fine. When naming your nodes, you can use numbers but only after letters. If you use numbers at the beginning of the names of your input nodes, the numbers will disappear when the network is wrapped and instead be used to order the inputs in the OIP.
  12. Unfortunately it's not that simple. The dropdown from the Solid Boolean node can't be exposed in the OIP of a Marionette object. In order to have the functionality exposed, you have to use a Valve node and place two Solid Boolean nodes in the drawing, where the Valve node would turn on and off the two Boolean nodes, depending on the True or False value you give the Valve node. The True or False value can be made accessible in the OIP. This would give you access to two of the Boolean functions. If you want access to all three Boolean functions, that makes it even more complex - I believe you could do it with multiple Valve nodes, but I would have to test it.
  13. Version 2.0


    This is a Marionette object that creates an array of festoon strings. The Marionette object has four control points (one for each corner) that allow you to place each corner at a specific location and height. You can adjust the number of strings, the number of arcs in the strings, and the overall depth of the arc. The objects arrayed along the festoon strings are symbols so you can use the ones provided or create your own. The symbols provided have glow or light objects in them, so they can be used in renderings.
  14. This is how default list handling happens in Marionette nodes. When a node receives input lists of multiple lengths, it repeats the last value of the shorter list until it has run through all the values of the longest list. You see this in nodes that are built to "expect" lists that are the same length, such as geometry creation nodes, like the Circle or Rectangle node. There are certain nodes that have special list handling, but it is usually mentioned in the description. In this instance of using the If node with multiple list lengths, you can use a Mix2 node before the If node, and you can decide with that node how you want the lists to be handled.
  15. Hi @Nomi - The reason this is not working in your node is because vs.SetStoryElevation() takes mm as the input. You need to convert your document units to mm and then use that value as your elevation. I recently posted a network that creates a series of stories based on an overall building height. There is a Set Story Elevation node in that network that shows how to do this.
  16. I hadn't either, but this was a request from my landscape architect colleagues and they tell me that is what it's called! I think it's a great name.
  17. Version 1.0.0


    This Marionette object creates a Gravity Wall based off of a folder of symbols and a poly line. The poly line is the path of the Marionette object - to edit the poly line, right-click on the object and choose “Edit Control Geometry.” Within the Object Info palette (OIP) of the Marionette object, you can set the overall wall height, the angle at which the wall is slanted, and the pattern of the different symbols that will make up the wall. You can also offset this pattern on each row. It’s important that the only symbols in the referenced folder be ones that you wish to use as blocks in the wall, and that each block symbol should have the same Z height - if the blocks are different heights, the wall will not be able to accommodate them. In this file, there is also a network form of the script. This functions in a similar way to the Marionette object, except it creates a wall based off of a referenced poly line (a poly line that already exists in the document) instead of control geometry. To reference a poly line, give that poly a name in the Name field in the OIP and then reference that same name in the network. GravityWall.mp4
  18. Yes, unfortunately the precipitation data can be incorrect - these weather stations will often report precipitation as 0 when they should be reporting it as "missing" or "unavailable." It only seems to be true of the precipitation data. I haven't been able to figure out a solution.
  19. Yes this is correct. It depends on the network/wrapper. Whatever the criteria of the network is, that is what it will act on. Most menu commands are created to work on selected objects, which is not possible with regular networks (because the network and the network alone must be selected in order to run), but if for example your network is set to look for every rectangle and change the attributes of them, it will do that, no matter what layer each rectangle is on. I have attached an example file doing this - each rectangle is on a different layer, and no matter whether the layers are visible or not, modifiable or not, the rectangles are changed by the script. If you want to specify layers or perhaps visibility, you can do that with the criteria node. To test this out, go to the criteria node in this script and add the criteria of visibility. Marionette Criteria Test.vwx
  20. hello @line-weight - the Marionette menu commands that you create live in a file in your user library. You can see in the image that I have a single menu command: Rotate X 90. If I wish to remove that menu command, I can open that file, go to the resource manager and delete that wrapper. If I wish to edit a menu command, its a little trickier. I can open that file, place the wrapper in the drawing space, edit the wrapper then RESAVE it as a menu command. If you give it the same name as the old menu command, the new one will replace the old. If you wish to save a network to use in multiple files but NOT turn it into a menu command, you can simply wrap that network and save that wrapper as a symbol. If you have "Convert to Plug-In Object" checked when you convert it into a symbol, it will be a wrapper when you place it in a new drawing. You can transfer it to other files just like you would transfer a symbol. You can also see in the image of my Resource Manager that I have a favorite file called My Custom Nodes. That is where I keep custom Marionette nodes as well as wrappers in the form of networks that I may wish to use in multiple files. It's easy for me to import from that Favorites file into any open file. I hope that helps.
  21. I realized what was wrong. In your original script in the 2019 version, you had the prime value input into the Line node, instead of converting it to a point first. For some weird reason, this worked in 2019. I have updated the script so it works in 2019 and 2020. The other exciting thing is that in 2020 there is a big improvement in graphics performance. Swirls v2019-SB.vwx Swirls v2020-SB.vwx
  22. Also, this network is super fun to play with! Just to try it, I converted your Integer Swirl to a Marionette object with sliders and also added the ability to fill the objects with a range of colors. Swirls v2019-SB.vwx
  23. Is there a reason why you can't substitute the Count, Add List, and Int nodes for a Get List Length node because essentially isn't that what you are doing? Do values in the prime series repeat?
  24. Perhaps you could try using the group node to group all of your points before changing their layer? In general however, I would recommend simply running the network with the layer that you want the objects to end up on as the active layer. I also assume that it is the act of setting the layer that eats up the most time and not setting the class. Have you experimented with only changing the class?
  25. Hello All, Sorry I was late to respond to this, but there was a bug in the 2019 version of the node and I used a custom version of the Collate node. Besides the output not being lists of lists, the biggest difference between these two versions was that my custom node was looking for the number of items in each list while the default library node is looking for the number of lists. Here is a file with a slightly adjusted network that uses the fixed default Collate node in 2020. I exported it back to 2019 so that you can use this correct node in version 2019. Example 1 - Extruded Curves v2020.vwx Example 1 - Extruded Curves v2020 v2019.vwx


7150 Riverwood Drive, Columbia, Maryland 21046, USA   |   Contact Us:   410-290-5114


© 2018 Vectorworks, Inc. All Rights Reserved. Vectorworks, Inc. is part of the Nemetschek Group.

  • Create New...