Cary, I'm fascinated by what I think you're talking about here. Could you go into a bit more detail about these datum planes you use and your parametric approach? Pictures, videos, and personal, one-on-one hand-holding at your expense are all welcomed. Thanks!
Well, I don't want to "hijack" Vektor's thread here so I'm just going to post once on that topic... if you want to pursue this further, we can create another thread or we can go "private."
I'm going to use my "Bonaventure" model as a reference. But this approach follows generally.
Unlike with some other vessels, my work on the Bonaventure has the entire hull constructed as a single "part." On more complicated efforts, I make assemblies of multiple parts. (This version of the Bonaventure was never intended to be a "complex" model, so much as a "what if" exercise... just to see if I could make the animated-series ship look good, and look real, and make a degree of sense to me.)
Here's a cross-section of the Bonaventure. You can see the various datum planes reflecting my floors and ceilings (those are normally hidden) The "model tree" at the left is a sequential display of what is created in what sequence... I'd usually cut that part of the UI out of the view, but it's worth seeing it here... the point is that I created those (reflecting my floor and ceiling surfaces) before ANYTHING else, and use them as a reference as I create everything else.
(click the thumbnail to see the full-size image... don't want to make the thread load more slowly than it should for images unrelated to Vektor's work!)
Now, virtually all geometry in ENGINEERING applications (as opposed to "artistic" applications... ) is done using sketched 2D sections in one fashion or another. Here's a simple example... you can see the parametric sketch which defines the rotated cross-section for my "main sensor/deflector dish." An axis exists in the part (created separately) and I used that as the centerline of my sketch... drew 1/2 of the shape, and revolved it around that axis to create a solid (not "surfaces" like most 3D graphics programs do, but they have similar functions that just do surfaces).
You'll note that the sketch is dimensioned, of course... I can create those dimensions simply (as seen here) by entering a value into them directly... or I can have complicated mathematical algorithms. Most commonly, simpler equations are used, though... things like "the diameter is 1/10 of the length" or conditional things like "replicate this pattern by X times... with X being 5 if the length is less than or equal to this value, and 8 if X is greater" or so forth.
It's almost like working with a programming language (and yes, I can even implement input routines or conditional loops or any other programming tool you're accustomed to, so that the model regenerates itself "on the fly" based upon my input.
Now, you can any geometry referencing any other geometry, basically... so I sketch basic shapes and guides and so forth before I start my physical modeling, most of the time. Since virtually EVERY "physical feature" is based upon sketches anyway, it's only reasonable to have certain "root" sketches that everything else follows from.
SO... after working out he basics, and figuring out generally how many decks I want it to be, how long I want it to be, where certain features need to be, etc, etc... I use that to create my basic... well... "skeleton" for the model. And I use those features to define later features. For instance, the centerlines of my nacelles are defined by a distance from the centerline of the secondary hull and an angle from the centerline of the secondary hull (well, actually from the axis which I created to represent the centerline of my warp reactor assembly... but you get the idea).
What it means to be "parametric" is that we're dealing with ALGEBRA rather than with "locked in stone numbers." I can easily adjust the angle or the distance simply by altering the value of that particular dimension, and "regenerating" the model.
Now, for instance... I created a parameter up-front called "floor-to-ceiling_ht." I established the distance upwards from the deck to the adjacent ceiling. And I established another parameter called "inter-deck-thickness." So, when I started creating my series of decks, instead of typing in a value every time, I simply assigned each plane's location as being offset from the next one by one of those two variables.
If I then decide to change my deck-to-deck spacing to a smaller number, I only need to adjust that one variable and the whole model updates as a result. Granted, some features may fail (like rounds whose original value may result in them intersecting some feature that they didn't intersect before, due to the "respacing") and I may need to "tweak" them a bit to get them to work again... but it's a LOT easier than rebuilding from scratch... or individually moving around NURBS surfaces!
Anyway... that's a basic primer on the differences between "engineering CAD" design (3D, but driven in large part by 2D elements existing in a 3D world) and "rendering" work (which is usually a bit less "dimension-oriented")
My "work" flow is all about the CAD software, of course... but for "hobby" work, I've found that I like doing the model in CAD first, then exporting it to some other software (I've been using Maya 6 for a long time and am pretty good with it... PROVIDED that I can get the damned model to translate in as NURBS!) Once in there, it's divorced from the original, parametric model... it's just a normal Maya model, and can only be edited using the built-in Maya toolset (which is extensive but totally non-engineering-related) The great thing about Maya is that I can do things with rendering that no CAD package every could... like my "real-time flaming bussard collector" effect I have in my "Vega" warp nacelles or the "vorlon skin" morphing exterior radiator panels on the same nacelles... both of which can be seen here...