Octrees, BSPs, others

I am writing a program that will render CAD-related data. However, rather than NURBS surfaces or other similar surface definitions, my data set consists of points and lines grouped together into surfaces, which are grouped together into parts.

I have been thinking about what type of representation I should use for this app. BSPs seem to deal mainly with surfaces/polygons and probably would not be a good choice for my data.

Using an octree seems to be a viable choice, but I’m a little worried about the size of the structure. Data sets in my application can run anywhere from one line to thousands of lines. Also, lines can be deleted, changed and added to the model. I think an octree can handle this, but I’m not sure.

Can anyone offer an opinion on this? Are there other, more suitable, structures that I can use?

I’m wondering about something similar for a medical imaging application. I need a framework to arrange objects in interactive parent-child relationships.

Is the Open Inventor framework suitable for this kind of thing?