# US 2007/0192376 A1 · Method and system for storing large data files

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2007/0192376 A1
- Document ID: US20070192376A1
- Status: Published application
- Kind: A1
- Application number: 11/651,057
- Filed: 2007-01-09
- Published: 2007-08-16
- Earliest claimed: 2001-08-15
- Assignees: Bentley System, Inc.
- Inventors: Keith Bentley
- Web page: https://patentgrep.com/patent/US20070192376A1

## CPC

- G06F 16/10: File systems; File servers
- Y10S 707/99942: Manipulating data structure, e.g. compression, compaction, compilation
- Y10S 707/99943: Generating database or data structure, e.g. via user interface
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- Y10S: TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS

## Abstract

An enhanced file format to store large quantities of variable-sized data records on a storage medium and to permit efficient access and control over data stored in the enhanced file format. A file format is the structure of a file that defines the way it is stored and laid out on a disk. In a preferred embodiment of the present invention, a file format includes a model directory containing models. Models include element lists comprising element chunks. The element chunks include elements, where elements are variable-sized data records.

## Claims

### Claim at position 1

1-36. (canceled)

### Claim 37

A method in a computer system for modifying at least one compressed element chunk in a main storage area, comprising:
storing at least one root storage in the main storage area;
storing a model directory in said at least one root storage;
storing at least one model including a graphic element list and a control element list in each model directory;
storing at least one compressed element chunk in each graphic element list and control element list, wherein each said compressed element chunk comprises compressed elements;
storing said at least one root storage in a temporary memory;
decompressing said compressed element chunks and compressed elements in said graphic element list and said control element list;
modifying elements in the temporary memory;
flagging said decompressed element chunks having said modified elements in said temporary memory with a dirty flag;
compressing said flagged element chunks to provide modified compressed element chunks after a predetermined idle time has passed; and
replacing said compressed element chunks in the main storage area with said modified compressed element chunks.

### Claim 38 (depends on 37)

The method as in claim 37, wherein the computer system comprises a first workstation having said temporary memory, wherein said first work station accesses and modifies elements; and at least a second workstation accesses and views said modified elements upon request.

### Claim 39 (depends on 37)

The method of claim 37, further comprising the step of associating a header with each root storage.

### Claim 40 (depends on 37)

The method of claim 37, wherein the computer system is the Internet.

### Claim 41 (depends on 37)

The method of claim 37, wherein the computer system is an Intranet.

### Claim 42 (depends on 37)

The method of claim 37, wherein the computer system is a local area network.

### Claim 43 (depends on 37)

The method of claim 37, wherein said main storage area is a file.

### Claim 44 (depends on 37)

The method of claim 37, wherein at least one of said root storages is adapted to be operable with a computer aided design program.

### Claim 45 (depends on 37)

The method of claim 37, wherein each said root storage is a file.

### Claim 46 (depends on 37)

The method of claim 37, further comprising the step of associating at least one of a stream and a storage, neither of which are contained in the model directory, with at least one of the root storages.

### Claim 47 (depends on 37)

The method of claim 37, further comprising the step of storing in said at least one root storage at least one of a first stream containing a header, a second stream containing session information, a third stream containing a manifest and a fourth stream containing file properties.

### Claim 48 (depends on 37)

The method of claim 37, further comprising the step of storing in said at least one of root storage a control model containing a control model header, a global control element list and a global graphic element list, wherein said global control element list and said global graphic element list contain element chunks including global elements, wherein said global elements are accessed for use in any model directory.

### Claim 49 (depends on 37)

The method of claim 37, further comprising the step of automatically sending a signal from the storage area to other workstations to notify users that an element chunk in a root storage had been modified.

### Claim 50

A method in a computer system for modifying at least one encrypted element chunk stored in a main storage area, comprising:
storing at least one root storage in the main storage area;
storing a model directory in each root storage;
storing at least one model including a graphic element list and a control element list in each model directory;
storing at least one encrypted element chunk in each graphic element list and control element list, wherein each element chunk comprises compressed elements;
storing the at least one root storage in a temporary memory;
decrypting said element chunks and said elements in the graphic element list and control element list;
modifying elements in said temporary memory;
flagging said element chunks having said modified elements in said temporary memory with a dirty flag;
encrypting said element chunks having said modified elements in temporary memory to provide modified encrypted element chunks after a predetermined idle time has passed; and
replacing said encrypted element chunks in the main storage area with said modified encrypted element chunks.

### Claim 51 (depends on 50)

