Archicad Windows missing in Grasshopper

Hi again @gokermu
Thanks for solution, i could get it perfect in rhino but still isee when i want to import directly to grasshoper the model misses the windows. Any tricks for retrieveing the windows in the model?

Regards
Niloo

Did you have the windows in the speckle commit itself?

Hey there! From what I recall, windows are part of the wall element. You might want to check if walls have an “elements” attribute. If it’s there, it probably contains a list of objects like doors and windows. You can access them from there.

Just a heads up, we’ve made some changes in the Next-Gen connectors. They’re no longer part of the wall element. Once we have a next-gen Archicad connector, it will work the same way.

yes i have the windows in speckle itself. And in rhino it gets imported as mentioned as a part of the walls. But when i want to have it directly in grasshopper from Speckle, i cant see any windows in grasshopper with importing the walls.

That looks great if we can get the windows as well. I will check and be updated about the new Archicad connector release. Thank you very much.

Do you mean i check the attributes in grasshopper or in Speckle one?

1 Like

Basically both. The structure of Speckle data and what’s inside Grasshopper is same.

1 Like

Thank you for your help. I just encountered some issue now, the send component gets deleted each tim i open the gh definition. I have to add the send component manual. Is there any tips for that?

That would be a separate issue. Let’s solve this one first. Can you please share a sample model URL so we can try to show you how to access the Windows and Doors hosted on a Wall?

This is just a simple model i tried to do some tests on.
main - Speckle test | Speckle

Hi, just wanted to have a reminder if there is any news about the windows in grasshopper? :slight_smile:

ArchiCAD windows (and Revit Windows and IFC too for that matter) are not flat listed in the data and usually are part of a hosting relationship with the Walls they relate to.

On the flipside of that Speckle holds a record of such objects within the host in an elements property.

So working through your shared example:

  1. Not critical, but what I prefer to do when data diving BIM projects in GH is to use the Collection flattened

  2. Review which we want to inspect, select and Decompose the Object:

  3. Because we are inspecting a collection, the elements here will be all of those of the type specified. (Here, different connectors use collections for different purposes, but here, we know it is just walls
    I know these walls have a property called `hasWindow, ’ a boolean. So we can see which wall we want to look at, and clearly, there are several GH methods to use this.

  4. As that wall hasWindow was True I can inspect its elements property and expect to find Windows. There maybe other hosted elements such as Doors, CurtainWalls and maybe Lights? Signage? I forget how ArchiCAD works.

  5. From here, the usual way to find useful geometry is in the fallback display Mesh. In some circumstances like structural columns or even the wall itself, you may wish to access the parametric definition of the element, but right now I will access the Mesh

  6. Two windows, two meshes for each window - Frame and glass I expect. Pay attention to the mode I have set above for the Speckle Object by Key. I have chose to not convert the object. Doing so would indeed extract the Meshes, but I want to leave them as Speckle objects for now Object.Geometry.Mesh. This is simply in order to separately extract the Materials used as defined in ArchiCAD.

Not critical as with the first example, but it demonstrates the two modes of operation of Speckle objects - as soon as you convert, it will try to create a native object if possible. Object.Geometry.Mesh has a direct conversion to Mesh and so can do so, but this will jettison any other metadata you/we have applied to the Speckle Object form.

Use these simple steps to explore all the other geometries in this and other datasets you have.

image
Two windows

1 Like

archicad-windows.gh (20.6 KB)

1 Like

Thank you @jonathon for your explanation. I managed to check the process you mentioned and took a look at the file.
It looks that it is working fine for that example. I just noticed that it is very customized for a specific model. If we import other models we have to change the list item as i noticed. Is there any other way that we can generalize it for any kind of model so we do not change the algorithm every time we import a new model?

It will be pretty consistent, and there are ways to generalise it - the need for customisation is only likely between different software Revit, ArchiCAD, Cvil3D, Naviworks… etc.

e.g. Instead of inspecting each step for hasWindow and then selecting individual elements by index, that can feed into a boolean filter - and so on.

1 Like

Thanks for your answer @jonathon .I am working on the process as you mentioned but i cannot manage to get output from the component object value by key and i get the error that 1. Key not found in object: elements. Do you have any tips to solve this?

Got it fixed, was just a bit handling the input data problem. :slight_smile:

Hello @jonathon , do you have any guide for when we have curtainwalls in Archicad? They obiously dont go into the windows category in speckle, but how should we solve that part?