3D Generation

3D modeling is based on floating point arithmetics, meaning that there is no limit imposed on the geometric size of the model.
Whatever size it is, it retains the same accuracy down to the smallest details.

The 3D model that you finally see on the screen is composed of geometric primitives.
These primitives are stored in the memory of your computer in binary format, and the 3D engine generates them according to the floor plan you created.
The metamorphosis between the architectural floor plan elements and the binary 3D data is called 3D conversion.

The primitives are the following:

  • all the vertices of your building components
  • all the edges linking the vertices
  • all the surface polygons within the edges

Groups of these primitives are kept together as bodies. The bodies make up the 3D model.
All of the features of 3D visualization – smooth surfaces, cast shadows, glossy or transparent materials – are based on this data structure.

The 3D Space

The 3D model is created in three-dimensional space measured by the x, y and z axes of a master coordinate system whose origin is called the
global origin.

In Floor Plan view, you can see the global origin in the lower left corner of the worksheet if you open the program without reading a specific document.
In addition, the global origin defines the zero level of all the stories referred to in a floor plan document.

When you place an object into the design, the floor plan position will define its location along the x and y axes of this master coordinate system.
The location along the z axis can be set in the Object Settings dialog box or directly adjusted when placed in 3D.
This location will be the base and the default position of the local coordinate system of the object.
The shapes described in the script will be positioned with reference to this local coordinate system.

Coordinate Transformations

Every GDL shape is linked to the current position of the local coordinate system. For example, blocks are linked to the origin.
The length, width and height of the block are always measured in a positive direction along the three axes.
Thus, the BLOCK command requires only three parameters defining its dimensions along the axes.

How can you generate a shifted and rotated block?
With the parameter structure of the BLOCK there is no way to do this. It does not have parameters for shift and rotation.

The answer is to move the coordinate system to the correct position before issuing the BLOCK command.
With the coordinate transformation commands, you can pre-define its position and rotation around the axes.
These transformations are not applied to the shapes already generated and are only effective on subsequent shapes.