The method of claim 50, wherein the computer system comprises a first workstation having said temporary memory, wherein said first work station accesses and modifies elements; and at least a second workstation accesses and views the modified elements upon request.

### Claim 52 (depends on 50)

The method of claim 50, further comprising the step of associating a header with each root storage.

### Claim 53 (depends on 50)

The method of claim 50, wherein the computer system is the Internet.

### Claim 54 (depends on 50)

The method of claim 50, wherein the computer system is an Intranet.

### Claim 55 (depends on 50)

The method of claim 50, wherein the computer system is a local area network.

### Claim 56 (depends on 50)

The method of claim 50, wherein the main storage area is a file.

### Claim 57 (depends on 50)

The method of claim 50, wherein at least one of the root storages is adapted to be operable with a computer aided design program.

### Claim 58 (depends on 50)

The method of claim 50, wherein each root storage is a file.

### Claim 59 (depends on 50)

The method of claim 50, further comprising the step of associating at least one of a stream and a storage, neither of which are contained in the model directory, with at least one of the root storages.

### Claim 60 (depends on 50)

The method of claim 50, further comprising the step of storing in the at least one root storage at least one of a first stream containing a header, a second stream containing session information, a third stream containing a manifest and a fourth stream containing file properties.

### Claim 61 (depends on 50)

The method of claim 50, further comprising the step of storing in the at least one of root storage a control model containing a control model header, a global control element list and a global graphic element list, wherein the global control element list and the global graphic element list contain element chunks including global elements, wherein the global elements are accessed for use in any model directory.

### Claim 62 (depends on 50)

The method of claim 50, further comprising the step of automatically sending a signal from the storage area to other workstations to notify users that an element chunk in a root storage had been modified.

### Claim 63

A method in a computer system for modifying at least one compressed encrypted element chunk in a main storage area, comprising:
storing at least one root storage in the main storage area;
storing a model directory in each root storage;
storing at least one model including a graphic element list and a control element list in each model directory;
storing at least one compressed and encrypted element chunk in each graphic element list and control element list, wherein each element chunk comprises compressed elements;
storing the at least one root storage in a temporary memory;
decrypting the element chunks and elements in the graphic element list and control element list;
decompressing the element chunks and elements in the graphic element list and control element list;
modifying elements in the temporary memory;
flagging the element chunks having the modified elements in the temporary memory with a dirty flag;
compressing and encrypting the element chunks having the modified elements in temporary memory to provide modified compressed encrypted element chunks after a predetermined idle time has passed; and
replacing the compressed encrypted element chunks in the main storage area with the modified compressed encrypted element chunks.

### Claim 64 (depends on 63)

The method as in claim 63, wherein the computer system comprises a first workstation having the temporary memory, wherein the first work station accesses and modifies elements; and at least a second workstation accesses and views the modified elements upon request.

### Claim 65 (depends on 63)

The method of claim 63, further comprising the step of associating a header with each root storage.

### Claim 66 (depends on 63)

The method of claim 63, wherein the computer system is the Internet.

### Claim 67 (depends on 63)

The method of claim 63, wherein the computer system is an Intranet.

### Claim 68 (depends on 63)

The method of claim 63, wherein the computer system is a local area network.

### Claim 69 (depends on 63)

The method of claim 63, wherein the main storage area is a file.

### Claim 70 (depends on 63)

The method of claim 63, wherein at least one of the root storages is adapted to be operable with a computer aided design program.

### Claim 71 (depends on 63)

The method of claim 63, wherein each root storage is a file.

### Claim 72 (depends on 63)

The method of claim 63, further comprising the step of associating at least one of a stream and storage, neither of which are contained in the model directory, with at least one of the root storages.

### Claim 73 (depends on 63)

The method of claim 63, further comprising the step of storing in the at least one root storage at least one of a first stream containing a header, a second stream containing session information, a third stream containing a manifest and a fourth stream containing file properties.

### Claim 74 (depends on 63)

The method of claim 63, further comprising the step of storing in the at least one of root storage a control model containing a control model header, a global control element list and a global graphic element list, wherein the global control element list and the global graphic element list contain element chunks including global elements, wherein the global elements are accessed for use in any model directory.

### Claim 75 (depends on 63)

The method of claim 63, further comprising the step of automatically sending a signal from the storage area to other workstations to notify users that an element chunk in a root storage had been modified.

### Claim 76

