Hi, Jon! 

(My last message was stuck on sending... rewriting here, will delete 
duplicates if I see any. )
Thanks for the clarification. So, basically, all built-in objects are 
properties, except for the 5 you've mentioned that are fields, is that 
correct? Also, by "Description for footprints", do you mean the description 
for symbols are different? How about the description for atomic parts in a 
database library? I tried to modify the database config in some crazy ways, 
and found out that the description can either be defined as a field or a 
property, which seems rather strange. Here's what I tried. Let's take the 
example config in the documentation as a template...

...
"libraries": [
        {
            "name": "Resistors",
            "table": "Resistors",
            "key": "Part ID",
            "symbols": "Symbols",                           // I'm gonna 
call this the dedicated section
            "footprints": "Footprints",
            "fields": [
                {                                           // this is 
definitely in fields
                    "column": "MPN",
                    "name": "MPN",
                    "visible_on_add": false,
                    "visible_in_chooser": true,
                    "show_name": true,
                    "inherit_properties": true
                },
...
            ],
            "properties": {
                "description": "Description",               // and these 
are properties
                "footprint_filters": "Footprint Filters",
...
            }
        }
    ]

and the entries work in these sections: 

            Dedicated    Fields    Properties
Reference   Did not test, obviously don't want this to be set by the 
database :)
Symbols     Yes          No        No
Footprints  Yes          No        No
Value       No           Yes       No
Datasheet   No           Yes       No
Description No           Yes       Yes

Everything seems pretty clear except for the description. Is it expected to 
work in either places? What is the more preferred/supported place to put 
it? Thanks! 

RAY5D

On Tuesday, March 17, 2026 at 11:45:06 AM UTC-5 [email protected] wrote:

> In general, "property" means something where KiCad code defines its 
> existence and it is a built-in piece of information about an object.
>
> "field" means a special type of child object that some objects (e.g. 
> sheets, symbols, footprints) can have.  Fields are special text objects 
> that can have a name (key) and value.
>
> The place where the lines are blurred here is that KiCad defines 
> "built-in" fields for symbols and footprints.  These are Reference, Value, 
> Footprint, Datasheet, and Description for footprints.
>
> Why are these fields and not properties?  Well, part of it is just down to 
> how the code has evolved over a long time, and part of it is because it is 
> fairly standard to want to have the reference (and often value) show up as 
> fields (text objects that appear on the physical board) rather than just 
> properties (data inside the board).  Should the footprint and datasheet be 
> properties rather than fields?  Probably yes, but that ship sailed long ago.
>
> The database library configuration file pulls out all "first-class" 
> information into top level keys for a library configuration, and uses the 
> "fields" array in the config file for *user-defined fields*.  So for 
> example even though there is a Footprint field on a symbol, you don't put 
> the footprint configuration in the "fields" section.  So, to answer your 
> original question, if you want to add custom data to your 
> symbols/footprints from the database, add them to the fields array in the 
> kicad_dbl file.
>
> -Jon
>
> On Tue, Mar 17, 2026 at 12:12 PM RAY5D <[email protected]> wrote:
>
>> Hello, Kicad Devs
>>
>> I'm trying to setup a database library to manage my parts, but got a bit 
>> confused with whether to specify component parameters in "fields" or 
>> "properties" in the database config file. I found this forum post 
>> <https://forum.kicad.info/t/what-is-a-property-what-is-a-field/62078> which 
>> showed a rather mixed example and no replies, and this repo issue 
>> <https://gitlab.com/kicad/code/kicad/-/work_items/10404> which seemed to 
>> suggest they are synonymous. The Kicad documentation has no mention on how 
>> they are different either. Can someone explain if it's really only internal 
>> to the code base and doesn't matter in a user's view, or they are different 
>> and I should stick to a standard written down somewhere? And maybe the dev 
>> team's intention on how to handle the two types of parameters in future 
>> updates? Thanks! 
>>
>> RAY5D
>>
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "KiCad Developers" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to [email protected].
>> To view this discussion visit 
>> https://groups.google.com/a/kicad.org/d/msgid/devlist/ab6cc904-21d9-409d-a1f2-84f9a1000e95n%40kicad.org
>>  
>> <https://groups.google.com/a/kicad.org/d/msgid/devlist/ab6cc904-21d9-409d-a1f2-84f9a1000e95n%40kicad.org?utm_medium=email&utm_source=footer>
>> .
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"KiCad Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion visit 
https://groups.google.com/a/kicad.org/d/msgid/devlist/a0865398-4965-46c5-a31f-2e001a0616bfn%40kicad.org.

Reply via email to