Cut Material in 3D
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
2021-05-10
08:08 AM
- last edited on
2021-09-14
09:13 AM
by
Noemi Balogh
The issue I have is that the graphical overriding (in German it's called Graphische Überschreibung) only works on the ceilings.
I've created a object which layers Polys every 0.50 m and changes surface accordingly.
My thought being that I could then use solid intersection to get these colors also on the ramp and ceiling of the parking garage.
The surface which is cut is just grey. I assume it's because of the building material. Is there a way to override this?
When I set the status code of the poly to 1 I can see that the colors are still there but only where the layers of the poly are.
MODEL SOLID For i =Von to bis Material BM set Material i !block A,B,hohe put 0 ,0 ,15 put A ,0 ,15 put A ,B ,15 put 0 ,B ,15 prism_ NSP/3,hohe, get (NSP) addz hohe next i
- Labels:
-
Library (GDL)

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
2021-05-10 08:31 AM

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
2021-05-10 10:50 AM
Ling.
AC22-28 AUS 3110 | Help Those Help You - Add a Signature |
Self-taught, bend it till it breaks | Creating a Thread |
Win11 | i9 10850K | 64GB | RX6600 | Win11 | R5 2600 | 16GB | GTX1660 |

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
2021-05-11 07:07 AM
AC27 USA on 16” 2019 MBP (2.4GHz i9 8-Core, 32GB DDR4, AMD Radeon Pro 5500M 8G GDDR5, 500GB SSD, T3s, Trackpad use) running Sonoma OS + extended w/ (2) 32" ASUS ProArt PAU32C (4K) Monitors
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
2021-05-11 09:05 AM
Lingwisyer wrote:
I think this has got to do with the Cut_fill settings. You would have to set it for each of your layers. I can only think of being able to change this via the Building Material command.
Ling.
I was afraid so. In the end the solution i found without creating a building material for each colour was to draw the layers as mesh and then using solid intersection. After I could turn it into a mesh again and save it as an Object.
A bit of a work around though

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
2021-05-11 09:11 AM
Podolsky wrote:Is the a way to set this up within a 3D script?
Hi. Check options in SEO - there must set "Use Own Attributes". And if you would like to see same colour when you cut in 3D (with marquee for example), set "Use Element Attributes" in Filter and Cut Elements in 3D dialog.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
2021-05-11 11:20 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
2021-05-11 01:40 PM
Podolsky wrote:I got a bit further in my project.
You cannot control external ArchiCAD commands with GDL script. Maybe I don't understand something - what exactly you need. If this is the case - I can review your file and script - if you upload it here.
My thinking is that if get this object to override the surface of what I'm loading into it in segments, it could easily adjust to change.
I would just have to select everything I want coloured and save them as an Object which I then "call" into it.
The issue now is that it doesn't change the materials of what I'm loading into it.
I thought that it might be possible to repeat the solid operation in using "for to next".
Here I encountered two problems: The Group "Z" doesn't change material and seems to stay on the first index
And I can't "count" the groups (As in "O(i)")
Is the a way to override materials given to something before? like clearing all attributes and assigning a new one
Versatz = 9.00 Von = 1 Bis = 21 Hohe = 0.5 addz -GLOB_ELEVATION-Versatz !GLOB_CUTPLANES_INFO[1] + GLOB_CSTORY_ELEV - GLOB_HSTORY_ELEV Group "Z" For i =Von to bis set Material i BUILDING_MATERIAL i hotspot 0,0,0 put 0 ,0 ,15 put A ,0 ,15 put A ,B ,15 put 0 ,B ,15 prism_ NSP/3,hohe, get (NSP) addz hohe next i del top Endgroup Group "O" !!Afterwards I want to insert a Call here !!The Idea being that if something changes, I can select all ceilings and ramps and just replace the object I'm calling add A/4, B/4,0 hotspot 0,0,0 set Material 1 BUILDING_MATERIAL 1 put 0 ,0 ,15 put A/2 ,0 ,15 put A/2 ,B/2 ,15 put 0 ,B/2 ,15 prism_ NSP/3,5, get (NSP) Endgroup Placegroup "Z" !Ziel Placegroup "O" ! Operator Result = ISECTGROUP{3} ("Z", "O", 0, 0, 0 , 2) addx A*2 Placegroup Result del 1
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
2021-05-11 05:05 PM
If I understand you correctly, there is a solution for this that I used in the Composite Mesh Object.
It is what I call a "GDL Jedi Trick" like "

So, to fool a Called custom saved object to display new BM's or any other parameters, the trick is to: In the Call definition of the saved object, define all the parameters that you want to override with a "-1" value. The CALL commands says something like: if the compiler can't find the value in the local list of attributes it will adopt the very previous BM definition. So put a BM definition right before the CALL. Then it will stick to the Called object.
It will give only a "minor error occurred message" while saving it, but it wont affect the object functionality.
Hope this helps.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
2021-05-11 06:22 PM
Braza wrote:Worked perfectly! Thank you so much!
Hi Arnaut,
If I understand you correctly, there is a solution for this that I used in the Composite Mesh Object.
It is what I call a "GDL Jedi Trick" like "These are not the droids we are looking for"
So, to full a Called custom saved object to display new BM's or any other parameters, the trick is to: In the Call definition of the saved object, define all the parameters that you want to override with a "-1" value. The CALL commands says something like: if the compiler can't find the value in the local list of attributes it will adopt the very previous BM definition. So put a BM definition right before the CALL. Then it will stick to the Called object.
It will give only a "minor error occurred message" while saving it, but it wont affect the object functionality.
Hope this helps.
i can now, call -> Override -> Cut and repeat
A lot more elegant than I would have managed!
MODEL SOLID if GLOB_CONTEXT = 2 then add 0,0,GLOB_CUTPLANES_INFO[1] + GLOB_CSTORY_ELEV - GLOB_HSTORY_ELEV CUTPLANE{2} 0,0 del 1 endif i = von h = von_H Group "O" CALL "Operator Höhenfarben" PARAMETERS materialAttribute_1 = 2, materialAttribute_2 = 3, materialAttribute_3 = i Endgroup if Sichtbar then placegroup "O" endif repeat i = i + 1 h = h + hohe Gosub "Schicht": until h >= bis_H IF GLOB_CONTEXT=2 THEN CUTEND ENDIF del top !=========================================================== End !=========================================================== "Schicht": addz h-GLOB_ELEVATION!-Versatz CUTPLANE 1,1,0,0 addz -hohe CUTPLANE 1,1,0,1 !Circle 10 del 2 !material i !addz -10 !Block 10,10,10 !del 1 CALL "Operator Höhenfarben" PARAMETERS materialAttribute_1 = i, materialAttribute_2 = i, materialAttribute_3 = i, materialAttribute_4 = i, materialAttribute_5 = i, buildingMatAttribute_1 = i Cutend Cutend Return