Jump to content
  • 10

Ability to control opening and closing of doors/windows per view


Christiaan

Question

10 answers to this question

Recommended Posts

  • 0

Scene states:

Perhaps this points to the larger question of whether we can have various scene states for a drawing. This would resolve, for one, the Scenic question of the need for duplicate objects when depicting discreet setups of a show. It would also provide an opportunity for animating between SSs.

some examples of scenarios that would benefit -

As above Door & Window: Open/Closed

Truss: Up/Down

Cabinet Built/Exploded

Lighting: Night/Day

  • Like 1
Link to comment
  • 0
43 minutes ago, Andy Broomell said:

I was just thinking this the other day. It'd be very handy if viewports had a setting to determine the open state of Doors & Windows, with the following options:

• By Object (default)

• All Closed

• All Open

 

Perhaps it could be under Advanced Properties.

 

This would be super useful. I'd almost wish for multiple states for all objects..... rather than just for doors.

Kevin

 

Link to comment
  • 0
52 minutes ago, line-weight said:

I tend to want most doors open for things like 3d walkarounds. But generally, they need to be closed for things like internal elevations.

 

It would save a lot of hassle if their open/closedness could be controlled per viewport, or even per type of view.

 

I agree. Here was another request for the same thing which I already voted up:

 

 

Link to comment
  • 0
On 1/30/2023 at 4:43 PM, line-weight said:

I'd like to re-animate this request 11 years later.

 

I tend to want most doors open for things like 3d walkarounds. But generally, they need to be closed for things like internal elevations.

 

It would save a lot of hassle if their open/closedness could be controlled per viewport, or even per type of view.

 

I totally agree and ask Vectorworks to add this feature ASAP.

Edited by ellertb
Link to comment
  • 0

I actually wrote scripts for this back in 2017 when Export Web View came out.

 

It counts on you not needing User Field 9 and User Field 10 in the door data.

 

Run the script called PRE Export Web View and it will Set all the door open angles to 90 (you can change that in the script if you want 180). It takes the open angle and records that in user field 9 and records wether you wanted the door to show as open in 3D and records that in user field 10.

 

When you run the script POST Export Web View it reads the values in User Field 9 and 10 and restores the door to where it was before the first script ran.

 

PROCEDURE OpenTheDoor;

{14 April 2017}
{Badly scripted by Michael Klaers}

{This script preps the doors in a drawing to be ready to 'Export Web View'
It preserves the 3D Open boolean and the open angle of each door in User Field 9 and 10
and then sets the 3DOpen to TRUE and the Open Angle to 90°}

{There is a companion script that restores the doors to their original state}

VAR
	
	ShouldILeaveThisOpen	: STRING;
	OriginalOpenAngle  		: STRING;	
	
{------------------------------------------------------------Record & Open Procedure}	
	
PROCEDURE RecordAndOpen(h : HANDLE);
	BEGIN


		ShouldILeaveThisOpen := GetRField(h,'Door','3DOpen');
		OriginalOpenAngle := GetRField(h,'Door','OpenAngle');
		SetRField(h,'Door','UserFld9',OriginalOpenAngle);	
		SetRField(h,'Door','UserFld10',ShouldILeaveThisOpen);
		SetRField(h,'Door','OpenAngle','90');
		SetRField(h,'Door','3DOpen','TRUE');
		ResetObject(h);

	END;

{-----------------------------------------------------------------------Main Program}	

BEGIN

ForEachObject(RecordAndOpen,(((R IN ['Door']) & ('Door'.'OnSched'=TRUE))));

END;


RUN(OpenTheDoor);




 

 

 

PROCEDURE CloseTheDangDoor;

{14 April 2017}
{Badly scripted by Michael Klaers}

{This script restores the doors in a drawing after 'Export Web View'
It recalls the 3D Open boolean and the open angle of each door from User Field 9 and 10
and then restores the 3DOpen Boolean and the Open Angle to their original values}

{There is a companion script that records original state of the doors.  Run that one first.}

VAR
	OriginalOpenAngle  		: STRING;	
	ShouldILeaveThisOpen	: STRING;


{------------------------------------------------------------Read & Restore Procedure}	

PROCEDURE WereYouBornInABarn(h : HANDLE);

	BEGIN

		OriginalOpenAngle := GetRField(h,'Door','UserFld9');	
		ShouldILeaveThisOpen := GetRField(h,'Door','UserFld10');
		SetRField(h,'Door','OpenAngle',OriginalOpenAngle);
		SetRField(h,'Door','3DOpen',ShouldILeaveThisOpen);
		ResetObject(h);
	
	END;

{----------------------------------------------------------------------Main Program}	

BEGIN

ForEachObject(WereYouBornInABarn,(((R IN ['Door']) & ('Door'.'OnSched'=TRUE))));

END;


RUN(CloseTheDangDoor);

 

Open the Door Close the Door.vwx

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
Answer this question...

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