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

Lighting fixture object - cutting ceiling hole with SEO

matjashka
Advocate
Hello AC experts,

I have created an object representing a recessed light -- see attachment (3D section). In order to cut the appropriate hole in the ceiling soffit, I need to use an additional cylinder to do SEO and later hide its layer.

Is it possible to include an "invisible" solid within the GDL object itself, so I could just use the object as the SEO operator? Or is it possible to automatically cut the hole without having to resort to SEO at all?

Thanks a lot!

Screen shot 2010-08-04 at 1.38.35 PM.png
Matt Krol [LinkedIn]
BHMS Architects and Planners, Chicago
AC 10 ... 26 USA
11 REPLIES 11
Anonymous
Not applicable
AFAIK if your object has been created with solid elements (ie. slabs etc) rather than single surfaces then it should be able to perform SEO's using it as the operator. In your case because the outer perimeter of your light is recessed up above the ceiling plane use the "Subtraction with downwards extrusion" option. My experience here is very limited though, so I am happy to be corrected.
matjashka
Advocate
Thanks Stuart - that was actually a brilliant thought, it's just for some reason the upward extrusion gives some results with this lamp, while downward extrusion does not do anything.

I will try creating a simple revolved solid and try to turn off wall/edge visibility in GDL, so *in theory* this will create an invisible solid around the light fixture that I hope will be included in the SEO calculation. The question is, will this be still treated as a solid element. I will report.
Matt Krol [LinkedIn]
BHMS Architects and Planners, Chicago
AC 10 ... 26 USA
Erich
Booster
matjashka wrote:
...Is it possible to include an "invisible" solid within the GDL object itself, so I could just use the object as the SEO operator?...
This is possible but you must script the object to make it happen. Your code for the main object will remain just the same but then you will add an if/then statement invoking the GLOB_CONTEXT variable (for when GLOB_CONTEXT equals 43 or 44 most likely) in which you script for the elements to be present during the SEO operation.
IF GLOB_CONTEXT = 43  OR GLOB_CONTEXT = 44 THEN : do something here to occur during an SEO operation : ENDIF
If you have made your light from slabs, walls, etc and allowed ArchiCAD to create the GDL code, this can still be added (assuming you saved the part as editable GDL script) but there will be a scaling factor that must be dealt with as you script your part. You will also still need to know a little about GDL scripting.

HTH
Erich

AC 19 6006 & AC 20
Mac OS 10.11.5
15" Retina MacBook Pro 2.6
27" iMac Retina 5K
matjashka
Advocate
Erich, sorry about my delayed response.
The GLOB_CONTEXT worked like a charm (when it eventually occurred to me that it was that simple).

Thank you Erich, and Stuart as well!
Matt Krol [LinkedIn]
BHMS Architects and Planners, Chicago
AC 10 ... 26 USA
Erich
Booster
Glad it worked for you.
Erich

AC 19 6006 & AC 20
Mac OS 10.11.5
15" Retina MacBook Pro 2.6
27" iMac Retina 5K
kevin b
Contributor
Looking for a similar solution for AC14 Library Lights. Using the Recessed Flourescent for example, when subtracting downward, only some of the elements from the part subtract the ceiling (ie. the lamps), so I am assuming the others (ie. the housing) were not actually solids to begin with. So how can I add something to this part that will subtract out a rectangle from the ceiling and will change if I change the size of the fixture?

Thanks
kevin s burns, AIA

massachusetts, usa



AC25 (1413), since AC6

Windows 10

Intel Core i7 -8700 @ 3.2 GHz~ 16 GB ram
matjashka
Advocate
Hi Kevin,

I don't know how you created your fixture but I assume like most people you built it in 3D and saved as editable GDL object.
Your objective is to add a "cutter" volume to the GDL code that will cut a hole, but remain invisible (this was my main question above). Now, you can either add this volume to the group of solids that make up your light and re-save, OR you can just add the code to your existing object.

For all who look for similar solution:

1) as a general rule, ID all your solids so it's easier to find the solid in GDL code;

2) the new solid must have the same space coordinates as your original;

3) you may save only what you need as a separate GDL object, and just open its code, copy and paste relevant fragments of code to your original object. It's much easier than typing the code from scratch.

4) as Erich pointed out above, wrap the "cutter" volume GDL code with GLOB_CONTEXT conditional statement (see Erich's post). It won't show up in 3D but will join the volumes calculated in SEO.

5) because you want to keep it parametric, the same size variables you use to resize your light fixture will also apply to the "cutter" volume. I'm lazy in this case -- if the volumes are more complicated, I just bulk save all manufacturer's sizes into the same library part and use some functions to display only the size I need. This is faster than scripting everything.
Matt Krol [LinkedIn]
BHMS Architects and Planners, Chicago
AC 10 ... 26 USA
kevin b
Contributor
OK, I think I got it. Thanks.

Now the next question, is there a way to make it cut the whole automatically, like doors do in a wall, without having to do SEO?
kevin s burns, AIA

massachusetts, usa



AC25 (1413), since AC6

Windows 10

Intel Core i7 -8700 @ 3.2 GHz~ 16 GB ram
matjashka
Advocate
From my very limited knowledge, unlike the WALLHOLE object, the cutting objects in GDL apply to the objects wrapped with CUTSHAPE, CUTFORM etc., so the answer may be negative.

I'd like to know by myself.
Matt Krol [LinkedIn]
BHMS Architects and Planners, Chicago
AC 10 ... 26 USA