Jump to content

WorkSheet - Call Wall Direction Function or Record

Recommended Posts

Is there any way to call the wall direction into a worksheet database setting,

so that I could set wall walls to be drawn clockwise.  During the wall layout drafting process

I would use the most efficient means to draw the walls, and eventually I would loose track 

of the wall side direction. 


Settings such as door and window interior/exterior trims, door and window ID tags and similar

use the wall side direction as far as I know as the left side of the direction as the exterior of the

wall and the right side of the direction as the interior of the wall.


So far I tried Pat's PIO to Worksheet PiO fields, however walls seem not to hold PIO record values.

I tried setting a wall type database worksheet, where only functions are available, however there is

no visible function to offer the wall direction option.


Over the years, I recall that there are at times functions that are not yet documented

(e.g. Pat's PIO fields to WS) , so I hope that someone in the forum may be aware of

such a function, or a similar setting to be able to set the walls direction clockwise.


I have no VS proficiency beyond simple preferences settings, as such.

Share this post

Link to post

I don't think so.  You can use a worksheet to ask the angle of the wall, but you can't enter a new value.  Angle is read only.

Share this post

Link to post

I agree with Michael. Normal straight walls don't have a clockwise or counterclockwise property. If you think about it they can't as it all depends on what you are trying to do.  If you draw a vertical wall from top to bottom and another from bottom to top, neither of them was drawn clockwise. They are just a straight line. Each has a left and right compared to how they were drawn, but that only matters because you are using components or textures that need to be on the side you want.


Round walls do have a clockwise/counterclockwise direction as that is the side the center of the curve is on.


Walls automatically generated from Spaces kind of know which way to go as they use the standard that the Left side of the wall is the outside and the right side is the inside. But as soon as it is drawn, there is still not clockwise, just left and right sids.


If you can come up with an algorithm that will reliably tell you which walls need to be reversed without your needing to look at the drawing (using the beginning and end points of the wall)to know what should be inside and what outside, I will figure out a way to script it and we will split the proceeds. 😉  And maybe we will even cut Michael in for a share.

Share this post

Link to post

My initial post may not have been clear.  When all the walls are joined I would like to achieve the 

Start/End direction of all walls to be set in a clockwise position, so that I can easily

distinguish the interior/exterior sides that PIOs use with walls.


What I was hoping for was the value that the OIP uses for any wall to reverse sides.


For example, when all the walls are joined the start/end direction value entered

into a worksheet database would end up with two rows of summarized walls.

A set of walls with the start/end direction one way, and another set of walls

withe the start/end direction the other way.


So far it sounds like a serious VS task to analize each  wall's start/end direction

from farthest wall on the right, then each horizontal, or vertical, or angled wall with a T Join 

would receive a start/end direction "clockwise", and  Corner wall join would receive

the same start/end direction "clockwise." (not to confuse withe the round wall only

clockwise option.) 

Share this post

Link to post

I think I understand exactly what you're talking about.  I often receive drawings that have walls drawn in random directions and have to go through the all the exterior walls and check/correct them.


OK, Pat.  Here's our million dollar idea.  I haven't looked through the function reference to know if this is possible.  😜


Select a wall (W1).  Make sure it is going the correct direction.



make an array of all walls connected to W1.

maybe make an array of start points and end points?  W#.Start and W#.End.


Sort through the arrays to find the wall that shares either and start point or end point with the end point of W1.  Call it W2.


N := 1;

While N < Total Number of Connected Walls DO


If W(N+1).End = WN.End THEN flip W(N+1);.



Maybe not worth millions, but probably worth literally tens of dollars. 🙂



Share this post

Link to post

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.

Reply to this topic...

×   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.


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.

  • Create New...