![]() |
This document is archived and information here might be outdated. Recommended version. |
| ArcObjects Help for .NET developers > ESRI.ArcGIS.Snippets > Snippets > Create A SchematicAttributeQuery On A Schematic Element Class Snippet (ArcObjects .NET 10.4 SDK) |
Create a query SchematicAttribute on a given SchematicElementClass
/// <summary>
/// Create a query SchematicAttribute on a given SchematicElementClass
/// </summary>
/// <param name="schElementClass">The SchematicElementClass where the query attribute is created</param>
/// <param name="AttributeName">The ISchematicAttributeQuery name</param>
/// <param name="EvalMode">The EvaluationMode for the created schematic attribute</param>
/// <param name="StorageMode">The StorageMode for the created schematic attribute</param>
/// <param name="ParameterNames">The SchematicQueryParameters for the created schematic attribute</param>
/// <param name="SchematicDataSource">The SchematicDatasource for the created schematic attribute</param>
/// <param name="sFieldName">The FieldName for the created schematic attribute</param>
/// <param name="sQueryString">The QueryString for the created schematic attribute</param>
/// <returns>The created ESRI.ArcGIS.Schematic.ISchematicAttributeQuery</returns>
/// <remarks>The UID.Value is a contant GUID value for the ISchematicAttributeQuery type of schematic attribute</remarks>
public ESRI.ArcGIS.Schematic.ISchematicAttributeQuery CreateAttributeQueryForElementClass(ESRI.ArcGIS.Schematic.ISchematicElementClass schElementClass, string AttributeName, ESRI.ArcGIS.Schematic.esriSchematicAttributeEvaluationMode EvalMode, ESRI.ArcGIS.Schematic.esriSchematicAttributeStorageMode StorageMode, ESRI.ArcGIS.Schematic.IEnumSchematicQueryParameter ParameterNames, ESRI.ArcGIS.Schematic.ISchematicDataSource SchematicDataSource, string sFieldName, string sQueryString)
{
ESRI.ArcGIS.Schematic.ISchematicAttribute schAttribute=null;
try
// create an ISchematicAttribute
{
ESRI.ArcGIS.esriSystem.UID pUid=new ESRI.ArcGIS.esriSystem.UID();
pUid.Value="{9EB161BE-31BB-43E6-93ED-12BC62E6369D}";
schAttribute=schElementClass.CreateSchematicAttribute(AttributeName, pUid);
}
catch
{
return null;
}
ESRI.ArcGIS.Schematic.ISchematicAttributeManagement schAttributeMngt=(ESRI.ArcGIS.Schematic.ISchematicAttributeManagement)schAttribute;
try
{
// the StorageMode must be set before the EvaluationMode
// consistenty is checked when the EvaluationMode is set
schAttributeMngt.StorageMode=StorageMode;
schAttributeMngt.EvaluationMode=EvalMode;
}
catch
{
// an error is returned if the StorageMode and EvaluationMode are not consistent
}
// cast SchematicAttribute into ISchematicAttributeQuery and set its properties
ESRI.ArcGIS.Schematic.ISchematicAttributeQuery schAttQuery=(ESRI.ArcGIS.Schematic.ISchematicAttributeQuery)schAttribute;
if (schAttQuery != null)
{
schAttQuery.FieldName=sFieldName;
schAttQuery.QueryString=sQueryString;
schAttQuery.SchematicDataSource=SchematicDataSource;
schAttQuery.SchematicQueryParameters=ParameterNames;
}
return schAttQuery;
}
''' <summary>
''' Create a query SchematicAttribute on a given SchematicElementClass
''' </summary>
''' <param name="schElementClass">The SchematicElementClass where the query attribute is created</param>
''' <param name="AttributeName">The ISchematicAttributeQuery name</param>
''' <param name="EvalMode">The EvaluationMode for the created schematic attribute</param>
''' <param name="StorageMode">The StorageMode for the created schematic attribute</param>
''' <param name="ParameterNames">The SchematicQueryParameters for the created schematic attribute</param>
''' <param name="SchematicDataSource">The SchematicDatasource for the created schematic attribute</param>
''' <param name="sFieldName">The FieldName for the created schematic attribute</param>
''' <param name="sQueryString">The QueryString for the created schematic attribute</param>
''' <returns>The created ESRI.ArcGIS.Schematic.ISchematicAttributeQuery</returns>
''' <remarks>The UID.Value is a contant GUID value for the ISchematicAttributeQuery type of schematic attribute</remarks>
Public Function CreateAttributeQueryForElementClass(ByVal schElementClass As ESRI.ArcGIS.Schematic.ISchematicElementClass, ByVal AttributeName As String, ByVal EvalMode As ESRI.ArcGIS.Schematic.esriSchematicAttributeEvaluationMode, ByVal StorageMode As ESRI.ArcGIS.Schematic.esriSchematicAttributeStorageMode, ByVal ParameterNames As ESRI.ArcGIS.Schematic.IEnumSchematicQueryParameter, ByVal SchematicDataSource As ESRI.ArcGIS.Schematic.ISchematicDataSource, ByVal sFieldName As String, ByVal sQueryString As String) As ESRI.ArcGIS.Schematic.ISchematicAttributeQuery
Dim schAttribute As ESRI.ArcGIS.Schematic.ISchematicAttribute=Nothing
Try
' create an ISchematicAttribute
Dim pUid As ESRI.ArcGIS.esriSystem.UID=New ESRI.ArcGIS.esriSystem.UID()
pUid.Value="{9EB161BE-31BB-43E6-93ED-12BC62E6369D}"
schAttribute=schElementClass.CreateSchematicAttribute(AttributeName, pUid)
Catch
Return Nothing
End Try
Dim schAttributeMngt As ESRI.ArcGIS.Schematic.ISchematicAttributeManagement=TryCast(schAttribute, ESRI.ArcGIS.Schematic.ISchematicAttributeManagement)
Try
' the StorageMode must be set before the EvaluationMode
' consistenty is checked when the EvaluationMode is set
schAttributeMngt.StorageMode=StorageMode
schAttributeMngt.EvaluationMode=EvalMode
Catch
' an error is returned if the StorageMode and EvaluationMode are not consistent
End Try
' cast SchematicAttribute into ISchematicAttributeQuery and set its properties
Dim schAttQuery As ESRI.ArcGIS.Schematic.ISchematicAttributeQuery=TryCast(schAttribute, ESRI.ArcGIS.Schematic.ISchematicAttributeQuery)
If (schAttQuery IsNot Nothing) Then
schAttQuery.FieldName=sFieldName
schAttQuery.QueryString=sQueryString
schAttQuery.SchematicDataSource=SchematicDataSource
schAttQuery.SchematicQueryParameters=ParameterNames
End If
Return schAttQuery
End Function