Jump to content


Vectorworks, Inc Employee
  • Content Count

  • Joined

  • Last visited

Everything posted by sbarrett

  1. sbarrett

    "If" node question

    Here is another way of making the If node work in the way you want it to without making any alterations to the code. It involves a few extra steps but it only draws the shape you choose and it gives you the output of the single drawn shape. I love using the data nodes - there is so much you can do if you use them together. There is also a definition that draws both object when true and one when false - if you run it as true it gives an error, but only because nothing is going to the delete node.
  2. sbarrett

    Marionette Introductory Tutorials

    Hi Alan,The person who created the original definition in this tutorial was a champion scripter before Marionette, so some of the nodes he simply wrote on the fly instead of looking for them in the library. Poly SetClosed is an example of that. I would continue to use the ones that are actually in the library. Sorry for the confusion. It is also not possible to debug a definition INSIDE a wrapper so yes you do have to unwrap the definition before debugging it. I will check with the engineers as to why this is necessary because I would like to debug a definition inside a wrapper as well. Hope that helps!
  3. sbarrett

    Marionette Introductory Tutorials

    Thanks for the feedback Neil - I agree that we should look more closely at data flow nodes because they are the category that is most fundamental to visual scripting and probably the most obscure category for non-scripters.
  4. I am not sure why the boolean node is keeping the rectangles when it is in the wrapper, but I added a few nodes to isolate and delete them within the wrapper.
  5. Hello - I checked this file out and the issue seems to come from the offset poly. you have two different operations performed on this single object - planar boolean and extrude. Because of this the definition will react differently within a wrapper. A wrapper changes the hierarchy of operations within a definition - it can't hold off performing operations til the end of a definition. For example, using the delete node within a wrapper can cause a problem - its best to create an output for the object to be deleted and attach the delete node outside of the wrapper. For this definition, if you make a copy of the offset poly and use one for the boolean and one for the extrude you should be fine. Let me know if that works! -Sarah
  6. sbarrett

    Set Fill node

    As Jim said you can use the attributes node - that is the simplest way to do it - but if you want to use the Set Fill node, the input for the back color must be three values [r, g, b]. The easiest way to do this is to use a Point3D node from the points section and give the x- y- and z-coordinate a value between 0 and 65535. This node is a little tricky and should have a better description.
  7. sbarrett

    how to set plane?

    Hello - You can use the "linear extrude" node in the solid section to extrude a 2D object in any direction you want - it does not matter whether it is in layer plane or screen plane
  8. sbarrett

    "If" node question

    The If node is a little tricky in this way - it does not negate the true or false input, it only filters the information. For this: "I have a test if A>=B then true, Draw circle, else (False) draw square." For it to work, it would have to draw the square or circle AFTER the if node. If you send a circle into the false input and a square into the true input, it still draws them because they are part of the definition prior to the If node. The way you could do this is if you connected the delete node to the output of the if, that way it would delete whichever object you choose. The best way to use the If node is if you have two values that you want to choose from, not two objects. that was you could send one of two radii to a circle depending on the test - the other value still exists in the definition, but it is just not used to create anything. I hope that explains it!
  9. sbarrett

    Marionette Introductory Tutorials

    We don't have a dropdown menu for classes yet, but we do for layers. There is a set class node in the attributes category (instead of the classes category) - I think this location is debatable. If you combine it with a class list node and an integer node, you can input the index of the class. Its not ideal but it is a stop gap.
  10. sbarrett

    Marionette Introductory Tutorials

    Hello all - if there are specific nodes that people are having trouble using or certain types of definitions people are looking to make, we could use suggestions for the next tutorial. Topics could be, for example: 3D/Solid geometry, referencing and searching documents, an in-depth look at the Data Flow nodes, etc. Feel free to let us know what you want more of!
  11. sbarrett


    Alan, some nodes end up in Layer plane and some end up in Screen plane. If you are trying to create 2D objects I would suggest either the Set PrefID to Ground node that Jim mentioned, or just run your definitions in Top/Plan view. If you want to still see you definition in 3D I would also recommend selecting all the nodes in the definition and making sure they are all in the same Plane Mode.
  12. sbarrett

    Marionette House

    The string nodes are where you input the different layer names you want to use. If you look at the OIP for the Layer List wrapper, you can see where to change the layer names. The series node creates a list of numbers based on the number of layer names you input. If you want 4 layer names, the series node will create a list of the first 4 index numbers that will call the first for layer names from your list: 0,1,2,3. If you wanted to pull specific names instead, you would skip the series node and just input the index numbers you wanted to call.
  13. sbarrett

    Marionette House

    Hi Mark - Here is a network for adding multiple layers - to take specific items from a list, use the Get Item node from the Data Flow category.
  14. sbarrett

    Platonic Solids

    Here is an update to this file - the output of the nodes was not correct.
  15. sbarrett

    Controlled Drop Down Menu

    Hi Altivec, right now we don't have the capability to create a dropdown menu from input ports in Marionette (if we do it would take a much better coder than me), but I have attached a node that I think might work. It is based on the node "Choice Item" in the "Records and IFC" category. you have to change the actual strings within the node to change the dropdown. However, if you are looking instead for an either/or option, where there is a test within you definition that decides which value, I would use the If node. just make sure that whatever node or definition you use for the "test" input ends with a boolean value. Examples of such nodes are those whose names have the words "Is" or "Equal." Hope that helps!
  16. sbarrett

    My journey thru Marionette

    Hey Luis - These look great! I am so glad that you enjoy Marionette as much as I do. Here is a suggestion for using lists to streamline your definitions...
  17. sbarrett

    Useful Geometry

    Tim - I would start with one of the aspect of the wall - a definition can get complex and overwhelming very quickly - but if you break down the problem into smaller projects you can combine them later. With the wall for example, don't try to build a parametric brick wall, try creating a series of locus points in 3D. Then try distributing rectangles along a line, etc. If you think of a project in much smaller, simpler steps it will be easier to build in Marionette. Also, those individual parts can be used over again in different definitions.
  18. sbarrett

    Useful Geometry

    Yes I definitely think it would be possible, although you would go about it differently in Marionette than you would in Grasshopper. In Marionette, I would suggest you create the bricks first and distribute them (Move) to points along a sine wave line at each brick z level. You might need to do a little clever maneuvering to get the tangent vectors for each point (because there isn't a tangent node that I am aware of), but once you do, all you need is to translate those vectors into a rotation and use the rotation node along with the move node. There are several nodes that work similarly to Grasshopper's Dispatch component, and they are in the Data Flow menu. For example, Filter, If, and Unzip are all nodes that parse lists. I hope that helps - If you get stuck, I will be happy to offer suggestions!
  19. sbarrett

    control marionette via external object

    Control geometry is definitely great when creating marionette objects, but if your goal is not necessarily to create an object but a system, the name node works well too. Named geometry can also be tucked away within a wrapper. All you need to do is give the Name Node a name and wrap it. Then double click to edit the script and paste the named geometry inside. That way your geometry isn't visible but still always available. You can edit the geometry any way you like from inside the Name wrapper. To name an object, go to the data tab in the OIP and type in the name at the top.
  20. sbarrett

    duplicate along path

    Here is the node with the proper output - it gives the memory location of the object instead of the handle type, but it works properly if you try to parse it or manipulate it later. The vs.Marionette_DisposeObj() is code I snagged from another node - this entire node is a Frankenstein of other node parts - it is one of the earlier ones I made. It may not be pretty, but it works!
  21. sbarrett

    duplicate along path

    Hi Kevin - my node was missing one line of code. Here is an updated version. Now it should create the right amount of objects.
  22. sbarrett

    duplicate along path

    Hi guys, we are happy to take suggestions on new nodes. We definitely have more in the pipeline. When I started using Marionette I was very well versed in Grasshopper but not necessarily in coding. I have really liked being able to access the code behind the node and I have been experimenting with some of my own nodes. I have attached a file with some of the nodes I have created so far. Granted I am still an amateur at coding but this file does include some array nodes. If you have any suggestions on how to improve these nodes it would be greatly appreciated!
  23. sbarrett

    How to rotate an object

    Mark I am also getting a crash with this file - however if I convert the marionette object to a wrapper, it works without crashing.
  24. sbarrett

    Add / Subtract Solids?

    Hello Kevin and Michael, the best way to move an object is to use the Move Node in the Operations category. for the offset input, you can use a "point2" node, "point3" node, "vector2" node or "vector3" node. all of these are in the Input category. You can also use "Point3D" or "Point2D" from the Points category. For each of these nodes, you can set the x- y- and z- values the DISTANCE you want to move the object in each of the three directions. It works just like the move command in VW. The Rotate node works in a similar way. You can use any of the 3D point or vector nodes as your input, and if you want to rotate an object within the xy plane (as you would a 2D object in plan view) you make the z value of your 3D point node the angle that you want to rotate the object by. Each x- y- and z-value represents the axis around which you will rotate the object. I hope that answers your questions! Sarah


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.