ArcObjects Library Reference  (GeoDatabase)    

IRelationshipClass.AddRelationshipRule Method

Adds a relationship rule to this relationship class.

[Visual Basic 6.0]
Sub AddRelationshipRule(
    ByVal Rule As IRule _
)
[Visual Basic .NET]
Public Sub AddRelationshipRule ( _
    ByVal Rule As IRule _
)
[C#]
public void AddRelationshipRule (
    IRule Rule
);
[Java]
public void addRelationshipRule (
    IRule Rule
)
throws
    IOException,
    AutomationException
[C++]
HRESULT AddRelationshipRule(
  IRule* Rule
);
[C++]

Parameters

Rule [in]

  Rule is a parameter of type IRule

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Remarks

When using a relationship class, the AddRelationshipRule method is used for adding a new relationship rule to the geodatabase.  Relationship classes can have an associated set of relationship rules.  These rules are used to control which object subtypes from the origin class can be related to which object subtypes in the destination class.  They can also be used to specify a valid cardinality range  for all permissable subtype pairs.  An example would be the subtype wood poles may be allowed to have attached between 1 and 3 transformers, however, the subtype steel pole may be allowed to have attached between 1 and 5 transformers.  These are referred to as the cardinality range.

[C#]

Below is a small C# code sample of how to add a relationship rule:

IFeatureClass originFeatureClass = featureWorkspace.OpenFeatureClass("us_counties");
IFeatureClass destFeatureClass = featureWorkspace.OpenFeatureClass("poles");
IRelationshipClass relationshipClass = featureWorkspace.OpenRelationshipClass("transformers");
IRelationshipRule relationshipRule = (IRelationshipRule) new RelationshipRuleClass();
relationshipRule.DestinationClassID = destFeatureClass.ObjectClassID;
relationshipRule.DestinationSubtypeCode = 0;    
relationshipRule.DestinationMaximumCardinality = 1;
relationshipRule.DestinationMinimumCardinality = 5;
relationshipRule.OriginClassID = originFeatureClass.ObjectClassID;
relationshipRule.OriginSubtypeCode = 0;
relationshipRule.OriginMaximumCardinality = 1;
relationshipRule.OriginMinimumCardinality = 1;
relationshipClass.AddRelationshipRule(relationshipRule);
[Visual Basic 6.0]

Below is a small VB6 code sample of how to add a relationship rule:

Dim pRelationshipClass As IRelationshipClass
Set pRelationshipClass = pFeatureWorkspace.OpenRelationshipClass("relclass")
Dim pPoleFeatureClass As IFeatureClass
Set pPoleFeatureClass = pFeatureWorkspace.OpenFeatureClass("poles")
Dim pTransFeatureClass As IFeatureClass
Set pTransFeatureClass = pFeatureWorkspace.OpenFeatureClass("transformers")
Dim pRelationshipRule As IRelationshipRule
Set pRelationshipRule = New RelationshipRule
With pRelationshipRule
    .DestinationClassID = pTransFeatureClass.ObjectClassID
    .DestinationSubtypeCode = 178
    .DestinationMaximumCardinality = 1
    .DestinationMinimumCardinality = 5
    .OriginClassID = pPoleFeatureClass.ObjectClassID
    .OriginSubtypeCode = 101
    .OriginMaximumCardinality = 1
    .OriginMinimumCardinality = 1
End With
pRelationshipClass.AddRelationshipRule(pRelationshipRule)

See Also

IRelationshipClass Interface

 


Feedback Send feedback on this page