A computer system for modifying at least one compressed chunk of elements stored in a main storage area, comprising:
a temporary memory;
a root storage stored in the main storage area and the temporary memory;
a model directory stored in the root storage;
at least one model stored in the model directory;
at least one graphic element list stored in each model;
at least one control element list stored in each model;
at least one compressed element chunk stored in each graphic element list and control element list, wherein each element chunk comprises compressed elements;
means for decompressing the element chunks and elements in the graphic element list and control element list in the temporary memory;
means for modifying elements in the temporary memory;
means for lagging the element chunks having the modified elements in the temporary memory;
means for compressing the element chunks having the modified elements in temporary memory to provide modified compressed element chunks after a predetermined idle time has passed; and
means for replacing the compressed element chunks in the main storage area with the modified compressed element chunks.

### Claim 77 (depends on 76)

The computer system as in claim 76, further comprising a first workstation having the temporary memory, wherein the first work station modifies elements; and at least a second workstation accesses and views the modified elements upon request.

### Claim 78 (depends on 76)

The computer system as in claim 76, further comprising means for associating a header with each root storage.

### Claim 79 (depends on 76)

The computer system as in claim 76, wherein the computer system is the Internet.

### Claim 80 (depends on 76)

The computer system as in claim 76, wherein the computer system is an Intranet.

### Claim 81 (depends on 76)

The computer system as in claim 76, wherein the computer system is a local area network.

### Claim 82 (depends on 76)

The computer system as in claim 76, wherein the main storage area is a file.

### Claim 83 (depends on 76)

The computer system as in claim 76, wherein at least one of the root storages is adapted to be operable with a computer aided design program.

### Claim 84 (depends on 76)

The computer system as in claim 76, wherein each root storage is a file.

### Claim 85 (depends on 76)

The computer system as in claim 76, further comprising means for associating at least one of a stream and storage, which are not contained in the model directory, with at least one of the root storages.

### Claim 86 (depends on 76)

The computer system as in claim 76, further comprising means for storing in the at least one root storage at least one of a first stream containing a header, a second stream containing session information, a third stream containing a manifest and a fourth stream containing file properties.

### Claim 87 (depends on 76)

The computer system as in claim 76, further comprising means for storing in the at least one of root storage a control model containing a control model header, a global control element list and a global graphic element list, wherein the global control element list and the global graphic element list contain element chunks including global elements, wherein the global elements are accessed for use in any model directory.

### Claim 88 (depends on 76)

The computer system as in claim 76, further comprising means for automatically sending a signal from the storage area to other workstations to notify users that an element chunk in a root storage had been modified.

### Claim 89

A computer system for modifying at least one encrypted element chunk stored in a main storage area, comprising:
a temporary memory;
a root storage stored in the main storage area and the temporary memory;
a model directory stored in the root storage;
at least one model stored in the model directory;
at least one graphic element list stored in each model;
at least one control element list stored in each model;
at least one encrypted element chunk stored in each graphic element list and control element list, wherein each element chunk comprises encrypted elements;
means for decrypting the element chunks and elements in the graphic element list and control element list in the temporary memory;
means for modifying elements in the temporary memory;
means for flagging the element chunks having the modified elements in the temporary memory with a dirty flag;
means for encrypting the element chunks having the modified elements in temporary memory to provide modified encrypted element chunks after a predetermined idle time has passed; and
means for replacing the encrypted element chunks in the main storage area with the modified encrypted element chunks.

### Claim 90 (depends on 89)

The computer system as in claim 89, further comprising a first workstation having the temporary memory, wherein the first work station modifies elements; and at least a second workstation accesses and views the modified elements upon request.

### Claim 91 (depends on 89)

The computer system as in claim 89 further comprising means for associating a header with each root storage.

### Claim 92 (depends on 89)

The computer system as in claim 89, wherein the computer system is the Internet.

### Claim 93 (depends on 89)

The computer system as in claim 89, wherein the computer system is an Intranet.

### Claim 94 (depends on 89)

The computer system as in claim 89, wherein the computer system is a local area network.

### Claim 95 (depends on 89)

The computer system as in claim 89, wherein the main storage area is a file.

### Claim 96 (depends on 89)

The computer system as in claim 89, wherein at least one of the root storages is adapted to be operable with a computer aided design program.

### Claim 97 (depends on 89)

The computer system as in claim 89, wherein each root storage is a file.

### Claim 98 (depends on 89)

The computer system as in claim 89, further comprising means for associating at least one of a stream and storage, which are not contained in the model directory, with at least one of the root storages.

### Claim 99 (depends on 89)

