Libraries & objects
About Archicad and BIMcloud libraries, their management and migration, objects and other library parts, etc.

Object 2D Projection - Cut in plan view

owen
Newcomer
This has to have been discussed somewhere before, so apologies in advance if im covering old ground ...

Im trying to think of an 'easy' way to make a 2D plan projection of an object but with a controllable plan cut height ..

A simple example of the use would be to generate the correct plan view of an angled column on each storey as it rises through a building. I know how to control visibility by story but what i cannot work out is how to cut an object at a specific height rather than from an infinite point above to generate the plan view as PROJECT2 does

AFAIK there is no way of doing this as a projection of the 3D model? (such as PROJECT2)

The example of a column would be relatively simple to script in 2D using lines etc, but I am intending to use this to generate accurate plan views of some more complex elements (e.g a curved truss) spaning across multiple floors where we want the plan view to change as you move through it

I have been thinking about this on and off for a couple of days but at this point I really have no idea how to do it.

Any hints?
cheers,

Owen Sharp

Design Technology Manager
fjmt | francis-jones morehen thorp

iMac 27" i7 2.93Ghz | 32GB RAM | OS 10.10 | Since AC5
9 REPLIES 9
Dwight
Newcomer
The 3D cutting planes would let you create a downward view of an object placed in floor plan view at a specific altitude.

This specific view could be pasted into the 2D view of your object....

The process involves placing the object into the plan, cutting it with the cutting planes and using the resultant view as the symbol....

Fragment views in the 2D script could refer to several different plane cuts for parametric variety.
Dwight Atkinson
owen
Newcomer
thanks for the tip .. so quick!

my only problem with this is it is really restricted for use on 'static' objects ... if for example you changed the angle of the column the fragments for the 2D symbol would need to be regenerated manually?

whilst out to lunch i had an idea ... not sure if it will work but the principle is:

1. The object can ask if it is being viewed in plan, section/elevation or 3D

2. The object can request its height relative to project origin and storeys

3. An object parameter can be used to set the plan cut height above a nominal floor level

The object will determine if it is being viewed in plan and turn on a 3D CUTPLANE. The 3D script will use the objects height relative to the project orgin or storey, along with parameter 3 to determine the height to set a CUTPLANE to remove the part of the object above the floor cut level.

The 2D script then uses PROJECT2 to display the trimmed object in the floor plan. Another CUTPLANE could be used to remove elements below the floor level if needed .. just showing the 'slice' of the object from 0-1500mm above floor level for example.

If the object is being viewed in a Section/Elevation or 3D window the CUTPLANEs are turned off and you see the entire object


This could be done with a tiny subroutine dropped in at the start of any 3D script? Now that i think about it this sounds too straight forward. I wont have a chance to look at this for a few days ... anyone think of any flaws in this idea?
cheers,

Owen Sharp

Design Technology Manager
fjmt | francis-jones morehen thorp

iMac 27" i7 2.93Ghz | 32GB RAM | OS 10.10 | Since AC5
Dwight
Newcomer
swell.
Dwight Atkinson
I thought I had done this before. Why is it not working in this file? Or actually it does work, but doesn't update automatically as I switch stories. For the floor plan view of the object to update I am needing to open the Library Part Window, close, then Save, and only when I Save the floor plan view switches to showing the cut corresponding to the current story.
owen
Newcomer
I couldnt read the PLA (Unknown Document version..? we are both on v9) however I think I know the problem you are refering to.

Attached is a quick test object using a cone which can be angled and a cut height above floor level set. I also threw in some text to show height of the current cut relative to the objects origin.

At first my 2D script was a basic PROJECT2 line and it was behaving the way you describe .. it would only update the plan view if you opened the object and resaved it.

I then added the text to check it was requesting the elevations correctly (requesting the objects Home Story Elevation, Current Story Elevation and objects elevation relative to its home story) ... and it started working?!

I assumed Archicad ran through all the objects scripts each time a view was rebuilt but this seems to indicate it wasnt? Not sure why these requests in the 2D script would trigger it either ..
cheers,

Owen Sharp

Design Technology Manager
fjmt | francis-jones morehen thorp

iMac 27" i7 2.93Ghz | 32GB RAM | OS 10.10 | Since AC5
Frank Beister
Advisor
ArchiCAD tries to calculate the model most effective. It does not see, that it's necessary to calculate a new 2D-view, if there are not used some level relevated globals in the 2d-skript. Else the 3D and the 2d model would have to be updated each time you change a story. Archicad saves the calculated elements as far as its "this item has changed" system discards them. I think that's one reason, why we don#t get interactive object. If you change one object, the model would has to rebuilt.
There was a ArchiCAD version (4.55? 5.0?) which updated the zone stamps automatically, when you changed a wall. This was such a performance killer, that we had to hide them or to change to polygonal/manual. Awul. Then we got the manual update.

Back to your object: You should be aware, that your object will not work correct on ghost stories: The objects laying on a ghost story do get the same level informations as the current sory. AFAIR this should be fixed in any of the next versions. There is no work around for this issue.
bim author since 1994 | bim manager since 2018 | author of selfGDL.de | openGDL | skewed archicad user hall of fame | author of bim-all-doors.gsm
F. wrote:
ArchiCAD tries to calculate the model most effective. It does not see, that it's necessary to calculate a new 2D-view, if there are not used some level relevated globals in the 2d-skript.
Hahah, I added
dummyvar = GLOB_CSTORY_ELEV
at the beginning of the 2D script and it works perfect. Thanks.
Frank Beister
Advisor
Just a dummy is enough. Right.

Hu. Buenos Aires. 5:40 am. Earlybird or tons of work?
bim author since 1994 | bim manager since 2018 | author of selfGDL.de | openGDL | skewed archicad user hall of fame | author of bim-all-doors.gsm
Lingwisyer
Guru
Bringing this back alive, as the cutplane with glob_context worked well at getting the desired projected section of my object at a set height in plan, but how do you get the cut materials?

The issue here I think is that by using a cutplane to cut the object, then projecting that cut face, you are technically not cutting the object and you only see faces?

project2{4} contains cutplanes at user defined heights, as well as definitions for cut fills but I have been unable to get anything other than a infinity projection. I started a thread regarding my attempted use of project2{4}.



Ling.

AC22-23 AUS 7000Help Those Help You - Add a Signature
Self-taught, bend it till it breaksCreating a Thread
Win10 | R5 2600 | 16GB | GTX1660