I would like to suggest, too, that if you are considering an SQL database in the background, try one that is not expensive, and that has a liberal license. SQLite might be a great solution.
Then, to allow concurrent user access to a drawing, add:
-- entity tracking and locking (points, splines, circles, etc, just the same stuff the filter tool displays) as
-- well as user loging (or a user input field that doesn't rely upon networks and security mechanisms... maybe an input filter could accept a simple comma-delimited file that collaborative/trusted users can manage simply...)
using user+entity tracking to allow users to edit entities that are not connected/crossing in some way. But, if two users want to edit an entity that say penetrates another, a network message could say "user X wants permission to your right of way over part BBB123, and is proposing to/to NOT modify your part BBB123, but needs to edit part BBB246..."
Probably you most definitely want to avoid msaccess (too much overhead, licensing costs, not many people use it outside of corporate spaces, and if they DO, even with runtimes/standalone-executables, it would require ms windows. SQLite, IIRC is OS-agnostic, is VERY small, fairly robust, liberally-licensed, and has many other features/benefits. Going this route will keep your users from going amok if you were to try to introduce a lock-in database that prevents users from creating and importing parts not directly created in the ViaCAD/Shark interface.
http://www.sqlite.org/http://en.wikipedia.org/wiki/SQLiteAnd, a possible mega-bonus is that Firefox uses sqlite. Somehow, you might be able to integrate extension between ViaCAD/Shark and Firefox and enable a renderer for firefox, or a limited-functionality mark-up tool so that non-Shark/ViaCAD project collaborators can on a by-file or logged-in basis update their area of responsibilty.
An alternative might be the also-platform-independent MySQL (now owned by Sun). But, their license might still include redistribution restrictions/costs, and since Sun *might* still have some CAD presence somewhere, they may decide to malign it someway to generate a revenue stream... so, it's just me speculating, but it could be a legal/implementation morass/minefield even if entertained.
Just some tall thoughts.
Also, can the BOM be moved to OUTSIDE the file? A placeholder could be instead embedded in the file at the angles/coordinates as usual, but the content could go directly to comma-delimited or filter output of provision/choice. I find that though i might want a quick peek at the contents of the BOM, the sheer number of parts i dump to BOM bogs down my system. If you could come up with a two-way/live-updater-plugin-thingy that works with SQLite, Lotus SmartSuite (1-2-3, Approach), OpenOffice & OpenOffice.org (and NOT just ms office), whether it be comma delimited, .dbf, etc, as long as it's small, lightweight, FAST... but then....
Oh, a highlight about SQLite:
"Several computer processes or threads may access the same database without problems. Several read accesses can be satisfied in parallel. A write access can only be satisfied if no other accesses are currently being serviced, otherwise the write access fails with an error code (or can automatically be retried until a configurable timeout expires). This concurrent access situation would change when dealing with temporary tables.
A standalone program called sqlite3 is provided which can be used to create a database, define tables within it, insert and change rows, run queries and manage an SQLite database file. This program is a single executable file on the host machine. It also serves as an example for writing applications that use the SQLite library."
And, a business case that can give some internal high-profile to Punch!/CU/et al for using SQLite:
"High-profile deployment
SQLite's developers present a case for SQLite being the most widely deployed SQL database based on some of the more widely-deployed products known to be using SQLite.[4] These include:
* 125 million copies in Mozilla Firefox.
* 20 million Mac OS X computers, each of which contains multiple copies of SQLite. (In Mac OS X v10.4 Apple introduced SQLite as a persistence layer of the Core Data API.)
* 300 million downloads of Skype. (The Skype service has 100 million registered users.)
* Nokia phones with Symbian OS version 9.4 or later. (The first one is Nokia 5800)
* Every iPhone and iPod touch.
* Google Android phones like the T-Mobile G1
"
That means there could be the possibility for iPhones/iPods, or HTC devices and other physically-lightweight PDAs to markup/edit drawings in the field. Well, as long as ms doesn't get nasty and "break" interoperability. But, i can imagine creative CAD users or even architects delivering enhanced content to clients, gaming engines possibly interacting with ViaCAD/Shark.... who knows? Punch! might even be able to somehow attract the interest of city managers and county developers who have to refer not only to drawings but authorized/bad/forbidden/sanctioned parts in projects.
SQLite video:
http://video.google.com/videopl...cid=-5160435487953918649OK, time for lunch!