Collaboration with other software
About model and data exchange with 3rd party solutions: Revit, Solibri, dRofus, Bluebeam, structural analysis solutions, and IFC, BCF and DXF/DWG-based exchange, etc.

Schedule headlines to display designated tree level of Classification system

Josh Verran
Advisor

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

 


GRAPHISOFT Certified BIM Manager | Senior BIM Specialist | LinkedIn


ARCHICAD 18-28 | BIMcloud | CI Tools | Grasshopper - Rhino | CloudCompare | Bluebeam


Australia & New Zealand


Windows 11 Business | Intel Core i9-13950HX @2.2GHZ | 64Gb RAM | 2x Samsung S27F350 1920x1080 60Hz | Nvidia RTX 4000 Ada Generation Laptop GPU (12Gb)



4 REPLIES 4
poco2013
Mentor

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 11 - Visual Studio 2022; ArchiCAD 27

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.


GRAPHISOFT Certified BIM Manager | Senior BIM Specialist | LinkedIn


ARCHICAD 18-28 | BIMcloud | CI Tools | Grasshopper - Rhino | CloudCompare | Bluebeam


Australia & New Zealand


Windows 11 Business | Intel Core i9-13950HX @2.2GHZ | 64Gb RAM | 2x Samsung S27F350 1920x1080 60Hz | Nvidia RTX 4000 Ada Generation Laptop GPU (12Gb)



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 11 - Visual Studio 2022; ArchiCAD 27
Josh Verran
Advisor

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


GRAPHISOFT Certified BIM Manager | Senior BIM Specialist | LinkedIn


ARCHICAD 18-28 | BIMcloud | CI Tools | Grasshopper - Rhino | CloudCompare | Bluebeam


Australia & New Zealand


Windows 11 Business | Intel Core i9-13950HX @2.2GHZ | 64Gb RAM | 2x Samsung S27F350 1920x1080 60Hz | Nvidia RTX 4000 Ada Generation Laptop GPU (12Gb)



Still looking?

Browse more topics

Back to forum

See latest solutions

Accepted solutions

Start a new discussion!