Jump to content
Sign in to follow this  
Robert Anderson

Skylight Parametric Objects using Marionette

Recommended Posts

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

Edited by MarissaF
update attachments

Share this post


Link to post

Hi Robert,

Very cool examples!

Some questions: What exactly is the "Set as Hole Cutting Obj" node for and how is it used?

Share this post


Link to post

Matt, that node allows you to set the geometry that the Marionette Object will use for cutting wall, roof, and slab holes, when inserted. Just like the VS function.

Edited by Mark Flamer P.E.

Share this post


Link to post

Thanks Mark.

I just tried placing the Marionette object into the modifiers group of a slab and it works! Very nice!

Now the bigger questions:

1. How do you get it to cut holes in roofs?

2. What about roof faces and floor objects? Can it also work in those?

Share this post


Link to post

Matt, It should have the exact same functionality as if you were scripting in VectorScript as far as punching holes goes.

Share this post


Link to post

Thanks Mark.

So, essentially, hole cutting can only be done (with these objects) in wall and slab objects. I thought (hoped) maybe there was a way to cut into the other object types I mentioned.

Maybe some day. :-)

Share this post


Link to post

Symbol insertion into roofs would have to be revamped for that, currently since inserting into them isn't the same as walls and slabs, it isn't the same with Marionette either. If Roof/Roof Face objects get that ability, then it would start working within Marionette as well.

Share this post


Link to post

Hi Jim,

Right. I have a VE request in for plug-in interaction for floor, slab, roof face, and roof objects. My current need isn't for Marionette objects, but I assume Marionette objects are essentially plug-in objects. The skylight example object is great, but if it can only cut slab objects than it's use (as far as hole cutting is concerned) is limited to flat roofs modeled using slab objects. Id love to see symbol and plug-in interaction with these objects on par with how they interact with walls.

Share this post


Link to post

Sorry, I figured you did know that, my reply was knee-jerk as there have been a lot of discussions here about improving what Marionette can do, which are actually not marionette improvements but underlying Vectorworks improvements that would then just be driven by nodes.

My fault. The categorization of where feature requests, design changes and bug submissions gets me all riled up, I'm a weird one.

Share this post


Link to post

LOL!

In that case I'd like to see more weirdos working at VW. ;-)

I have caused this thread to veer off track a bit. My entire interest was the hole cutting abilities and other possible interaction.

Share this post


Link to post

The example in this original post is a good showcase for creating profiles in 2d, extruding them into 3D goemetry, and aligning aspects of solids to others, as well as texturing. I HOPE to create a series that shows how to create this object completely from scratch. The current scope of the Marionette training i am making now is much more limited and we only cover some basic geometry creation and then show editing this script to convert it to a sort of flush mount lighting fixture (Which would realistically be added to Walls or Slabs more than Roofs like a skylight would), but I'm pushing for us to expand it asap after we finish Energos and Subdiv training.

Share this post


Link to post

Instructive example. Thanks for sharing Robert.

Another Question:

For 3D wall cut, we can use 3D loci or the control geometry node (very nice, thanks for this)

For 2D wall cut i use in my example 2D loci.

2D loci is OK for most wall objects. But an exact 2D cut would be desired. Is there another way to break 2D hole with a polygon. Maybe this?

vs.AddSymToWall(wallHd, offDistance, heightDistance, flip, right, symbolName)

Edited by DomC

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

 

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.

×