Introduction to PIM Attributes

A quick review of the pimConfiguration to the pimFeature shows…

So now we have to figure out how to assign attributes to features (pimFeatureType). Keep in mind that we need to consider how to modify how the attribute content of a feature can be modified to add new attributes, change attribute names, and eliminate attributes. And, in a manner like features where it’s categorized by definition and geometry, attributes are categorized by definition and date type.

ID – The Attribute GUID
Name – What it is called
Definition – A definition of the Attribute
DataType – one of the PIM data types for the attribute
CharacterLength – the maximum number of characters in a string/text attribute
Code – any short name of code associated with the attribute
Constraint – any limit (either range or discrete list) on the values in the attribute
User – the userID of the configuration
DefaultValue – a prescribed initial value for the attribute
Feature – the pimFeature to which this attribute applies
Configuration – the pimConfiguration to which this feature applies
Version – the pimVersion of the configuration

A pimAttribute is typically one property or characteristic of a feature. It is independent of the pimFeature; e.g. a given pimAttribute may be applied to many features. Note that the pimAttribute has a Name, but its name can be modified (but the definition MAY NOT be changed) when it is assigned to a pimFeature. The data type of the pimAttribute is fixed, and may NOT be modified. The CharacterLength, Constraint, and DefaultValue can be assigned based on the pimFeature to which the pimAttribute applies.

The table (right) shows the PIM API properties of the pimAttribute. It includes all of the properties that are required to generate and validate included attribution in datasets against the PIM. And the PIM API includes conversions from the PIM data types to all of the current GIS attribution data types.

Note also that any PIM API pimAttribute includes its reference to a pimFeature, and consequently to its pimConfiguration and a pimVersion. But the most important thing to remember about the pimAttribute is that it is rigorously identified by its definition, and not its name; e.g. a definition of ‘The length of a linear feature’ is a single pimAttribute for any linear feature, regardless of name.

Now we have a pimAttribute that needs to be associated with one or more pimFeatures. But these pimFeatures are influenced by the pimConfiguration to which they are associated. Therefore, a pimConfiguration needs to be considered with the pimAttributes as well. Inside the PIM, this happens with two intermediate tables. These are pimFeatureAttribute and pimConfigAttribute. The use of the pimFeatureAttribute performs the same function as the pimConfigFeature; e.g. it associates the many to many of pimAttributes to pimFeatures. But the pimFeatureAttribute table provides additional capability. It permits for Attribute Name changes as well as Character Length changes, Default Value changes, and Constraint changes. The pimConfigAttribute table permits addition of attributes that are NOT in the parent as well as removal of attributes that ARE in the parent. This is ONLY applicable to those features which were inherited from the parent (which might be Gold). The GUID/UUID and definition of the attribute in the parent remain the same but the name may change. This gets somewhat complicated. For now, it is only important to understand the features in a child may included additional attributes (not in the parent) or eliminate attributes that were in the parent. More on this in future posts.

The next post will summarize how constraints are applied to attributes. Constraints may take the form of either ‘range’ (for numeric attributes) or ‘enumerations’ (discrete lists) which can be applied to any attribute. The PIM API will accommodate all of these capabilities. The next post will complete our technical discussion of the PIM, after which we will begin to delve into practical examples.

Stay tuned…

This post was written by:

Barry Schimpf

Vice President

See all the posts in this series

For more information on this post, the PIM, Zekiah’s geospatial standards support, or our data configuration management capabilities, please e-mail us at