Jump to content

SBarrettWalker

Vectorworks, Inc Employee
  • Posts

    335
  • Joined

  • Last visited

Posts posted by SBarrettWalker

  1. I wonder if figuring out whether the church is visible would work better if you project from the other direction - from the church. If you have existing buildings and trees in your model, I imagine that you could create a projection from the church to the location of the building - all the building would need to be is a flat surface - and where the projection of the church hits the surface (isn't blocked by other buildings, trees, etc) is where you know that views of the church exist.

  2. I believe it would just be easier to make the multipliers (1,2,3,...) the output of the popup and multiply that output by 12 or whatever variable integer. Again, you can use the Popup node if the multipliers will always be the same, or you can use the Popup Dialog node to have a dialog appear after the script is run. The output of the popups are integers representing the index value of the item chosen from the list. Since your list will basically be 1,2,3 etc you can add one to that integer to get the value you need. I have built some examples for you.

     

    Popups.vwx

  3. This is possible with a Popup Dialog node, located in the User Interaction folder. The difference between this node that the Popup node is that every time the script is run, a dialog with a dropdown menu will appear, and you will have to pick your option before the network will finish running. If you want a static popup that appears in the OIP of a Marionette object, you still need to use the original Popup node and create the list via editing the script inside the node.

  4. In all of the nodes in the default library, there are prefixes for the inputs and outputs that tell you the type of data coming in or out of the node. 

    s = string

    n = number

    i = integer (whole number)

    h = a Vectorworks object, such as a piece of geometry

    b = True or False

    p = point

    v = vector

    item = multiple value types

    list = list of items

     

    These aren't all but they are the most common. When in doubt, match output prefixes to input prefixes when connecting nodes.

  5. Wrapping is just a way to package a script. You can wrap a script by right-clicking on a node and selecting the appropriate command. When you wrap a script, the Input nodes that have been given names will appear in the OIP when the wrapper is selected. Once a network is wrapped, you can then convert that wrapper to a menu command or Marionette object.

  6. There aren't any specific tutorials, all I can recommend is to take apart the script you have already and try to figure out how they work. There are some layer nodes that you can use too. You can find out the layer of the space and filter it with Marionette. I have attached a sample network to the other one I sent you that does this. The network is not finished as I don't know exactly how you want the filtering to work, but I tried to show you how to implement it.

     

    VW Rooms only_NvdS_Marionette2.vwx

  7. Hello @C.Miguel- sorry for the late response but I think I have discovered a bug in the story setup commands. I have attached a file that works, but it is important that you set up storys BEFORE you create classes. This is one of the few things that have a set order of operations in Vectorworks. I would also recommend you add in the command CreateStoryLayerTemplate and use that to create your layers, not creating them first and then associating them to a story. 

     

    The bug I noticed is something to do with units. The document units of the attached file are millimeters, and the command seems to work as millimeters, but if it is set to different document units, it still reads the number as millimeters. I will file a bug but until then I would recommend creating your scripts to set up files using millimeters and then change the document units after running the script.

     

    Create Storys mm.vwx

    • Like 1
  8. Hello @Mi&D

     

    I have made a script that I think does what you are asking. It takes the total area from the worksheet and writes it to the Additional Info 2 field of the correct space. It works on all the spaces in the document. I have wrapped the network and given it the name "Apply Apartment Area to Spaces." It works, but the space tags do not update automatically - they have to be "bumped." What worked for me was to select all of the spaces, and choose the correct space label from the dropdown list (even if it is already selected). This will update the tag to show the correct info.

    VW Rooms only_NvdS_Marionette.vwx

  9. I am not sure if it is possible to tie objects to viewport scale or annotation space, but there is a command that reads layer scale and you can use that to scale your tags if they are being placed in the design layer. I created a node that gets the layer scale that an object is in - if the scale is 1:1, the node will return "1" and if the scale is 1:50, the node will return "50." This was based on the Get Layer node, I just added a command to get the layer scale instead.

    GetLayerScale.vwx

     

    HTH,

    Sarah

    • Like 1
  10. There is a way you can create this. You can use a Popup node in the Input folder. You have to edit the script inside by deleting the top line of the script and then adding the choices into the appropriate part of the script. The output of this node is the index value of the selection you make from the popup list. for example, if you have four choices: ['Red', 'Orange', 'Yellow', 'Green'] the corresponding index values will be [0, 1, 2, 3]. You can build a corresponding list of values and use a Get Item node to draw the correct value from the list. 

     

    Popup.vwx

  11. When a Marionette node creates geometry it is always placed in a group. The group is named based on the name of the node that created it as well as a random number - this ensures that when you run the script again, the object will be deleted and recreated, because that named group will be replaced. To edit any geometry created by marionette nodes, you will have to ungroup it first, no matter whether you use the group or ungroup nodes.

  12. The only way to do this is to create a menu command. To create this kind of network, you will need an Object by Criteria node as the node that connects the object to the network. In the text field in that node you type "SEL=TRUE" and then convert the network to a menu command. The menu command will exist in Tools > Marionette Commands > [New Command]. To use it, select an object and then run the menu command.

     

    However, this may not be exactly the type of network that you are looking for.

     

    If you want to create a Marionette object with control geometry you can use a Control Geometry node instead, and then convert the network to a Marionette object.

     

    If you just want a network that references existing geometry (not as an MO or MC) then you must use a Name node. You have to give the geometry a name in the OIP, and then put that name in the text field of the Name node.

     

×
×
  • Create New...