Jump to content

Automated Layout 1.0.2

   (0 reviews)

3 Screenshots

About This File

Hi

This Examples shows, how to automatically create sheet layers and viewports from objects of the design layers. In this example, a sheet layer will be created for every exhibition place available on the design layer. It creates a 1:20 close-up from the specific exhibitor's place and an overview plan with a marker of the exhibitors place.

 

This Network-Template could be used whenever you want to create automatically documentations out of your drawing. As Example:

- Put a Viewport of every Space Object in your drawing on SheetLayers

- Put Viewports from Building Elements close-ups (Windows, Doors etc.) on sheet layers

 

Also this Network contains some very powerful custom nodes:

1. Enhances BBox, Enhanced Rectangle, PutByRefPoint those are just to save time for calculating width, length and ref point of objects

2. Function Two (like standard function node with two inputs), SetParent

(1. and 2. Already available on this forum)

 

3. CreateLayer

4. CreateViewport

5. VP Layer Visibility

6. Add VP Ann (Annotations in Viewport) 

 

7. Nodes for getting Marionette OIP Data which is not possible with "Get Record Field"

 

 

 


What's New in Version 1.0.2   See changelog

Released

Updated Nodes:

Set VP Layer Visibility

Set VP Class Visibility

 

New Node:

Get Saved View Visibility (optimal for view saved classes for classes). Suspicion to be slow ... with over thousands of spaces

 

This Project seems to have a big demand. So I plan to make other examples in Future, if nothing more important comes up:

1. Putting several spaces on one layout. Lets say all spaces of one layer maybe. By the way, 1500 Sheet layers are not an issue at all with 2019 and the new layer

2. Naming Viewports by a system. Let's say Layer+RoomNumber+RoomName

3. Update function for existing layouts. Just new rooms will be layouted, not all spaces again. So it will by fast with 4000 spaces

