cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
Showing results for 
Search instead for 
Did you mean: 
Collaborate forum

Schedule headlines to display designated tree level of Classification system

Josh Verran
Expert

When displaying information in a schedule it is possible to show the classification as a headline.

However, depending on the complexity/levels of the classification system the actual classification of the element can be too specific for grouping when perhaps level 1, or 2 would be more suitable.

 

As an example, we are using the CBI classification system.

Without documenting it fully here I'll use "Timber "Framing" as an example as well as sanitaryware, so you can see where they sit within the 4 levels (4 digits).

 

1 - General

2 - Site

3 - Structure

---38 - Timber

------382 - Timber Framing

----------3822 - Solid timber wall framing

4 - Enclosure

5. Interior

6 - Finish

7 - Services

---71 - Liquid Supply

------715 - Sanitaryware, tapware and accessories

---------7151 Sanitaryware

8 - External

 

 

As you can image in a schedule, seeing the 4th level of the classification would be too much, where as level 1 or level 2 would be clearer.

 

At the moment I have an expression that returns the first character of the classification number (for the examples above that would be 3 and 7).

Then an IFS expression that marries up that 1st digit with the 8 (level 1) classification numbers above, (screenshot attached).

The problem is, to go any further would require huge expressions with IFS entries.

 

Can anyone suggest another method?

Screenshot 2021-11-25 100258.png

Screenshot 2021-11-25 100455.png

 

ARCHICAD 18-25 | BIMcloud Basic | CI Tools - CI Extension by Central Innovation | Windows 10 Pro | Intel Core i7-6700K @4.00GHZ | 32Gb RAM | Dual Samsung S27F350 1920x1080 | Nvidia Quadro P2200 5Gb
4 REPLIES 4

poco2013
Advisor

I assume you just want to display the upper levels of the classification tree. There isn't any way a expression could accomplish this since it does not have access to the classification tree. However, this is a easy (short) Python script assuming you could just display (schedule) the result in a custom property.

In the Python script;

Extract the element guid.

use - GetClasificationsofElements to get your element classification level then extract the level number in front.

Use. GetAllClassificationsInSystem to get the class tree.

Get the upper level name by using:

return class[your top level number].classificationItem.id +'. '+ return class[your top level]classification.name

For lower levels use: the children attribute

Gerry

Windows 10 - Visual Studio 2019; ArchiCAD 26

Thanks Gerry

 

I haven't actually used scripts before, so I'll do a bit of learning on that first.

Sounds quite useful.

Once leant I'll try your suggestion above and reply how I got on.

ARCHICAD 18-25 | BIMcloud Basic | CI Tools - CI Extension by Central Innovation | Windows 10 Pro | Intel Core i7-6700K @4.00GHZ | 32Gb RAM | Dual Samsung S27F350 1920x1080 | Nvidia Quadro P2200 5Gb

To get you started. i made a short video to demo the process.

 

Classification levels in schedules 

 

Also, I'll attach the Python scrip. You will have to alter the particulars for your Objects.

Any problems or confusion, leave a comment.

 

 

Gerry

Windows 10 - Visual Studio 2019; ArchiCAD 26

Josh Verran
Expert

I've come up with a little workaround that involves expressions but no python.

Involves a Project Info Field which contains the data for each branch.

For example

11 - Contract conditions|
12 - General requirements|
21 - Demolition|
22 - Preparation and groundwork|
23 - Foundations|
24 - Minor demolition and alterations|
31 - Concrete|
32 - Earth|
33 - Masonry|
34 - Steel|
35 - Stainless steel|
36 - Aluminium|
37 - Other metals|
38 - Timber|
39 - Plastics|
41 - Tanking and pre-cladding|
42 - Wall cladding|
43 - Roofing and decking|

 

Then a series of expressions, using FIND, MID, SPLITLEFT.

 

A property extracts the first two digits from the elements classification, then compares against the Project Info, returning the text position, then displays a set number of characters from that position (say 30), then splits from the "|" character to the left.

 

Hope that makes sense, can do a screen recording sometime.

Does involve the manual step at the template stage of adding the level two info to the Project Info, but seems to work well from there.

 

Screenshot 2022-04-14 135718.png

ARCHICAD 18-25 | BIMcloud Basic | CI Tools - CI Extension by Central Innovation | Windows 10 Pro | Intel Core i7-6700K @4.00GHZ | 32Gb RAM | Dual Samsung S27F350 1920x1080 | Nvidia Quadro P2200 5Gb

Still looking?

Browse more topics

Back to forum

See latest solutions

Accepted solutions

Start a new discussion!