The Global ARCHICAD Community

Stay informed. Get help. Share your knowledge.

Producing imagery with ARCHICAD or 3rd party products; Surfaces; Lighting; Cameras; Artlantis/Cinema 4D/Maxwell etc.

Moderators: Karl Ottenstein, LaszloNagy, ejrolon, Barry Kelly, gkmethy

User avatar
By fuzzymike2002

we are wanting to cast shadows on the neighbors elevation, and to save this view without seeing our building.

This needs to be in an elevational view, not in a perspective view.

Has anyone done this and can you please share.

Thank you.
User avatar
By LaszloNagy
I might have a workaround solution but it takes several steps and you will have to redo it every time the shadow casting geometry changes.
Do you want me to post it?
User avatar
By fuzzymike2002
Hi Laszlo,

I think it could be useful for us and for others.

What we ended up doing was "freehand sketching" a fill onto the elevations based on what the 3D images show.

What was more frustrating was that the 3D images clearly show the extent of the shadows, but the council in all its glory must see true elevations!!

User avatar
By LaszloNagy
OK, so here it is.

My thinking was: how could I get those shadows visible in my 3D or Elevation Viewpoint without the shadow casting building blocking the view?
In Elevation it is not possible because the shadow casting building is behind the Elevation cut line so it is not even considered when generating the Elevation.
In 3D, I tried to do some trick with the shadow casting building, like setting their material to 'Air' to make them transparent, but in that case they do not cast any shadows.
Also, if I place them on a separate layer and make that layer Wireframe, the result is the same: they don't cast shadows.
If I try to place a camera between the shadow casting building and the building that receives the shadow, the distances on the elevation will be perspectively distorted.
In Parallel Projection it is not possible to go between the two buildings because it is always displaying all elements.

But I realized that in Parallel View I can define a custom view in which I will look at the model from the top, but in a way that I see the elevation onto which shadows are cast. Check the attached image and you will see that by setting those values for the X, Y and Z axes I could achieve a parallel view in which I can see the cast shadows, only they are 20% of their real size in the Z direction.
(Depending on how close of far the shadow casting building is, you may set values of, e.g., 100, 125, 200, 250, 500 which will need to be resized in GDL 10x, 8x, 5x, 4x, 2x, respectively, as seen in later steps.)

But this is something that I can work with to capture that geometry.
Last edited by LaszloNagy on Wed Apr 22, 2015 10:56 am, edited 1 time in total.
User avatar
By LaszloNagy
So the next step is that I have to capture that geometry and then resize it 5x in the Z direction in GDL to obtain the real sizes. In the X direction the sizes are correct.

To capture it I can simply use the Marquee.
One important thing though is that you have to switch the 3D Window to the Internal Engine, because if you draw a Marquee in 3D and copy it to the Clipboard, it will paste an image (bitmap).
However, if you do it while using the Internal Engine, the copied data can be scaled vectorial data.

So, switch to Internal Engine in the 3D Engine field of the 3D Window Settings Dialog.
Then draw a Marquee around the projected elevation and press CTRL+C to copy it to the Clipboard. Select the options that you see in the attached screenshot.
Last edited by LaszloNagy on Wed Apr 22, 2015 10:56 am, edited 1 time in total.
User avatar
By LaszloNagy
Now, we need to resize the captured vectorial data.
The Resize command cannot be used because it resizes in both direction.

So the solution I found was to use some GDL since in GDL you can resize independently in either direction:

1. Use the File\Libraries and Objects\New Object menu command to create a new GDL Object.
2. Activate its "2D Symbol" Window and Paste the copied vectorial stuff into it.
User avatar
By LaszloNagy
Now we need to do some cleanup work.
Delete all lines and fills that do not represent any part of the shadow you wish to obtain.
The attached image shows what is left in the 2D Symbol Window after cleanup in this example.

One thing I wish to note: if you elevation is staggered, you will need to move the shadows of those staggered segments into one line because that is how you will see them in Elevation. Basically you just need to shift their positions in the Y direction in the 2D Symbol Window.
ShadowCleanup.png (11.61 KiB) Viewed 7855 times
User avatar
By LaszloNagy
Now we need to resize this in the Y direction by 5x.

Open the 2D Script of the GDL Object and type the following:
Code: Select all
MUL2 1, 5
The MUL command will multiply everything in 2D 1x in the X direction (same size) and 5x in the Y direction.
The FRAGMENT command places the vectorial drawing content of the 2D Symbol so it will be visible in the 2D View of the GDL Object.

Now you can save the GDL Object. I would recommend saving it into the Embedded Library as it is a project specific library part.
Give it a good descriptive name, like "South Elevation Shadows".
User avatar
By LaszloNagy
Now, as the last step, you can open the Elevation into which you wish to place it and place it to its correct location.
Its size will now be correct.

You will also be able to define the line pen and fill type it is displayed with.

The only one drawback is that this procedure need to be repeated whenever the shadow casting geometry changes (which hopefully will not be that many times).
In such a case you will only need to do the capture, copy, paste and cleanup steps, because the GDL 2D Script code will be correct.
User avatar
By fuzzymike2002
Thank you so much for that Laszlo, it must of taken quite some time to write it up.

We will put this to the test ASAP and report our success or ask any questions.

Thank you again.