License Delivery maintenance is expected to occur on Saturday, November 30, between 8 AM and 11 AM CET. This may cause a short 3-hours outage in which license-related tasks: license key upload, download, update, SSA validation, access to the license pool and Graphisoft ID authentication may not function properly. We apologize for any inconvenience.
Project data & BIM
About BIM-based management of attributes, schedules, templates, favorites, hotlinks, projects in general, quality assurance, etc.
SOLVED!

How best to add studio standard custom attributes without screwing up default object behavior

Robert Nichols
Advocate

I need some rules for how to add custom attributes to our templates such that they hold over time (across version upgrades) and don't screw up default lib object appearances. I suspect there is a range of index numbers that are safe to use (i.e. they avoid index space of default attributes). I recently added some surfaces to my template, and I must have overwritten default surface index values, and I'm suffering. I guess, always append, and never add by index or name. I wish I had a clear roadmap for how the default system is organized.

Mac Studio, 32gb ram, ArchiCAD v26 (Apple Silicon) MacOS 13
1 ACCEPTED SOLUTION

Accepted Solutions
Solution
Barry Kelly
Moderator

You are correct that you do not want to alter the default Graphisoft attributes.

 

In my template for each attribute type I create a new one, but amend the attribute index number so it is much higher than the highest default attribute.

 

Say for example surfaces.

The highest index for a default surface is 350.

I create a new surface and manipulate the index number so it is 1000, it could even be higher.

Now when a new surface is created by any user in a file using that template, it will automatically get an index number of 1001.

 

If I want to add a new surface to the template, I do the same thing, but I manipulate that index number so it is less than 1000.

I would leave a little space after 350, so i would make the new attribute 500.

That gives a little wiggle room for you existing jobs where people may have already created new surface attribute 351, 352 etc.

 

When importing attribute from my template to other job files, I always use 'overwrite by index number', as Archicad uses the index numbers and not names.

This way I know exactly what I have in my template and I know I will not be overwriting any of the default attributes.

Or if they are overwritten, they will be the same.

 

This does not help when importing attributes from one user file to another, because in one file someone will create a blue surface with an attribute of 1001 and in another someone will create a red surface that is 1001.

That is when you would 'append' rather than 'overwrite', but you have to be selective of the attributes you import.

 

That is why you look after the template and if those red and blue surfaces are important for future use, you import them to the template and manipulate the index numbers to be less than 1000.

Users should ideally then only import attributes from the template into their user files.

 

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

View solution in original post

2 REPLIES 2
Solution
Barry Kelly
Moderator

You are correct that you do not want to alter the default Graphisoft attributes.

 

In my template for each attribute type I create a new one, but amend the attribute index number so it is much higher than the highest default attribute.

 

Say for example surfaces.

The highest index for a default surface is 350.

I create a new surface and manipulate the index number so it is 1000, it could even be higher.

Now when a new surface is created by any user in a file using that template, it will automatically get an index number of 1001.

 

If I want to add a new surface to the template, I do the same thing, but I manipulate that index number so it is less than 1000.

I would leave a little space after 350, so i would make the new attribute 500.

That gives a little wiggle room for you existing jobs where people may have already created new surface attribute 351, 352 etc.

 

When importing attribute from my template to other job files, I always use 'overwrite by index number', as Archicad uses the index numbers and not names.

This way I know exactly what I have in my template and I know I will not be overwriting any of the default attributes.

Or if they are overwritten, they will be the same.

 

This does not help when importing attributes from one user file to another, because in one file someone will create a blue surface with an attribute of 1001 and in another someone will create a red surface that is 1001.

That is when you would 'append' rather than 'overwrite', but you have to be selective of the attributes you import.

 

That is why you look after the template and if those red and blue surfaces are important for future use, you import them to the template and manipulate the index numbers to be less than 1000.

Users should ideally then only import attributes from the template into their user files.

 

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

Very helpful, Barry. Thanks for such a comprehensive response.

Mac Studio, 32gb ram, ArchiCAD v26 (Apple Silicon) MacOS 13