acdb.h 94 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824
  1. //
  2. //////////////////////////////////////////////////////////////////////////////
  3. //
  4. // Copyright 2015 Autodesk, Inc. All rights reserved.
  5. //
  6. // Use of this software is subject to the terms of the Autodesk license
  7. // agreement provided at the time of installation or download, or which
  8. // otherwise accompanies this software in either electronic or hard copy form.
  9. //
  10. //////////////////////////////////////////////////////////////////////////////
  11. //
  12. //
  13. // acdb.h: Definitions for AutoCAD Database Library, including AcDb class
  14. // shared between Internal and 3rd party Developers
  15. #ifndef AD_ACDB_H
  16. #define AD_ACDB_H 1
  17. #include "adesk.h"
  18. #include "AdAChar.h" // for ACRX_T()
  19. #include "rxobject.h"
  20. #include "gepnt3d.h"
  21. #ifdef ACAD_OBJID_INLINE_INTERNAL
  22. # include "dbidinln.h"
  23. #else
  24. # include "dbidapps.h"
  25. #endif
  26. #include "dbboiler.h"
  27. // String Constants
  28. //
  29. #define ACDB_SERVICES ACRX_T(/*MSG0*/"AcDbServices")
  30. #define ACDB_MODEL_SPACE ACRX_T(/*MSG0*/"*Model_Space")
  31. #define ACDB_PAPER_SPACE ACRX_T(/*MSG0*/"*Paper_Space")
  32. #define ACDB_NULL_HANDLE ACRX_T("\0\0\0\0\0\0\0") // deprecated - use empty string instead
  33. #define ACDB_OPEN_BRACE_STR ACRX_T(/*MSG0*/"{")
  34. #define ACDB_OPEN_BRACE_CHAR ACRX_T(/*MSG0*/'{')
  35. #define ACDB_CLOSE_BRACE_STR ACRX_T(/*MSG0*/"}")
  36. #define ACDB_CLOSE_BRACE_CHAR ACRX_T(/*MSG0*/'}')
  37. #define ACDB_GROUP_DICTIONARY ACRX_T(/*MSG0*/"ACAD_GROUP")
  38. #define ACDB_MLINESTYLE_DICTIONARY ACRX_T(/*MSG0*/"ACAD_MLINESTYLE")
  39. #define ACDB_LAYOUT_DICTIONARY ACRX_T(/*MSG0*/"ACAD_LAYOUT")
  40. #define ACDB_PLOTSETTINGS_DICTIONARY ACRX_T(/*MSG0*/"ACAD_PLOTSETTINGS")
  41. #define ACDB_PLOTSTYLENAME_DICTIONARY ACRX_T(/*MSG0*/"ACAD_PLOTSTYLENAME")
  42. #define ACDB_MATERIAL_DICTIONARY ACRX_T(/*MSG0*/"ACAD_MATERIAL")
  43. #define ACDB_VISUALSTYLE_DICTIONARY ACRX_T(/*MSG0*/"ACAD_VISUALSTYLE")
  44. #define ACDB_COLOR_DICTIONARY ACRX_T(/*MSG0*/"ACAD_COLOR")
  45. #define ACDB_TABLESTYLE_DICTIONARY ACRX_T(/*MSG0*/"ACAD_TABLESTYLE")
  46. #define ACDB_EMBEDDED_OBJECT_STR ACRX_T(/*MSG0*/"Embedded Object")
  47. #define ACDB_LAYERSTATES_DICTIONARY ACRX_T(/*MSG0*/"ACAD_LAYERSTATES")
  48. #define ACDB_FIELD_DICTIONARY ACRX_T(/*MSG0*/"ACAD_FIELD")
  49. #define ACDB_FIELDLIST ACRX_T(/*MSG0*/"ACAD_FIELDLIST")
  50. #define ACDB_ENHANCED_BLOCK ACRX_T(/*MSG0*/"ACAD_ENHANCEDBLOCK")
  51. #define ACDB_ENHANCED_BLOCK_EVALKEY ACRX_T(/*MSG0*/"ACAD_ENHANCEDBLOCKEVALKEY")
  52. #define ACDB_ENHANCED_BLOCK_REF ACRX_T(/*MSG0*/"ACAD_ENHANCEDBLOCK_REFERENCE")
  53. #define ACDB_SECTION_MANAGER ACRX_T(/*MSG0*/"ACAD_SECTION_MANAGER")
  54. #define ACDB_DATALINK ACRX_T(/*MSG0*/"ACAD_DATALINK")
  55. #define ACDB_MLEADERSTYLE_DICTIONARY ACRX_T(/*MSG0*/"ACAD_MLEADERSTYLE")
  56. #define ACDB_ASSOCNETWORK_DICTIONARY ACRX_T(/*MSG0*/"ACAD_ASSOCNETWORK")
  57. #define ACDB_SECTIONSTYLE_DICTIONARY ACRX_T(/*MSG0*/"ACAD_SECTIONVIEWSTYLE")
  58. #define ACDB_DETAILSTYLE_DICTIONARY ACRX_T(/*MSG0*/"ACAD_DETAILVIEWSTYLE")
  59. // Formerly #define ACDB_ANNOTATIONSCALES_COLLECTION ACRX_T(/*MSG0*/"ACDB_ANNOTATIONSCALES")
  60. // acdbAnnotationScaleCollectionName() is declared in dbObjectContextInterface.h
  61. #define ACDB_ANNOTATIONSCALES_COLLECTION acdbAnnotationScaleCollectionName()
  62. // struct Acad in acadstrc.h contains error codes eOk, etc
  63. //
  64. #include "acadstrc.h"
  65. #pragma pack(push, 8)
  66. struct AcDb
  67. {
  68. enum OpenMode { kForRead = 0,
  69. kForWrite = 1,
  70. kForNotify = 2 };
  71. enum CoordAxis { kX = 0,
  72. kY = 1,
  73. kZ = 2 };
  74. enum CoordSystem { kWorldCS = 0,
  75. kUserCS = 1,
  76. kCurDisplayCS = 2,
  77. kPaperDisplayCS = 3,
  78. kEntityCS = 4 };
  79. enum Intersect { kOnBothOperands = 0,
  80. kExtendThis = 1,
  81. kExtendArg = 2,
  82. kExtendBoth = 3 };
  83. enum Visibility { kInvisible = 1,
  84. kVisible = 0 };
  85. typedef Adesk::Int16 DxfCode;
  86. enum { kDxfInvalid = -9999,
  87. kDxfXDictionary = -6,
  88. kDxfPReactors = -5,
  89. kDxfOperator = -4,
  90. kDxfXDataStart = -3,
  91. kDxfHeaderId = -2,
  92. kDxfFirstEntId = -2,
  93. kDxfEnd = -1,
  94. kDxfStart = 0,
  95. kDxfText = 1,
  96. kDxfXRefPath = 1,
  97. kDxfShapeName = 2,
  98. kDxfBlockName = 2,
  99. kDxfAttributeTag = 2,
  100. kDxfSymbolTableName = 2,
  101. kDxfMstyleName = 2,
  102. kDxfSymTableRecName = 2,
  103. kDxfAttributePrompt = 3,
  104. kDxfDimStyleName = 3,
  105. kDxfLinetypeProse = 3,
  106. kDxfTextFontFile = 3,
  107. kDxfDescription = 3,
  108. kDxfDimPostStr = 3,
  109. kDxfTextBigFontFile = 4,
  110. kDxfDimAPostStr = 4,
  111. kDxfCLShapeName = 4,
  112. kDxfSymTableRecComments = 4,
  113. kDxfHandle = 5,
  114. kDxfDimBlk = 5,
  115. kDxfDimBlk1 = 6,
  116. kDxfLinetypeName = 6,
  117. kDxfDimBlk2 = 7,
  118. kDxfTextStyleName = 7,
  119. kDxfLayerName = 8,
  120. kDxfCLShapeText = 9,
  121. kDxfXCoord = 10,
  122. kDxfYCoord = 20,
  123. kDxfZCoord = 30,
  124. kDxfElevation = 38,
  125. kDxfThickness = 39,
  126. kDxfReal = 40,
  127. kDxfViewportHeight = 40,
  128. kDxfTxtSize = 40,
  129. kDxfTxtStyleXScale = 41,
  130. kDxfViewWidth = 41,
  131. kDxfViewportAspect = 41,
  132. kDxfTxtStylePSize = 42,
  133. kDxfViewLensLength = 42,
  134. kDxfViewFrontClip = 43,
  135. kDxfViewBackClip = 44,
  136. kDxfShapeXOffset = 44,
  137. kDxfShapeYOffset = 45,
  138. kDxfViewHeight = 45,
  139. kDxfShapeScale = 46,
  140. kDxfPixelScale = 47,
  141. kDxfLinetypeScale = 48,
  142. kDxfDashLength = 49,
  143. kDxfMlineOffset = 49,
  144. kDxfLinetypeElement = 49,
  145. kDxfAngle = 50,
  146. kDxfViewportSnapAngle = 50, // deprecated
  147. kDxfViewportTwist = 51,
  148. kDxfVisibility = 60,
  149. kDxfViewportGridDisplay = 60,
  150. kDxfLayerLinetype = 61,
  151. kDxfViewportGridMajor = 61,
  152. kDxfColor = 62,
  153. // Removed codes intended
  154. // only for internal
  155. // use: 63-65
  156. kDxfHasSubentities = 66,
  157. kDxfViewportVisibility = 67,
  158. kDxfViewportActive = 68,
  159. kDxfViewportNumber = 69,
  160. kDxfInt16 = 70,
  161. kDxfViewMode = 71,
  162. kDxfCircleSides = 72,
  163. kDxfViewportZoom = 73,
  164. kDxfViewportIcon = 74,
  165. kDxfViewportSnap = 75,
  166. kDxfViewportGrid = 76,
  167. kDxfViewportSnapStyle= 77,
  168. kDxfViewportSnapPair= 78,
  169. kDxfRegAppFlags = 71,
  170. kDxfTxtStyleFlags = 71,
  171. kDxfLinetypeAlign = 72,
  172. kDxfLinetypePDC = 73,
  173. kDxfInt32 = 90,
  174. kDxfVertexIdentifier = 91,
  175. // Subclass Section Marker
  176. //
  177. // to be followed by subclass name.
  178. //
  179. kDxfSubclass = 100,
  180. kDxfEmbeddedObjectStart = 101,
  181. kDxfControlString = 102,
  182. // DimVarTableRecords have been using 5 for a
  183. // string value. With R13, they get a handle
  184. // value as well. Since 5 is already in use,
  185. // we use 105 for this special case.
  186. //
  187. kDxfDimVarHandle = 105,
  188. kDxfUCSOrg = 110,
  189. kDxfUCSOriX = 111,
  190. kDxfUCSOriY = 112,
  191. kDxfXReal = 140,
  192. kDxfViewBrightness = 141,
  193. kDxfViewContrast = 142,
  194. // 64-bit integers can only be used with
  195. // AcDbDwgVersion kDHL_1024 and higher.
  196. //
  197. kDxfInt64 = 160,
  198. kDxfXInt16 = 170,
  199. // 180 - 189 cannot be used
  200. // 190-199 are invalid
  201. kDxfNormalX = 210,
  202. kDxfNormalY = 220,
  203. kDxfNormalZ = 230,
  204. // 260-269 are invalid
  205. kDxfXXInt16 = 270,
  206. kDxfInt8 = 280,
  207. kDxfRenderMode = 281,
  208. kDxfDefaultLightingType = 282,
  209. kDxfShadowFlags = 284,
  210. kDxfBool = 290,
  211. kDxfDefaultLightingOn = 292,
  212. // More string values 300-309
  213. kDxfXTextString = 300,
  214. // Arbitrary Binary Chunks 310-319
  215. kDxfBinaryChunk = 310,
  216. // Arbitrary Object Handles 320-329
  217. kDxfArbHandle = 320,
  218. kDxfSoftPointerId = 330, // 330-339
  219. kDxfViewBackgroundId = 332, // softPointer to background of viewport and viewporttable record
  220. kDxfShadePlotId = 333, // softPointer to shade plot visual style or render preset
  221. kDxfLiveSectionId = 334, // softPointer to LiveSection of view, viewport and viewporttable record
  222. kDxfLiveSectionName = 309, // LiveSection Name
  223. kDxfHardPointerId = 340, // 340-349
  224. kDxfObjVisualStyleId = 345,
  225. kDxfVpVisualStyleId = 346,
  226. kDxfMaterialId = 347, // hardpointer reference to AcDbMaterial
  227. kDxfVisualStyleId = 348, // hardpointer reference to visual style
  228. kDxfDragVisualStyleId = 349, // hardpointer reference to visual style
  229. kDxfSoftOwnershipId = 350, // 350-359
  230. kDxfHardOwnershipId = 360, // 360-369
  231. kDxfSunId = 361, // hardownership reference to sun object
  232. // New base entity properties
  233. // Lineweight is either an integer
  234. // or "BYLAYER" or "BYBLOCK"
  235. kDxfLineWeight = 370,
  236. kDxfPlotStyleNameType = 380,
  237. kDxfPlotStyleNameId = 390,
  238. kDxfXXXInt16 = 400,
  239. kDxfLayoutName = 410,
  240. // Extended color information for base entities
  241. kDxfColorRGB = 420,
  242. kDxfColorName = 430,
  243. // New base entity property Alpha is an integer
  244. kDxfAlpha = 440,
  245. kDxfGradientObjType = 450,
  246. kDxfGradientPatType = 451,
  247. kDxfGradientTintType = 452,
  248. kDxfGradientColCount = 453,
  249. kDxfGradientAngle = 460,
  250. kDxfGradientShift = 461,
  251. kDxfGradientTintVal = 462,
  252. kDxfGradientColVal = 463,
  253. kDxfGradientName = 470,
  254. kDxfFaceStyleId = 480,
  255. kDxfEdgeStyleId = 481,
  256. kDxfComment = 999,
  257. kDxfXdAsciiString = 1000,
  258. kDxfRegAppName = 1001,
  259. kDxfXdControlString = 1002,
  260. kDxfXdLayerName = 1003,
  261. kDxfXdBinaryChunk = 1004,
  262. kDxfXdHandle = 1005,
  263. kDxfXdXCoord = 1010,
  264. kDxfXdYCoord = 1020,
  265. kDxfXdZCoord = 1030,
  266. kDxfXdWorldXCoord = 1011,
  267. kDxfXdWorldYCoord = 1021,
  268. kDxfXdWorldZCoord = 1031,
  269. kDxfXdWorldXDisp = 1012,
  270. kDxfXdWorldYDisp = 1022,
  271. kDxfXdWorldZDisp = 1032,
  272. kDxfXdWorldXDir = 1013,
  273. kDxfXdWorldYDir = 1023,
  274. kDxfXdWorldZDir = 1033,
  275. kDxfXdReal = 1040,
  276. kDxfXdDist = 1041,
  277. kDxfXdScale = 1042,
  278. kDxfXdInteger16 = 1070,
  279. kDxfXdInteger32 = 1071,
  280. // This enum value should always be set to whatever the highest
  281. // enum value is.
  282. kDxfXdMax = kDxfXdInteger32};
  283. // Primitives.
  284. //
  285. enum DwgDataType { kDwgNull = 0,
  286. kDwgReal = 1,
  287. kDwgInt32 = 2,
  288. kDwgInt16 = 3,
  289. kDwgInt8 = 4,
  290. kDwgText = 5,
  291. kDwgBChunk = 6,
  292. kDwgHandle = 7,
  293. kDwgHardOwnershipId = 8,
  294. kDwgSoftOwnershipId = 9,
  295. kDwgHardPointerId = 10,
  296. kDwgSoftPointerId = 11,
  297. kDwg3Real = 12,
  298. kDwgInt64 = 13,
  299. kDwgNotRecognized = 19 };
  300. // OsnapMask: Specifies Osnap Operation.
  301. //
  302. enum OsnapMask { kOsMaskEnd = 1,
  303. kOsMaskMid = 2,
  304. kOsMaskCen = 4,
  305. kOsMaskNode = 8,
  306. kOsMaskQuad = 0x10,
  307. kOsMaskInt = 0x20,
  308. kOsMaskIns = 0x40,
  309. kOsMaskPerp = 0x80,
  310. kOsMaskTan = 0x100,
  311. kOsMaskNear = 0x200,
  312. kOsMaskQuick = 0x400,
  313. kOsMaskApint = 0x800,
  314. kOsMaskImmediate = 0x10000,
  315. kOsMaskAllowTan = 0x20000,
  316. kOsMaskDisablePerp = 0x40000,
  317. kOsMaskRelCartesian = 0x80000,
  318. kOsMaskRelPolar = 0x100000,
  319. kOsMaskNoneOverride = 0x200000 };
  320. // OsnapMode: Specifies Object query.
  321. // Binary and Virtual Operations not represented.
  322. //
  323. enum OsnapMode { kOsModeEnd = 1,
  324. kOsModeMid = 2,
  325. kOsModeCen = 3,
  326. kOsModeNode = 4,
  327. kOsModeQuad = 5,
  328. kOsModeIns = 7,
  329. kOsModePerp = 8,
  330. kOsModeTan = 9,
  331. kOsModeNear = 10,
  332. kOsModeCentroid = 11, };
  333. enum ShowImagesMode { kNeverShow = 0,
  334. kAlwaysShow = 1,
  335. kBoundingBoxShow = 2 };
  336. enum SaveImagesMode { kNeverSave = 0,
  337. kAlwaysSave = 1 };
  338. enum TextHorzMode { kTextLeft = 0, // TH_LEFT,
  339. kTextCenter = 1, // TH_CENT,
  340. kTextRight = 2, // TH_RIGHT,
  341. kTextAlign = 3, // THV_ALIGN,
  342. kTextMid = 4, // THV_MID,
  343. kTextFit = 5 }; // THV_FIT
  344. enum TextVertMode { kTextBase = 0, // TV_BASE,
  345. kTextBottom = 1, // TV_BOT,
  346. kTextVertMid = 2, // TV_MID,
  347. kTextTop = 3 }; // TV_TOP
  348. enum LineSpacingStyle { kAtLeast = 1,
  349. kExactly = 2 };
  350. enum Planarity { kNonPlanar = 0,
  351. kPlanar = 1,
  352. kLinear = 2 };
  353. enum PointIndex { kMPoint1 = 0,
  354. kMPoint2 = 1,
  355. kMPoint3 = 2,
  356. kMPoint4 = 3 };
  357. enum EdgeIndex { kMEdge1 = 0,
  358. kMEdge2 = 1,
  359. kMEdge3 = 2,
  360. kMEdge4 = 3 };
  361. enum Poly2dType { k2dSimplePoly = 0,
  362. k2dFitCurvePoly = 1,
  363. k2dQuadSplinePoly = 2,
  364. k2dCubicSplinePoly = 3 };
  365. enum Poly3dType { k3dSimplePoly = 0,
  366. k3dQuadSplinePoly = 1,
  367. k3dCubicSplinePoly = 2 };
  368. enum PolyMeshType { kSimpleMesh = 0,
  369. kQuadSurfaceMesh = 5,
  370. kCubicSurfaceMesh = 6,
  371. kBezierSurfaceMesh = 8 };
  372. enum Vertex2dType { k2dVertex = 0,
  373. k2dSplineCtlVertex = 1,
  374. k2dSplineFitVertex = 2,
  375. k2dCurveFitVertex = 3 };
  376. enum Vertex3dType { k3dSimpleVertex = 0,
  377. k3dControlVertex = 1,
  378. k3dFitVertex = 2 };
  379. enum SpaceValueType { kUndefined,
  380. kStubPtr,
  381. kEndOfFile,
  382. kBackwardBranch,
  383. kForwardBranch,
  384. kDetour };
  385. enum BoolOperType { kBoolUnite = 0,
  386. kBoolIntersect = 1,
  387. kBoolSubtract = 2 };
  388. typedef Adesk::UInt32 SubentType;
  389. enum { kNullSubentType = 0,
  390. kFaceSubentType = 1,
  391. kEdgeSubentType = 2,
  392. kVertexSubentType = 3,
  393. ////////////////////////////////////////////////////////////
  394. //
  395. // Mline specific type //
  396. //
  397. kMlineSubentCache = 4, // Beauty is in the eye
  398. // of the beholder.
  399. //
  400. ////////////////////////////////////////////////////////////
  401. kClassSubentType = 5,
  402. kAxisSubentType = 6,
  403. kSilhouetteSubentType = 7,
  404. };
  405. typedef Adesk::UInt32 GeomId;
  406. enum { kNoGeom = 0 };
  407. enum GeomType { kInvalidGeom = 0,
  408. kPointGeom,
  409. kLineGeom,
  410. kCircleGeom,
  411. kPlaneGeom };
  412. enum FilerType { kFileFiler = 0,
  413. kCopyFiler = 1,
  414. kUndoFiler = 2,
  415. kBagFiler = 3,
  416. kIdXlateFiler = 4,
  417. kPageFiler = 5,
  418. kDeepCloneFiler = 6,
  419. kIdFiler = 7,
  420. kPurgeFiler = 8,
  421. kWblockCloneFiler = 9 };
  422. enum FilerSeekType { kSeekFromStart = 0,
  423. kSeekFromCurrent = 1,
  424. kSeekFromEnd = 2 };
  425. enum AcDbDwgVersion { kDHL_MC0_0 = 0,
  426. kDHL_AC1_2 = 1,
  427. kDHL_AC1_40 = 2,
  428. kDHL_AC1_50 = 3,
  429. kDHL_AC2_20 = 4,
  430. kDHL_AC2_10 = 5,
  431. kDHL_AC2_21 = 6,
  432. kDHL_AC2_22 = 7,
  433. kDHL_1001 = 8,
  434. kDHL_1002 = 9, // AutoCAD 2.5
  435. kDHL_1003 = 10, // AutoCAD 2.6
  436. kDHL_1004 = 11, // Release 9
  437. kDHL_1005 = 12,
  438. kDHL_1006 = 13, // Release 10
  439. kDHL_1007 = 14,
  440. kDHL_1008 = 15,
  441. kDHL_1009 = 16, // R11 and R12
  442. kDHL_1010 = 17,
  443. kDHL_1011 = 18,
  444. kDHL_1012 = 19, // R13
  445. kDHL_1013 = 20, // R14 mid version.
  446. kDHL_1014 = 21, // R14 final version.
  447. kDHL_1500 = 22, // 2000 development (Tahoe)
  448. kDHL_1015 = 23, // 2000 final version.
  449. kDHL_1800a = 24, // 2004 mid version
  450. kDHL_1800 = 25, // 2004 final
  451. kDHL_2100a = 26, // 2007 Development
  452. kDHL_1021 = 27, // 2007 final
  453. kDHL_2400a = 28, // Gator Development
  454. kDHL_1024 = 29, // 2010 final
  455. kDHL_2700a = 30, // Jaws Development
  456. kDHL_1027 = 31, // 2013 final
  457. kDHL_Newest = kDHL_1027,
  458. kDHL_CURRENT = kDHL_Newest,
  459. kDHL_Unknown = 32766,
  460. kDHL_Max = 32767 };
  461. // kDHL_1012, kMRelease0 = R13c0-3
  462. // kDHL_1012, kMRelease1 = R13c0-3
  463. // kDHL_1012, kMRelease4 = R13c4
  464. // kDHL_1012, kMRelease5 = R13c4_m
  465. // kDHL_1012, kMRelease6 = R13c4a
  466. // kDHL_1013, kMRelease0 = Sedona s000..s045
  467. // kDHL_1013, kMRelease1 = Sedona s046..s050
  468. // kDHL_1013, kMRelease2 = Sedona s051..s052
  469. // kDHL_1013, kMRelease3 = Sedona s053..s054
  470. // kDHL_1013, kMRelease4 = Sedona s055..s059
  471. // kDHL_1013, kMRelease5 = Sedona s060..s063
  472. // kDHL_1013, kMRelease6 = Sedona s064..
  473. // kDHL_1014, kMRelease0 = R14.0
  474. // kDHL_1500, kMRelease0 = Tahoe t010..t016
  475. // kDHL_1500, kMRelease1 = Tahoe t017
  476. // kDHL_1500, kMRelease2 = Tahoe t018, t019
  477. // kDHL_1500, kMRelease3 = Tahoe t020
  478. // kDHL_1500, kMRelease4 = Tahoe t021..t023
  479. // kDHL_1500, kMRelease5 = Tahoe t024
  480. // kDHL_1500, kMRelease6 = Tahoe t025..t027
  481. // kDHL_1500, kMRelease7 = Tahoe t028
  482. // kDHL_1500, kMRelease8 = Tahoe t029
  483. // kDHL_1500, kMRelease9 = Tahoe t030
  484. // kDHL_1500, kMRelease10 = Tahoe t031..t033
  485. // kDHL_1500, kMRelease11 = Tahoe t034
  486. // kDHL_1500, kMRelease12 = Tahoe t035..t036
  487. // kDHL_1500, kMRelease13 = Tahoe t037..t038
  488. // kDHL_1500, kMRelease14 = Tahoe t039
  489. // kDHL_1500, kMRelease15 = Tahoe t040..t041
  490. // kDHL_1500, kMRelease17 = Tahoe t042
  491. // kDHL_1500, kMRelease20 = Tahoe t047
  492. // kDHL_1500, kMRelease21 = Tahoe t048
  493. // kDHL_1500, kMRelease22 = Tahoe t049..t050
  494. // kDHL_1500, kMRelease23 = Tahoe t051
  495. // kDHL_1500, kMRelease24 = Tahoe t052..t053
  496. // kDHL_1500, kMRelease25 = Tahoe t054
  497. // kDHL_1500, kMRelease26 = Tahoe t055
  498. // kDHL_1500, kMRelease27 = Tahoe t056
  499. // kDHL_1500, kMRelease28 = not used
  500. // kDHL_1500, kMRelease29 = Tahoe t057
  501. // kDHL_1500, kMRelease30 = Tahoe t058
  502. // kDHL_1500, kMRelease31 = Tahoe t059
  503. // kDHL_1500, kMRelease32 = Tahoe t060
  504. // kDHL_1500, kMRelease33 = Tahoe t061
  505. // kDHL_1500, kMRelease34 = Tahoe t062..t063
  506. // kDHL_1500, kMRelease35 = Tahoe t064
  507. // kDHL_1500, kMRelease36 = Tahoe t065
  508. // kDHL_1500, kMRelease37 = Tahoe t066
  509. // kDHL_1500, kMRelease38 = Tahoe t067
  510. // kDHL_1500, kMRelease39 = Tahoe t068
  511. // kDHL_1500, kMRelease40 = Tahoe t069..t070 (fmt changed, tho this didn't)
  512. // kDHL_1500, kMRelease41 = Tahoe t071
  513. // kDHL_1500, kMRelease42 = Tahoe t072
  514. // kDHL_1500, kMRelease43 = Tahoe t073
  515. // kDHL_1500, kMRelease44 = Tahoe t074
  516. // kDHL_1500, kMRelease45 = Tahoe t075..t077
  517. // kDHL_1500, kMRelease46 = Tahoe t078
  518. // kDHL_1015, kMRelease0 = Tahoe t079..t080
  519. // kDHL_1015, kMRelease1 = Tahoe t081..t083
  520. // kDHL_1015, kMRelease2 = Tahoe t084..t086
  521. // kDHL_1015, kMRelease3 = Tahoe t087..t088
  522. // kDHL_1015, kMRelease4 = Tahoe t089..t091
  523. // kDHL_1015, kMRelease5 = Tahoe t092..t094
  524. // kDHL_1015, kMRelease6 = Tahoe t095..
  525. // kDHL_1015, kMRelease7 = Banff u002..
  526. // kDHL_1015, kMRelease8 = Banff u016..
  527. // kDHL_1015, kMRelease9 = Banff u028..
  528. // kDHL_1015, kMRelease10 = Banff u070..
  529. // kDHL_1015, kMRelease11 = Banff SP3...
  530. // kDHL_1015, kMRelease12 = Kirkland K001...
  531. // kDHL_1015, kMRelease13 = Kirkland K009 (Banff SP3 merge)
  532. // kDHL_1015, kMRelease14 = Kirkland K039...
  533. // kDHL_1015, kMRelease14 = Red Deer V001...V012
  534. // kDHL_1015, kMRelease15 = Red Deer V051+ SaveAs 2000
  535. // kDHL_1016, kMRelease16...17 unused by Red Deer
  536. // kDHL_1016, kMRelease18 = Red Deer V013...V039+
  537. // kDHL_1016, kMRelease19 = Red Deer V040..
  538. // kDHL_1800, kMRelease0 = Red Deer v032..v033 (not kDHL_CURRENT yet)
  539. // kDHL_1800, kMRelease1 = Red Deer v034..v050 (not kDHL_CURRENT yet)
  540. // kDHL_1800('AC401h'), kMRelease0 = Red Deer v051+ (kDHL_CURRENT)
  541. // kDHL_1800('AC402b'), kMRelease0 = Red Deer v062+ (kDHL_CURRENT)
  542. // kDHL_1800, kMRelease0 = RedDeer shipping
  543. // kDHL_1800, kMRelease1 = RedDeer service pack
  544. // kDHL_1800, kMRelease21 = Neo n020
  545. // kDHL_1800, kMRelease22 = Neo n021...
  546. // kDHL_1800, kMRelease23 = Neo n023...
  547. // kDHL_1800, kMRelease24 = Neo n025...Alpha1
  548. // kDHL_1800, kMRelease25 = Neo n026...
  549. // kDHL_1800, kMRelease26 = Neo n027...
  550. // kDHL_1800, kMRelease27 = Neo n030...Alpha2
  551. // kDHL_1800, kMRelease28 = Neo n031...
  552. // kDHL_1800, kMRelease29 = Neo n032...
  553. // kDHL_1800, kMRelease30 = Neo n034...Beta1
  554. // kDHL_1800, kMRelease31 = Neo n035...
  555. // kDHL_1800, kMRelease32 = Neo n036...
  556. // kDHL_1800, kMRelease33 = Neo n041, N042, N041.100...
  557. // kDHL_1800, kMRelease34 = Neo n041.101....Beta2
  558. // kDHL_1800, kMRelease35 = Neo n043...
  559. // kDHL_1800, kMRelease36 = Neo n045, n046, n047...
  560. // kDHL_1800, kMRelease37 = Neo n046.100....Beta3
  561. // kDHL_1800, kMRelease38 = Neo n048...
  562. // kDHL_1800, kMRelease39 = Neo n058...n063 (fcs)
  563. // kDHL_1800, kMRelease55 = Rio z002...z023
  564. // kDHL_1800, kMRelease56 = Rio z024 (alpha1)
  565. // kDHL_1800, kMRelease57 = Rio z025...
  566. // kDHL_1800, kMRelease58 = Rio z026...
  567. // kDHL_1800, kMRelease59 = Rio z029...
  568. // kDHL_1800, kMRelease60 = Rio z030...
  569. // kDHL_1800, kMRelease61 = Rio z031...
  570. // kDHL_1800, kMRelease62 = Rio z032...
  571. // kDHL_1800, kMRelease63 = Rio z033...
  572. // kDHL_1800, kMRelease64 = Rio z034... (beta 1)
  573. // kDHL_1800, kMRelease65 = Rio z035...
  574. // kDHL_1800, kMRelease66 = Rio z036...
  575. // kDHL_1800, kMRelease67 = Rio z038... (beta 2)
  576. // kDHL_1800, kMRelease68 = Rio z039...
  577. // kDHL_1800, kMRelease69 = Rio z041...
  578. // kDHL_1800, kMRelease70 = Rio z045... (beta 3)
  579. // kDHL_1800, kMRelease71 = Rio z046...
  580. // kDHL_1800, kMRelease72 = Rio z048.100... (beta 4)
  581. // kDHL_1800, kMRelease73 = Rio z049...
  582. // kDHL_1800, kMRelease74 = Rio z050.100... (beta 5)
  583. // kDHL_1800, kMRelease75 = Rio z051...
  584. // kDHL_1800, kMRelease76 = Rio z052...Rio release candidate 1
  585. // kDHL_1800, kMRelease100 = PostRio ...
  586. // kDHL_2100a ('AC701a'), kMRelease0 = PostRio (not kDHL_Current yet)
  587. // kDHL_2100a, kMRelease10 = PostRio a032...
  588. // kDHL_2100a, kMRelease13 = PostRio a041
  589. // kDHL_1021, kMRelease0 = PostRio a043
  590. // kDHL_1021, kMRelease1 = PostRio shipping, Spago b001...b016
  591. // kDHL_1021, kMRelease2 = PostRio SP1
  592. // kDHL_1021, kMRelease3 = PostRio SP2 (Vista)
  593. // kDHL_1021, kMRelease15 = Spago b017...b028, alpha 2
  594. // kDHL_1021, kMRelease16 = Spago b029...
  595. // kDHL_1021, kMRelease17 = Spago b030...b031
  596. // kDHL_1021, kMRelease18 = Spago b032 (Beta 1)...
  597. // kDHL_1021, kMRelease19 = Spago b033...
  598. // kDHL_1021, kMRelease20 = Spago b036...(Beta 2)...
  599. // kDHL_1021, kMRelease21 = Spago b038...
  600. // kDHL_1021, kMRelease22 = Spago b039...
  601. // kDHL_1021, kMRelease23 = Spago b040...(Beta 3)...
  602. // kDHL_1021, kMRelease24 = Spago b041...
  603. // kDHL_1021, kMRelease25 = Spago b043...(Beta 4)... FCS
  604. // kDHL_1021, kMRelease45 = Raptor c004...
  605. // kDHL_1021, kMRelease46 = Raptor c030... (Alpha 1)
  606. // kDHL_1021, kMRelease47 = Raptor c041... (Beta 2)
  607. // kDHL_1021, kMRelease48 = Raptor c045... (Beta 3)
  608. // kDHL_1021, kMRelease49 = Raptor c049... (Beta 4)
  609. // kDHL_1021, kMRelease50 = Raptor c054... (RTM)
  610. // kDHL_1021, kMRelease100 = Gator d006...d015
  611. // kDHL_1021, kMRelease101 = Gator d016...d027
  612. // kDHL_1021, kMRelease102 = Gator d028 (Alpha 1)
  613. // kDHL_2400a (''), kMRelease0 = Gator d016 (not kDHL_Current yet)
  614. // kDHL_2400a (''), kMRelease1 = Gator d017...d022
  615. // kDHL_2400a (''), kMRelease2 = Gator d023...d027
  616. // kDHL_2400a (''), kMRelease3 = Gator d028 (Alpha 1)...d033
  617. // kDHL_1024, kMRelease0 = Gator d034 (Beta 1)
  618. // kDHL_1024, kMRelease1 = Gator d035 ..d038
  619. // kDHL_1024, kMRelease2 = Gator d039.. d044
  620. // kDHL_1024, kMRelease3 = Gator d045 (Beta 3)
  621. // kDHL_1024, kMRelease4 = Gator d046,d047
  622. // kDHL_1024, kMRelease5 = Gator d048 (Beta 4) .. d051
  623. // kDHL_1024, kMRelease6 = Gator d052 (RC1) ... Hammer e000...e003
  624. // kDHL_1024, kMRelease25 = Hammer e004 ...
  625. // kDHL_1024, kMRelease26 = Hammer e020, Branch X AutoCAD Hammer 3D Alpha 2 ...
  626. // kDHL_1024, kMRelease27 = Hammer e021 Incremented again so only Branch X alpha 2 uses 26.
  627. // kDHL_1024, kMRelease28 = Hammer e024, Branch X AutoCAD Hammer 3D Alpha 3 ...
  628. // kDHL_1024, kMRelease29 = Hammer e024 Incremented again so only Branch X alpha 3 uses 28.
  629. // kDHL_1024, kMRelease30 = Hammer e027, Branch X AutoCAD Hammer 3D Alpha 4 ...
  630. // kDHL_1024, kMRelease31 = Hammer e027 Incremented again so only Branch X alpha 4 uses 30.
  631. // kDHL_1024, kMRelease32 = Hammer e031 (beta 1) ... e035.
  632. // kDHL_1024, kMRelease33 = Hammer e036 (Beta 2) ...
  633. // kDJL_1024, kMRelease34 = Hammer e040 (Beta 3) ...
  634. // kDJL_1024, kMRelease35 = Hammer e044 (Beta 4) ...
  635. // kDJL_1024, kMRelease36 = Hammer e047 (Release Candidate beta ) ...
  636. // kDJL_1024, kMRelease37 = Hammer e048 (Release Candidate 1 ) ... f002
  637. // kDJL_1024, kMRelease37 = Hammer e048 (Release Candidate 1 ) ...
  638. // kDJL_1024, kMRelease55 = Ironman f003 ...
  639. // kDHL_1024, kMRelease56 = Ironman F024 Branch U AutoCAD Iroman Alpha 1 ...
  640. // kDHL_1024, kMRelease57 = Ironman F024 Incremented again so only Branch U alpha 1 uses 56.
  641. // kDHL_1024, kMRelease58 = Ironman F029 Ironman Alpha 2.
  642. // kDHL_1024, kMRelease59 = Ironman F029 Incremented again so only Alpha 2 uses 58.
  643. // kDHL_1024, kMRelease60 = Ironman F036 Ironman Beta 1
  644. // kDHL_1024, kMRelease61 = Ironman F040 Ironman Beta 2
  645. // kDHL_1024, kMRelease62 = Ironman F045 Rebuild and F046 mainstream Ironman Beta 3
  646. // kDHL_1024, kMRelease63 = Ironman F049 Ironman Release Candidate preview & Ironman FCS
  647. // kDHL_1024, kMRelease64 = Ironman F051 base - Branch Z AutoCAD 2012 DesignScript Alpha 1
  648. // kDHL_1024, kMRelease65 = Ironman F103 Ironman SP1
  649. // kDHL_1024, kMRelease66 = Ironman F051 base - Branch Z AutoCAD 2012 DesignScript Alpha 2
  650. // kDHL_1024, kMRelease100 = Jaws g000 ... g021w3 (2010 format)
  651. // kDHL_1024, kMRelease101 = Jaws g021w4 ...g031w1 (2010 format)
  652. // kDHL_1024, kMRelease50 = Jaws g0321w1 ...g032w2 (2010 format)
  653. // kDHL_1024, kMRelease102 = Jaws G033 ... (2010 format)
  654. // kDHL_1024, kMRelease103 = Jaws G034... 2010 format for Jaws Alpha 1
  655. // kDHL_1024, kMRelease104 = Jaws G038... 2010 format for Jaws Beta 1
  656. // kDHL_1024, kMRelease105 = Jaws G042... 2010 format for Jaws Beta 2
  657. // kDHL_1024, kMRelease106 = Jaws G047... 2010 format for Jaws possible RealDWG RTV (reciendend)
  658. // kDHL_1024, kMRelease107 = Jaws G047.100... 2010 format for Jaws Beta 3
  659. // kDHL_1024, kMRelease108 = Jaws G048... 2010 format for Jaws RealDWG RTV try 2
  660. // kDHL_1024, kMRelease108 = Jaws G054... 2010 format for AutoCAD 2013 FCS
  661. // kDHL_1024, kMRelease109 = Kastle TP1 H008.300... 2010 format for Shoreline Tech Preview 1
  662. // kDHL_1024, kMRelease110 = Jaws SP1 beta... 2010 format for AutoCAD 2013 FCS
  663. // kDHL_1024, kMRelease111 = Kastle mainstream H011
  664. // kDHL_1024, kMRelease112 = Branch J Customer Council Release Build
  665. // kDHL_1024, kMRelease113 = Kastle mainstream H016 - set to kMRelease112 in Branch J
  666. // kDHL_1024, kMRelease114 = Kastle mainstream H018 - Shoreline TP2
  667. // kDHL_1024, kMRelease115 = Kastle H019 Point Cloud Council 1 build
  668. // kDHL_1024, kMRelease116 = Kastle mainstream H023
  669. // kDHL_1024, kMRelease117 = Kastle H024 Point Cloud Council 2 build
  670. // kDHL_1024, kMRelease118 = Kastle mainstream H026 - Kastle Alpha 1, Suites IB#2
  671. // kDHL_1024, kMRelease119 = Jaws SP2
  672. // kDHL_1024, kMRelease150 = Keystone mainstream I000
  673. // kDHL_1024, kMRelease151 = Keystone Pre-Alpha I003.100
  674. // kDHL_1024, kMRelease152 = Keystone I004
  675. // kDHL_1024, kMRelease153 = Keystone I010
  676. // kDHL_1024, kMRelease154 = Keystone I015 + Keystone RC1 rebuild
  677. // kDHL_1024, kMRelease155 = Keystone I016
  678. // kDHL_1024, kMRelease156 = Keystone SP1 I103, + Longbow J018 Reality Capture Customer Council 1 build.
  679. // kDHL_1024, kMRelease157 = Keystone SP1 I104
  680. // Mac starts from 165
  681. // kDHL_1024, kMRelease165 = SandStone (AutoCAD for Mac 2014) Beta 2 I018
  682. // kDHL_1024, kMRelease166 = SandStone (AutoCAD for Mac 2014) RC Beta I018
  683. // kDHL_1024, kMRelease167 = SandStone (AutoCAD for Mac 2014) FCS I018
  684. // kDHL_1024, kMRelease175 = Longbow Alpha J023
  685. // kDHL_1024, kMRelease176 = Longbow Integration build #1 J026
  686. // kDHL_1024, kMRelease177 = Longbow Integration build #2 J035
  687. // kDHL_1024, kMRelease178 = Longbow - J038.100 rebuild and J039 mainstream
  688. // kDHL_1024, kMRelease179 = Longbow - J043 in mainstream
  689. // kDHL_1024, kMRelease180 = Longbow - J047 RC Candidate build
  690. // kDHL_1024, kMRelease181 = Longbow - RTV candidate - J049, FCS J051
  691. // kDHL_1024, kMRelease182 = Longbow - SP1 stream startup
  692. // Mac starts from 190 for LightSaber
  693. // kDHL_1024, kMRelease190 = LightSaber Alpha J047
  694. // kDHL_1024, kMRelease191 = Lightsaber Alpha 2 J048
  695. // kDHL_1024, kMRelease192 = Lightsaber Beta J051
  696. // kDHL_1024, kMRelease193 = Lightsaber Beta 2 J051
  697. // kDHL_1024, kMRelease194 = Lightsaber RC Beta J051
  698. // kDHL_1024, kMRelease195 = Lightsaber FCS J051
  699. // kDHL_1024, kMRelease200 = Maestro mainstream K000
  700. // kDHL_1024, kMRelease201 = Maestro mainstream Alpha M022
  701. // kDHL_1024, kMRelease202 = Maestro mainstream Beta 1 M038.100
  702. // kDHL_1024, kMRelease203 = Maestro mainstream Beta 2 M043.100
  703. // kDHL_1024, kMRelease204 = Maestro mainstream RC 1 M047.100
  704. // kDHL_1024, kMRelease205 = Maestro mainstream FCS M048
  705. /* **** Jaws 2013 versioning ***** */
  706. // kDHL_2700a (''), kMRelease0 = Jaws g000...g031 2013 format (not kDHL_Current yet)
  707. // kDHL_2700a (''), kMRelease0 = Jaws g032... 2013 format is current
  708. // kDHL_2700a (''), kMRelease1 = Jaws g033...
  709. // kDHL_2700a kMRelease2 = Jaws G034 (Alpha) 2013 format is now current.
  710. // kDHL_1027 kMRelease0 = Jaws G037
  711. // kDHL_1027 kMRelease1 = Jaws G038 Beta 1 build
  712. // kDHL_1027 kMRelease2 = Jaws G038.100 Beta 1 final build and G039 build
  713. // kDHL_1027 kMRelease3 = Jaws G040 base - Branch Z AutoCAD 2013 DesignScript Alpha 3
  714. // kDHL_1027 kMRelease4 = Jaws G042 Beta 2 build
  715. // kDHL_1027 kMRelease5 = Jaws G047 RealDWG RTV (reciended)
  716. // kDHL_1027 kMRelease6 = Jaws G047.100 Beta 3 build
  717. // kDHL_1027 kMRelease7 = Jaws G048 RealDWG RTV try 2
  718. // kDHL_1027 kMRelease8 = Jaws G054 for AutoCAD 2013 FCS
  719. // kDHL_1027 kMRelease9 = = Kastle TP1 H008.300... 2010 format for Shoreline Tech Preview 1
  720. // kDHL_1027 kMRelease10 = Jaws SP1 beta... 2010 format for AutoCAD 2013 FCS
  721. // kDHL_1027 kMRelease11 = Kastle mainstream H011
  722. // kDHL_1027 kMRelease12 = // we will update this value when we up-integrated into main. I expect it will be H015.
  723. // kDHL_1027 kMRelease13 = Branch J Customer Council Release Build
  724. // kDHL_1027 kMRelease14 = Kastle mainstream H016 - set to kMRelease13 in Branch J
  725. // kDHL_1027 kMRelease15 = Kastle mainstream H018 - Shoreline TP2
  726. // kDHL_1027 kMRelease16 = Kastle H019 for Kastle Point Cloud Council 1
  727. // kDHL_1027 kMRelease17 = Kastle mainstream H023
  728. // kDHL_1027 kMRelease18 = Kastle H024 for Kastle Point Cloud Council 2
  729. // kDHL_1027 kMRelease19 = Kastle mainstream H026 - Kastle Alpha 1, Suites IB#2
  730. // kDHL_1027 kMRelease20 = Jaws SP2
  731. // kDHL_1027 kMRelease50 = Keystone mainstream I000
  732. // kDHL_1027 kMRelease51 = Keystone Pre-Alpha I003.100
  733. // kDHL_1027 kMRelease52 = Keystone Pre-Alpha I004
  734. // kDHL_1027 kMRelease53 = Keystone Preview I010
  735. // kDHL_1027 kMRelease54 = Keystone I015 + Keystone RC1 rebuild
  736. // kDHL_1027 kMRelease55 = Keystone I016
  737. // kDHL_1027 kMRelease56 = Keystone SP1 I103, + Longbow J018 Reality Capture Customer Council 1 build.
  738. // kDHL_1027 kMRelease57 = Keystone SP1 I104
  739. // Mac starts from 65
  740. // kDHL_1027 kMRelease65 = SandStone (AutoCAD for Mac 2014) Beta 2
  741. // kDHL_1027 kMRelease66 = SandStone (AutoCAD for Mac 2014) RC Beta
  742. // kDHL_1027 kMRelease67 = SandStone (AutoCAD for Mac 2014) FCS
  743. // kDHL_1027 kMRelease75 = Longbow Alpha J023
  744. // kDHL_1027 kMRelease76 = Longbow Integration Build #1 - J026
  745. // kDHL_1027 kMRelease77 = Longbow Integration Build #2 - J035
  746. // kDHL_1027 kMRelease78 = Longbow Beta 1 - J038.100 rebuild and J039 mainstream
  747. // kDHL_1027 kMRelease79 = Longbow Beta 2 - J043 in mainstream
  748. // kDHL_1027 kMRelease80 = Longbow RC Beta - J047 in mainstream
  749. // kDHL_1027 kMRelease81 = Longbow RTV candidate - J049, FCS J051
  750. // kDHL_1027 kMRelease82 = Longbow SP1 stream startup
  751. // Mac starts from 90 for LightSaber
  752. // kDHL_1027 kMRelease90 = LightSaber (AutoCAD for Mac 2014) Alpha
  753. // kDHL_1027 kMRelease91 = Lightsaber (AutoCAD for Mac 2014) Alpha 2
  754. // kDHL_1027 kMRelease92 = Lightsaber (AutoCAD for Mac 2014) Beta
  755. // kDHL_1027 kMRelease93 = Lightsaber (AutoCAD for Mac 2014) Beta 2
  756. // kDHL_1027 kMRelease94 = Lightsaber (AutoCAD for Mac 2014) RC Beta
  757. // kDHL_1027 kMRelease95 = Lightsaber (AutoCAD for Mac 2014) FCS
  758. // kDHL_1027 kMRelease100 = Maestro mainstream K000
  759. // kDHL_1027 kMRelease101 = Maestro mainstream Alpha M022
  760. // kDHL_1027 kMRelease102 = Maestro mainstream Beta 1 M038.100, SP1 is M038.300
  761. // kDHL_1027 kMRelease103 = Maestro mainstream Beta 2 M043.100
  762. // kDHL_1027 kMRelease104 = Maestro mainstream RC 1 M047.100
  763. // kDHL_1027 kMRelease105 = Maestro mainstream FCS M048
  764. enum MaintenanceReleaseVersion
  765. { kMRelease0 = 0,
  766. kMRelease1 = 1,
  767. kMRelease2 = 2,
  768. kMRelease3 = 3,
  769. kMRelease4 = 4,
  770. kMRelease5 = 5,
  771. kMRelease6 = 6,
  772. kMRelease7 = 7,
  773. kMRelease8 = 8,
  774. kMRelease9 = 9,
  775. kMRelease10 = 10,
  776. kMRelease11 = 11,
  777. kMRelease12 = 12,
  778. kMRelease13 = 13,
  779. kMRelease14 = 14,
  780. kMRelease15 = 15,
  781. kMRelease16 = 16,
  782. kMRelease17 = 17,
  783. kMRelease18 = 18,
  784. kMRelease19 = 19,
  785. kMRelease20 = 20,
  786. kMRelease21 = 21,
  787. kMRelease22 = 22,
  788. kMRelease23 = 23,
  789. kMRelease24 = 24,
  790. kMRelease25 = 25,
  791. kMRelease26 = 26,
  792. kMRelease27 = 27,
  793. kMRelease28 = 28,
  794. kMRelease29 = 29,
  795. kMRelease30 = 30,
  796. kMRelease31 = 31,
  797. kMRelease32 = 32,
  798. kMRelease33 = 33,
  799. kMRelease34 = 34,
  800. kMRelease35 = 35,
  801. kMRelease36 = 36,
  802. kMRelease37 = 37,
  803. kMRelease38 = 38,
  804. kMRelease39 = 39,
  805. kMRelease40 = 40,
  806. kMRelease41 = 41,
  807. kMReleaseFirstValid1500 = kMRelease41,
  808. kMRelease42 = 42,
  809. kMRelease43 = 43,
  810. kMRelease44 = 44,
  811. kMRelease45 = 45,
  812. kMRelease46 = 46,
  813. kMRelease47 = 47,
  814. kMRelease48 = 48,
  815. kMRelease49 = 49,
  816. kMRelease50 = 50,
  817. kMRelease51 = 51,
  818. kMRelease52 = 52,
  819. kMRelease53 = 53,
  820. kMRelease54 = 54,
  821. kMRelease55 = 55,
  822. kMRelease56 = 56,
  823. kMRelease57 = 57,
  824. kMRelease58 = 58,
  825. kMRelease59 = 59,
  826. kMRelease60 = 60,
  827. kMRelease61 = 61,
  828. kMRelease62 = 62,
  829. kMRelease63 = 63,
  830. kMRelease64 = 64,
  831. kMRelease65 = 65,
  832. kMRelease66 = 66,
  833. kMRelease67 = 67,
  834. kMRelease68 = 68,
  835. kMRelease69 = 69,
  836. kMRelease70 = 70,
  837. kMRelease71 = 71,
  838. kMRelease72 = 72,
  839. kMRelease73 = 73,
  840. kMRelease74 = 74,
  841. kMRelease75 = 75,
  842. kMRelease76 = 76,
  843. kMRelease77 = 77,
  844. kMRelease78 = 78,
  845. kMRelease79 = 79,
  846. kMRelease80 = 80,
  847. kMRelease81 = 81,
  848. kMRelease82 = 82,
  849. kMRelease83 = 83,
  850. kMRelease84 = 84,
  851. kMRelease85 = 85,
  852. kMRelease86 = 86,
  853. kMRelease87 = 87,
  854. kMRelease88 = 88,
  855. kMRelease89 = 89,
  856. kMRelease90 = 90,
  857. kMRelease91 = 91,
  858. kMRelease92 = 92,
  859. kMRelease93 = 93,
  860. kMRelease94 = 94,
  861. kMRelease95 = 95,
  862. kMRelease96 = 96,
  863. kMRelease97 = 97,
  864. kMRelease98 = 98,
  865. kMRelease99 = 99,
  866. kMRelease100 = 100,
  867. kMRelease101 = 101,
  868. kMRelease102 = 102,
  869. kMRelease103 = 103,
  870. kMRelease104 = 104,
  871. kMRelease105 = 105,
  872. kMRelease106 = 106,
  873. kMRelease107 = 107,
  874. kMRelease108 = 108,
  875. kMRelease109 = 109,
  876. kMRelease110 = 110,
  877. kMRelease111 = 111,
  878. kMRelease112 = 112,
  879. kMRelease113 = 113,
  880. kMRelease114 = 114,
  881. kMRelease115 = 115,
  882. kMRelease116 = 116,
  883. kMRelease117 = 117,
  884. kMRelease118 = 118,
  885. kMRelease119 = 119,
  886. kMRelease120 = 120,
  887. kMRelease121 = 121,
  888. kMRelease122 = 122,
  889. kMRelease123 = 123,
  890. kMRelease124 = 124,
  891. kMRelease125 = 125,
  892. kMRelease126 = 126,
  893. kMRelease127 = 127,
  894. kMRelease128 = 128,
  895. kMRelease129 = 129,
  896. kMRelease130 = 130,
  897. kMRelease131 = 131,
  898. kMRelease132 = 132,
  899. kMRelease133 = 133,
  900. kMRelease134 = 134,
  901. kMRelease135 = 135,
  902. kMRelease136 = 136,
  903. kMRelease137 = 137,
  904. kMRelease138 = 138,
  905. kMRelease139 = 139,
  906. kMRelease140 = 140,
  907. kMRelease141 = 141,
  908. kMRelease142 = 142,
  909. kMRelease143 = 143,
  910. kMRelease144 = 144,
  911. kMRelease145 = 145,
  912. kMRelease146 = 146,
  913. kMRelease147 = 147,
  914. kMRelease148 = 148,
  915. kMRelease149 = 149,
  916. kMRelease150 = 150,
  917. kMRelease151 = 151,
  918. kMRelease152 = 152,
  919. kMRelease153 = 153,
  920. kMRelease154 = 154,
  921. kMRelease155 = 155,
  922. kMRelease156 = 156,
  923. kMRelease157 = 157,
  924. kMRelease158 = 158,
  925. kMRelease159 = 159,
  926. kMRelease160 = 160,
  927. kMRelease161 = 161,
  928. kMRelease162 = 162,
  929. kMRelease163 = 163,
  930. kMRelease164 = 164,
  931. kMRelease165 = 165,
  932. kMRelease166 = 166,
  933. kMRelease167 = 167,
  934. kMRelease168 = 168,
  935. kMRelease169 = 169,
  936. kMRelease170 = 170,
  937. kMRelease171 = 171,
  938. kMRelease172 = 172,
  939. kMRelease173 = 173,
  940. kMRelease174 = 174,
  941. kMRelease175 = 175,
  942. kMRelease176 = 176,
  943. kMRelease177 = 177,
  944. kMRelease178 = 178,
  945. kMRelease179 = 179,
  946. kMRelease180 = 180,
  947. kMRelease181 = 181,
  948. kMRelease182 = 182,
  949. kMRelease183 = 183,
  950. kMRelease184 = 184,
  951. kMRelease185 = 185,
  952. kMRelease186 = 186,
  953. kMRelease187 = 187,
  954. kMRelease188 = 188,
  955. kMRelease189 = 189,
  956. kMRelease190 = 190,
  957. kMRelease191 = 191,
  958. kMRelease192 = 192,
  959. kMRelease193 = 193,
  960. kMRelease194 = 194,
  961. kMRelease195 = 195,
  962. kMRelease196 = 196,
  963. kMRelease197 = 197,
  964. kMRelease198 = 198,
  965. kMRelease199 = 199,
  966. kMRelease200 = 200,
  967. kMRelease201 = 201,
  968. kMRelease202 = 202,
  969. kMRelease203 = 203,
  970. kMRelease204 = 204,
  971. kMRelease205 = 205,
  972. kMRelease206 = 206,
  973. kMRelease207 = 207,
  974. kMRelease208 = 208,
  975. kMRelease209 = 209,
  976. kMRelease210 = 210,
  977. kMRelease211 = 211,
  978. kMRelease212 = 212,
  979. kMRelease213 = 213,
  980. kMRelease214 = 214,
  981. kMRelease215 = 215,
  982. kMRelease216 = 216,
  983. kMRelease217 = 217,
  984. kMRelease218 = 218,
  985. kMRelease219 = 219,
  986. kMRelease220 = 220,
  987. kMRelease221 = 221,
  988. kMRelease222 = 222,
  989. kMRelease223 = 223,
  990. kMRelease224 = 224,
  991. kMRelease225 = 225,
  992. kMRelease226 = 226,
  993. kMRelease227 = 227,
  994. kMRelease228 = 228,
  995. kMRelease229 = 229,
  996. kMRelease230 = 230,
  997. kMRelease231 = 231,
  998. kMRelease232 = 232,
  999. kMRelease233 = 233,
  1000. kMRelease234 = 234,
  1001. kMRelease235 = 235,
  1002. kMRelease236 = 236,
  1003. kMRelease237 = 237,
  1004. kMRelease238 = 238,
  1005. kMRelease239 = 239,
  1006. kMRelease240 = 240,
  1007. kMRelease241 = 241,
  1008. kMRelease242 = 242,
  1009. kMRelease243 = 243,
  1010. kMRelease244 = 244,
  1011. kMRelease245 = 245,
  1012. kMRelease246 = 246,
  1013. kMRelease247 = 247,
  1014. kMRelease248 = 248,
  1015. kMRelease249 = 249,
  1016. kMRelease250 = 250,
  1017. kMRelease251 = 251,
  1018. kMRelease252 = 252,
  1019. kMRelease253 = 253,
  1020. kMRelease254 = 254,
  1021. kMRelease255 = 255,
  1022. kMReleaseNewest = kMRelease105,
  1023. kMRelease2010Newest = kMRelease205,
  1024. kMReleaseCurrent = kMReleaseNewest,
  1025. kMReleaseUnknown = 126,
  1026. kMReleaseMax = 127,
  1027. kMRelease2010Max = 255 };
  1028. enum SaveType { kNoSave = 0,
  1029. kR12Save, // Only used for R12 DXF
  1030. kR13Save, // No longer used
  1031. kR14Save,
  1032. k2000Save,
  1033. k2004Save,
  1034. k2007Save,
  1035. k2010Save,
  1036. k2013Save };
  1037. enum GroupOperType { kNoOp = 0,
  1038. kAdd = 1,
  1039. kRemove = 2,
  1040. kRename = 3,
  1041. kOrdered = 4, // Members reordered
  1042. kGrpDesc = 5, // Description Modified
  1043. kSelect = 6, // Selectibility flag
  1044. kCreate = 7, // New group creation
  1045. kPrepend = 8,
  1046. kInsert = 9,
  1047. kGrpFlags = 10 };
  1048. // kDcInsert => Database INSERT in which entities from the source
  1049. // database could be moved into the destination database.
  1050. // kDcInsertCopy => Database INSERT in which the source database is left
  1051. // intact. Objects are copied to the destination database.
  1052. //
  1053. enum DeepCloneType { kDcCopy = 0,
  1054. kDcExplode = 1,
  1055. kDcBlock = 2,
  1056. kDcXrefBind = 3,
  1057. kDcSymTableMerge = 4,
  1058. kDcInsert = 6,
  1059. kDcWblock = 7,
  1060. kDcObjects = 8,
  1061. kDcXrefInsert = 9,
  1062. kDcInsertCopy = 10,
  1063. kDcWblkObjects = 11 };
  1064. // Handling for duplicate Symbol and Dictionary records
  1065. //
  1066. enum DuplicateRecordCloning {
  1067. kDrcNotApplicable = 0,
  1068. kDrcIgnore = 1, // Keep existing
  1069. kDrcReplace = 2, // Use clone
  1070. kDrcXrefMangleName = 3, // <xref>$0$<name>
  1071. kDrcMangleName = 4, // $0$<name>
  1072. kDrcUnmangleName = 5 };
  1073. enum XrefStatus { kXrfNotAnXref = 0,
  1074. kXrfResolved = 1,
  1075. kXrfUnloaded = 2,
  1076. kXrfUnreferenced = 3,
  1077. kXrfFileNotFound = 4,
  1078. kXrfUnresolved = 5 };
  1079. enum XrefNotificationStatus {
  1080. kXrfNotifyNone = 0,
  1081. kXrfNotifyResolvedMatch = 1,
  1082. kXrfNotifyResolvedElsewhere = 2,
  1083. kXrfNotifyResolvedWithUpdate = 3,
  1084. kXrfNotifyResolvedUpdateAvailable = 4 };
  1085. enum MeasurementValue {
  1086. kEnglish = 0,
  1087. kMetric = 1,
  1088. };
  1089. enum UnitsValue {
  1090. kUnitsUndefined = 0,
  1091. kUnitsInches = 1,
  1092. kUnitsFeet = 2,
  1093. kUnitsMiles = 3,
  1094. kUnitsMillimeters = 4,
  1095. kUnitsCentimeters = 5,
  1096. kUnitsMeters = 6,
  1097. kUnitsKilometers = 7,
  1098. kUnitsMicroinches = 8,
  1099. kUnitsMils = 9,
  1100. kUnitsYards = 10,
  1101. kUnitsAngstroms = 11,
  1102. kUnitsNanometers = 12,
  1103. kUnitsMicrons = 13,
  1104. kUnitsDecimeters = 14,
  1105. kUnitsDekameters = 15,
  1106. kUnitsHectometers = 16,
  1107. kUnitsGigameters = 17,
  1108. kUnitsAstronomical = 18,
  1109. kUnitsLightYears = 19,
  1110. kUnitsParsecs = 20,
  1111. kUnitsMax = kUnitsParsecs,
  1112. };
  1113. // Time zone enum names may change from time to time, but enum values must
  1114. // not, as they are stored in drawings. Enum values support adding new zones,
  1115. // as long as backward compatibility of drawings is taken into consideration.
  1116. enum TimeZone {
  1117. kInternationalDateLine = -12000, //(GMT-12:00) International Date Line West
  1118. kMidwayIsland = -11000, //(GMT-11:00) Midway Island, Samoa
  1119. kHawaii = -10000, //(GMT-10:00) Hawaii
  1120. kAlaska = -9000, //(GMT-09:00) Alaska
  1121. kPacific = -8000, //(GMT-08:00) Pacific Time (US & Canada); Tijuana
  1122. kMountain = -7000, //(GMT-07:00) Mountain Time (US & Canada)
  1123. kArizona = -7001, //(GMT-07:00) Arizona
  1124. kMazatlan = -7002, //(GMT-07:00) Chihuahua, La Paz, Mazatlan
  1125. kCentral = -6000, //(GMT-06:00) Central Time (US & Canada)
  1126. kCentralAmerica = -6001, //(GMT-06:00) Central America
  1127. kMexicoCity = -6002, //(GMT-06:00) Guadalajara, Mexico City, Monterrey
  1128. kSaskatchewan = -6003, //(GMT-06:00) Saskatchewan
  1129. kEastern = -5000, //(GMT-05:00) Eastern Time (US & Canada)
  1130. kIndiana = -5001, //(GMT-05:00) Indiana (East)
  1131. kBogota = -5002, //(GMT-05:00) Bogota, Lima, Quito
  1132. kAtlanticCanada = -4000, //(GMT-04:00) Atlantic Time (Canada)
  1133. kCaracas = -4001, //(GMT-04:00) Caracas, La Paz
  1134. kSantiago = -4002, //(GMT-04:00) Santiago
  1135. kNewfoundland = -3300, //(GMT-03:30) Newfoundland
  1136. kBrasilia = -3000, //(GMT-03:00) Brasilia
  1137. kBuenosAires = -3001, //(GMT-03:00) Buenos Aires, Georgetown
  1138. kGreenland = -3002, //(GMT-03:00) Greenland
  1139. kMidAtlantic = -2000, //(GMT-02:00) Mid-Atlantic
  1140. kAzores = -1000, //(GMT-01:00) Azores
  1141. kCapeVerde = -1001, //(GMT-01:00) Cape Verde Is.
  1142. kUTC = 0, //(UTC) Universal Coordinated Time
  1143. kGMT = 1, //(GMT) Greenwich Mean Time: Dublin, Edinburgh, Lisbon, London
  1144. kMonrovia = 2, //(GMT) Casablanca, Monrovia
  1145. kBerlin = 1000, //(GMT+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna
  1146. kParis = 1001, //(GMT+01:00) Brussels, Copenhagen, Madrid, Paris
  1147. kPrague = 1002, //(GMT+01:00) Belgrade, Bratislava, Budapest, Ljubljana, Prague
  1148. kSarajevo = 1003, //(GMT+01:00) Sarajevo, Skopje, Warsaw, Zagreb
  1149. kWestCentralAfrica = 1004, //(GMT+01:00) West Central Africa
  1150. kAthens = 2000, //(GMT+02:00) Athens, Beirut, Istanbul, Minsk
  1151. kEasternEurope = 2001, //(GMT+02:00) Bucharest
  1152. kCairo = 2002, //(GMT+02:00) Cairo
  1153. kHarare = 2003, //(GMT+02:00) Harare, Pretoria
  1154. kHelsinki = 2004, //(GMT+02:00) Helsinki, Kyiv, Riga, Sofia, Tallinn, Vilnius
  1155. kJerusalem = 2005, //(GMT+02:00) Jerusalem
  1156. kMoscow = 3000, //(GMT+03:00) Moscow, St. Petersburg, Volgograd
  1157. kRiyadh = 3001, //(GMT+03:00) Kuwait, Riyadh
  1158. kBaghdad = 3002, //(GMT+03:00) Baghdad
  1159. kEastAfrica = 3003, //(GMT+03:00) Nairobi
  1160. kTehran = 3300, //(GMT+03:30) Tehran
  1161. kAbuDhabi = 4000, //(GMT+04:00) Abu Dhabi, Muscat
  1162. kCaucasus = 4001, //(GMT+04:00) Baku, Tbilisi, Yerevan
  1163. kKabul = 4300, //(GMT+04:30) Kabul
  1164. kEkaterinburg = 5000, //(GMT+05:00) Ekaterinburg
  1165. kIslamabad = 5001, //(GMT+05:00) Islamabad, Karachi, Tashkent
  1166. kKolkata = 5300, //(GMT+05:30) Chennai, Kolkata, Mumbai, New Delhi
  1167. kKathmandu = 5450, //(GMT+05:45) Kathmandu
  1168. kAlmaty = 6000, //(GMT+06:00) Almaty, Novosibirsk
  1169. kDhaka = 6001, //(GMT+06:00) Astana, Dhaka
  1170. kSriLanka = 6002, //(GMT+06:00) Sri Jayawardenepura
  1171. kRangoon = 6300, //(GMT+06:30) Rangoon
  1172. kBangkok = 7000, //(GMT+07:00) Bangkok, Hanoi, Jakarta
  1173. kKrasnoyarsk = 7001, //(GMT+07:00) Krasnoyarsk
  1174. kBeijing = 8000, //(GMT+08:00) Beijing, Chongqing, Hong Kong, Urumqi
  1175. kSingapore = 8001, //(GMT+08:00) Kuala Lumpur, Singapore
  1176. kTaipei = 8002, //(GMT+08:00) Taipei
  1177. kIrkutsk = 8003, //(GMT+08:00) Irkutsk, Ulaan Bataar
  1178. kPerth = 8004, //(GMT+08:00) Perth
  1179. kTokyo = 9000, //(GMT+09:00) Osaka, Sapporo, Tokyo
  1180. kSeoul = 9001, //(GMT+09:00) Seoul
  1181. kYakutsk = 9002, //(GMT+09:00) Yakutsk
  1182. kAdelaide = 9300, //(GMT+09:30) Adelaide
  1183. kDarwin = 9301, //(GMT+09:30) Darwin
  1184. kSydney = 10000, //(GMT+10:00) Canberra, Melbourne, Sydney
  1185. kGuam = 10001, //(GMT+10:00) Guam, Port Moresby
  1186. kBrisbane = 10002, //(GMT+10:00) Brisbane
  1187. kHobart = 10003, //(GMT+10:00) Hobart
  1188. kVladivostock = 10004, //(GMT+10:00) Vladivostok
  1189. kMagadan = 11000, //(GMT+11:00) Magadan, Solomon Is., New Caledonia
  1190. kWellington = 12000, //(GMT+12:00) Auckland, Wellington
  1191. kFiji = 12001, //(GMT+12:00) Fiji, Kamchatka, Marshall Is.
  1192. kTonga = 13000, //(GMT+13:00) Nuku'alofa
  1193. };
  1194. // lineweights are in 100ths of a millimeter
  1195. enum LineWeight { kLnWt000 = 0,
  1196. kLnWt005 = 5,
  1197. kLnWt009 = 9,
  1198. kLnWt013 = 13,
  1199. kLnWt015 = 15,
  1200. kLnWt018 = 18,
  1201. kLnWt020 = 20,
  1202. kLnWt025 = 25,
  1203. kLnWt030 = 30,
  1204. kLnWt035 = 35,
  1205. kLnWt040 = 40,
  1206. kLnWt050 = 50,
  1207. kLnWt053 = 53,
  1208. kLnWt060 = 60,
  1209. kLnWt070 = 70,
  1210. kLnWt080 = 80,
  1211. kLnWt090 = 90,
  1212. kLnWt100 = 100,
  1213. kLnWt106 = 106,
  1214. kLnWt120 = 120,
  1215. kLnWt140 = 140,
  1216. kLnWt158 = 158,
  1217. kLnWt200 = 200,
  1218. kLnWt211 = 211,
  1219. kLnWtByLayer = -1,
  1220. kLnWtByBlock = -2,
  1221. kLnWtByLwDefault = -3 };
  1222. enum EndCaps { kEndCapNone = 0,
  1223. kEndCapRound = 1,
  1224. kEndCapAngle = 2,
  1225. kEndCapSquare = 3 };
  1226. enum JoinStyle { kJnStylNone = 0,
  1227. kJnStylRound = 1,
  1228. kJnStylAngle = 2,
  1229. kJnStylFlat = 3 };
  1230. enum PlotStyleNameType { kPlotStyleNameByLayer = 0,
  1231. kPlotStyleNameByBlock = 1,
  1232. kPlotStyleNameIsDictDefault = 2,
  1233. kPlotStyleNameById = 3 };
  1234. enum IndexCreation { kNoIndex = 0,
  1235. kIndexByLayer = 1,
  1236. kIndexSpatially = 2 };
  1237. enum LayerEvaluation { kNoNewLayerEvaluation = 0,
  1238. kEvalNewXrefLayers = 1,
  1239. kEvalAllNewLayers = 2 };
  1240. enum NewLayerNotification { kNoNewLayerNotification = 0,
  1241. kNotifyOnPlot = 1,
  1242. kNotifyOnOpen = 2,
  1243. kNotifyOnXrefAttachAndReload = 4,
  1244. kNotifyOnLayerStateRestore = 8,
  1245. kNotifyOnSave = 16,
  1246. kNotifyOnInsert = 32 };
  1247. enum DimArrowFlags { kFirstArrow = 0x00,
  1248. kSecondArrow = 0x01 };
  1249. enum DimblkFlags { kDimblk = 0,
  1250. kDimblk1,
  1251. kDimblk2,
  1252. kDimLdrBlk };
  1253. enum OrthographicView { kNonOrthoView = 0,
  1254. kTopView = 1,
  1255. kBottomView = 2,
  1256. kFrontView = 3,
  1257. kBackView = 4,
  1258. kLeftView = 5,
  1259. kRightView = 6 };
  1260. enum VpFreezeOps { kFreeze = 0,
  1261. kThaw,
  1262. kReset };
  1263. // If adding to the following enum you must change the array
  1264. // in constant_cpp.h and the initialization string in constant.xmf.
  1265. enum reservedStringEnumType { kByLayer = 0,
  1266. kByBlock = 1,
  1267. kNone = 2,
  1268. kContinuous = 3,
  1269. kStandard = 4,
  1270. kNormal = 5,
  1271. kDefPoints = 6,
  1272. kDefault = 7,
  1273. kMissing = 8,
  1274. kByColor = 9,
  1275. kModel = 10,
  1276. kGlobal = 11, //used for default global material - Randy Kintzley 06/08/2005
  1277. kVS2DWireframe = 12, // Visual Style UI names
  1278. kVS3DWireframe = 13,
  1279. kVS3DHidden = 14,
  1280. kVSRealistic = 15,
  1281. kVSConceptual = 16,
  1282. kTitle = 17, // Title cell style
  1283. kHeader = 18, // Header cell style
  1284. kData = 19, // Data cell style
  1285. kVSShadesOfGray = 20, // Visual Style UI names
  1286. kVSSketchy = 21,
  1287. kVSXRay = 22,
  1288. kVSShadedWithEdges = 23,
  1289. kVSShaded = 24,
  1290. kReservedStringCount };
  1291. // SortEntsFlags: Specifies when entity traversals are in sorted order
  1292. //
  1293. enum SortEntsFlags { kSortEntsSelection = 0x01,
  1294. kSortEntsOsnap = 0x02,
  1295. kSortEntsRedraw = 0x04,
  1296. kSortEntsSlide = 0x08, // (obsolete)
  1297. kSortEntsRegen = 0x10,
  1298. kSortEntsPlot = 0x20,
  1299. kSortEntsPsout = 0x40 };
  1300. enum DragStat { kDragStart = 0,
  1301. kDragEnd = 1,
  1302. kDragAbort = 2 };
  1303. enum GripStat { kGripsDone = 0,
  1304. kGripsToBeDeleted = 1,
  1305. kDimDataToBeDeleted = 2 };
  1306. enum DataLinkOption { kDataLinkOptionNone = 0,
  1307. kDataLinkOptionAnonymous = 0x1,
  1308. kDataLinkOptionPersistCache = 0x2,
  1309. kDataLinkOptionObsolete = 0x4, // For internal use only
  1310. kDataLinkHasCutomData = 0x8, // For internal use only
  1311. };
  1312. enum PathOption { kNoPath = 1,
  1313. kRelativePath = 2,
  1314. kAbsolutePath = 3,
  1315. kPathAndFile = 4,
  1316. };
  1317. enum UpdateDirection { kUpdateDirSourceToData = 0x1,
  1318. kUpdateDirDataToSource = 0x2,
  1319. };
  1320. enum UpdateOption { // Bits 0-15 are reserved for adapters to set
  1321. // adapter specific update option
  1322. kUpdateOptionNone = 0,
  1323. kUpdateOptionSkipFormat = 0x20000,
  1324. kUpdateOptionUpdateRowHeight = 0x40000,
  1325. kUpdateOptionUpdateColumnWidth = 0x80000,
  1326. kUpdateOptionAllowSourceUpdate = 0x100000,
  1327. kUpdateOptionForceFullSourceUpdate = 0x200000,
  1328. kUpdateOptionOverwriteContentModifiedAfterUpdate = 0x400000,
  1329. kUpdateOptionOverwriteFormatModifiedAfterUpdate = 0x800000,
  1330. kUpdateOptionForPreview = 0x1000000,
  1331. kUpdateOptionIncludeXrefs = 0x2000000,
  1332. kSkipFormatAfterFirstUpdate = 0x4000000,
  1333. };
  1334. enum DataLinkGetSourceContext { kDataLinkGetSourceContextUnknown = 0,
  1335. kDataLinkGetSourceContextEtransmit = 1,
  1336. kDataLinkGetSourceContextXrefManager = 2,
  1337. kDataLinkGetSourceContextFileWatcher = 3,
  1338. kDataLinkGetSourceContextOther = 4,
  1339. kDataLinkGetSourceContextOrignalPath = (0x1 << 8),
  1340. };
  1341. // AcDbTable and AcTbTableStyle specific enum
  1342. //
  1343. enum CellType { kUnknownCell = 0,
  1344. kTextCell = 1,
  1345. kBlockCell = 2,
  1346. kMultipleContentCell = 3};
  1347. enum CellContentType { kCellContentTypeUnknown = 0,
  1348. kCellContentTypeValue = 0x1,
  1349. kCellContentTypeField = 0x2,
  1350. kCellContentTypeBlock = 0x4,
  1351. };
  1352. enum CellEdgeMask { kTopMask = 1,
  1353. kRightMask = 2,
  1354. kBottomMask = 4,
  1355. kLeftMask = 8 };
  1356. enum CellMargin { kCellMarginTop = 0x1,
  1357. kCellMarginLeft = 0x2,
  1358. kCellMarginBottom = 0x4,
  1359. kCellMarginRight = 0x8,
  1360. kCellMarginHorzSpacing = 0x10,
  1361. kCellMarginVertSpacing = 0x20 };
  1362. enum CellContentLayout { kCellContentLayoutFlow = 0x1,
  1363. kCellContentLayoutStackedHorizontal = 0x2,
  1364. kCellContentLayoutStackedVertical = 0x4,
  1365. };
  1366. enum CellState { kCellStateNone = 0,
  1367. kCellStateContentLocked = 0x1,
  1368. kCellStateContentReadOnly = 0x2,
  1369. kCellStateLinked = 0x4,
  1370. kCellStateContentModifiedAfterUpdate = 0x8,
  1371. kCellStateFormatLocked = 0x10,
  1372. kCellStateFormatReadOnly = 0x20,
  1373. kCellStateFormatModifiedAfterUpdate = 0x40,
  1374. kAllCellStates = (kCellStateContentLocked | kCellStateContentReadOnly |
  1375. kCellStateLinked | kCellStateContentModifiedAfterUpdate |
  1376. kCellStateFormatLocked | kCellStateFormatReadOnly |
  1377. kCellStateFormatModifiedAfterUpdate),
  1378. };
  1379. enum CellClass { kCellClassNone = 0,
  1380. kCellClassLabel = 0x1,
  1381. kCellClassData = 0x2,
  1382. };
  1383. enum CellProperty { kCellPropInvalid = 0,
  1384. // Content properties
  1385. kCellPropDataType = 0x1,
  1386. kCellPropDataFormat = 0x2,
  1387. kCellPropRotation = 0x4,
  1388. kCellPropScale = 0x8,
  1389. kCellPropAlignment = 0x10,
  1390. kCellPropContentColor = 0x20,
  1391. kCellPropTextStyle = 0x40,
  1392. kCellPropTextHeight = 0x80,
  1393. kCellPropAutoScale = 0x100,
  1394. // Cell properties
  1395. kCellPropBackgroundColor = 0x200,
  1396. kCellPropMarginLeft = 0x400,
  1397. kCellPropMarginTop = 0x800,
  1398. kCellPropMarginRight = 0x1000,
  1399. kCellPropMarginBottom = 0x2000,
  1400. kCellPropMarginHorzSpacing = 0x20000, // TODO: Re-order
  1401. kCellPropMarginVertSpacing = 0x40000, // TODO: Re-order
  1402. kCellPropContentLayout = 0x4000,
  1403. // Row/col properties
  1404. kCellPropMergeAll = 0x8000,
  1405. // Table properties
  1406. kCellPropFlowDirBtoT = 0x10000,
  1407. // Combos
  1408. kCellPropDataTypeAndFormat = (kCellPropDataType | kCellPropDataFormat),
  1409. kCellPropContent = (kCellPropDataType | kCellPropDataFormat | kCellPropRotation |
  1410. kCellPropScale | kCellPropContentColor | kCellPropTextStyle |
  1411. kCellPropTextHeight | kCellPropAutoScale),
  1412. kCellPropBitProperties = (kCellPropAutoScale | kCellPropMergeAll | kCellPropFlowDirBtoT),
  1413. kCellPropAll = (kCellPropDataType | kCellPropDataFormat | kCellPropRotation |
  1414. kCellPropScale | kCellPropAlignment | kCellPropContentColor | kCellPropBackgroundColor |
  1415. kCellPropTextStyle | kCellPropTextHeight | kCellPropMarginLeft | kCellPropMarginTop |
  1416. kCellPropMarginRight | kCellPropMarginBottom | kCellPropMarginHorzSpacing |
  1417. kCellPropMarginVertSpacing | kCellPropAutoScale | kCellPropMergeAll |
  1418. kCellPropFlowDirBtoT | kCellPropContentLayout),
  1419. };
  1420. enum GridProperty { kGridPropInvalid = 0,
  1421. kGridPropLineStyle = 0x1,
  1422. kGridPropLineWeight = 0x2,
  1423. kGridPropLinetype = 0x4,
  1424. kGridPropColor = 0x8,
  1425. kGridPropVisibility = 0x10,
  1426. kGridPropDoubleLineSpacing = 0x20,
  1427. kGridPropAll = (kGridPropLineStyle | kGridPropLineWeight | kGridPropLinetype |
  1428. kGridPropColor | kGridPropVisibility | kGridPropDoubleLineSpacing),
  1429. };
  1430. enum GridLineType { kInvalidGridLine = 0,
  1431. kHorzTop = 1,
  1432. kHorzInside = 2,
  1433. kHorzBottom = 4,
  1434. kVertLeft = 8,
  1435. kVertInside = 0x10,
  1436. kVertRight = 0x20,
  1437. kHorzGridLineTypes = kHorzTop | kHorzBottom | kHorzInside,
  1438. kVertGridLineTypes = kVertLeft | kVertRight | kVertInside,
  1439. kOuterGridLineTypes = kHorzTop | kHorzBottom | kVertLeft | kVertRight,
  1440. kInnerGridLineTypes = kHorzInside | kVertInside,
  1441. kAllGridLineTypes = kOuterGridLineTypes | kInnerGridLineTypes };
  1442. enum GridLineStyle { kGridLineStyleSingle = 1,
  1443. kGridLineStyleDouble = 2,
  1444. };
  1445. // For internal use only
  1446. enum CellOption {
  1447. kCellOptionNone = 0,
  1448. kInheritCellFormat = 0x1,
  1449. };
  1450. enum SelectType { kWindow = 1,
  1451. kCrossing = 2 };
  1452. enum FlowDirection { kTtoB = 0,
  1453. kBtoT = 1 };
  1454. enum RotationAngle { kDegreesUnknown = -1,
  1455. kDegrees000 = 0,
  1456. kDegrees090 = 1,
  1457. kDegrees180 = 2,
  1458. kDegrees270 = 3 };
  1459. enum CellAlignment { kTopLeft = 1,
  1460. kTopCenter = 2,
  1461. kTopRight = 3,
  1462. kMiddleLeft = 4,
  1463. kMiddleCenter = 5,
  1464. kMiddleRight = 6,
  1465. kBottomLeft = 7,
  1466. kBottomCenter = 8,
  1467. kBottomRight = 9 };
  1468. enum RowType { kUnknownRow = 0, // TODO: May not be needed
  1469. kDataRow = 1,
  1470. kTitleRow = 2,
  1471. kHeaderRow = 4,
  1472. kAllRowTypes = kDataRow | kTitleRow | kHeaderRow };
  1473. enum TableStyleFlags { kHorzInsideLineFirst = 0x1,
  1474. kHorzInsideLineSecond = 0x2,
  1475. kHorzInsideLineThird = 0x4,
  1476. kTableStyleModified = 0x8,
  1477. kTableStyleDataTypeModified = 0x10, // For internal use only
  1478. };
  1479. enum TableBreakOption { kTableBreakNone = 0,
  1480. kTableBreakEnableBreaking = 0x1,
  1481. kTableBreakRepeatTopLabels = 0x2,
  1482. kTableBreakRepeatBottomLabels = 0x4,
  1483. kTableBreakAllowManualPositions = 0x8,
  1484. kTableBreakAllowManualHeights = 0x10,
  1485. };
  1486. enum TableBreakFlowDirection { kTableBreakFlowRight = 0x1,
  1487. kTableBreakFlowDownOrUp = 0x2,
  1488. kTableBreakFlowLeft = 0x4,
  1489. };
  1490. enum TableFillOption { kTableFillNone = 0,
  1491. kTableFillRow = 0x1,
  1492. kTableFillReverse = 0x2,
  1493. kTableFillGenerateSeries = 0x4,
  1494. kTableFillCopyContent = 0x8,
  1495. kTableFillCopyFormat = 0x10,
  1496. kTableFillOverwriteReadOnlyContent = 0x20,
  1497. kTableFillOverwriteReadOnlyFormat = 0x40,
  1498. };
  1499. enum TableCopyOption { kTableCopyNone = 0,
  1500. kTableCopyExpandOrContractTable = 0x1,
  1501. kTableCopySkipContent = 0x2,
  1502. kTableCopySkipValue = 0x4,
  1503. kTableCopySkipField = 0x8,
  1504. kTableCopySkipFormula = 0x10,
  1505. kTableCopySkipBlock = 0x20,
  1506. kTableCopySkipDataLink = 0x40,
  1507. kTableCopySkipLabelCell = 0x80,
  1508. kTableCopySkipDataCell = 0x100,
  1509. kTableCopySkipFormat = 0x200,
  1510. kTableCopySkipCellStyle = 0x400,
  1511. kTableCopyConvertFormatToOverrides = 0x800,
  1512. kTableCopySkipCellState = 0x1000,
  1513. kTableCopySkipContentFormat = 0x2000,
  1514. kTableCopySkipDissimilarContentFormat = 0x4000,
  1515. kTableCopySkipGeometry = 0x8000,
  1516. kTableCopySkipMerges = 0x10000,
  1517. kTableCopyFillTarget = 0x20000,
  1518. kTableCopyOverwriteReadOnlyContent = 0x40000,
  1519. kTableCopyOverwriteReadOnlyFormat = 0x80000,
  1520. kTableCopyOverwriteContentModifiedAfterUpdate = 0x100000,
  1521. kTableCopyOverwriteFormatModifiedAfterUpdate = 0x200000,
  1522. kTableCopyOnlyContentModifiedAfterUpdate = 0x400000,
  1523. kTableCopyOnlyFormatModifiedAfterUpdate = 0x800000,
  1524. kTableCopyRowHeight = 0x1000000,
  1525. kTableCopyColumnWidth = 0x2000000,
  1526. kTableCopyFullCellState = 0x4000000,
  1527. kTableCopyForRountrip = 0x8000000, // For internal use only
  1528. kTableCopyConvertFieldToValue = 0x10000000, // For internal use only
  1529. kTableCopySkipFieldTranslation = 0x20000000, // For internal use only
  1530. };
  1531. enum TableIteratorOption { kTableIteratorNone = 0,
  1532. kTableIteratorIterateSelection = 0x1,
  1533. kTableIteratorIterateRows = 0x2,
  1534. kTableIteratorIterateColumns = 0x4,
  1535. kTableIteratorIterateDataLinks = 0x80, // TODO: Re order
  1536. kTableIteratorReverseOrder = 0x8,
  1537. kTableIteratorSkipReadOnlyContent= 0x10,
  1538. kTableIteratorSkipReadOnlyFormat = 0x20,
  1539. kTableIteratorSkipMerged = 0x40,
  1540. };
  1541. enum MergeCellStyleOption { kMergeCellStyleNone = 0,
  1542. kMergeCellStyleCopyDuplicates = 0x1,
  1543. kMergeCellStyleOverwriteDuplicates = 0x2,
  1544. kMergeCellStyleConvertDuplicatesToOverrides = 0x4,
  1545. kMergeCellStyleIgnoreNewStyles = 0x8,
  1546. };
  1547. enum TableHitItem { kTableHitNone = 0,
  1548. kTableHitCell = 0x1,
  1549. kTableHitRowIndicator = 0x2,
  1550. kTableHitColumnIndicator = 0x4,
  1551. kTableHitGridLine = 0x8,
  1552. };
  1553. enum RowTypes { kAllRows = kDataRow | kTitleRow | kHeaderRow };
  1554. enum GridLineTypes { kAllGridLines = kAllGridLineTypes };
  1555. // DrawOrderFlags: Specifies draw order behavior when editing existing
  1556. // entities or creating new "derived" entities
  1557. //
  1558. enum DrawOrderFlags { kDrawOrderInPlaceEditOn = 0x01,
  1559. kDrawOrderInheritanceOn = 0x02 };
  1560. // UpdateThumbnailFlags: Specifies whether a drawing save includes
  1561. // updating thumbnails for sheet views, model
  1562. // views, or sheets
  1563. //
  1564. enum UpdateThumbnailFlags { kUpdateModelViews = 0x01,
  1565. kUpdateSheetViews = 0x02,
  1566. kUpdateSheets = 0x04,
  1567. kUpdateWhenAccessed = 0x08,
  1568. kUpdateWhenSaving = 0x10 };
  1569. // EnhancedBlockEvalType: Used in evaluating the graphs that support
  1570. // Enhanced Blocks. Specifies what sort of
  1571. // operation this evaluation pass is supporting.
  1572. // Used in an AcDbEvalContext container in
  1573. // conjunction with the ACDB_ENHANCED_BLOCK_EVALKEY.
  1574. enum EnhancedBlockEvalType { kInitialization = 1,
  1575. kForUpdate = 2,
  1576. kForRefresh = 3};
  1577. // SliceModelType: Specifies flags for slicing solid, surface or region.
  1578. enum SliceModelType { kKeepBothSides = 0x01,
  1579. kUseCurrentColor = 0x02 };
  1580. // CollisionType: Specifies how the entity interacts with collision
  1581. // detection.
  1582. enum CollisionType { kCollisionTypeNone = 0,
  1583. kCollisionTypeSolid = 1 };
  1584. // LoftParamType: Specifies settings that affect the shape of the
  1585. // lofted solid or surface.
  1586. enum LoftParamType { kLoftNoParam = 0x00,
  1587. kLoftNoTwist = 0x01,
  1588. kLoftAlignDirection = 0x02,
  1589. kLoftSimplify = 0x04,
  1590. kLoftClose = 0x08,
  1591. kLoftPeriodic = 0x10,
  1592. kLoftDefault = kLoftNoTwist | kLoftAlignDirection | kLoftSimplify };
  1593. // LoftNormalsType: Specifies the normals of the lofted object where it
  1594. // passes through cross section curves.
  1595. enum LoftNormalsType { kLoftRuled = 0,
  1596. kLoftSmooth = 1,
  1597. kLoftFirstNormal = 2,
  1598. kLoftLastNormal = 3,
  1599. kLoftEndsNormal = 4,
  1600. kLoftAllNormal = 5,
  1601. kLoftUseDraftAngles = 6 };
  1602. enum ShadowFlags { kShadowsCastAndReceive = 0x00,
  1603. kShadowsDoesNotReceive = 0x01,
  1604. kShadowsDoesNotCast = 0x02,
  1605. kShadowsIgnore = kShadowsDoesNotCast | kShadowsDoesNotReceive};
  1606. enum LightingUnits { kLightingUnitsGeneric = 0,
  1607. kLightingUnitsAmerican = 1,
  1608. kLightingUnitsInternational = 2 };
  1609. enum FilletTrimMode { kTrimNone = 0,
  1610. kTrimFirst = 1,
  1611. kTrimSecond = 2,
  1612. kTrimBoth = 3 };
  1613. /// <summary>
  1614. /// The type of a constrained implicit point.
  1615. /// </summary>
  1616. ///
  1617. enum ImplicitPointType
  1618. {
  1619. /// <summary>
  1620. /// Start point of bounded line, arc or bounded ellipse.
  1621. /// </summary>
  1622. ///
  1623. kStartImplicit = 0,
  1624. /// <summary>
  1625. /// End point of a bounded line (not valid for ray), arc or bounded ellipse.
  1626. /// </summary>
  1627. ///
  1628. kEndImplicit,
  1629. /// <summary>
  1630. /// Mid point of a bounded line (not valid for ray) or arc.
  1631. /// </summary>
  1632. ///
  1633. kMidImplicit,
  1634. /// <summary>
  1635. /// Center point of a circle, arc, ellipse or bounded ellipse.
  1636. /// </summary>
  1637. ///
  1638. kCenterImplicit,
  1639. /// <summary>
  1640. /// Define point of a parametric curve, currently only valid for spline control point.
  1641. /// </summary>
  1642. ///
  1643. kDefineImplicit
  1644. };
  1645. }; // struct AcDb
  1646. #pragma pack(pop)
  1647. #endif