POV-Ray : Newsgroups : povray.advanced-users : Enabling relative coordinate placement : Re: Enabling relative coordinate placement Server Time
3 Jul 2024 04:49:54 EDT (-0400)
  Re: Enabling relative coordinate placement  
From: Kene
Date: 21 Sep 2009 11:20:00
Message: <web.4ab793a2ba1022f6772dd76f0@news.povray.org>
Hi:

I am really excited about this. If I had known during my Ph.D. research I would
have used POVRay instead of creating a prototype that I have to discard.

I am itching to implement my ideas but let me take some time and explain what I
am doing. The discussion that is going on so far and some old discussion on
POVRay arrays in 2003 by Jaap Frank is really throwing a lot of light and ideas
at me.

I am actually trying to implement a Building Information Modeling System using
POVRay. The overview of my thesis is that buildings are composed of parametric
objects and so we should not focus on drawing lines or even creating objects but
on design and analysis. We should set custom parameters (what you referred to as
Datum, I think) such as "Site_Datum = Location", "Building Level 1 = 4500 mm",
"Building Level 1 Wall Height = 3000 mm", "Stair Riser = 150 mm", "Building
Level 1 Wall Insulation = R4", etc. Basically all the minimum requirements from
the user and from the architectural standards will be known by the software as a
way to assist the designer. This is just a part of the requirements that you
will supply to the tool. Some will be coded into macros that the user does not
see but some the user should be able to change.

Then the basic objects that will be used are Spaces, Walls, Windows, Doors, etc.
The designer starts with spaces. It is easy to put spaces to sort out your
circulation and proximities. These will have default parameters so that the
designer does not have to type a lot in the beginning. These defaults can also
be change if there is a desire. For example with a few strokes of the key a user
can create spaces of different shapes and sizes (right now only rectilinear,
circular and trapezoid) with tinted transparency. This is because these spaces
are created with Envelops at all sides. Door and Window openings can be added to
the Envelopes with a few additional commands to show functionality in the
design.

Once the spaces seem to make some sense, detailed Walls with different finishes
and treatments (preferably real world options from Sweets catalogue or the
firm's preferred door and window schedules) can be replaced for each part of the
Space object with a few modifying commands to the spaces.

To simplify this for architects (a lot of whom do not like typing, I must say) I
use macros to do a lot of the work. The user just enters the relative
dimensions, treatments and types of objects. I have set up this framework and to
me it is fun so far. I need to move things into macros like I have described but
the following is a little on my implementation so far.

For example:
- First of all I included arrays.inc so I can redefine my arrays without
destroying what is saved inside
- I have an array called Wall_Props. This is the only array that holds
everything about the walls.
- When creating a wall the user needs to include an identifier, preferably
whatever the declared name is. This string is initialized to an integer for
example:
BedRmWall01Coords = 1
BedRmWall01Texture = 2
- An array to hold the Wall Coordinates and another to hold the Texture, etc.
- Then I connect them in a single array with the following
#declare Wall_Props[BedRmWall01Coords] = Wall_Coords
#declare Wall_Props[BedRmWall01Texture] = Wall_Texture

The user then makes a wall with
#declare bedRmNorthWall = object{ Make_Rect_Wall( "bedRmNorthWall", "bedroom
wall on the north side", 5000, 3000, 230 )}

In the macro Make_Rect_Wall, the Wall_Props is resized and the necessary
information is added.

This wall is then placed in the scene by the designer by using a Put_Wall
command with relative coordinates. A macro gets the coordinates for the wall
using the supplied id to access the current coordinates (which is initially set
at the origin by Make_Rect_Wall. Then the wall becomes visible.

I may be rambling here but I have not had much sleep. I need to prep for work
but looking forward to this weekend. the main point for me though is that now I
can really have fun with building and actually begin to create and manage
building information the way it should be without the influence of the
commercial CAD vendors. Eventually, it should be possible (I can actually taste
it already) to export the building information using a format like STEP of IFCs.
Then any software out there can read it and give me flat plans and section.


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.