Field properties
Depending on the field type, you must set different properties on the Field DTO when creating fields that can later be added to RDOs.
This page contains the following sections:
For detailed information about the Field DTO properties, see kCura.Relativity.Client.DTOs namespace reference in the Services API. For more general information about fields, see on the Relativity Documentation site.
Required properties for all field types
These properties must be set for all field types:
- Name
- FieldTypeID
- ObjectType (specified as the DescriptorArtifactTypeID property of ObjectType)
- IsRequired
- AllowGroupBy
- AllowPivot
- IgnoreWarnings
- Width
The following section lists additional required properties depending on the field type (FieldTypeID).
Additional required properties by field type
Code sample
This code sample demonstrates how to set up required properties for any possible field type when creating a field. Note that the field type and name are set based on the passed in testField object. The created field is associated with an object type specified by the passed in artifactTypeID.
private kCura.Relativity.Client.DTOs.Field SetupFieldParams(TestFieldType testField, int artifactTypeID)
{
var fieldToCreate = new kCura.Relativity.Client.DTOs.Field();
fieldToCreate.Name = testField.FieldName;
fieldToCreate.FieldTypeID = testField.DTOFieldType;
fieldToCreate.ObjectType = new kCura.Relativity.Client.DTOs.ObjectType() { DescriptorArtifactTypeID = artifactTypeID };
fieldToCreate.IsRequired = false;
fieldToCreate.AllowGroupBy = false;
fieldToCreate.AllowPivot = false;
fieldToCreate.IgnoreWarnings = true;
fieldToCreate.Width = "";
if (!fieldToCreate.FieldTypeID.In(new kCura.Relativity.Client.FieldType[] { kCura.Relativity.Client.FieldType.MultipleObject }))
{
fieldToCreate.Linked = false;
fieldToCreate.AllowSortTally = true;
fieldToCreate.Wrapping = true;
}
if (!fieldToCreate.FieldTypeID.In(new kCura.Relativity.Client.FieldType[] { kCura.Relativity.Client.FieldType.File, kCura.Relativity.Client.FieldType.MultipleObject, kCura.Relativity.Client.FieldType.SingleObject }))
{
fieldToCreate.OpenToAssociations = testField.OpenToAssociations;
}
if (fieldToCreate.FieldTypeID.In(new kCura.Relativity.Client.FieldType[] { kCura.Relativity.Client.FieldType.MultipleObject, kCura.Relativity.Client.FieldType.SingleObject }))
{
fieldToCreate.AssociativeObjectType = testField.ObjectType;
}
if (fieldToCreate.FieldTypeID.In(new kCura.Relativity.Client.FieldType[] { kCura.Relativity.Client.FieldType.LongText, kCura.Relativity.Client.FieldType.FixedLengthText }))
{
fieldToCreate.IncludeInTextIndex = testField.IncludeInTextIndex;
fieldToCreate.AllowHTML = false;
}
if (fieldToCreate.FieldTypeID.In(new kCura.Relativity.Client.FieldType[] { kCura.Relativity.Client.FieldType.LongText, kCura.Relativity.Client.FieldType.FixedLengthText, kCura.Relativity.Client.FieldType.SingleChoice, kCura.Relativity.Client.FieldType.MultipleChoice }))
{
fieldToCreate.Unicode = false;
}
if (fieldToCreate.FieldTypeID.In(new kCura.Relativity.Client.FieldType[] { kCura.Relativity.Client.FieldType.LongText }))
{
fieldToCreate.AvailableInViewer = false;
}
if (fieldToCreate.FieldTypeID.In(new kCura.Relativity.Client.FieldType[] { kCura.Relativity.Client.FieldType.FixedLengthText }))
{
fieldToCreate.Length = 255;
if (objectTypeID.Value == (int)ArtifactType.Document)
{
fieldToCreate.IsRelational = false;
}
}
if (fieldToCreate.FieldTypeID.In(new kCura.Relativity.Client.FieldType[] { kCura.Relativity.Client.FieldType.SingleChoice, kCura.Relativity.Client.FieldType.MultipleChoice, kCura.Relativity.Client.FieldType.SingleObject, kCura.Relativity.Client.FieldType.MultipleObject }))
{
fieldToCreate.AvailableInFieldTree = false;
}
if (fieldToCreate.FieldTypeID.In(new kCura.Relativity.Client.FieldType[] { kCura.Relativity.Client.FieldType.YesNo }))
{
fieldToCreate.YesValue = "Yes";
fieldToCreate.NoValue = "No";
}
return fieldToCreate;
}