// Copyright 2025, ANSYS Inc. Unauthorized use, distribution or duplication is prohibited.
syntax = "proto3";
package ansys.api.discovery.v1;

option csharp_namespace = "Ansys.Api.Discovery.V1";

enum BodyType{
  BODYTYPE_NONE = 0;
  BODYTYPE_MASTER = 1;
  BODYTYPE_ORIGINAL = 2;
  BODYTYPE_PARENT=3;
}

//
// The type of dimension.
enum DimensionType {
  DIMENSIONTYPE_UNKNOWN = 0;
  DIMENSIONTYPE_LINEAR = 1;
  DIMENSIONTYPE_DIAMETRIC = 2;
  DIMENSIONTYPE_RADIAL = 3;
  DIMENSIONTYPE_ARC = 4;
  DIMENSIONTYPE_AREA = 5;
  DIMENSIONTYPE_VOLUME = 6;
  DIMENSIONTYPE_MASS = 7;
  DIMENSIONTYPE_ANGULAR = 8;
  DIMENSIONTYPE_COUNT = 9;
  DIMENSIONTYPE_UNITLESS = 10;
}

// Defines the type of location, some conditions support application to either bodies and faces
enum LocationType {
  LOCATIONTYPE_FACE = 0;
  LOCATIONTYPE_BODY = 1;
  LOCATIONTYPE_BOLT = 2;
  LOCATIONTYPE_SPRING = 3;
  LOCATIONTYPE_BEAM = 4;
  LOCATIONTYPE_WELD = 5;
  LOCATIONTYPE_EDGE = 6;
  LOCATIONTYPE_AXIS = 7;
}

enum ParameterizationForm {
  OPEN = 0;
  CLOSED = 1;
  PERIODIC = 2;
}

enum DraftSide {
  DRAFTSIDE_NO_SPLIT = 0;
  DRAFTSIDE_THIS = 1;
  DRAFTSIDE_OTHER = 2;
  DRAFTSIDE_BOTH = 3;
}

//
// The type of a fill pattern.
enum FillPatternType { 
  FILLPATTERNTYPE_GRID = 0;
  FILLPATTERNTYPE_OFFSET = 1;
  FILLPATTERNTYPE_SKEWED = 2;
}

//
// The type of a pattern modification.
enum PatternModificationType {
  PATTERNMODIFICATIONTYPE_PRIMARY_COUNT_PRESERVE_SPACING = 0;
  PATTERNMODIFICATIONTYPE_PRIMARY_COUNT_PRESERVE_OVERALL = 1;
  PATTERNMODIFICATIONTYPE_PRIMARY_COUNT_PLUS_PRESERVE_SPACING = 2;
  PATTERNMODIFICATIONTYPE_PRIMARY_COUNT_PLUS_PRESERVE_OVERALL = 3;
  PATTERNMODIFICATIONTYPE_PRIMARY_COUNT_MINUS_PRESERVE_SPACING = 4;
  PATTERNMODIFICATIONTYPE_PRIMARY_COUNT_MINUS_PRESERVE_OVERALL = 5;
  PATTERNMODIFICATIONTYPE_PRIMARY_OVERALL_DIMENSION = 6;
  PATTERNMODIFICATIONTYPE_PRIMARY_SPACING_DIMENSION = 7;
  PATTERNMODIFICATIONTYPE_SECONDARY_COUNT_PRESERVE_SPACING = 8;
  PATTERNMODIFICATIONTYPE_SECONDARY_COUNT_PRESERVE_OVERALL = 9;
  PATTERNMODIFICATIONTYPE_SECONDARY_COUNT_PLUS_PRESERVE_SPACING = 10;
  PATTERNMODIFICATIONTYPE_SECONDARY_COUNT_PLUS_PRESERVE_OVERALL =11;
  PATTERNMODIFICATIONTYPE_SECONDARY_COUNT_MINUS_PRESERVE_SPACING = 12;
  PATTERNMODIFICATIONTYPE_SECONDARY_COUNT_MINUS_PRESERVE_OVERALL = 13;
  PATTERNMODIFICATIONTYPE_SECONDARY_OVERALL_DIMENSION = 14;
  PATTERNMODIFICATIONTYPE_SECONDARY_SPACING_DIMENSION = 15;
  PATTERNMODIFICATIONTYPE_CIRCULAR_RADIUS = 16;
}

enum InspectGeometryMessageType {
  INSPECT_GEOMETRY_UNKNOWN = 0;
  INSPECT_GEOMETRY_INFORMATION = 1;
  INSPECT_GEOMETRY_WARNING = 2;
  INSPECT_GEOMETRY_ERROR = 3;
}

enum InspectGeometryLevel {
  COMPLETE = 0;
  VALIDATE = 1;
  SANITY = 2;
}

