Documentation
About Archicad's documenting tools, views, model filtering, layouts, publishing, etc.

Smart surface tagging - Openings, Objects, Railing

Vincent G_
Enthusiast
Hello,

I've been working for a while on having a system of smart material tags that would auto-update on our int/ext elevations, joinery plans etc. rather than using dummy ones.

The idea is to create materials that have coded surfaces (MT01_Dark Steel, CT01_Concrete finish ...) and using a expression that only read the code of the name (MT01 only). This way if we just change our wall material/surfaces, the code will change automatically (we did the same for wall types reading the composite name and it works great).

The surface label 23 is working great for only certain tools (wall, slab, column, beam, roof, mesh, Morph). My issue concern the rest of the elements that we got to Mat-Tag which are openings (doors, windows), railing tools and objects. The surface label doesn't work with these tools because they have several surfaces (i.e. frame inside, frame outside, glass for windows).

I had the idea of creating a property that read these specific settings (frame inside, frame outside, glass, leaf ...)

and this way we could create a custom label that read our surface name directly. Again, the idea is that if we change the opening materials through its settings, all code-tags will auto-update reading the new surface name.

Problem is, I can't find a way to create these property because I can't find them in the Property manager. So what am I missing here? What's the reason behind these settings not being available to create properties? (we're using native AC23 doors/windows/railing...)

Or does anyone has a good workaround to get smart mat-tags on their doco?
9 REPLIES 9
Barry Kelly
Moderator
Properties can not access object parameters unfortunately.
Labels can, but they have to be scripted to look for a particular parameter.
And because every object can have different parameters, labels like the surface label will not be looking for them.
If you are scripting your own labels you will want to look at ...
n = REQUEST ("ASSOCLP_PARVALUE", expr, name_or_index, type, flags, dim1, dim2, p_values) 

n = REQUEST ("ASSOCLP_PARVALUE_WITH_DESCRIPTION", expr, name_or_index, type,    flags, dim1, dim2, p_values_and_descriptions)

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
Vincent G_
Enthusiast
Thanks Barry,

it's a shame indeed that props cant access objects parameters, that would open a whole new range of possible in term of BIM doco.
I'll explore your lead, configuring specific labels for specific items!
Podolsky
Ace
Hi. I've done the label for surfaces how you wanted. It uses exactly same principles. In case of library objects it requesting values from GDL. It works with standard library parts (for example doors and windows - you can select to show material of door leaf for example, or window frame), but in case of custom objects - variable names needs to be detected and put into the script.
You can check how I organised surfaces codes (codes been taken from one London architectural practice) and how label works. It called 'Finishes Label'. You need to enable the label visibility in MVO in section 'markers and labels'. By default it's hidden.

https://archicad-talk.graphisoft.com/viewtopic.php?f=37&t=72947
Vincent G_
Enthusiast
Fantastic! Thanks Podolsky! I'll read that in detail! Glad to read someone got it done and it's achievable!
Vincent G_
Enthusiast
@Podolsky I had a quick look to the template you provided, and the surface label is just incredible.. this is next level of coding! I really need to find time to learn GDL as it is now always what I lack in my search of having a template file and workflow as BIM as possible.

I'll have to spend more time exploring your template as I'm sure it does contain a lot more gems like the surface label. Would you mind if I PM you about a couple of things regarding the label? Also I'd be more than happy to share with you some of the systems I've put in place on my template to make team's life easier if that can interest you!
Anonymous
Not applicable
Hello Vincent,

An alternative to scripting in GDL (as there is always more than one way to skin a cat) is to look at the "Property Manager". Its too much to write up something that is specific to your use case without you learning how it works overall and there are many posts about it already. Previously in older versions it was related to IFC properties. I recommend you do some research into it, look at the help guide and search the forum about this item.

----------------------------------------------------
step 1. Options>Property Manager.
Create a new schedule of the types of things you want to draw data out of the model for. In your example its using the name of surface attributes with a code at the front to identify a material number for scheduling. This is a Data 'Expression' string. In the property manager choose what this applies to (pretty much everything that can have a surface). An example is Floor finishes which is typically a slab object.

step 2. Establish, how you're going to code your finishes. In Options>Element Attributes>Surfaces: Build all your coded surfaces based on their attribute names eg. FT01: Floor Tile Type 01.

step 3. Establish how to draw this data out (use a standard label to pick up the code you want to identify). Go back to Options>Property Manager. I have one for example that is called Floor Finish Code.
- New Property > Property Name: Floor Finish
- Data type > String
- Default value > Expression
- Sequence > Add > Expression Editor
- Type in an expression. This is similar to how formulas are typed in with Excel.
- The following is a Sample expression that says for a slab object, to express all the letters in your attribute name on the left before the semicolon.

