<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Python - List of names of the built-in properties in Archicad Python API</title>
    <link>https://community.graphisoft.com/t5/Archicad-Python-API/Python-List-of-names-of-the-built-in-properties/m-p/263699#M645</link>
    <description>&lt;BLOCKQUOTE&gt;Tibor wrote:&lt;BR /&gt;
You can find all the available Built-In Properties and currently available User-Defined Properties with the GetAllPropertyNames command.
&lt;/BLOCKQUOTE&gt;

Can you help me to print the list of PropertyNames? my code is:&lt;BR /&gt;
&lt;BR /&gt;
{&lt;BR /&gt;
    "command": "API.GetAllPropertyNames"&lt;BR /&gt;
}&lt;BR /&gt;
&lt;BR /&gt;
and result is:&lt;BR /&gt;
&lt;BR /&gt;
==========&lt;BR /&gt;
&lt;BR /&gt;
Выполнение скрипта test.py&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
=== Процесс завершен ===&lt;BR /&gt;
&lt;BR /&gt;
I am trying to add to the script "excel_export.py" the list of names of objects and i can`t find the BuiltInProperty, which helps to call them.&lt;BR /&gt;
thank you for your help and ask you to forgive me for my english:)</description>
    <pubDate>Tue, 20 Jul 2021 13:58:06 GMT</pubDate>
    <dc:creator>Anonymous</dc:creator>
    <dc:date>2021-07-20T13:58:06Z</dc:date>
    <item>
      <title>Python - List of names of the built-in properties</title>
      <link>https://community.graphisoft.com/t5/Archicad-Python-API/Python-List-of-names-of-the-built-in-properties/m-p/263688#M634</link>
      <description>&lt;DIV class="actalk-migrated-content"&gt;Hello&lt;BR /&gt;Does any know how to fetch the list of all the available built-in properties like "General_ElementID" for 'Element ID' available in the Python API?&lt;BR /&gt;&lt;BR /&gt;Thanks.&lt;/DIV&gt;</description>
      <pubDate>Wed, 15 Sep 2021 08:33:32 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Archicad-Python-API/Python-List-of-names-of-the-built-in-properties/m-p/263688#M634</guid>
      <dc:creator>dushyant</dc:creator>
      <dc:date>2021-09-15T08:33:32Z</dc:date>
    </item>
    <item>
      <title>Re: Python - List of names of the built-in properties</title>
      <link>https://community.graphisoft.com/t5/Archicad-Python-API/Python-List-of-names-of-the-built-in-properties/m-p/263689#M635</link>
      <description>The Property name for ElenentID is: IdAndCategoies_ElementID  Built-ins use a single name with the group first , then underline then name . User properties separate the group and property name which is why they require separate functions to recall.&lt;BR /&gt;
&lt;BR /&gt;
You can get a list of all properties by using the function GetAllPropertyNames()</description>
      <pubDate>Tue, 21 Jul 2020 16:01:28 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Archicad-Python-API/Python-List-of-names-of-the-built-in-properties/m-p/263689#M635</guid>
      <dc:creator>poco2013</dc:creator>
      <dc:date>2020-07-21T16:01:28Z</dc:date>
    </item>
    <item>
      <title>Re: Python - List of names of the built-in properties</title>
      <link>https://community.graphisoft.com/t5/Archicad-Python-API/Python-List-of-names-of-the-built-in-properties/m-p/263690#M636</link>
      <description>Thanks. GetAllPropertyNames() lists all the 'BuiltIn' and even 'UserDefined' properties.&lt;BR /&gt;
&lt;BR /&gt;
What did you mean by "User properties separate the group and property name which is why they require separate functions to recall." ?</description>
      <pubDate>Tue, 21 Jul 2020 17:32:39 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Archicad-Python-API/Python-List-of-names-of-the-built-in-properties/m-p/263690#M636</guid>
      <dc:creator>dushyant</dc:creator>
      <dc:date>2020-07-21T17:32:39Z</dc:date>
    </item>
    <item>
      <title>Re: Python - List of names of the built-in properties</title>
      <link>https://community.graphisoft.com/t5/Archicad-Python-API/Python-List-of-names-of-the-built-in-properties/m-p/263691#M637</link>
      <description>There are separate functions to get the Property ID for the built-in properties vs custom user properties.&lt;BR /&gt;
acu,GetUserDefinedPropertyId which takes a group name and property name&lt;BR /&gt;
&lt;BR /&gt;
acu.GetBuiltinPropertId which takes only the property name.&lt;BR /&gt;
&lt;BR /&gt;
OR&lt;BR /&gt;
&lt;BR /&gt;
You could create separate property classes (PropertUserId) one for builtin and one for property custom. The difference types require different inputs. Then use the common function acc.GetPropertyId(PropertyUserId) for both.</description>
      <pubDate>Tue, 21 Jul 2020 18:26:45 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Archicad-Python-API/Python-List-of-names-of-the-built-in-properties/m-p/263691#M637</guid>
      <dc:creator>poco2013</dc:creator>
      <dc:date>2020-07-21T18:26:45Z</dc:date>
    </item>
    <item>
      <title>Re: Python - List of names of the built-in properties</title>
      <link>https://community.graphisoft.com/t5/Archicad-Python-API/Python-List-of-names-of-the-built-in-properties/m-p/263692#M638</link>
      <description>Got it, thanks!</description>
      <pubDate>Tue, 21 Jul 2020 18:29:42 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Archicad-Python-API/Python-List-of-names-of-the-built-in-properties/m-p/263692#M638</guid>
      <dc:creator>dushyant</dc:creator>
      <dc:date>2020-07-21T18:29:42Z</dc:date>
    </item>
    <item>
      <title>Re: Python - List of names of the built-in properties</title>
      <link>https://community.graphisoft.com/t5/Archicad-Python-API/Python-List-of-names-of-the-built-in-properties/m-p/263693#M639</link>
      <description>Hi Guys,&lt;BR /&gt;
&lt;BR /&gt;
There are two different types of Properties in ARCHICAD: User-Defined and Built-In.&lt;BR /&gt;
&lt;BR /&gt;
&lt;B&gt;User-Defined Properties&lt;/B&gt;&lt;BR /&gt;
The User-Defined Properties are the ones you see in the Property Manager Dialog. Users can modify the name of these Properties so you can access them by the name you see on the user interface. We call this localized name. The localized name contains two strings the Group Name and the Property Name (as seen in Property Manager Dialog) and it's unique. Note, there can be two User-Defined Properties in two separate Groups with the same Property Name.&lt;BR /&gt;
&lt;BR /&gt;
Please note, these User-Defined Properties are belong to the current project and may be not available in other projects. So if you refer to any User-Defined Property in your Python script, then it may not work with some projects.&lt;BR /&gt;
&lt;BR /&gt;
&lt;B&gt;Built-In Properties&lt;/B&gt;&lt;BR /&gt;
The Built-In Properties are the ones defined by ARCHICAD. The user can't modify the name of these Properties so you can access them by their internal name. We call this non-localized name. If you use properties with non-localized names your script will be independent of the language of the ARCHICAD user interface.&lt;BR /&gt;
&lt;BR /&gt;
Note, the non-localized names of Built-In Properties won't be changed between ARCHICAD updates and versions. So if you refer to any Built-In Properties in your Python script, then your script should work with any projects and any ARCHICAD versions.&lt;BR /&gt;
&lt;BR /&gt;
You can find all the available Built-In Properties and currently available User-Defined Properties with the GetAllPropertyNames command.&lt;BR /&gt;
&lt;BR /&gt;
As Python API is based on the JSON API, I recommend you to read the documentation of the JSON API:&lt;BR /&gt;
&lt;A href="http://archicadapi.graphisoft.com/JSONInterfaceDocumentation/#Property_Information" target="_blank"&gt;&lt;LINK_TEXT text="http://archicadapi.graphisoft.com/JSONI ... nformation"&gt;http://archicadapi.graphisoft.com/JSONInterfaceDocumentation/#Property_Information&lt;/LINK_TEXT&gt;&lt;/A&gt;</description>
      <pubDate>Wed, 22 Jul 2020 10:28:41 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Archicad-Python-API/Python-List-of-names-of-the-built-in-properties/m-p/263693#M639</guid>
      <dc:creator>Tibor Lorantfy</dc:creator>
      <dc:date>2020-07-22T10:28:41Z</dc:date>
    </item>
    <item>
      <title>Re: Python - List of names of the built-in properties</title>
      <link>https://community.graphisoft.com/t5/Archicad-Python-API/Python-List-of-names-of-the-built-in-properties/m-p/263694#M640</link>
      <description>Ok, thanks for the info!</description>
      <pubDate>Wed, 22 Jul 2020 10:47:12 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Archicad-Python-API/Python-List-of-names-of-the-built-in-properties/m-p/263694#M640</guid>
      <dc:creator>dushyant</dc:creator>
      <dc:date>2020-07-22T10:47:12Z</dc:date>
    </item>
    <item>
      <title>Re: Python - List of names of the built-in properties</title>
      <link>https://community.graphisoft.com/t5/Archicad-Python-API/Python-List-of-names-of-the-built-in-properties/m-p/263695#M641</link>
      <description>Python script examples for listing property values:
&lt;UL&gt;&lt;LI&gt;&lt;S&gt;&lt;/S&gt;&lt;/LI&gt;&lt;LI&gt;By using GetBuiltInPropertyId and GetUserDefinedPropertyId utility functions to retrieve the identifiers of the properties:
&lt;PRE&gt;from archicad import ACConnection

conn = ACConnection.connect()
acc = conn.commands
act = conn.types
acu = conn.utilities

zoneNumberPropertyId = acu.GetBuiltInPropertyId('Zone_ZoneNumber')
elementIdPropertyId = acu.GetBuiltInPropertyId('General_ElementID')
zonesTemperatureReqPropertyId = acu.GetUserDefinedPropertyId('ZONES', 'Temperature Requirement')
propertyIds = [
	zoneNumberPropertyId,
	elementIdPropertyId,
	zonesTemperatureReqPropertyId
]

propertyValuesDictionary = acu.GetPropertyValuesDictionary(acc.GetAllElements(), propertyIds)
for elementId, valuesDictionary in propertyValuesDictionary.items():
	for propertyId, value in valuesDictionary.items():
		print(f"{elementId} {propertyId} {value}")&lt;/PRE&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;S&gt;&lt;/S&gt;&lt;/LI&gt;&lt;LI&gt;By using GetPropertyIds command to batch retrieve the identifier of the properties:
&lt;PRE&gt;from archicad import ACConnection

conn = ACConnection.connect()
acc = conn.commands
act = conn.types
acu = conn.utilities

propertyIds = acc.GetPropertyIds([
	act.BuiltInPropertyUserId('Zone_ZoneNumber'),
	act.BuiltInPropertyUserId('General_ElementID'),
	act.UserDefinedPropertyUserId(['ZONES', 'Temperature Requirement']),
])

propertyValuesDictionary = acu.GetPropertyValuesDictionary(acc.GetAllElements(), propertyIds)
for elementId, valuesDictionary in propertyValuesDictionary.items():
	for propertyId, value in valuesDictionary.items():
		print(f"{elementId} {propertyId} {value}")&lt;/PRE&gt;&lt;/LI&gt;
&lt;/UL&gt;
The result of the scripts above is exactly the same. But there is performance difference.&lt;BR /&gt;
If you want to optimize your Python script for performance (run time), then you should minimize the executed commands, because each of them requires communication between ARCHICAD which has costs.&lt;BR /&gt;
All utility functions (acu) execute one or more commands (acc) to help writing python scripts. Every GetBuiltInPropertyId and GetUserDefinedPropertyId utility functions call GetPropertyIds command once, so the first script above communicates with ARCHICAD more and runs slower (however it's not sensible in this case).</description>
      <pubDate>Wed, 22 Jul 2020 10:53:07 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Archicad-Python-API/Python-List-of-names-of-the-built-in-properties/m-p/263695#M641</guid>
      <dc:creator>Tibor Lorantfy</dc:creator>
      <dc:date>2020-07-22T10:53:07Z</dc:date>
    </item>
    <item>
      <title>Re: Python - List of names of the built-in properties</title>
      <link>https://community.graphisoft.com/t5/Archicad-Python-API/Python-List-of-names-of-the-built-in-properties/m-p/263696#M642</link>
      <description>On trying both of the codes, I get this:
&lt;PRE&gt;    print(f"{elementId.guid} {propertyId.guid} {value}")
AttributeError: 'ElementIdArrayItem' object has no attribute 'guid'&lt;/PRE&gt;</description>
      <pubDate>Wed, 22 Jul 2020 12:35:15 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Archicad-Python-API/Python-List-of-names-of-the-built-in-properties/m-p/263696#M642</guid>
      <dc:creator>dushyant</dc:creator>
      <dc:date>2020-07-22T12:35:15Z</dc:date>
    </item>
    <item>
      <title>Re: Python - List of names of the built-in properties</title>
      <link>https://community.graphisoft.com/t5/Archicad-Python-API/Python-List-of-names-of-the-built-in-properties/m-p/263697#M643</link>
      <description>Would have to see how you named ElementIdArrayItem , but assuming it is elemenId (confusing naming) , a return for guid would be elementId.elementId.guid</description>
      <pubDate>Wed, 22 Jul 2020 14:32:57 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Archicad-Python-API/Python-List-of-names-of-the-built-in-properties/m-p/263697#M643</guid>
      <dc:creator>poco2013</dc:creator>
      <dc:date>2020-07-22T14:32:57Z</dc:date>
    </item>
    <item>
      <title>Re: Python - List of names of the built-in properties</title>
      <link>https://community.graphisoft.com/t5/Archicad-Python-API/Python-List-of-names-of-the-built-in-properties/m-p/263698#M644</link>
      <description>&lt;BLOCKQUOTE&gt;poco2013 wrote:&lt;BR /&gt;
Would have to see how you named ElementIdArrayItem , but assuming it is elemenId (confusing naming) , a return for guid would be elementId.elementId.guid
&lt;/BLOCKQUOTE&gt;
You are right, it should be: elementId.elementId.guid and propertyId.propertyId.guid
&lt;PRE&gt;print(f"{elementId.elementId.guid} {propertyId.propertyId.guid} {value}")&lt;/PRE&gt;</description>
      <pubDate>Wed, 22 Jul 2020 15:49:39 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Archicad-Python-API/Python-List-of-names-of-the-built-in-properties/m-p/263698#M644</guid>
      <dc:creator>dushyant</dc:creator>
      <dc:date>2020-07-22T15:49:39Z</dc:date>
    </item>
    <item>
      <title>Re: Python - List of names of the built-in properties</title>
      <link>https://community.graphisoft.com/t5/Archicad-Python-API/Python-List-of-names-of-the-built-in-properties/m-p/263699#M645</link>
      <description>&lt;BLOCKQUOTE&gt;Tibor wrote:&lt;BR /&gt;
You can find all the available Built-In Properties and currently available User-Defined Properties with the GetAllPropertyNames command.
&lt;/BLOCKQUOTE&gt;

Can you help me to print the list of PropertyNames? my code is:&lt;BR /&gt;
&lt;BR /&gt;
{&lt;BR /&gt;
    "command": "API.GetAllPropertyNames"&lt;BR /&gt;
}&lt;BR /&gt;
&lt;BR /&gt;
and result is:&lt;BR /&gt;
&lt;BR /&gt;
==========&lt;BR /&gt;
&lt;BR /&gt;
Выполнение скрипта test.py&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
=== Процесс завершен ===&lt;BR /&gt;
&lt;BR /&gt;
I am trying to add to the script "excel_export.py" the list of names of objects and i can`t find the BuiltInProperty, which helps to call them.&lt;BR /&gt;
thank you for your help and ask you to forgive me for my english:)</description>
      <pubDate>Tue, 20 Jul 2021 13:58:06 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Archicad-Python-API/Python-List-of-names-of-the-built-in-properties/m-p/263699#M645</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2021-07-20T13:58:06Z</dc:date>
    </item>
  </channel>
</rss>