enum InspectGeometryMessageId {
  INSPECT_GEOMETRY_ID_UNKNOWN= 0;
  NONE= 1;
  NOERROR= 2;
  ERROR_BODYTOPOLOGY= 3;
  ERROR_INSIDEOUTBODY= 4;
  ERROR_GENERALBODY= 5;
  ERROR_FACETOPOLOGY= 6;
  ERROR_FACELOOP= 7;
  ERROR_FACEGEOMETRY= 8;
  ERROR_FACEEDGEGEOMETRY= 9;
  ERROR_EDGEGEOMETRY= 10;
  ERROR_EDGENONMANIFOLD= 11;
  ERROR_EDGETOPOLOGY= 12;
  ERROR_VERTEX= 13;
  ERROR_VERTEXNONMANIFOLD= 14;
  ERROR_MESHSELFINTERSECTS= 15;
  WARNING_MULTIPLESHELLS= 16;
  ERROR_MESHISOPEN= 17;
  ERROR_MESHISNONMANIFOLD= 18;
  UNKNOWN_FACE_ERROR= 19;
  UNKNOWN_EDGE_ERROR= 20;
  INTERNAL_ERROR= 21;
  ERROR_FACEDISPLAY= 22;
  INFO_SLIVERFACE= 23;
  INFO_SLIVEREDGE= 24;
  ERROR_FACEINTERSECTION= 25;
  ERROR_FACESELFINTERSECTINGTOPOLOGY= 26;
  ERROR_FACEFACEINTERSECTION= 27;
  ERROR_EDGEOFFINEXACT= 28;
  ERROR_EDGESELFINTERSECTINGTOPOLOGY= 29;
  ERROR_MESHINCONSISTENTORIENTATION= 30;
  WARNING_GEOMETRYNONG1= 31;
  WARNING_GEOMETRYSELFINTERSECTS= 32;
  WARNING_GEOMETRYCOLLAPSED= 33;
  WARNING_LOOPISNOTCLOSEDPROPERLY= 34;
  WARNING_CURVEISNOTCLOSEDPROPERLY= 35;
  WARNING_SURFACEISNOTCLOSEDPROPERLY= 36;
  WARNING_MESHHASFOLDOVERS= 37;
  ERROR_MESH= 38;
  ERROR_NOGEOMETRY= 39;
  VERTEXOVERLAP = 40;
}

//
// The type of segment.
enum SegmentType {
  SURFACETYPE_LINE = 0;
  SURFACETYPE_ARC = 1;
  SURFACETYPE_CIRCLE = 2;
}


enum ShareType {
  SHARETYPE_NONE=0;
  SHARETYPE_SHARE=1;
  SHARETYPE_MERGE=2;
  SHARETYPE_GROUPS=3;
}

enum MidSurfaceOffsetType {
  MIDSURFACEOFFSETTYPE_MIDDLE=0;
  MIDSURFACEOFFSETTYPE_TOP=1;
  MIDSURFACEOFFSETTYPE_BOTTOM=2;
  MIDSURFACEOFFSETTYPE_VARIABLE=3;
  MIDSURFACEOFFSETTYPE_CUSTOM=4;
}

enum OffsetMode {
  OFFSETMODE_IGNORE_RELATIONSHIPS=0;
  OFFSETMODE_MOVE_FACES_TOGETHER=1;
  OFFSETMODE_MOVE_FACES_APART=2;
}

enum ExtrudeType {
  EXTRUDETYPE_NONE = 0;
  EXTRUDETYPE_ADD = 1;
  EXTRUDETYPE_CUT = 2;
  EXTRUDETYPE_FORCE_ADD = 3;
  EXTRUDETYPE_FORCE_CUT = 4;
  EXTRUDETYPE_FORCE_INDEPENDENT = 5;
  EXTRUDETYPE_FORCE_NEW_SURFACE = 6;
}

//
// Object type descriptor
enum EntityType{
  ENTITYTYPE_PART = 0;
  ENTITYTYPE_COMPONENT = 1;
  ENTITYTYPE_BODY = 2;
  ENTITYTYPE_NAMED_SELECTION = 3;
  ENTITYTYPE_EDGE = 4;
  ENTITYTYPE_FACE = 5;
}

//
// The type of curve.
enum CurveType {
  CURVETYPE_UNKNOWN = 0;
  CURVETYPE_LINE = 1;
  CURVETYPE_CIRCLE = 2;
  CURVETYPE_ELLIPSE = 3;
  CURVETYPE_NURBS = 4;
  CURVETYPE_PROCEDURAL = 5;
}

//
// The type of surface.
enum SurfaceType {
  SURFACETYPE_UNKNOWN = 0;
  SURFACETYPE_PLANE = 1;
  SURFACETYPE_CYLINDER = 2;
  SURFACETYPE_CONE = 3;
  SURFACETYPE_TORUS = 4;
  SURFACETYPE_SPHERE = 5;
  SURFACETYPE_NURBS = 6;
  SURFACETYPE_PROCEDURAL = 7;
}

//
// The type of collision.
enum CollisionType { 
  COLLISIONTYPE_NONE=0;
  COLLISIONTYPE_TOUCH=1;
  COLLISIONTYPE_INTERSECT=2;
  COLLISIONTYPE_CONTAINED=3;
  COLLISIONTYPE_CONTAINEDTOUCH=4;
}

//
// The fill style type for a body.
enum BodyFillStyle { 
  BODYFILLSTYLE_DEFAULT=0;
  BODYFILLSTYLE_OPAQUE=1;
  BODYFILLSTYLE_TRANSPARENT=2;
}

//
// The beam type for a Beam
enum BeamType {
  BEAMTYPE_BEAM=0;
  BEAMTYPE_SPRING=1;
  BEAMTYPE_LINK_TRUSS=2;
  BEAMTYPE_CABLE=3;
  BEAMTYPE_PIPE=4;
  BEAMTYPE_THERMALFLUID=5;
  BEAMTYPE_UNKNOWN=6; 
}

enum BeamAnchorPosition {
  BEAMANCHORPOSITION_SHEARCENTER=0;
  BEAMANCHORPOSITION_CENTROID=1;
  BEAMANCHORPOSITION_LOCATION=2;
}