Learn to manage BIM workflows and create professional Archicad templates with the BIM Manager Program.

Archicad C++ API
About Archicad add-on development using the C++ API.
SOLVED!

Return skins of walls

Emkave
Booster

Good day everyone, I have a problem with returning a data about the skins of a wall in Archicad.

I have checked these links but they didn't give me much of information:
https://community.graphisoft.com/t5/Modeling/Wall-composite-construction-layers-Different-methods-di...

https://community.graphisoft.com/t5/Archicad-C-API/How-to-get-wall-materials-and-thicknesses-using-A...


I wonder if there is a pseudo code of how the information about the skins of the wall could be extracted. I am a bit unsure of how the attributes and data are stored at backed of Archicad, soooo... yeah.

Any help will be appreciated!


2 ACCEPTED SOLUTIONS

Accepted Solutions
Solution
LChen
Graphisoft
Graphisoft

Hi, You can get composite structure by using ACAPI_Attribute_GetDefExt() command. For the skin data, please check the API_CWallComponent structure. Also, You can find find the related sample code in API Examples (Attribute_Test.cpp).

HTH.

View solution in original post

Solution
LChen
Graphisoft
Graphisoft

Yes, getting the wall composite index at first, then get the composite definition, the number of cwall_compItems should be the skin's number applied to that wall.

HTH.

View solution in original post

11 REPLIES 11
Barry Kelly
Moderator

Every wall only has one 'layer' that it belongs to.

I am assuming you are wanting information on the wall 'skins'?

If so, let me know and I will edit your post - or you can edit it yourself (3 dots to the top right of post).

 

Barry.

One of the forum moderators.
Versions 6.5 to 27
i7-10700 @ 2.9Ghz, 32GB ram, GeForce RTX 2060 (6GB), Windows 10
Lenovo Thinkpad - i7-1270P 2.20 GHz, 32GB RAM, Nvidia T550, Windows 11

Hi. Sorry for the confusion.

For example I have these, what I thought to be, the wall "layers".

Emkave_0-1740734817044.png

 

I want to find a way to return them via the API if possible

Layers are what you place the elements in when you model.

Composites are made up of skins.

 

BarryKelly_0-1740740888315.png

 

 

Barry.

One of the forum moderators.
Versions 6.5 to 27
i7-10700 @ 2.9Ghz, 32GB ram, GeForce RTX 2060 (6GB), Windows 10
Lenovo Thinkpad - i7-1270P 2.20 GHz, 32GB RAM, Nvidia T550, Windows 11
Laszlo Nagy
Community Admin
Community Admin

Archicad Composite Structure Skin = Revit Compound Structure Layer. There are some others like Archicad Layout = Revit Sheet, Archicad Label = Revit Tag, or Archicad Zone = Revit Room, there are probably more. 

Loving Archicad since 1995 - Find Archicad Tips at x.com/laszlonagy
AMD Ryzen9 5900X CPU, 64 GB RAM 3600 MHz, Nvidia GTX 1060 6GB, 500 GB NVMe SSD
2x28" (2560x1440), Windows 10 PRO ENG, Ac20-Ac28

Yes, I see it. But how can I return data about those skins and structures?

I am afraid I have no idea, as I have never delved into the API side of things.

I am just trying to clarify the correct terminology so someone else can hopefully help you.

 

Barry.

One of the forum moderators.
Versions 6.5 to 27
i7-10700 @ 2.9Ghz, 32GB ram, GeForce RTX 2060 (6GB), Windows 10
Lenovo Thinkpad - i7-1270P 2.20 GHz, 32GB RAM, Nvidia T550, Windows 11
Solution
LChen
Graphisoft
Graphisoft

Hi, You can get composite structure by using ACAPI_Attribute_GetDefExt() command. For the skin data, please check the API_CWallComponent structure. Also, You can find find the related sample code in API Examples (Attribute_Test.cpp).

HTH.

Thank you for the answer. Is there actually a way to find out of how many skins are applied to a wall?


Solution
LChen
Graphisoft
Graphisoft

Yes, getting the wall composite index at first, then get the composite definition, the number of cwall_compItems should be the skin's number applied to that wall.

HTH.