Robert Anderson

Member
  • Content count

    2,630
  • Joined

  • Last visited

Community Reputation

3 Neutral

2 Followers

About Robert Anderson

  • Rank
    Vectorworks Addict

Personal Information

  • Occupation
    VP Integrated Practice
  • Homepage
    practicalcyclist.blogspot.com/
  • Hobbies
    Vectorworks, Bicycle commuting, Choir singing
  • Location
    Ellicott City, MD, USA
  1. Vectorscript and Python (and, for that matter, Marionette) are basically identical APIs. So factor one in choosing your API is, which language syntax are you more comfortable with, Pascal (which Vectorscript uses) or Python? The process you describe (operating on selected objects) is an analog of a manual process, i.e., it is the way you'd do it 'by hand' in the Vectorworks interface. What you learn as a programmer is that there are other (possibly more powerful) workflows that become apparent and give you a lot of flexibility. Just as an example, if I were going to perform a repetitive operation on a number of objects meeting a particular criteria (e.g. having a particular record,) I'd use a function called ForEachObject(). This allows me to establish a criteria ('find me all objects with the XXX record') and pass them to a process that modifies them (e.g. the FadeAndLabel() process). This is done using a data concept of "handles", which has no good analog in manual use of Vectorworks but is central to efficient use of Vectorworks using any API. Not sure about your last procedural item: "Convert objects to group". Do you mean group all the processed objects, or actually convert e.g. a plug-in object to a group? (The latter is a more profound operation, and might be considered 'destructive'.) Not sure what you mean by 'identifier errors'. Maybe you post a screenshot of an error alert on the forum. Good luck! R
  2. There is no direct import. Best to use IFC (for 3D / data) or DWG (if all you want is 2D).
  3. Hi SunnyFIsher, Sure you can. In the "" tab of the Settings dialog, give the tags a particular class (I think there is a preferred class of 'Door-Spec' and 'Window-Spec' for this.) Then just hide that class in the viewport settings. HTH, Robert
  4. Right now, the Vectorworks "Unfold Surfaces" command can do flattening only of simple (singly-curved) shapes. TouchCAD can do unfolding of complex shapes. (You'll probably have to convert your subdivs into other primitives before you export.) You can look here: http://www.touchcad.com/index.html
  5. Hi, Adzm, The recommended technique for this is what we call "shuttle files". Essentially, you import the IFC to a blank file and then reference that "shuttle file" into your working file as a Design Layer viewport. I'm in a meeting right now and can't elaborate, but perhaps you can find something about this technique in the knowledge base.
  6. Also check the class of the rectangle you used to draw the roof face.
  7. You can do this with lofts and a lot of patience, but a Subdivision Surface object (in later versions) makes this easy, editable, and fun...
  8. Skylight Parametric Object

    Version 1.0.0

    20 downloads

    This Vectorworks file has a couple of variants of skylight object that are created with Marionette. The Marionette scripts for the skylights can be examined simply by double-clicking on the skylights themselves. This was my first attempt at using Marionette for parametric objects and I explored several topics: 1. The two skylight objects are different because one uses a simple set of parameters (height, width, curb height) to set the geometry, while the other allows you to pick from a predefined "catalog choice" on the Object Info palette. There is a Marionette node inside the second one that is called "Configurator' that takes advantage of a very useful data structure in Python called a "dictionary". For those of you interested in Python scripting, this is worth a look. 2. There are wrapper nodes inside the skylight objects called "Frame Profile" and "Curb Profile". These are essentially nested parametric shapes. Select either of these nodes and you will see a number of parameters on the OI palette. Double-click either of these nodes and you will see their internal scripts as well as a picture describing what the parameters mean. (You can paste anything you want into wrapper nodes as informal documentation.) 3. These objects write and maintain proper IFC data, including height and width, with every reset.
  9. Ah, so you're saying you want the Hyperbolic Paraboloid (HP). OK. (I wasn't sure, because the visual effect was so small.) If you want that, then I would loft a profile of beginning 'barn profile' to the end 'barn profile'. Then I'd shell it. Now you have your main shape. To get the frames, draw a number of extrusions across the 'barn shape' and do a model:intersect solids (using a duplicate of your barn shape). It's easier to do than to describe. I've attached a sample file. You are correct that you won't be able to get an HP using a roof face. Roof faces are strictly planar. HP_shell.vwx
  10. Hi Christina, the two roof faces do in fact appear to be hyperbolic paraboloids. This is because the pitch at the beginning of the roof (let's say 'small end') and the end of the roof are not the same -- or at least it appears that way from your elevation. I'm not sure how you have modeled this. There are two general approaches to doing this: Approach 1: Use "pure" solid / 3D modeling. Make the closed shed shape in elevation, taper-extrude it, extract the outer surface, and shell it. Approach 2: Use architectural objects. Start with a roof plane. Draw it the way you want it in plan, set its pitch and play with its base-line to get the eave slope you like (you'll spend time in trial and error looking at this from various points of view). When you like it, mirror it along the sloping ridge. Then draw a couple of walls and use "Fit walls to Objects" command to get them to slope. You'll have to embed them in the roof objects to get the seamless look you want. The advantage of this approach is that you can use the Roof framer to get your rafters, etc. Good luck and check back in!
  11. Stephan, most impressive. (I loved the fact that you had a Karl May collection!) Could one move examples from all the collections into a "general random" folder and get a truly randomized collection of books?
  12. The Marionette icons are sized to work at 1:1 scale, if you have a large scale project, my recommendation is to have a saved view (at 1:1) that takes you back to the Marionette script.
  13. One of the nice things about Marionette is that it's integrated into the design environment. This means that it can interact with the existing model. One example of this is shown in this example. This Marionette script looks for a Heliodon in the file, then draws a photovoltaic panel optimized for the orientation and latitude given by the Heliodon. The optimized angle is in a little wrapper node called "Tilt Optimizer". Challenge: It wouldn't be too hard to turn this one photovoltaic panel into an entire array of photovoltaic panels using the "Range" node found in the "Data Flow" section of the Marionette library.
  14. This Vectorworks file has a couple of variants of skylight object that are created with Marionette. The Marionette scripts for the skylights can be examined simply by double-clicking on the skylights themselves. This was my first attempt at using Marionette for parametric objects and I explored several topics: 1. The two skylight objects are different because one uses a simple set of parameters (height, width, curb height) to set the geometry, while the other allows you to pick from a predefined "catalog choice" on the Object Info palette. There is a Marionette node inside the second one that is called "Configurator' that takes advantage of a very useful data structure in Python called a "dictionary". For those of you interested in Python scripting, this is worth a look. 2. There are wrapper nodes inside the skylight objects called "Frame Profile" and "Curb Profile". These are essentially nested parametric shapes. Select either of these nodes and you will see a number of parameters on the OI palette. Double-click either of these nodes and you will see their internal scripts as well as a picture describing what the parameters mean. (You can paste anything you want into wrapper nodes as informal documentation.) 3. These objects write and maintain proper IFC data, including height and width, with every reset. Enjoy digging in to these objects and post questions about these objects to this thread. skylight_demo-1(param).vwx skylight_demo-2[catalog].vwx
  15. Dieter, Marionette scripts are strung together in a method similar to Grasshopper, Dynamo, Generative Components, etc. However the difference is, Marionette objects (called "nodes") are just sitting in the design layer. They create geometry there also. The script is associated with the results it creates so that if you modify and re-run the script, the old results are deleted and new results (geometry) take its place. BUT, you can also "wrap up" the script into a first-class parametric object (what we often call a "plug-in object".) By "first-class" I mean that the object can have parameters on the Object Info palette, and that it can (if you wish) be based on a path (poly, NURBS surface or other geometry). The difference is, a Marionette parametric object doesn't require installation in the workspace, because it always "carries its script with it", so to speak. You can put it in a symbol definition if you like and reference it to any project or share with colleagues. We are very excited about Marionette.