4. Try  with detail viewports maybe (not sure if it's possible maybe same issue like sections)

5. Sections could be interesting (whereby i tried and already failed ... maybe with 2019, let's see)

6. Meaningful Ideas and "customized" solutions also. 

 

Post your successes !

 

  • Like 11

User Feedback

Recommended Comments

That is great, the whole network, but also the new nodes! I don't understand all of it yet, but here are some possible improvements:

If the width of the 2D BBox > 400: the scale of the viewport could be 1:50 instead of 1:20, or have a varying scale depending on the width.

There is an error in the description of the VP Layer Visibility node: sLinvis is described as grey instead of invisible (and I think it would be easier on the eye if the standplaenung-layer was grey in the overview viewport)

Link to comment

Thank for competent Feedback. 

Quote

If the width of the 2D BBox > 400: the scale of the viewport could be 1:50 instead of 1:20, or have a varying scale depending on the width.

for sure, this would be a nice refining. 1:50 / 1:20 step could be made like this:

1393275931_Bildschirmfoto2018-11-10um22_54_18.thumb.png.938c9edf003880e6576a0603315b7cc3.png

 

 

 

Quote

sLinvis is described as grey instead of invisible (and I think it would be easier on the eye if the standplaenung-layer was grey in the overview viewport)

True Thanks. I focussed time investment on getting section Viewports on my layouts (which failed and I dropped this for now) instead of maturing the vp nodes. 

To have a complete set of VP nodes there also a class visibility would be needed.

 

Updated the File. By the way, thats just a study. Maybe it would more practical to just duplicate a default layout with placeholders for vp and text fields. So it would be scalable on new situations very fast. 

 

 

892346321_Bildschirmfoto2018-11-10um23_14_22.thumb.png.aeec92e4e9a447fb2b7fd05250839920.png

 

 

 

Edited by DomC
Link to comment

Hey DomC,

das ist das beste und praktikabelste was ich seit langem gesehen hab, wenn das so funktioniert wie ich dir das vorstelle.

Könntest du ein kleines Video drehen, wie du das Script anwendest und wie es konfiguriert werden kann?

Ich möchte zum Beispiel gern all unsere geplanten Flure im Gebäude (ca. 200 Stk.) auf jeweils ein Layout legen mit Übersichtsplan über den kompletten Grundriss. Genau so wie du es gemacht hast. Wie gesagt, perfekt, wenn ich es noch verstehen könnte und anwenden.

 

Vielen vielen vielen Dank für deine tolle Arbeit!!!

 

Danke im Voraus

Mathias Lange

Cadmin | VWX | BIM

Bildschirmfoto 2018-12-06 um 16.19.25.png

Edited by Mathias Lange
Link to comment

Hello 

I try to push this somewhere between. As far as the criteria is matching (search for every space with Flur in the name or similar) It will push all such Spaces into the script. It would need the following adjustments:

 

1. Read Layer name of Space to make this layer visible in the viewport (easy task)

2. Read Room Infos to name layout with the room number, room and layer name etc. (easy task)

3. The project seems to be directed to north. So maybe you want to turn the viewports by this angle (maybe all the same angle?) or by the angle of the text label? (medium task, could take some hours to implement the angle)

4. In the existing Example the room would be marked with a rectangle around the bounding box of the room. For your scenario it would be better, to use a parallel polygon to the room polygon (particularly it the room is rotated as yours) (medium task)

 

So it could take some hours to fit the example for your explicit usecase. Always this scripts have to perfect from experience. More perfect than any other tools because users can see, that every little limitation can be eleminated by a custom workflow script.

 

Have all parts of the building the same angle? So what is about beeing the boss in the project and make your own angle of the building? It is a common workflow to not north the building and not use a international origin. You could layer-link the building in a georefered overview plan if it is necessary. Just a stupid idea. It is not possible to command a project angle and project origin in every project. But it would save time.

 

 

  • Like 1
Link to comment

Attached an Example with Spaces (Name "Flur").

 

The original Example has the limitation, that some values of viewport position (function node and vector input) of are in mm instead of document units. I corrected this in the attached VWX example with spaces.

The rotation task is not implemented. But the rest works for your scenario I think. 

 

1094221414_Bildschirmfoto2018-12-18um00_04_53.thumb.png.38ee60fb0751fbbb1275214bbd946f58.png

 

 

 

Automated Layout Spaces.vwx

Link to comment

Hi Dom,

I tried this out on one of my files, and changed the criteria of the first node accordingly. When I run the script, ALL the viewports of the spaces show up on a single sheet layer, stacked on to of each other, instead of being distributed among multiple sheets. Also, ALL the design layers are on in all the space viewports. For the overall plan (reference) viewport, the correct design layer (only) is displayed. Any clue what's going on?

Matt

Link to comment

Hi

Use "Print Debug" to see, what's coming in the "Create Layer" Node. If you have always the same layer name (input) or the same layer handle (output), all your viewports will created on the same sheet layer.

Link to comment

Thanks Dom,

Yeah, looks like all my handles are the same (or at least most of them). In your file, they're all different. How do I create unique layer output handles for each space?

Screen Shot 2019-01-20 at 12.50.09 PM.png

Link to comment

the first two handles are different from the others.

Follow the handles from right to left in the script. Then you will see, that they are strings before they got handles. They also will be the same string. That's how I search an error. Like the TV, if cable connection is broken. Follow the cable back and you will find the faulty connection.

 

1714955847_Bildschirmfoto2019-01-21um07_50_04.thumb.png.6ce6bdcb895832b940652619cca60635.png

The name is built from the Room Number "11_Number". Which maybe is empty in your file and the Layer name of the space. If this is being the case all spaces from one layer will putted on the same layout on the same place. To fix that:

 

1. Take another (unique) data from the space. Or create room numbers

2. Feed the Sheet Layer name producer with a series of numbers.

473679108_Bildschirmfoto2019-01-21um07_54_22.thumb.png.636b16cfa2ba8beefe6ff60668a456e9.png

3. Make the Position of the Viewports a Serie of coord Points and the will lay side by side.

 

 

Link to comment

You were right, my spaces didn't have room numbers. After assigning room numbers, separate sheets are being created from the script. I'm getting closer to the goal! I wish I understood this whole marionette business better...i definitely need to watch some tutorials. It doesn't help that I also don't know anything about scripting.

 

I'm still unable to correctly control layer visibility in the 1:50 viewport. When I uncheck "show all layers", it still turns on multiple layers (just not all of them). How do I make sure only the layer that the space belongs to is visible in the viewport?

 

Also, would this marionette work equally well with Detail Viewports? Could it be configured so that the bounding box was turned into a Detail Callout Marker? If that could be achieved, this marionette would be perfect for generating Enlarged Plans.

  • Like 1
Link to comment

Hi Matt

Hm ... it's seems to be a bug in the "VP Layer Visibility". I will look into this to provide a fix.

Link to comment
15 hours ago, mgries said:

If that could be achieved, this marionette would be perfect for generating Enlarged Plans.

 

YES! I have slowly been working on something like this using @DomC's nodes, but would know where to start with the Detail Callout Marker. Make so much sense.

Edited by ericjhberg
Link to comment

Hi

There is an update. The "VP Layer Visibility" has no bug. It just set the same visibility in all created vp. So not very usefull for creating more than one viewport with different visibilities. However I made this node new. It works now with different input sequences. So every created vp can have different visibilities.

 

Quote

https://forum.vectorworks.net/index.php?/files/file/182-automated-layout/

 

Updated Nodes:

Set VP Layer Visibility

Set VP Class Visibility

 

New Node:

Get Saved View Visibility (optimal for view saved classes for classes). Suspicion to be slow ... with over thousands of spaces

 

This Project seems to have a big demand. So I plan to make other examples in Future, if nothing more important comes up:

1. Putting several spaces on one layout. Lets say all spaces of one layer maybe. By the way, 1500 Sheet layers are not an issue at all with 2019 and the new layer

2. Naming Viewports by a system. Let's say Layer+RoomNumber+RoomName

3. Update function for existing layouts. Just new rooms will be layouted, not all spaces again. So it will by fast with 4000 spaces

4. Try  with detail viewports maybe (not sure if it's possible maybe same issue like sections)

5. Sections could be interesting (whereby i tried and already failed ... maybe with 2019, let's see)

6. Meaningful Ideas and "customized" solutions also. 

 

Post your successes !

 

  • Like 1
Link to comment

Great what's possible with Marionette. Unfortunately I can't never handle it. ;(  Is it possible only with activated 3d objects or groups creating a layer/viewport?

Example: I have an extensive drawing with many different furniture.  Now I activate a few of them, and would like to have a front view,  a top view and a side view from every single furniture on an extra sheet layer. That were very useful, if you want to pick singe items for more details.

 

Beste Grüße aus Heidelberg, Marc & toll, dass du hier deine Projekte veröffentlichst.

Link to comment

Hi Onyx

 

It is everything possible, what we can also solve with Vectorworks functions. The Question here is, how to make views from a single furniture and hide all others. The standard workflow I recommend here is, to draw every single position on different layers. So we are able to work on every furniture/position undisturbed from the rest of the drawing. Also we can rotate them in a front view to work on it. Then make Design layer viewports from this furniture and assemble it on a master view. That's the way I would structure it. 

 

From your structure it maybe could be solved as following:

 

1. Different classes for every furniture. Maybe automated class-naming with the position descreption or furniture name and then Automated layout with class visibility.

Or

2. Sections around the furniture. But I am missing my KnowHow how to make sections with a script and also the issue is, that the sections will cut the furniture which is beside the required furniture.

 

So #1 or a better Idea could be a base for a Marionette automation.

 

 

 

 

 

Link to comment

Hallo DomC,

 

das sieht alles sehr viel versprechend aus - doch ich stehe leider am Anfang von Marionette und verstehe noch sehr wenig... muss ich dafür irgendwie meine Räume erst in einer Datenbank sammeln oder reicht es, dass in  meinem Projekt Räume vorhanden sind?

 

Grüße,

 

Luisa

Link to comment

@Luisa

I am back from vacation so sorry for late reply.

Basically this Example do the following:

 

1. Collect Objects in the drawing with the criteria node

2. Read some informations of the objects and put them together with a viewport on different sheet layers.

3. additionally it creates a title block with some informations about the object

You can do this for all objects independent if they have a record or not.

 

It is just an example. Because it is a Marionette feature you could enhance or change, what the script should do (Maybe group all spaces from one layer on the same sheet layer, maybe collect additionally informations from objects which are in the space or on bound of the space, etc. etc.)

 

To your question:

All spaces are already linked to a record format (Datenbank).  

Specific the Example with the spaces, uses the room Number for naming the sheet layers. Also it reads data for write them to the title block. 

If your spaces have not the informations as the script excepts (No Room Number, No Name etc.) it maybe will not run. So if your spaces and informations are not the same type as in this example the script has to be fit to your space informations. You could share some of your spaces, that would help understanding if an issue appears

 

  • Like 1
Link to comment

Hi

 

just found this nice network. works great. testet with v2023.

tested with ifc file import to quickly publish all ifc-space objects 

 

maybe there is a version flying around where the new tool for "Plankopfstile" is implemented.

 

and maybe to implement the rotation angle and to change the paper to A3 could be done with a little help?

 

sorry for reactivating this very old thread 

Edited by Thomas K.
Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Add a comment...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...