Just wondering something... An idea has been rattlin' around my head for a long while, and I thought I would post here to ask what others think about the feasibility of it. I've been heavily using a object-orientated parametric cad system for the last two years (AutoDesk Revit). I've been getting heavy into Radiance, which has a very robust way of describing 3D geometry using plaintext. I've also been getting into Python, and see that it can be object orientated, jive with OpenGL, is portable, has UI widgets, and is very robust while being easy enough for non-programmer to use. Finally, I've been looking at CVS revision control systems, which allow for server-side management of text & binary files. Typically these are used by software developers, but can really manage any information. OK, so something clicked, and here's my big (probably horribly flawed) idea, that I want y'all to tell me why it won't work: Would it be possible to make a 3D parametric CAD system by using a robust plaintext with a highly modular organizational system for geometry storage, a second XML file with the same name for the CAD system to understand what an object 'is', uses Python as the code base, uses a GUI of primarily traditional 2D views of the 3D data (plans, sections, elevations, schedules, ect) and extensively uses the CVS system to allow people to work on the same projects at the same time. What I'm thinking is that the building would be a collection of plaintext objects, named & organized in a system-defined way, or divided into a geometry file of Radiance format & a plaintext file of it's parameters within the system (a XML format to describe what the objects are to the CAD system- such as 'I'm a door' and such) instanced, 3D, modular, and completely object-organized (ala Inventor or Revit- no layers); this in turn is hashed upon by both a GUI-driven system of python programs that do various tasks and are arranged to present itself as a monolithic application, ala Blender or Sketch, and also by 'blind' processes of command text-manipulation line tools & custom command line tools; In turn this data is parsed to generate 2D views & sections, 3D views, schedules, renderings, and more, which are saved out also as plaintext XML files that simply describe where to cut & crop the model, how to present the information if you will; and CVS is used to manage who's doing what to which part of the building at any point in time. What I'm thinking is that a user would use the GUI to open up the master project file, which would list all the drawings/schedules/ views/renderings within the project, they would pick a drawing/set of objects to work on,=20 CVS would check out that part of the building, the system would parse that plaintext data and show a 2D or 3D representation of it, which the user could manipulate, along with a 'background' of the non-checked out data that they couldn't edit, and as they made changes to the objects on screen the application would echo those changes back to the plaintext files, making the necessary edits to both the geometry files & the XML content files, and when they released that part of the building, the CVS system would update and/or merge the plaintext files back to the server & allow for the user to make comments along with the work. Sorry to dump on the list, this is something that I've been thinking about for a year or so, and just recently it 'clicked' and I kinda wanted to write it all down. I'm an Architect, who's getting heavy into 3D and programming, who's very interested in creating a bi-directional, parametric 3D CAD system for Architects (even tho this is totally and completely beyond my current ability :) OK, so why does my idea suck? :) Am I totally barking up the wrong tree? Would plaintext just be too slow? Jeffrey McGrew