Jump to content

Spaces in workgroup-referenced files cause long update times


Zeibin

Recommended Posts

We have a serious problem with updating workgroup references that have spaces (made with the space tool) in them.

The project is fairly large ? approximately 80 units over 10 floors, each having a space associated with them. The file is also quite large: ~10000 objects, 9.8 MB. Each unit also has interior spaces demarked by the space tool to keep accurate labeling (i.e. Dining Room, 10'x12' and so on). This brings the total number of spaces to ~430. Spaces typically only display the room name, room number, and total area or dimensions. Spaces are used for room labeling and generating floor-space ratio (FSR) calculations.

Update times for this file (with all layers referenced) are upwards of 10 minutes on VW 11.5.1 on a G5 single 1.8Ghz with 1GB RAM with Mac OS X 10.4.2. System resources used by VW during the update include ~80% CPU, 150MB physical memory and 360MB virtual memory.

Even weirder, subsequent updates extend the update time. Yesterday, an update of the file took 7 minutes, deleting the single worksheet and updating again took 10 minutes. Leaving the file untouched and simply clicking update again took 16+ minutes. The longest reported update for this file is 25+ minutes.

We have other files (with just a few spaces) that are comparable in size (12000-15000 objects at ~10 MB) that take about 60 seconds to update on the same machine. That's our desired benchmark.

(Network effects have been eliminated during all these tests by working from the computer's local hard drive.)

After deleting all spaces in the referenced file, update times drop to the expected ~60 seconds. Leaving the simple 80 spaces in the file drops update times to about 2 minutes.

--

Why is it that 80 spaces cause the update time of a file with 10000 objects in it to double?

Can certain options on the spaces be turned off to alleviate the long update times?

Has anyone else experienced this problem, and if so, do you have suggested fix?

Thank you so much for any help you might offer.

David Zeibin

Link to comment

1) By no measure is your file too large nor are there too many objects. We routinely work with multiple files many times larger on the same hardware, etc.

2) There appears to be some other reason for the processor run-time Loops.

Do you have any embedded images especially those created by the RenderObject Tool ?

Have you checked all the Font references? A bad Font reference creates havoc.

As you point out since you are WGR from the same directory, it appears that the conflict exists between the two files only.

My first guess is that there's an object ID conflict forcing an object search recursion which eventually defaults to null.

I suggest New File>WGR>Edit>Import and then from this clean file check out the program code object by object. Especially make certain you are not using any legacy Tools.

Link to comment

I don't think there's any other reason. It's simply the space tool. It's the only real difference between the file that takes forever, and other files that are fine.

There are no embedded images and we don't even know what the RenderObject tool is (we don't use VW for any 3D or rendering work).

What do you mean by "font reference"? The only font used in this file is Helvetica (of the Mac OS X system font variety).

It's a problem with the master reference only, since other files referenced into the target file show no update delays whatsoever.

By "object ID conflict" do you mean that two files referenced into a single document may be conflicting with each other? This seems unlikely to me since, as you mention, we also routinely work with comparable files and reference in multiple documents.

By "check out the program code" do you mean export to VectorScript? I made a blank file and initiated the reference: ~7.5 minutes. I exported the VectorScript and had a look; nothing looks out of order, from what I can see. Here's a typical space:

code:

Record(LNewObj,'Space');

Field(LNewObj,'Space','Config','Name Only');

Field(LNewObj,'Space','Name','washroom');

Field(LNewObj,'Space','Number','-');

Field(LNewObj,'Space','Length','5''5.999999999999987"');

Field(LNewObj,'Space','Width','5''9.500000000000002"');

Field(LNewObj,'Space','Proposed Area','140.1');

Field(LNewObj,'Space','Area','31.8');

Field(LNewObj,'Space','Occupancy','Occupant');

Field(LNewObj,'Space','Occupancy Type','Occupancy Type');

Field(LNewObj,'Space','Align','Right');

Field(LNewObj,'Space','Text Rotation','0');

Field(LNewObj,'Space','Decimals','1');

Field(LNewObj,'Space','Underline Name','False');

Field(LNewObj,'Space','Show Number Box','False');

Field(LNewObj,'Space','Calc Dims','False');

Field(LNewObj,'Space','Show Dims','True');

Field(LNewObj,'Space','Show Proposed Area','False');

Field(LNewObj,'Space','Show Area','False');

Field(LNewObj,'Space','Show Volume','False');

Field(LNewObj,'Space','Show Occupancy','False');

Field(LNewObj,'Space','Fill Behind Text','False');

Field(LNewObj,'Space','Show Poly','False');

Field(LNewObj,'Space','Show 3D Detail','False');

Field(LNewObj,'Space','Extrusion Height','0"');

Field(LNewObj,'Space','Volume','0.0');

Field(LNewObj,'Space','Perim','22''6.69999999999999"');

Field(LNewObj,'Space','Name Text Size','8');

Field(LNewObj,'Space','Number Text Size','8');

Field(LNewObj,'Space','Dims Text Size','5');

Field(LNewObj,'Space','ControlPoint01X','-8.170712147064867"');

Field(LNewObj,'Space','ControlPoint01Y','4''6.75843585623141"');

Field(LNewObj,'Space','Matrix Order','848');

Field(LNewObj,'Space','On Schedule','False');

FillColorByClass;

LSByClass;

PenColorByClass;

LWByClass;

MarkerByClass;

NameObject('400');

DSelectAll;

tempHandle2 := CreateCustomObject('Space',0",0",#0.0000000000000d);

ResetOrientation3D;

MirrorXY3D;

Rotate3D(#180.0000000000d,#-0.0000000000000d,#180.0000000000d);

Move3D(1662624'10.266787853091957",17880588'4.436008572578431",0");

BeginPoly;

MoveTo(0",0");

LineTo(0",5'4.936018543417931");

LineTo(-5'5.937499999999717",5'4.9360185434184");

LineTo(-5'5.937499999999717",0.000000000000054");

EndPoly;

objectHandle := LNewObj;

boolResult := SetCustomObjectPath(tempHandle2, LNewObj);

BeginGroup;

EndGroup;

boolResult := SetCustomObjectProfileGroup(tempHandle2, LNewObj);
[/code]

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

×
×
  • Create New...