The computer system as in claim 89, further comprising means for storing in the at least one root storage at least one of a first stream containing a header, a second stream containing session information, a third stream containing a manifest and a fourth stream containing file properties.

### Claim 100 (depends on 89)

The computer system as in claim 89, further comprising means for storing in the at least one of root storage a control model containing a control model header, a global control element list and a global graphic element list, wherein the global control element list and the global graphic element list contain element chunks including global elements, wherein the global elements are accessed for use in any model directory.

### Claim 101 (depends on 89)

The computer system as in claim 89, further comprising means for automatically sending a signal from the storage area to other workstations to notify users that an element chunk in a root storage had been modified.

### Claim 102

A computer system for modifying at least one encrypted compressed element chunk stored in a main storage area, comprising:
a temporary memory;
a root storage stored in the main storage area and the temporary memory;
a model directory stored in the root storage;
at least one model stored in the model directory;
at least one graphic element list stored in each model directory;
at least one control element list stored in each model directory;
at least one encrypted compressed element chunk stored in each graphic element list and control element list, wherein each element chunk comprises encrypted compressed elements;
means for decrypting the element chunks and elements in the graphic element list and control element list in the temporary memory;
means for decompressing the element chunks and elements in the graphic element list and control element list in the temporary memory;
means for modifying elements in the temporary memory;
means for flagging the element chunks having the modified elements in the temporary memory with dirty flags;
means for compressing and encrypting the element chunks having the modified elements in temporary memory to provide modified encrypted compressed element chunks after a predetermined idle time has passed; and
means for replacing the encrypted compressed element chunks in the main storage area with the modified encrypted compressed element chunks.

### Claim 103 (depends on 102)

The computer system of claim 102, further comprising first workstation having the temporary memory, wherein the first work station accesses and modifies elements; and at least second workstation receiving, decrypting, decompressing and viewing the modified elements upon request.

### Claim 104 (depends on 102)

The computer system of claim 102, further comprising means for associating a header with each root storage.

### Claim 105 (depends on 102)

The computer system of claim 102, wherein the computer system is the Internet.

### Claim 106 (depends on 102)

The computer system of claim 102, wherein the computer system is an Intranet.

### Claim 107 (depends on 102)

The computer system of claim 102, wherein the computer system is a local area network.

### Claim 108 (depends on 102)

The computer system of claim 102, wherein the main storage area is a file.

### Claim 109 (depends on 102)

The computer system of claim 102, wherein at least one of the root storages is adapted to be operable with a computer aided design program.

### Claim 110 (depends on 102)

The computer system of claim 102, wherein each root storage is a file.

### Claim 111 (depends on 102)

The computer system of claim 102, further comprising means for associating at least one of a stream and storage, which are not contained in the model directory, with at least one of the root storages.

### Claim 112 (depends on 102)

The computer system of claim 102, further comprising means for storing in the at least one root storage at least one of a first stream containing a header, a second stream containing session information, a third stream containing a manifest and a fourth stream containing file properties.

### Claim 113 (depends on 102)

The computer system of claim 102, further comprising means for storing in the at least one of root storage a control model containing a control model header, a global control element list and a global graphic element list, wherein the global control element list and the global graphic element list contain element chunks including global elements, wherein the global elements are accessed for use in any model directory.

### Claim 114 (depends on 102)

The method of claim 102, further comprising the steps of automatically sending a signal from the storage area to other workstations to notify users that an element chunk in a root storage had been modified.

### Claim 115

A method of reading a file in a computer system, comprising:
creating the file by:
storing at least one root storage in a storage area;
storing a model directory in said at least one root storage;
storing at least one model in said model directory
storing a graphic element list and a control element list in said at least one model, said graphic element list having element chunks containing graphic elements and said control element list having element chunks containing control elements;
assigning a preselected number of elements to each element chunk;
allocating each element to an element chunk in one of said control element list and said graphic element list; and
reading the file.

### Claim 116

A method in a computer system for reading element chunks of elements in a storage area, comprising:
storing at least one root storage in a storage area;
storing at least one model directory in each root storage;
storing a control model in each root storage;
storing at least one model in said model directory;
storing a graphic element list and a control element list in each model and each control model directory, said graphic element list having element chunks containing graphic elements and said control element list having element chunks containing control elements;
assigning a preselected number of elements to each element chunk;
allocating each element to an element chunk in one of said control element list and said graphic element list; and
reading one of said element chunks.

### Claim 117

(canceled)
