We value your input!
Please participate in Archicad 28 Home Screen and Tooltips/Quick Tutorials survey

Project data & BIM
About BIM-based management of attributes, schedules, templates, favorites, hotlinks, projects in general, quality assurance, etc.
SOLVED!

Help with Expressions

HTH1355
Participant

Hi,

 

What I want to do: Determine and automate how many blocks are in a column.

 

Problem: I have figured out the expression I need to determine how many blocks that are in the column. The problem I have is that after a certain height the expression needs to change to factor in more blocks. The expression that I have already figured out ( ( ( Column/Maximum Height of the Column ) / ( 90 mm ) ) * 2 ) -1 only works with columns up to 1000mm, which means I need to add in a greater or less than operator in the expression to differentiate between them. This later placed into a schedule which I have already figured out.

 

Question: How do I get the expression to work with less than < 1000mm and greater than > 1000mm?

 

For example:

Block Size = 390mm X 190mm X 90mm

Column Layout looks like this and after 1000mm it requires to have an extra block on top hence the expression needing to change. 

HTH1355_0-1686704201673.png

If the column is 600mm high the expression would be ( ( ( 600mm ) / ( 90 mm ) ) * 2 ) -1

If the column is 1200mm high the expression would be ( ( ( 1200 ) / ( 90 mm ) ) * 2 ) -2

 

Hope this is enough information. Thanks

1 ACCEPTED SOLUTION

Accepted Solutions
Solution

I took the long road which I'm sure you can simplify.

*Edit* Attached screenshot of schedule.

 

I created three properties:

  1. UnitString:
    1. STRCALCUNIT (Maximum Height of the Column)
  2. StringNum:
    1. STRTONUM (UnitString)
  3. BlockNum:
    1. ROUNDUP ( IFS ( (StringNum < 601 ); ( ( ( StringNum / 90 ) * 2 ) - 1 ); ( StringNum > 600 ); ( ( ( StringNum / 90 ) * 2 ) - 2 ) ); 0 )

All are set to only be available to Classification: Column (again - you'll find a way that works for you)

It works for me - try and see if it works for you 🙂


Blocks.png
Erik Bjornhage : SwedishChef, ETTELVA Arkitekter, Gothenburg, Sweden
Architect : Digital Development : Graphisoft Cert. BIM-Manager
ETTELVA Arkitekter : Eriks LinkedIn
DELL Precision 5570; i7-12700H; 64 GB; RTX A2000 [8GB] : AC12 - future

View solution in original post

1 REPLY 1
Solution

I took the long road which I'm sure you can simplify.

*Edit* Attached screenshot of schedule.

 

I created three properties:

  1. UnitString:
    1. STRCALCUNIT (Maximum Height of the Column)
  2. StringNum:
    1. STRTONUM (UnitString)
  3. BlockNum:
    1. ROUNDUP ( IFS ( (StringNum < 601 ); ( ( ( StringNum / 90 ) * 2 ) - 1 ); ( StringNum > 600 ); ( ( ( StringNum / 90 ) * 2 ) - 2 ) ); 0 )

All are set to only be available to Classification: Column (again - you'll find a way that works for you)

It works for me - try and see if it works for you 🙂


Blocks.png
Erik Bjornhage : SwedishChef, ETTELVA Arkitekter, Gothenburg, Sweden
Architect : Digital Development : Graphisoft Cert. BIM-Manager
ETTELVA Arkitekter : Eriks LinkedIn
DELL Precision 5570; i7-12700H; 64 GB; RTX A2000 [8GB] : AC12 - future