SPLITLEFT (TopSurface, ":", 1)


step 4. I have ArchiCAD23 - Select Labels>PropertyLabel23>Symbol Label Custom Settings>Property Value: choose the property you created ie Floor Finish Code. Apply it by labelling your floor slab. Choose the standard style options that suits your graphical needs (rectangle/diamond/circle etc).
----------------------------------------------------

This method doesnt required GDL knowledge on how to build the rest of the label and means you just need the expression code to draw data out of the property manager. There may be a more experienced user who can explain this better but with the property manager, I can have tags for Walls to identify types, Finishes codes etc.


xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
If you want a simpler solution;

Plan B - the standard labels in later versions of ArchiCAD can identify information from the model. If you choose a standard text label - the auto text option has the ability to draw out data as well.
Label>Autotext>Slab>Top Surface. If you name the surface attribute just FT01 (without description) that can work too.

I hope this helps.

Regards
Podolsky
Ace
Vincent wrote:
@Podolsky I had a quick look at the template you provided, and the surface label is just incredible.. this is the next level of coding! I really need to find time to learn GDL as it is now always what I lack in my search of having a template file and workflow as BIM as possible.

I'll have to spend more time exploring your template as I'm sure it does contain a lot more gems like the surface label. Would you mind if I PM you about a couple of things regarding the label? Also, I'd be more than happy to share with you some of the systems I've put in place on my template to make team's life easier if that can interest you!
Feel free to contact me. Yes, I was trying to solve many typically problematic areas with my template and library. Some areas of the template still need to be continually developed. I also started on this forum open source GDL project - where I plan to share GDL codes. But currently, I cannot find anyone who is willing to help me to push this development forward as I cannot end up just working on free for the ArchiCAD community. I could - but then Graphisoft needs to start paying me a salary.
The template I shared initially was commercial development as I tried to sell it (or find investors for the development) in the UK. But unfortunately, it wasn't successful - people like to complain more than they understand. So currently everything hanging in the air. I locked access to my GDL scripts and set expire date in September (in September all objects will be locked for editing). But if anyone thinks that this template can be game-changing in their workflow - I'm more than happy to help with that - fix errors, add more features, improve/update User Interface, and similar.
Vincent G_
Enthusiast
Podolsky wrote:
Vincent wrote:
@Podolsky I had a quick look to the template you provided, and the surface label is just incredible.. this is next level of coding! I really need to find time to learn GDL as it is now always what I lack in my search of having a template file and workflow as BIM as possible.

I'll have to spend more time exploring your template as I'm sure it does contain a lot more gems like the surface label. Would you mind if I PM you about a couple of things regarding the label? Also I'd be more than happy to share with you some of the systems I've put in place on my template to make team's life easier if that can interest you!
Fill free to contact me. Yes, I was trying to solve many typically problematic areas with my template and library. Some areas of the template still need to be continued developed. I also started on this forum open source GDL project - where I plan to share GDL codes. But currently I cannot find anyone who is willing to help me to push this development forward as I cannot end up just working on free for ArchiCAD community. I could - but then Graphisoft needs to start paying me salary.
The template I shared initially was commercial development as I tried to sell it (or find investors to the development) in UK. But unfortunately it wasn't successfully - people like to complain more then they understand. So currently everything hanging in the air. I locked access to my GDL scripts and set expire date in September (in September all objects will be locked for editing). But if anyone thinks that this template can be game changing in their workflow - I'm more than happy to help with that - fix errors, add more features, improve / update User Interface and similar.
It seems indeed that people prefer spending money on employee hours and legal fees rather than having a smart and efficient template/workflow... I've myself started this template exercise as I was exasperated of having to clean people shit all the time in order to be able doing decent work. Call it OCD if you want but i'd rather call it working smarter and more efficient. I'm happy to share any progress i've done on my template with you since you kindly shared all that hard work of yours! I'll send you an email or a pm next week!

@kim,

I've already explored the Prop manager solution. I'd have had used the native surface label in that case and i'm using your method for items that can actually be accessible through prop manager. Correct me if i'm wrong, but I don't think you can create a property that read a door leaf material for instance. (refer to Barry's reply). Anyway I appreciate your effort of sharing me that information that's very kind.
Robert Hillman
Participant

@Vincent G_ - We have had exactly the same problem with the limited parameters available in the property manager preventing us from using an expression to cut the name of a surface to a code in the window/door schedule. Hopefully, Graphisoft make more parameters available in the property manager to open up so many more opportunities for this tool! Please let us know if you find a solution!