Assignment #7: Initial CAD Tool Suite


Based on your CAD tool proposals, here is a suite of tools, broken down into small manageable tasks that should not be too difficult to prototype. Each person should take responsibility for one tool, but working with others is encouraged; at the very least you will have to make sure that the output of one tool gets accepted as input by other tools, and that the tools properly obtain and deliver data from and to the general database.

Database:

Refine the database format and extend the format to capture geometrical information as outlined below.
Create suitable read and write modules as well as partial converters from and to Unigrafix.

NetSketch:

(See: Sefler: Sketchtalk; Bacher: Pint2Point)
A two-way interactive drawing panel connecting two users over the net.
Concentrate on drawing panel. Assume use of telephone for discussion.

ModelSlicer:

(See: Downs: section 2.2; Bukowsky: FloorForm).
Starts with a 3D Form.Z model and a specification of the number or separations of floor planes for each building wing; produces the floor plan outlines for each floor. These outlines should be usable as input to either the BubbleDiagramBuilder or to the FloorSpaceManager.

BubbleDiagramBuilder:

(Many have proposed something like this).
Reads list of desired spaces and sizes from database; creates visual display representing each space as a circle, ellipse, or rectangle with size proportional to desired area. In bubble, size information and type tag is displayed.
Ellipses and rectangles can be deformed into other aspect ratios by grabbing handles in a MacDraw style, keeping area constant. (Perhaps one handle, lower left corner, shown in red, could be used to graphically change area of specified space type; alternatively, a CTRL-mouse-drag operation could be used for that).
Bubbles can be moved around by grabbing them Enywhere, except on handles.
Bubbles can be cut; when (a, say, vertical) cut-line is moved, area and percentages of the two halves are displayed in real time; when the cut is executed, the two halves form separate bubbles of appropriate sizes.
Bubbles can be grouped and merged into a single bubble. If bubbles of the same type are joined, a bigger bubble of the same type will result. If bubbles of different types are merged, a compound bubble with a special color will be generated.

FloorSpaceManager:

(See Downs: 2.1; Simmons: 1.1; Bacher: Alet)
Reads bubbles or rectangles of desired "rooms"
as well as bubbles or floor outlines of available "partitions".
Allows interactive movement of room bubbles into partitions, while keeping track (instantly) of occupied/free space in each partition as well as certain sub-totals of particular space types. Writes generated floorspace allocation back into database.

AdjacencyChecker:

(See Downs, Keller, Simmons)
This tool either reads data from an adjacency matrix or it permits interactive editing of a bubble diagram, enhancing the latter with rubberbands between bubbles which have different width to indicate strength, and different colors to indicate whether adjacencies are desired or repulsive. These rubber bands are maintained when the bubbles are moved.
When a bubble is split, the attached rubberbands reattach themselves to the closer of the two halves.
When queried (or after each move when bubble is deselected) some weighted sum of the lengths of the rubberbands is calculated and displayed. This permits a quick evaluation of a floorplan at the rectangle level.

FloorPlanGenerator: [-Rick L.]

(See Lewis #1)
Converts schematic rectangle based floor partitioning into an extrudable floor plan with default placement of windows and doors.
Room rectangles should be placed on union of floor rectangles; difference between the two defines corridors. Adjacent rectangles can be connected by doors, partitions, or "opens connections" (such as between two adjacent corridor sections. Description is maintained in schematic form so that it can easily be edited by the user.
When all symbols are in proper place, the schematic is converted into a geometrical form suitable for extrusion with some Unigrafix tool; e.g. merged and shrunk floor polygons for each room; plus outer contour for skin of building.

FloorPlanExtruder:

(See Lewis #2)
This is the tool that actually extrudes the floorplan into a simple walkthru model, creating inside-viewable boxes for all rooms with suitably tailored floor and ceiling polygons. The heigth of extrusion may be table driven, where different room types have a different default extrusion height.
The tool inserts previously defined symbols for doors and windows, and (in later turns of the tool development spiral) will include models of stairs generated by StairMaster (Lewis).

Geometry Extension to DataBase.

This is mostly another version of UniGrafix/Glide with a modified syntax to fit the database format.
Major keywords are g_; this should give you an idea of what I have in mind: