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

Archicad Python API
About automating tasks in Archicad using the Python API.

Exporting Material properties to Excel - Python Script

Ssc_97
Participant

Hello!

 

I just started couple of months ago finding my way with python in Archicad 24. I have some experience in python but definitely not enough as I keep having different problems with the export script (the one provided by Graphisoft).

 

With the basic script you can export Element properties very easily to an excel sheet. But as soon as I change the script to get a random material property, the script gives an error. The material property is randomly chosen after getting the full list with python as well. The last line has been added to get the 'Material Property'.

 

propertyUserIds = [
    act.BuiltInPropertyUserId("General_ElementID"),
    act.BuiltInPropertyUserId("General_Height"),
    act.BuiltInPropertyUserId("General_Width"),
    act.BuiltInPropertyUserId("General_Thickness"),
    act.UserDefinedPropertyUserId([
        "COMBUSTION (Materials)", "CO2 Content"])
]

 

 
By running this in Archicad we get a lot of errors with the following errorcode as the last: "propertyId cannot be initialized with <class 'Archicad.releases.ac24.b3000types.ErrorItem'> "
 
Am I doing something wrong when changing the script or is export with python on the level of 'materials' not supported yet?
2 REPLIES 2
Patrick M
Advisor

IME, python is just a longhand work-around to make basic functions less effective... I'm sure the tool is useful, as I read enough people saying they use it for scripting template management, file migration, file maintenance functions. But it's beyond me why I should bother with python TBH

BIM solutions and trouble shooting (self proclaimed) expert. Using Archicad 26 5002 US on Mac OS 11.5.2

I do follow your opinion but in this case, exporting properties through python would be just one step of a whole proces. A proces to sustainability that could be automated. And that's why here, there's no other way than to use python.