Jump to content


Vectorworks, Inc Employee
  • Content Count

  • Joined

  • Last visited

Everything posted by sbarrett

  1. 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.
  2. 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.
  3. 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.
  4. 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
  5. 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.
  6. 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
  7. 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.
  8. 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
  9. 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
  10. 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?
  11. 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?
  12. 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
  13. I am not sure what that error means, but I added the 2019 version to the post itself - maybe you will be able to download it from there.
  14. Version 1.0.0


    Creating 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.
  15. No this is not possible with Marionette as it is not possible to attach/associate the parametric record of a Vectorworks Door to an object that is not a door. However, in Vectorworks 2020, we have added a Barn Door configuration to the Door tool so in Vectorworks 2020 this Marionette object is no longer necessary.
  16. You are on the right track and very close. If you want the output value to be a symbol name, it needs to be a string. In order to create a string in your script, you must use quotation marks. Assuming that HR4 is the symbol name, you simply have to put quotation marks around it to make it a string. if input == 0: self.Params.output.value = 'HR4' if input == 1: self.Params.output.value = 'HR5' if input == 2: self.Params.output.value = 'K4' if input == 3: self.Params.output.value = 'K5'
  17. Unfortunately, the Get Z at XY probably won't work because a NURBS curve likely doesn't have an actual thickness. I created a work around that might work - I created a loft based on the curve, used the Get Z at XY node and then deleted the loft. Battle dots marionette create loft.vwx
  18. sbarrett

    Lists in lists

    If your NURBS surfaces always follow the same curvature and change only in the length that they lay on the floor, you can create a bunch of surfaces that are the same size, then use the Extend NURBS node to extend each in a random manner. The Extend NURBS node only takes a single length value as the extension, so inputting a random list of lengths to extend a list of surfaces should work.
  19. Version 1.0.0


    In Vectorworks, there is a command that allows the user to build a surface array, i.e. to array a symbol across a NURBS surface. This is a powerful tool, but creating patterns with multiple symbols is currently missing as an option in the software. With this in mind, these two Marionette scripts are meant to help create panel patterns on a wall with existing 3D symbols: · The wrapper “Panelization with Rotation” arrays a single symbol across a surface, but can apply a rotation to that symbol in either a user-defined pattern or randomly. · The wrapper “Panelization with Multiple Panels” arrays multiple symbols across a surface in either a user-defined pattern or randomly. For both scripts, the horizontal and vertical reveals between panels can be set separately, allowing for quick visualization of multiple paneling design options. These scripts only work when the NURBS surface is flat and the face is rectangular — the symbols will not follow a curved surface. This is meant to be used for panelized walls, which are much more likely to be flat. (The surface however does not have to be vertical; it can be slanted or horizontal.) The panels are distributed from left to right, top to bottom across the surface — if the pattern does not fit exactly across the surface, there will be extra room left at the right and/or bottom edge of the surface. When paneling a wall, it is more likely that the full surface or the reveals will be resized to fit the appropriate number of panels versus trimming the panels along one side.
  20. Here is an option for the issue of the bounding box. I found points along the edges of the surface and created a 2D poly from those points. gridshell test_SBarrett.vwx
  21. This should work anywhere in the world. To look up a location outside the US, you can write "[City], [Country]" or even a more specific address in the Location field in the OIP. What that field does is it takes a location and converts it to latitude and longitude. It then searches the Iowa State University's database of weather stations (https://mesonet.agron.iastate.edu/request/download.phtml?network=AWOS) and downloads data from the three closest stations to that latitude and longitude. You can change the number of weather stations that it queries if you want. The most accurate data is usually found at airport weather stations, so if you want to type in the location of the nearest airport, change the Num of Stns to 1 and you will get only that weather data.
  22. I updated the geopy library download link - perhaps this new version will work for you.
  23. @Ash I have updated the Temperature Chart and it is located here: The other charts I haven't updated yet.
  24. @jeff prince are you using the latest wind rose file posted here? Also, are you using the latest build of 2019? There were problems with geopy not being installed in 2018 I believe, but it should work in the current version of the software.
  25. @jeff prince I periodically update these graphs and post them in the Marionette objects section of the Marionette forum. You can check there to see if there are newer versions than the ones you have. I updated the Wind Rose pretty recently.


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...