// setter method internal static void SetHeaderVariable(string keyName, DxfCodePair pair, DxfHeader header) { switch (keyName) { case ACADMAINTVER: EnsureCode(pair, 70); header.MaintenenceVersion = (pair.ShortValue); break; case ACADVER: EnsureCode(pair, 1); header.Version = DxfAcadVersionStrings.StringToVersion(pair.StringValue); break; case ANGBASE: EnsureCode(pair, 50); header.AngleZeroDirection = (pair.DoubleValue); break; case ANGDIR: EnsureCode(pair, 70); header.AngleDirection = (DxfAngleDirection)(pair.ShortValue); break; case ATTDIA: EnsureCode(pair, 70); header.ShowAttributeEntryDialogs = BoolShort(pair.ShortValue); break; case ATTMODE: EnsureCode(pair, 70); header.AttributeVisibility = (DxfAttributeVisibility)(pair.ShortValue); break; case ATTREQ: EnsureCode(pair, 70); header.PromptForAttributeOnInsert = BoolShort(pair.ShortValue); break; case AUNITS: EnsureCode(pair, 70); header.AngleUnitFormat = (DxfAngleFormat)(pair.ShortValue); break; case AUPREC: EnsureCode(pair, 70); header.AngleUnitPrecision = (pair.ShortValue); break; case AXISMODE: EnsureCode(pair, 70); header.AxisOn = BoolShort(pair.ShortValue); break; case AXISUNIT: SetPoint(pair, header.AxisTickSpacing); break; case BLIPMODE: EnsureCode(pair, 70); header.BlipMode = BoolShort(pair.ShortValue); break; case CECOLOR: EnsureCode(pair, 62); header.CurrentEntityColor = DxfColor.FromRawValue(pair.ShortValue); break; case CELTSCALE: EnsureCode(pair, 40); header.CurrentEntityLinetypeScale = (pair.DoubleValue); break; case CELTYPE: EnsureCode(pair, 6); header.CurrentEntityLinetype = (pair.StringValue); break; case CELWEIGHT: EnsureCode(pair, 370); header.NewObjectLineWeight = (pair.ShortValue); break; case CEPSNID: EnsureCode(pair, 390); header.NewObjectPlotStyleHandle = (pair.StringValue); break; case CEPSNTYPE: EnsureCode(pair, 380); header.NewObjectPlotStyle = (DxfPlotStyle)(pair.DoubleValue); break; case CHAMFERA: EnsureCode(pair, 40); header.FirstChamferDistance = (pair.DoubleValue); break; case CHAMFERB: EnsureCode(pair, 40); header.SecondChamferDistance = (pair.DoubleValue); break; case CHAMFERC: EnsureCode(pair, 40); header.ChamferLength = (pair.DoubleValue); break; case CHAMFERD: EnsureCode(pair, 40); header.ChamferAngle = (pair.DoubleValue); break; case CLAYER: EnsureCode(pair, 8); header.CurrentLayer = (pair.StringValue); break; case CMLJUST: EnsureCode(pair, 70); header.CurrentMultilineJustification = (DxfJustification)(pair.ShortValue); break; case CMLSCALE: EnsureCode(pair, 40); header.CurrentMultilineScale = (pair.DoubleValue); break; case CMLSTYLE: switch (pair.Code) { case 7: header.CurrentMultilineStyle = (pair.StringValue); break; case 2: header.CurrentMultilineStyle = (pair.StringValue); break; default: Debug.Assert(false, string.Format("Expected code [7, 2], got {0}", pair.Code)); break; } break; case COORDS: EnsureCode(pair, 70); header.CoordinateDisplay = (DxfCoordinateDisplay)(pair.ShortValue); break; case CPSNID: EnsureCode(pair, 390); header.NewObjectPlotStyleHandle = (pair.StringValue); break; case CSHADOW: EnsureCode(pair, 280); header.ShadowMode = (DxfShadowMode)(pair.ShortValue); break; case DELOBJ: EnsureCode(pair, 70); header.RetainDeletedObjects = BoolShort(pair.ShortValue); break; case DIMADEC: EnsureCode(pair, 70); header.AngularDimensionPrecision = (pair.ShortValue); break; case DIMALT: EnsureCode(pair, 70); header.UseAlternateDimensioning = BoolShort(pair.ShortValue); break; case DIMALTD: EnsureCode(pair, 70); header.AlternateDimensioningDecimalPlaces = (pair.ShortValue); break; case DIMALTF: EnsureCode(pair, 40); header.AlternateDimensioningScaleFactor = (pair.DoubleValue); break; case DIMALTRND: EnsureCode(pair, 40); header.AlternateDimensioningUnitRounding = (pair.DoubleValue); break; case DIMALTTD: EnsureCode(pair, 70); header.AlternateDimensioningToleranceDecimalPlaces = (pair.ShortValue); break; case DIMALTTZ: EnsureCode(pair, 70); header.AlternateDimensioningToleranceZeroSupression = (DxfUnitZeroSuppression)(pair.ShortValue); break; case DIMALTU: EnsureCode(pair, 70); header.AlternateDimensioningUnits = (DxfUnitFormat)(pair.ShortValue); break; case DIMALTZ: EnsureCode(pair, 70); header.AlternateDimensioningZeroSupression = (DxfUnitZeroSuppression)(pair.ShortValue); break; case DIMAPOST: EnsureCode(pair, 1); header.AlternateDimensioningSuffix = (pair.StringValue); break; case DIMASO: EnsureCode(pair, 70); header.CreateAssociativeDimensioning = BoolShort(pair.ShortValue); break; case DIMASSOC: EnsureCode(pair, 280); header.DimensionObjectAssociativity = (DxfDimensionAssociativity)(pair.ShortValue); break; case DIMASZ: EnsureCode(pair, 40); header.DimensioningArrowSize = (pair.DoubleValue); break; case DIMATFIT: EnsureCode(pair, 70); header.DimensionTextAndArrowPlacement = (DxfDimensionFit)(pair.ShortValue); break; case DIMAUNIT: EnsureCode(pair, 70); header.DimensioningAngleFormat = (DxfAngleFormat)(pair.ShortValue); break; case DIMAZIN: EnsureCode(pair, 70); header.DimensionAngleZeroSuppression = (DxfUnitZeroSuppression)(pair.ShortValue); break; case DIMBLK: switch (pair.Code) { case 2: header.ArrowBlockName = (pair.StringValue); break; case 1: header.ArrowBlockName = (pair.StringValue); break; default: Debug.Assert(false, string.Format("Expected code [2, 1], got {0}", pair.Code)); break; } break; case DIMBLK1: EnsureCode(pair, 1); header.FirstArrowBlockName = (pair.StringValue); break; case DIMBLK2: EnsureCode(pair, 1); header.SecondArrowBlockName = (pair.StringValue); break; case DIMCEN: EnsureCode(pair, 40); header.CenterMarkSize = (pair.DoubleValue); break; case DIMCLRD: EnsureCode(pair, 70); header.DimensionLineColor = DxfColor.FromRawValue(pair.ShortValue); break; case DIMCLRE: EnsureCode(pair, 70); header.DimensionExtensionLineColor = DxfColor.FromRawValue(pair.ShortValue); break; case DIMCLRT: EnsureCode(pair, 70); header.DimensionTextColor = DxfColor.FromRawValue(pair.ShortValue); break; case DIMDEC: EnsureCode(pair, 70); header.DimensionUnitToleranceDecimalPlaces = (pair.ShortValue); break; case DIMDLE: EnsureCode(pair, 40); header.DimensionLineExtension = (pair.DoubleValue); break; case DIMDLI: EnsureCode(pair, 40); header.DimensionLineIncrement = (pair.DoubleValue); break; case DIMDSEP: EnsureCode(pair, 70); header.DimensionDecimalSeparatorChar = (char)(pair.ShortValue); break; case DIMEXE: EnsureCode(pair, 40); header.DimensionExtensionLineExtension = (pair.DoubleValue); break; case DIMEXO: EnsureCode(pair, 40); header.DimensionExtensionLineOffset = (pair.DoubleValue); break; case DIMFAC: EnsureCode(pair, 40); header.DimensionTextHeightScaleFactor = (pair.DoubleValue); break; case DIMFIT: EnsureCode(pair, 70); header.DimensionTextAndArrowPlacement = (DxfDimensionFit)(pair.ShortValue); break; case DIMGAP: EnsureCode(pair, 40); header.DimensionLineGap = (pair.DoubleValue); break; case DIMJUST: EnsureCode(pair, 70); header.DimensionTextJustification = (DxfDimensionTextJustification)(pair.ShortValue); break; case DIMLDRBLK: EnsureCode(pair, 1); header.DimensionLeaderBlockName = (pair.StringValue); break; case DIMLFAC: EnsureCode(pair, 40); header.DimensionLinearMeasurementsScaleFactor = (pair.DoubleValue); break; case DIMLIM: EnsureCode(pair, 70); header.GenerateDimensionLimits = BoolShort(pair.ShortValue); break; case DIMLUNIT: EnsureCode(pair, 70); header.DimensionNonAngularUnits = (DxfNonAngularUnits)(pair.ShortValue); break; case DIMLWD: EnsureCode(pair, 70); header.DimensionLineWeight = DxfLineWeight.FromRawValue(pair.ShortValue); break; case DIMLWE: EnsureCode(pair, 70); header.DimensionExtensionLineWeight = DxfLineWeight.FromRawValue(pair.ShortValue); break; case DIMPOST: EnsureCode(pair, 1); header.DimensioningSuffix = (pair.StringValue); break; case DIMRND: EnsureCode(pair, 40); header.DimensionDistanceRoundingValue = (pair.DoubleValue); break; case DIMSAH: EnsureCode(pair, 70); header.UseSeparateArrowBlocksForDimensions = BoolShort(pair.ShortValue); break; case DIMSCALE: EnsureCode(pair, 40); header.DimensioningScaleFactor = (pair.DoubleValue); break; case DIMSD1: EnsureCode(pair, 70); header.SuppressFirstDimensionExtensionLine = BoolShort(pair.ShortValue); break; case DIMSD2: EnsureCode(pair, 70); header.SuppressSecondDimensionExtensionLine = BoolShort(pair.ShortValue); break; case DIMSE1: EnsureCode(pair, 70); header.SuppressFirstDimensionExtensionLine = BoolShort(pair.ShortValue); break; case DIMSE2: EnsureCode(pair, 70); header.SuppressSecondDimensionExtensionLine = BoolShort(pair.ShortValue); break; case DIMSHO: EnsureCode(pair, 70); header.RecomputeDimensionsWhileDragging = BoolShort(pair.ShortValue); break; case DIMSOXD: EnsureCode(pair, 70); header.SuppressOutsideExtensionDimensionLines = BoolShort(pair.ShortValue); break; case DIMSTYLE: EnsureCode(pair, 2); header.DimensionStyleName = (pair.StringValue); break; case DIMTAD: EnsureCode(pair, 70); header.TextAboveDimensionLine = BoolShort(pair.ShortValue); break; case DIMTDEC: EnsureCode(pair, 70); header.DimensionToleranceDecimalPlaces = (pair.ShortValue); break; case DIMTFAC: EnsureCode(pair, 40); header.DimensionToleranceDisplayScaleFactor = (pair.DoubleValue); break; case DIMTIH: EnsureCode(pair, 70); header.DimensionTextInsideHorizontal = BoolShort(pair.ShortValue); break; case DIMTIX: EnsureCode(pair, 70); header.ForceDimensionTextInsideExtensions = BoolShort(pair.ShortValue); break; case DIMTM: EnsureCode(pair, 40); header.DimensionMinusTolerance = (pair.DoubleValue); break; case DIMTMOVE: EnsureCode(pair, 70); header.DimensionTextMovementRule = (DxfDimensionTextMovementRule)(pair.ShortValue); break; case DIMTOFL: EnsureCode(pair, 70); header.ForceDimensionLineExtensionsOutsideIfTextIs = BoolShort(pair.ShortValue); break; case DIMTOH: EnsureCode(pair, 70); header.DimensionTextOutsideHorizontal = BoolShort(pair.ShortValue); break; case DIMTOL: EnsureCode(pair, 70); header.GenerateDimensionTolerances = BoolShort(pair.ShortValue); break; case DIMTOLJ: EnsureCode(pair, 70); header.DimensionToleranceVerticalJustification = (DxfJustification)(pair.ShortValue); break; case DIMTP: EnsureCode(pair, 40); header.DimensionPlusTolerance = (pair.DoubleValue); break; case DIMTSZ: EnsureCode(pair, 40); header.DimensioningTickSize = (pair.DoubleValue); break; case DIMTVP: EnsureCode(pair, 40); header.DimensionVerticalTextPosition = (pair.DoubleValue); break; case DIMTXSTY: EnsureCode(pair, 7); header.DimensionTextStyle = (pair.StringValue); break; case DIMTXT: EnsureCode(pair, 40); header.DimensioningTextHeight = (pair.DoubleValue); break; case DIMTZIN: EnsureCode(pair, 70); header.DimensionToleranceZeroSuppression = (DxfUnitZeroSuppression)(pair.ShortValue); break; case DIMUNIT: EnsureCode(pair, 70); header.DimensionUnitFormat = (DxfUnitFormat)(pair.ShortValue); break; case DIMUPT: EnsureCode(pair, 70); header.DimensionCursorControlsTextPosition = BoolShort(pair.ShortValue); break; case DIMZIN: EnsureCode(pair, 70); header.DimensionUnitZeroSuppression = (DxfUnitZeroSuppression)(pair.ShortValue); break; case DISPSILH: EnsureCode(pair, 70); header.DisplaySilhouetteCurvesInWireframeMode = BoolShort(pair.ShortValue); break; case DRAGMODE: EnsureCode(pair, 70); header.DragMode = (DxfDragMode)(pair.ShortValue); break; case DRAGVS: EnsureCode(pair, 349); header.ThreeDSolidCreationVisualStyle = (pair.StringValue); break; case DWGCODEPAGE: switch (pair.Code) { case 70: header.DrawingCodePage = StringShort(pair.ShortValue); break; case 3: header.DrawingCodePage = (pair.StringValue); break; default: Debug.Assert(false, string.Format("Expected code [70, 3], got {0}", pair.Code)); break; } break; case ELEVATION: EnsureCode(pair, 40); header.Elevation = (pair.DoubleValue); break; case ENDCAPS: EnsureCode(pair, 280); header.EndCapSetting = (DxfEndCapSetting)(pair.ShortValue); break; case EXTMAX: SetPoint(pair, header.MaximumDrawingExtents); break; case EXTMIN: SetPoint(pair, header.MinimumDrawingExtents); break; case EXTNAMES: EnsureCode(pair, 290); header.UseACad2000SymbolTableNaming = (pair.BoolValue); break; case FILLETRAD: EnsureCode(pair, 40); header.FilletRadius = (pair.DoubleValue); break; case FILLMODE: EnsureCode(pair, 70); header.FillModeOn = BoolShort(pair.ShortValue); break; case FINGERPRINTGUID: EnsureCode(pair, 2); header.FingerprintGuid = GuidString(pair.StringValue); break; case HALOGAP: EnsureCode(pair, 280); header.HaloGapPercent = (double)(pair.ShortValue); break; case HANDLING: EnsureCode(pair, 70); header.HandlesEnabled = BoolShort(pair.ShortValue); break; case HANDSEED: EnsureCode(pair, 5); header.NextAvailableHandle = UIntHandle(pair.StringValue); break; case HIDETEXT: switch (pair.Code) { case 290: header.HideTextObjectsWhenProducintHiddenView = (pair.BoolValue); break; case 280: header.HideTextObjectsWhenProducintHiddenView = BoolShort(pair.ShortValue); break; default: Debug.Assert(false, string.Format("Expected code [290, 280], got {0}", pair.Code)); break; } break; case HYPERLINKBASE: EnsureCode(pair, 1); header.HyperlinBase = (pair.StringValue); break; case INDEXCTL: EnsureCode(pair, 280); header.LayerAndSpatialIndexSaveMode = (DxfLayerAndSpatialIndexSaveMode)(pair.ShortValue); break; case INSBASE: SetPoint(pair, header.InsertionBase); break; case INSUNITS: EnsureCode(pair, 70); header.DefaultDrawingUnits = (DxfUnits)(pair.ShortValue); break; case INTERFERECOLOR: EnsureCode(pair, 62); header.InterferenceObjectColor = DxfColor.FromRawValue(pair.ShortValue); break; case INTERFEREOBJVS: EnsureCode(pair, 345); header.InterferenceObjectVisualStylePointer = (pair.StringValue); break; case INTERFEREVPVS: EnsureCode(pair, 346); header.InterferenceViewPortVisualStylePointer = (pair.StringValue); break; case INTERSECTIONCOLOR: EnsureCode(pair, 70); header.IntersectionPolylineColor = DxfColor.FromRawValue(pair.ShortValue); break; case INTERSECTIONDISPLAY: switch (pair.Code) { case 290: header.DisplayIntersectionPolylines = (pair.BoolValue); break; case 280: header.DisplayIntersectionPolylines = BoolShort(pair.ShortValue); break; default: Debug.Assert(false, string.Format("Expected code [290, 280], got {0}", pair.Code)); break; } break; case JOINSTYLE: EnsureCode(pair, 280); header.LineweightJointSetting = (DxfJoinStyle)(pair.ShortValue); break; case LIMCHECK: EnsureCode(pair, 70); header.UseLimitsChecking = BoolShort(pair.ShortValue); break; case LIMMAX: SetPoint(pair, header.MaximumDrawingLimits); break; case LIMMIN: SetPoint(pair, header.MinimumDrawingLimits); break; case LTSCALE: EnsureCode(pair, 40); header.LinetypeScale = (pair.DoubleValue); break; case LUNITS: EnsureCode(pair, 70); header.UnitFormat = (DxfUnitFormat)(pair.ShortValue); break; case LUPREC: EnsureCode(pair, 70); header.UnitPrecision = (pair.ShortValue); break; case LWDISPLAY: EnsureCode(pair, 290); header.DisplayLinewieghtInModelAndLayoutTab = (pair.BoolValue); break; case MAXACTVP: EnsureCode(pair, 70); header.MaximumActiveViewports = (pair.ShortValue); break; case MEASUREMENT: EnsureCode(pair, 70); header.DrawingUnits = (DxfDrawingUnits)(pair.ShortValue); break; case MENU: EnsureCode(pair, 1); header.FileName = (pair.StringValue); break; case MIRRTEXT: EnsureCode(pair, 70); header.MirrorText = BoolShort(pair.ShortValue); break; case OBSCOLOR: EnsureCode(pair, 70); header.ObscuredLineColor = DxfColor.FromRawValue(pair.ShortValue); break; case OBSLTYPE: EnsureCode(pair, 280); header.ObscuredLineTypeStyle = (DxfLinetypeStyle)(pair.ShortValue); break; case ORTHOMODE: EnsureCode(pair, 70); header.DrawOrthoganalLines = BoolShort(pair.ShortValue); break; case OSMODE: EnsureCode(pair, 70); header.ObjectSnapFlags = (int)(pair.ShortValue); break; case PDMODE: EnsureCode(pair, 70); header.PointDisplayMode = (int)(pair.ShortValue); break; case PDSIZE: EnsureCode(pair, 40); header.PointDisplaySize = (pair.DoubleValue); break; case PELEVATION: EnsureCode(pair, 40); header.PaperspaceElevation = (pair.DoubleValue); break; case PEXTMAX: SetPoint(pair, header.PaperspaceMaximumDrawingExtents); break; case PEXTMIN: SetPoint(pair, header.PaperspaceMinimumDrawingExtents); break; case PICKSTYLE: EnsureCode(pair, 70); header.PickStyle = (DxfPickStyle)(pair.ShortValue); break; case PINSBASE: SetPoint(pair, header.PaperspaceInsertionBase); break; case PLIMCHECK: EnsureCode(pair, 70); header.LimitCheckingInPaperspace = BoolShort(pair.ShortValue); break; case PLIMMAX: SetPoint(pair, header.PaperspaceMaximumDrawingLimits); break; case PLIMMIN: SetPoint(pair, header.PaperspaceMinimumDrawingLimits); break; case PLINEGEN: EnsureCode(pair, 70); header.IsPolylineContinuousAroundVerticies = BoolShort(pair.ShortValue); break; case PLINEWID: EnsureCode(pair, 40); header.DefaultPolylineWidth = (pair.DoubleValue); break; case PROJECTNAME: EnsureCode(pair, 1); header.ProjectName = (pair.StringValue); break; case PROXYGRAPHICS: EnsureCode(pair, 70); header.SaveProxyGraphics = BoolShort(pair.ShortValue); break; case PSLTSCALE: EnsureCode(pair, 70); header.ScaleLinetypesInPaperspace = BoolShort(pair.ShortValue); break; case PSTYLEMODE: EnsureCode(pair, 290); header.UsesColorDependentPlotStyleTables = (pair.BoolValue); break; case PSVPSCALE: EnsureCode(pair, 40); header.ViewportViewScaleFactor = (pair.DoubleValue); break; case PUCSBASE: EnsureCode(pair, 2); header.PaperspaceUCSDefinitionName = (pair.StringValue); break; case PUCSNAME: EnsureCode(pair, 2); header.PaperspaceUCSName = (pair.StringValue); break; case PUCSORG: SetPoint(pair, header.PaperspaceUCSOrigin); break; case PUCSORGBACK: SetPoint(pair, header.PaperspaceUCSOriginBack); break; case PUCSORGBOTTOM: SetPoint(pair, header.PaperspaceUCSOriginBottom); break; case PUCSORGFRONT: SetPoint(pair, header.PaperspaceUCSOriginFront); break; case PUCSORGLEFT: SetPoint(pair, header.PaperspaceUCSOriginLeft); break; case PUCSORGRIGHT: SetPoint(pair, header.PaperspaceUCSOriginRight); break; case PUCSORGTOP: SetPoint(pair, header.PaperspaceUCSOriginTop); break; case PUCSORTHOREF: EnsureCode(pair, 2); header.PaperspaceOrthoUCSReference = (pair.StringValue); break; case PUCSORTHOVIEW: EnsureCode(pair, 70); header.PaperspaceOrthographicViewType = (DxfOrthographicViewType)(pair.ShortValue); break; case PUCSXDIR: SetPoint(pair, header.PaperspaceXAxis); break; case PUCSYDIR: SetPoint(pair, header.PaperspaceYAxis); break; case QTEXTMODE: EnsureCode(pair, 70); header.UseQuickTextMode = BoolShort(pair.ShortValue); break; case REGENMODE: EnsureCode(pair, 70); header.UseRegenMode = BoolShort(pair.ShortValue); break; case SHADEDGE: EnsureCode(pair, 70); header.EdgeShading = (DxfShadeEdgeMode)(pair.ShortValue); break; case SHADEDIF: EnsureCode(pair, 70); header.PercentAmbientToDiffuse = (pair.ShortValue); break; case SHADOWPLANELOCATION: EnsureCode(pair, 40); header.ShadowPlaneZOffset = (pair.DoubleValue); break; case SKETCHINC: EnsureCode(pair, 40); header.SketchRecordIncrement = (pair.DoubleValue); break; case SKPOLY: EnsureCode(pair, 70); header.PolylineSketchMode = (DxfPolySketchMode)(pair.ShortValue); break; case SORTENTS: EnsureCode(pair, 280); header.ObjectSortingMethodsFlags = (int)(pair.ShortValue); break; case SPLFRAME: EnsureCode(pair, 70); header.DisplaySplinePolygonControl = BoolShort(pair.ShortValue); break; case SPLINESEGS: EnsureCode(pair, 70); header.LineSegmentsPerSplinePatch = (pair.ShortValue); break; case SPLINETYPE: EnsureCode(pair, 70); header.PEditSplineCurveType = (DxfPolylineCurvedAndSmoothSurfaceType)(pair.ShortValue); break; case SURFTAB1: EnsureCode(pair, 70); header.MeshTabulationsInFirstDirection = (pair.ShortValue); break; case SURFTAB2: EnsureCode(pair, 70); header.MeshTabulationsInSecondDirection = (pair.ShortValue); break; case SURFTYPE: EnsureCode(pair, 70); header.PEditSmoothSurfaceType = (DxfPolylineCurvedAndSmoothSurfaceType)(pair.ShortValue); break; case SURFU: EnsureCode(pair, 70); header.PEditSmoothMDensith = (pair.ShortValue); break; case SURFV: EnsureCode(pair, 70); header.PEditSmoothNDensith = (pair.ShortValue); break; case TDCREATE: EnsureCode(pair, 40); header.CreationDate = DateDouble(pair.DoubleValue); break; case TDINDWG: EnsureCode(pair, 40); header.TimeInDrawing = TimeSpanDouble(pair.DoubleValue); break; case TDUCREATE: EnsureCode(pair, 40); header.CreationDateUniversal = DateDouble(pair.DoubleValue); break; case TDUPDATE: EnsureCode(pair, 40); header.UpdateDate = DateDouble(pair.DoubleValue); break; case TDUSRTIMER: EnsureCode(pair, 40); header.UserElapsedTimer = TimeSpanDouble(pair.DoubleValue); break; case TDUUPDATE: EnsureCode(pair, 40); header.UpdateDateUniversal = DateDouble(pair.DoubleValue); break; case TEXTSIZE: EnsureCode(pair, 40); header.DefaultTextHeight = (pair.DoubleValue); break; case TEXTSTYLE: EnsureCode(pair, 7); header.TextStyle = (pair.StringValue); break; case THICKNESS: EnsureCode(pair, 40); header.Thickness = (pair.DoubleValue); break; case TILEMODE: EnsureCode(pair, 70); header.PreviousReleaseTileCompatability = BoolShort(pair.ShortValue); break; case TRACEWID: EnsureCode(pair, 40); header.TraceWidth = (pair.DoubleValue); break; case TREEDEPTH: EnsureCode(pair, 70); header.SpacialIndexMaxDepth = (pair.ShortValue); break; case UCSBASE: EnsureCode(pair, 2); header.UCSDefinitionName = (pair.StringValue); break; case UCSNAME: switch (pair.Code) { case 1: header.UCSName = (pair.StringValue); break; case 2: header.UCSName = (pair.StringValue); break; default: Debug.Assert(false, string.Format("Expected code [1, 2], got {0}", pair.Code)); break; } break; case UCSORG: SetPoint(pair, header.UCSOrigin); break; case UCSORGBACK: SetPoint(pair, header.UCSOriginBack); break; case UCSORGBOTTOM: SetPoint(pair, header.UCSOriginBottom); break; case UCSORGFRONT: SetPoint(pair, header.UCSOriginFront); break; case UCSORGLEFT: SetPoint(pair, header.UCSOriginLeft); break; case UCSORGRIGHT: SetPoint(pair, header.UCSOriginRight); break; case UCSORGTOP: SetPoint(pair, header.UCSOriginTop); break; case UCSORTHOREF: EnsureCode(pair, 2); header.OrthoUCSReference = (pair.StringValue); break; case UCSORTHOVIEW: EnsureCode(pair, 70); header.OrthgraphicViewType = (DxfOrthographicViewType)(pair.ShortValue); break; case UCSXDIR: SetPoint(pair, header.UCSXAxis); break; case UCSYDIR: SetPoint(pair, header.UCSYAxis); break; case UNITMODE: EnsureCode(pair, 70); header.DisplayFractionsInInput = BoolShort(pair.ShortValue); break; case USERI1: EnsureCode(pair, 70); header.UserInt1 = (pair.ShortValue); break; case USERI2: EnsureCode(pair, 70); header.UserInt2 = (pair.ShortValue); break; case USERI3: EnsureCode(pair, 70); header.UserInt3 = (pair.ShortValue); break; case USERI4: EnsureCode(pair, 70); header.UserInt4 = (pair.ShortValue); break; case USERI5: EnsureCode(pair, 70); header.UserInt5 = (pair.ShortValue); break; case USERR1: EnsureCode(pair, 40); header.UserReal1 = (pair.DoubleValue); break; case USERR2: EnsureCode(pair, 40); header.UserReal2 = (pair.DoubleValue); break; case USERR3: EnsureCode(pair, 40); header.UserReal3 = (pair.DoubleValue); break; case USERR4: EnsureCode(pair, 40); header.UserReal4 = (pair.DoubleValue); break; case USERR5: EnsureCode(pair, 40); header.UserReal5 = (pair.DoubleValue); break; case USRTIMER: EnsureCode(pair, 70); header.UserTimerOn = BoolShort(pair.ShortValue); break; case VERSIONGUID: EnsureCode(pair, 2); header.VersionGuid = GuidString(pair.StringValue); break; case VISRETAIN: EnsureCode(pair, 70); header.RetainXRefDependentVisibilitySettings = BoolShort(pair.ShortValue); break; case WORLDVIEW: EnsureCode(pair, 70); header.SetUCSToWCSInDViewOrVPoint = BoolShort(pair.ShortValue); break; case XCLIPFRAME: switch (pair.Code) { case 290: header.IsXRefClippingBoundaryVisible = (pair.BoolValue); break; case 280: header.IsXRefClippingBoundaryVisible = BoolShort(pair.ShortValue); break; default: Debug.Assert(false, string.Format("Expected code [290, 280], got {0}", pair.Code)); break; } break; case XEDIT: EnsureCode(pair, 290); header.CanUseInPlaceReferenceEditing = (pair.BoolValue); break; default: // unsupported variable break; } }
// build list of code value pairs internal static void AddValueToList(List<DxfCodePair> list, DxfHeader header, DxfAcadVersion version) { // ACADMAINTVER if (version >= DxfAcadVersion.R14) { list.Add(new DxfCodePair(9, ACADMAINTVER)); list.Add(new DxfCodePair(70, (header.MaintenenceVersion))); } // ACADVER list.Add(new DxfCodePair(9, ACADVER)); list.Add(new DxfCodePair(1, DxfAcadVersionStrings.VersionToString(header.Version))); // ANGBASE list.Add(new DxfCodePair(9, ANGBASE)); list.Add(new DxfCodePair(50, (header.AngleZeroDirection))); // ANGDIR list.Add(new DxfCodePair(9, ANGDIR)); list.Add(new DxfCodePair(70, (short)(header.AngleDirection))); // ATTDIA if (version <= DxfAcadVersion.R14) { list.Add(new DxfCodePair(9, ATTDIA)); list.Add(new DxfCodePair(70, BoolShort(header.ShowAttributeEntryDialogs))); } // ATTMODE list.Add(new DxfCodePair(9, ATTMODE)); list.Add(new DxfCodePair(70, (short)(header.AttributeVisibility))); // ATTREQ if (version <= DxfAcadVersion.R14) { list.Add(new DxfCodePair(9, ATTREQ)); list.Add(new DxfCodePair(70, BoolShort(header.PromptForAttributeOnInsert))); } // AUNITS list.Add(new DxfCodePair(9, AUNITS)); list.Add(new DxfCodePair(70, (short)(header.AngleUnitFormat))); // AUPREC list.Add(new DxfCodePair(9, AUPREC)); list.Add(new DxfCodePair(70, (header.AngleUnitPrecision))); // AXISMODE if (version <= DxfAcadVersion.R10) { list.Add(new DxfCodePair(9, AXISMODE)); list.Add(new DxfCodePair(70, BoolShort(header.AxisOn))); } // AXISUNIT if (version <= DxfAcadVersion.R10) { list.Add(new DxfCodePair(9, AXISUNIT)); list.Add(new DxfCodePair(10, header.AxisTickSpacing?.X ?? default(double))); list.Add(new DxfCodePair(20, header.AxisTickSpacing?.Y ?? default(double))); } // BLIPMODE if (version <= DxfAcadVersion.R14) { list.Add(new DxfCodePair(9, BLIPMODE)); list.Add(new DxfCodePair(70, BoolShort(header.BlipMode))); } // CECOLOR list.Add(new DxfCodePair(9, CECOLOR)); list.Add(new DxfCodePair(62, DxfColor.GetRawValue(header.CurrentEntityColor))); // CELTSCALE if (version >= DxfAcadVersion.R13) { list.Add(new DxfCodePair(9, CELTSCALE)); list.Add(new DxfCodePair(40, (header.CurrentEntityLinetypeScale))); } // CELTYPE list.Add(new DxfCodePair(9, CELTYPE)); list.Add(new DxfCodePair(6, (header.CurrentEntityLinetype))); // CELWEIGHT if (version >= DxfAcadVersion.R2000) { list.Add(new DxfCodePair(9, CELWEIGHT)); list.Add(new DxfCodePair(370, (header.NewObjectLineWeight))); } // CEPSNID if (version >= DxfAcadVersion.R2004) { list.Add(new DxfCodePair(9, CEPSNID)); list.Add(new DxfCodePair(390, (header.NewObjectPlotStyleHandle))); } // CEPSNTYPE if (version >= DxfAcadVersion.R2000) { list.Add(new DxfCodePair(9, CEPSNTYPE)); list.Add(new DxfCodePair(380, (double)(header.NewObjectPlotStyle))); } // CHAMFERA list.Add(new DxfCodePair(9, CHAMFERA)); list.Add(new DxfCodePair(40, (header.FirstChamferDistance))); // CHAMFERB list.Add(new DxfCodePair(9, CHAMFERB)); list.Add(new DxfCodePair(40, (header.SecondChamferDistance))); // CHAMFERC if (version >= DxfAcadVersion.R14) { list.Add(new DxfCodePair(9, CHAMFERC)); list.Add(new DxfCodePair(40, (header.ChamferLength))); } // CHAMFERD if (version >= DxfAcadVersion.R14) { list.Add(new DxfCodePair(9, CHAMFERD)); list.Add(new DxfCodePair(40, (header.ChamferAngle))); } // CLAYER list.Add(new DxfCodePair(9, CLAYER)); list.Add(new DxfCodePair(8, (header.CurrentLayer))); // CMLJUST if (version >= DxfAcadVersion.R13) { list.Add(new DxfCodePair(9, CMLJUST)); list.Add(new DxfCodePair(70, (short)(header.CurrentMultilineJustification))); } // CMLSCALE if (version >= DxfAcadVersion.R13) { list.Add(new DxfCodePair(9, CMLSCALE)); list.Add(new DxfCodePair(40, (header.CurrentMultilineScale))); } // CMLSTYLE if (version == DxfAcadVersion.R13) { list.Add(new DxfCodePair(9, CMLSTYLE)); list.Add(new DxfCodePair(7, (header.CurrentMultilineStyle))); } // CMLSTYLE if (version >= DxfAcadVersion.R14) { list.Add(new DxfCodePair(9, CMLSTYLE)); list.Add(new DxfCodePair(2, (header.CurrentMultilineStyle))); } // COORDS if (version <= DxfAcadVersion.R14) { list.Add(new DxfCodePair(9, COORDS)); list.Add(new DxfCodePair(70, (short)(header.CoordinateDisplay))); } // CPSNID if (version == DxfAcadVersion.R2000) { list.Add(new DxfCodePair(9, CPSNID)); list.Add(new DxfCodePair(390, (header.NewObjectPlotStyleHandle))); } // CSHADOW if (version >= DxfAcadVersion.R2007) { list.Add(new DxfCodePair(9, CSHADOW)); list.Add(new DxfCodePair(280, (short)(header.ShadowMode))); } // DELOBJ if (version >= DxfAcadVersion.R13 && version <= DxfAcadVersion.R14) { list.Add(new DxfCodePair(9, DELOBJ)); list.Add(new DxfCodePair(70, BoolShort(header.RetainDeletedObjects))); } // DIMADEC if (version >= DxfAcadVersion.R2000) { list.Add(new DxfCodePair(9, DIMADEC)); list.Add(new DxfCodePair(70, (header.AngularDimensionPrecision))); } // DIMALT list.Add(new DxfCodePair(9, DIMALT)); list.Add(new DxfCodePair(70, BoolShort(header.UseAlternateDimensioning))); // DIMALTD list.Add(new DxfCodePair(9, DIMALTD)); list.Add(new DxfCodePair(70, (header.AlternateDimensioningDecimalPlaces))); // DIMALTF list.Add(new DxfCodePair(9, DIMALTF)); list.Add(new DxfCodePair(40, (header.AlternateDimensioningScaleFactor))); // DIMALTRND if (version >= DxfAcadVersion.R2000) { list.Add(new DxfCodePair(9, DIMALTRND)); list.Add(new DxfCodePair(40, (header.AlternateDimensioningUnitRounding))); } // DIMALTTD if (version >= DxfAcadVersion.R13) { list.Add(new DxfCodePair(9, DIMALTTD)); list.Add(new DxfCodePair(70, (header.AlternateDimensioningToleranceDecimalPlaces))); } // DIMALTTZ if (version >= DxfAcadVersion.R13) { list.Add(new DxfCodePair(9, DIMALTTZ)); list.Add(new DxfCodePair(70, (short)(header.AlternateDimensioningToleranceZeroSupression))); } // DIMALTU if (version >= DxfAcadVersion.R13) { list.Add(new DxfCodePair(9, DIMALTU)); list.Add(new DxfCodePair(70, (short)(header.AlternateDimensioningUnits))); } // DIMALTZ if (version >= DxfAcadVersion.R13) { list.Add(new DxfCodePair(9, DIMALTZ)); list.Add(new DxfCodePair(70, (short)(header.AlternateDimensioningZeroSupression))); } // DIMAPOST list.Add(new DxfCodePair(9, DIMAPOST)); list.Add(new DxfCodePair(1, (header.AlternateDimensioningSuffix))); // DIMASO list.Add(new DxfCodePair(9, DIMASO)); list.Add(new DxfCodePair(70, BoolShort(header.CreateAssociativeDimensioning))); // DIMASSOC if (version >= DxfAcadVersion.R2004) { list.Add(new DxfCodePair(9, DIMASSOC)); list.Add(new DxfCodePair(280, (short)(header.DimensionObjectAssociativity))); } // DIMASZ list.Add(new DxfCodePair(9, DIMASZ)); list.Add(new DxfCodePair(40, (header.DimensioningArrowSize))); // DIMATFIT if (version >= DxfAcadVersion.R2000) { list.Add(new DxfCodePair(9, DIMATFIT)); list.Add(new DxfCodePair(70, (short)(header.DimensionTextAndArrowPlacement))); } // DIMAUNIT if (version >= DxfAcadVersion.R13) { list.Add(new DxfCodePair(9, DIMAUNIT)); list.Add(new DxfCodePair(70, (short)(header.DimensioningAngleFormat))); } // DIMAZIN if (version >= DxfAcadVersion.R2000) { list.Add(new DxfCodePair(9, DIMAZIN)); list.Add(new DxfCodePair(70, (short)(header.DimensionAngleZeroSuppression))); } // DIMBLK if (version <= DxfAcadVersion.R13) { list.Add(new DxfCodePair(9, DIMBLK)); list.Add(new DxfCodePair(2, (header.ArrowBlockName))); } // DIMBLK if (version >= DxfAcadVersion.R14) { list.Add(new DxfCodePair(9, DIMBLK)); list.Add(new DxfCodePair(1, (header.ArrowBlockName))); } // DIMBLK1 list.Add(new DxfCodePair(9, DIMBLK1)); list.Add(new DxfCodePair(1, (header.FirstArrowBlockName))); // DIMBLK2 list.Add(new DxfCodePair(9, DIMBLK2)); list.Add(new DxfCodePair(1, (header.SecondArrowBlockName))); // DIMCEN list.Add(new DxfCodePair(9, DIMCEN)); list.Add(new DxfCodePair(40, (header.CenterMarkSize))); // DIMCLRD if (version >= DxfAcadVersion.R11) { list.Add(new DxfCodePair(9, DIMCLRD)); list.Add(new DxfCodePair(70, DxfColor.GetRawValue(header.DimensionLineColor))); } // DIMCLRE if (version >= DxfAcadVersion.R11) { list.Add(new DxfCodePair(9, DIMCLRE)); list.Add(new DxfCodePair(70, DxfColor.GetRawValue(header.DimensionExtensionLineColor))); } // DIMCLRT if (version >= DxfAcadVersion.R11) { list.Add(new DxfCodePair(9, DIMCLRT)); list.Add(new DxfCodePair(70, DxfColor.GetRawValue(header.DimensionTextColor))); } // DIMDEC if (version >= DxfAcadVersion.R13) { list.Add(new DxfCodePair(9, DIMDEC)); list.Add(new DxfCodePair(70, (header.DimensionUnitToleranceDecimalPlaces))); } // DIMDLE list.Add(new DxfCodePair(9, DIMDLE)); list.Add(new DxfCodePair(40, (header.DimensionLineExtension))); // DIMDLI list.Add(new DxfCodePair(9, DIMDLI)); list.Add(new DxfCodePair(40, (header.DimensionLineIncrement))); // DIMDSEP if (version >= DxfAcadVersion.R2000) { list.Add(new DxfCodePair(9, DIMDSEP)); list.Add(new DxfCodePair(70, (short)(header.DimensionDecimalSeparatorChar))); } // DIMEXE list.Add(new DxfCodePair(9, DIMEXE)); list.Add(new DxfCodePair(40, (header.DimensionExtensionLineExtension))); // DIMEXO list.Add(new DxfCodePair(9, DIMEXO)); list.Add(new DxfCodePair(40, (header.DimensionExtensionLineOffset))); // DIMFAC if (version >= DxfAcadVersion.R2000) { list.Add(new DxfCodePair(9, DIMFAC)); list.Add(new DxfCodePair(40, (header.DimensionTextHeightScaleFactor))); } // DIMFIT if (version >= DxfAcadVersion.R13 && version <= DxfAcadVersion.R14) { list.Add(new DxfCodePair(9, DIMFIT)); list.Add(new DxfCodePair(70, (short)(header.DimensionTextAndArrowPlacement))); } // DIMGAP if (version >= DxfAcadVersion.R11) { list.Add(new DxfCodePair(9, DIMGAP)); list.Add(new DxfCodePair(40, (header.DimensionLineGap))); } // DIMJUST if (version >= DxfAcadVersion.R13) { list.Add(new DxfCodePair(9, DIMJUST)); list.Add(new DxfCodePair(70, (short)(header.DimensionTextJustification))); } // DIMLDRBLK if (version >= DxfAcadVersion.R2000) { list.Add(new DxfCodePair(9, DIMLDRBLK)); list.Add(new DxfCodePair(1, (header.DimensionLeaderBlockName))); } // DIMLFAC list.Add(new DxfCodePair(9, DIMLFAC)); list.Add(new DxfCodePair(40, (header.DimensionLinearMeasurementsScaleFactor))); // DIMLIM list.Add(new DxfCodePair(9, DIMLIM)); list.Add(new DxfCodePair(70, BoolShort(header.GenerateDimensionLimits))); // DIMLUNIT if (version >= DxfAcadVersion.R2000) { list.Add(new DxfCodePair(9, DIMLUNIT)); list.Add(new DxfCodePair(70, (short)(header.DimensionNonAngularUnits))); } // DIMLWD if (version >= DxfAcadVersion.R2000) { list.Add(new DxfCodePair(9, DIMLWD)); list.Add(new DxfCodePair(70, DxfLineWeight.GetRawValue(header.DimensionLineWeight))); } // DIMLWE if (version >= DxfAcadVersion.R2000) { list.Add(new DxfCodePair(9, DIMLWE)); list.Add(new DxfCodePair(70, DxfLineWeight.GetRawValue(header.DimensionExtensionLineWeight))); } // DIMPOST list.Add(new DxfCodePair(9, DIMPOST)); list.Add(new DxfCodePair(1, (header.DimensioningSuffix))); // DIMRND list.Add(new DxfCodePair(9, DIMRND)); list.Add(new DxfCodePair(40, (header.DimensionDistanceRoundingValue))); // DIMSAH list.Add(new DxfCodePair(9, DIMSAH)); list.Add(new DxfCodePair(70, BoolShort(header.UseSeparateArrowBlocksForDimensions))); // DIMSCALE list.Add(new DxfCodePair(9, DIMSCALE)); list.Add(new DxfCodePair(40, (header.DimensioningScaleFactor))); // DIMSD1 list.Add(new DxfCodePair(9, DIMSD1)); list.Add(new DxfCodePair(70, BoolShort(header.SuppressFirstDimensionExtensionLine))); // DIMSD2 list.Add(new DxfCodePair(9, DIMSD2)); list.Add(new DxfCodePair(70, BoolShort(header.SuppressSecondDimensionExtensionLine))); // DIMSE1 if (version >= DxfAcadVersion.R13) { list.Add(new DxfCodePair(9, DIMSE1)); list.Add(new DxfCodePair(70, BoolShort(header.SuppressFirstDimensionExtensionLine))); } // DIMSE2 if (version >= DxfAcadVersion.R13) { list.Add(new DxfCodePair(9, DIMSE2)); list.Add(new DxfCodePair(70, BoolShort(header.SuppressSecondDimensionExtensionLine))); } // DIMSHO list.Add(new DxfCodePair(9, DIMSHO)); list.Add(new DxfCodePair(70, BoolShort(header.RecomputeDimensionsWhileDragging))); // DIMSOXD list.Add(new DxfCodePair(9, DIMSOXD)); list.Add(new DxfCodePair(70, BoolShort(header.SuppressOutsideExtensionDimensionLines))); // DIMSTYLE list.Add(new DxfCodePair(9, DIMSTYLE)); list.Add(new DxfCodePair(2, (header.DimensionStyleName))); // DIMTAD list.Add(new DxfCodePair(9, DIMTAD)); list.Add(new DxfCodePair(70, BoolShort(header.TextAboveDimensionLine))); // DIMTDEC if (version >= DxfAcadVersion.R13) { list.Add(new DxfCodePair(9, DIMTDEC)); list.Add(new DxfCodePair(70, (header.DimensionToleranceDecimalPlaces))); } // DIMTFAC if (version >= DxfAcadVersion.R12) { list.Add(new DxfCodePair(9, DIMTFAC)); list.Add(new DxfCodePair(40, (header.DimensionToleranceDisplayScaleFactor))); } // DIMTIH list.Add(new DxfCodePair(9, DIMTIH)); list.Add(new DxfCodePair(70, BoolShort(header.DimensionTextInsideHorizontal))); // DIMTIX list.Add(new DxfCodePair(9, DIMTIX)); list.Add(new DxfCodePair(70, BoolShort(header.ForceDimensionTextInsideExtensions))); // DIMTM list.Add(new DxfCodePair(9, DIMTM)); list.Add(new DxfCodePair(40, (header.DimensionMinusTolerance))); // DIMTMOVE if (version >= DxfAcadVersion.R2000) { list.Add(new DxfCodePair(9, DIMTMOVE)); list.Add(new DxfCodePair(70, (short)(header.DimensionTextMovementRule))); } // DIMTOFL list.Add(new DxfCodePair(9, DIMTOFL)); list.Add(new DxfCodePair(70, BoolShort(header.ForceDimensionLineExtensionsOutsideIfTextIs))); // DIMTOH list.Add(new DxfCodePair(9, DIMTOH)); list.Add(new DxfCodePair(70, BoolShort(header.DimensionTextOutsideHorizontal))); // DIMTOL list.Add(new DxfCodePair(9, DIMTOL)); list.Add(new DxfCodePair(70, BoolShort(header.GenerateDimensionTolerances))); // DIMTOLJ if (version >= DxfAcadVersion.R13) { list.Add(new DxfCodePair(9, DIMTOLJ)); list.Add(new DxfCodePair(70, (short)(header.DimensionToleranceVerticalJustification))); } // DIMTP list.Add(new DxfCodePair(9, DIMTP)); list.Add(new DxfCodePair(40, (header.DimensionPlusTolerance))); // DIMTSZ list.Add(new DxfCodePair(9, DIMTSZ)); list.Add(new DxfCodePair(40, (header.DimensioningTickSize))); // DIMTVP list.Add(new DxfCodePair(9, DIMTVP)); list.Add(new DxfCodePair(40, (header.DimensionVerticalTextPosition))); // DIMTXSTY if (version >= DxfAcadVersion.R13) { list.Add(new DxfCodePair(9, DIMTXSTY)); list.Add(new DxfCodePair(7, (header.DimensionTextStyle))); } // DIMTXT list.Add(new DxfCodePair(9, DIMTXT)); list.Add(new DxfCodePair(40, (header.DimensioningTextHeight))); // DIMTZIN if (version >= DxfAcadVersion.R13) { list.Add(new DxfCodePair(9, DIMTZIN)); list.Add(new DxfCodePair(70, (short)(header.DimensionToleranceZeroSuppression))); } // DIMUNIT if (version >= DxfAcadVersion.R13 && version <= DxfAcadVersion.R14) { list.Add(new DxfCodePair(9, DIMUNIT)); list.Add(new DxfCodePair(70, (short)(header.DimensionUnitFormat))); } // DIMUPT if (version >= DxfAcadVersion.R13) { list.Add(new DxfCodePair(9, DIMUPT)); list.Add(new DxfCodePair(70, BoolShort(header.DimensionCursorControlsTextPosition))); } // DIMZIN list.Add(new DxfCodePair(9, DIMZIN)); list.Add(new DxfCodePair(70, (short)(header.DimensionUnitZeroSuppression))); // DISPSILH if (version >= DxfAcadVersion.R13) { list.Add(new DxfCodePair(9, DISPSILH)); list.Add(new DxfCodePair(70, BoolShort(header.DisplaySilhouetteCurvesInWireframeMode))); } // DRAGMODE if (version <= DxfAcadVersion.R14) { list.Add(new DxfCodePair(9, DRAGMODE)); list.Add(new DxfCodePair(70, (short)(header.DragMode))); } // DRAGVS if (version >= DxfAcadVersion.R2007) { list.Add(new DxfCodePair(9, DRAGVS)); list.Add(new DxfCodePair(349, (header.ThreeDSolidCreationVisualStyle))); } // DWGCODEPAGE if (version == DxfAcadVersion.R12) { list.Add(new DxfCodePair(9, DWGCODEPAGE)); list.Add(new DxfCodePair(70, StringShort(header.DrawingCodePage))); } // DWGCODEPAGE if (version >= DxfAcadVersion.R13) { list.Add(new DxfCodePair(9, DWGCODEPAGE)); list.Add(new DxfCodePair(3, (header.DrawingCodePage))); } // ELEVATION list.Add(new DxfCodePair(9, ELEVATION)); list.Add(new DxfCodePair(40, (header.Elevation))); // ENDCAPS if (version >= DxfAcadVersion.R2000) { list.Add(new DxfCodePair(9, ENDCAPS)); list.Add(new DxfCodePair(280, (short)(header.EndCapSetting))); } // EXTMAX list.Add(new DxfCodePair(9, EXTMAX)); list.Add(new DxfCodePair(10, header.MaximumDrawingExtents?.X ?? default(double))); list.Add(new DxfCodePair(20, header.MaximumDrawingExtents?.Y ?? default(double))); list.Add(new DxfCodePair(30, header.MaximumDrawingExtents?.Z ?? default(double))); // EXTMIN list.Add(new DxfCodePair(9, EXTMIN)); list.Add(new DxfCodePair(10, header.MinimumDrawingExtents?.X ?? default(double))); list.Add(new DxfCodePair(20, header.MinimumDrawingExtents?.Y ?? default(double))); list.Add(new DxfCodePair(30, header.MinimumDrawingExtents?.Z ?? default(double))); // EXTNAMES if (version >= DxfAcadVersion.R2000) { list.Add(new DxfCodePair(9, EXTNAMES)); list.Add(new DxfCodePair(290, (header.UseACad2000SymbolTableNaming))); } // FILLETRAD list.Add(new DxfCodePair(9, FILLETRAD)); list.Add(new DxfCodePair(40, (header.FilletRadius))); // FILLMODE list.Add(new DxfCodePair(9, FILLMODE)); list.Add(new DxfCodePair(70, BoolShort(header.FillModeOn))); // FINGERPRINTGUID if (version >= DxfAcadVersion.R2000) { list.Add(new DxfCodePair(9, FINGERPRINTGUID)); list.Add(new DxfCodePair(2, GuidString(header.FingerprintGuid))); } // HALOGAP if (version >= DxfAcadVersion.R2004) { list.Add(new DxfCodePair(9, HALOGAP)); list.Add(new DxfCodePair(280, (short)(header.HaloGapPercent))); } // HANDLING if (version <= DxfAcadVersion.R12) { list.Add(new DxfCodePair(9, HANDLING)); list.Add(new DxfCodePair(70, BoolShort(header.HandlesEnabled))); } // HANDSEED list.Add(new DxfCodePair(9, HANDSEED)); list.Add(new DxfCodePair(5, UIntHandle(header.NextAvailableHandle))); // HIDETEXT if (version >= DxfAcadVersion.R2004) { list.Add(new DxfCodePair(9, HIDETEXT)); list.Add(new DxfCodePair(290, (header.HideTextObjectsWhenProducintHiddenView))); } // HYPERLINKBASE if (version >= DxfAcadVersion.R2000) { list.Add(new DxfCodePair(9, HYPERLINKBASE)); list.Add(new DxfCodePair(1, (header.HyperlinBase))); } // INDEXCTL if (version >= DxfAcadVersion.R2004) { list.Add(new DxfCodePair(9, INDEXCTL)); list.Add(new DxfCodePair(280, (short)(header.LayerAndSpatialIndexSaveMode))); } // INSBASE list.Add(new DxfCodePair(9, INSBASE)); list.Add(new DxfCodePair(10, header.InsertionBase?.X ?? default(double))); list.Add(new DxfCodePair(20, header.InsertionBase?.Y ?? default(double))); list.Add(new DxfCodePair(30, header.InsertionBase?.Z ?? default(double))); // INSUNITS if (version >= DxfAcadVersion.R2000) { list.Add(new DxfCodePair(9, INSUNITS)); list.Add(new DxfCodePair(70, (short)(header.DefaultDrawingUnits))); } // INTERFERECOLOR if (version >= DxfAcadVersion.R2007) { list.Add(new DxfCodePair(9, INTERFERECOLOR)); list.Add(new DxfCodePair(62, DxfColor.GetRawValue(header.InterferenceObjectColor))); } // INTERFEREOBJVS if (version >= DxfAcadVersion.R2007) { list.Add(new DxfCodePair(9, INTERFEREOBJVS)); list.Add(new DxfCodePair(345, (header.InterferenceObjectVisualStylePointer))); } // INTERFEREVPVS if (version >= DxfAcadVersion.R2007) { list.Add(new DxfCodePair(9, INTERFEREVPVS)); list.Add(new DxfCodePair(346, (header.InterferenceViewPortVisualStylePointer))); } // INTERSECTIONCOLOR if (version >= DxfAcadVersion.R2004) { list.Add(new DxfCodePair(9, INTERSECTIONCOLOR)); list.Add(new DxfCodePair(70, DxfColor.GetRawValue(header.IntersectionPolylineColor))); } // INTERSECTIONDISPLAY if (version >= DxfAcadVersion.R2004) { list.Add(new DxfCodePair(9, INTERSECTIONDISPLAY)); list.Add(new DxfCodePair(290, (header.DisplayIntersectionPolylines))); } // JOINSTYLE if (version >= DxfAcadVersion.R2000) { list.Add(new DxfCodePair(9, JOINSTYLE)); list.Add(new DxfCodePair(280, (short)(header.LineweightJointSetting))); } // LIMCHECK list.Add(new DxfCodePair(9, LIMCHECK)); list.Add(new DxfCodePair(70, BoolShort(header.UseLimitsChecking))); // LIMMAX list.Add(new DxfCodePair(9, LIMMAX)); list.Add(new DxfCodePair(10, header.MaximumDrawingLimits?.X ?? default(double))); list.Add(new DxfCodePair(20, header.MaximumDrawingLimits?.Y ?? default(double))); // LIMMIN list.Add(new DxfCodePair(9, LIMMIN)); list.Add(new DxfCodePair(10, header.MinimumDrawingLimits?.X ?? default(double))); list.Add(new DxfCodePair(20, header.MinimumDrawingLimits?.Y ?? default(double))); // LTSCALE list.Add(new DxfCodePair(9, LTSCALE)); list.Add(new DxfCodePair(40, (header.LinetypeScale))); // LUNITS list.Add(new DxfCodePair(9, LUNITS)); list.Add(new DxfCodePair(70, (short)(header.UnitFormat))); // LUPREC list.Add(new DxfCodePair(9, LUPREC)); list.Add(new DxfCodePair(70, (header.UnitPrecision))); // LWDISPLAY if (version >= DxfAcadVersion.R2000) { list.Add(new DxfCodePair(9, LWDISPLAY)); list.Add(new DxfCodePair(290, (header.DisplayLinewieghtInModelAndLayoutTab))); } // MAXACTVP if (version >= DxfAcadVersion.R11) { list.Add(new DxfCodePair(9, MAXACTVP)); list.Add(new DxfCodePair(70, (header.MaximumActiveViewports))); } // MEASUREMENT if (version >= DxfAcadVersion.R14) { list.Add(new DxfCodePair(9, MEASUREMENT)); list.Add(new DxfCodePair(70, (short)(header.DrawingUnits))); } // MENU list.Add(new DxfCodePair(9, MENU)); list.Add(new DxfCodePair(1, (header.FileName))); // MIRRTEXT list.Add(new DxfCodePair(9, MIRRTEXT)); list.Add(new DxfCodePair(70, BoolShort(header.MirrorText))); // OBSCOLOR if (version >= DxfAcadVersion.R2004) { list.Add(new DxfCodePair(9, OBSCOLOR)); list.Add(new DxfCodePair(70, DxfColor.GetRawValue(header.ObscuredLineColor))); } // OBSLTYPE if (version >= DxfAcadVersion.R2004) { list.Add(new DxfCodePair(9, OBSLTYPE)); list.Add(new DxfCodePair(280, (short)(header.ObscuredLineTypeStyle))); } // ORTHOMODE list.Add(new DxfCodePair(9, ORTHOMODE)); list.Add(new DxfCodePair(70, BoolShort(header.DrawOrthoganalLines))); // OSMODE if (version <= DxfAcadVersion.R14) { list.Add(new DxfCodePair(9, OSMODE)); list.Add(new DxfCodePair(70, (short)(header.ObjectSnapFlags))); } // PDMODE list.Add(new DxfCodePair(9, PDMODE)); list.Add(new DxfCodePair(70, (short)(header.PointDisplayMode))); // PDSIZE list.Add(new DxfCodePair(9, PDSIZE)); list.Add(new DxfCodePair(40, (header.PointDisplaySize))); // PELEVATION if (version >= DxfAcadVersion.R11) { list.Add(new DxfCodePair(9, PELEVATION)); list.Add(new DxfCodePair(40, (header.PaperspaceElevation))); } // PEXTMAX if (version >= DxfAcadVersion.R11) { list.Add(new DxfCodePair(9, PEXTMAX)); list.Add(new DxfCodePair(10, header.PaperspaceMaximumDrawingExtents?.X ?? default(double))); list.Add(new DxfCodePair(20, header.PaperspaceMaximumDrawingExtents?.Y ?? default(double))); list.Add(new DxfCodePair(30, header.PaperspaceMaximumDrawingExtents?.Z ?? default(double))); } // PEXTMIN if (version >= DxfAcadVersion.R11) { list.Add(new DxfCodePair(9, PEXTMIN)); list.Add(new DxfCodePair(10, header.PaperspaceMinimumDrawingExtents?.X ?? default(double))); list.Add(new DxfCodePair(20, header.PaperspaceMinimumDrawingExtents?.Y ?? default(double))); list.Add(new DxfCodePair(30, header.PaperspaceMinimumDrawingExtents?.Z ?? default(double))); } // PICKSTYLE if (version >= DxfAcadVersion.R13 && version <= DxfAcadVersion.R14) { list.Add(new DxfCodePair(9, PICKSTYLE)); list.Add(new DxfCodePair(70, (short)(header.PickStyle))); } // PINSBASE if (version >= DxfAcadVersion.R14) { list.Add(new DxfCodePair(9, PINSBASE)); list.Add(new DxfCodePair(10, header.PaperspaceInsertionBase?.X ?? default(double))); list.Add(new DxfCodePair(20, header.PaperspaceInsertionBase?.Y ?? default(double))); list.Add(new DxfCodePair(30, header.PaperspaceInsertionBase?.Z ?? default(double))); } // PLIMCHECK if (version >= DxfAcadVersion.R11) { list.Add(new DxfCodePair(9, PLIMCHECK)); list.Add(new DxfCodePair(70, BoolShort(header.LimitCheckingInPaperspace))); } // PLIMMAX if (version >= DxfAcadVersion.R11) { list.Add(new DxfCodePair(9, PLIMMAX)); list.Add(new DxfCodePair(10, header.PaperspaceMaximumDrawingLimits?.X ?? default(double))); list.Add(new DxfCodePair(20, header.PaperspaceMaximumDrawingLimits?.Y ?? default(double))); } // PLIMMIN if (version >= DxfAcadVersion.R11) { list.Add(new DxfCodePair(9, PLIMMIN)); list.Add(new DxfCodePair(10, header.PaperspaceMinimumDrawingLimits?.X ?? default(double))); list.Add(new DxfCodePair(20, header.PaperspaceMinimumDrawingLimits?.Y ?? default(double))); } // PLINEGEN if (version >= DxfAcadVersion.R11) { list.Add(new DxfCodePair(9, PLINEGEN)); list.Add(new DxfCodePair(70, BoolShort(header.IsPolylineContinuousAroundVerticies))); } // PLINEWID list.Add(new DxfCodePair(9, PLINEWID)); list.Add(new DxfCodePair(40, (header.DefaultPolylineWidth))); // PROJECTNAME if (version >= DxfAcadVersion.R2004) { list.Add(new DxfCodePair(9, PROJECTNAME)); list.Add(new DxfCodePair(1, (header.ProjectName))); } // PROXYGRAPHICS if (version >= DxfAcadVersion.R14) { list.Add(new DxfCodePair(9, PROXYGRAPHICS)); list.Add(new DxfCodePair(70, BoolShort(header.SaveProxyGraphics))); } // PSLTSCALE if (version >= DxfAcadVersion.R11) { list.Add(new DxfCodePair(9, PSLTSCALE)); list.Add(new DxfCodePair(70, BoolShort(header.ScaleLinetypesInPaperspace))); } // PSTYLEMODE if (version >= DxfAcadVersion.R2000) { list.Add(new DxfCodePair(9, PSTYLEMODE)); list.Add(new DxfCodePair(290, (header.UsesColorDependentPlotStyleTables))); } // PSVPSCALE if (version >= DxfAcadVersion.R2000) { list.Add(new DxfCodePair(9, PSVPSCALE)); list.Add(new DxfCodePair(40, (header.ViewportViewScaleFactor))); } // PUCSBASE if (version >= DxfAcadVersion.R2000) { list.Add(new DxfCodePair(9, PUCSBASE)); list.Add(new DxfCodePair(2, (header.PaperspaceUCSDefinitionName))); } // PUCSNAME if (version >= DxfAcadVersion.R11) { list.Add(new DxfCodePair(9, PUCSNAME)); list.Add(new DxfCodePair(2, (header.PaperspaceUCSName))); } // PUCSORG if (version >= DxfAcadVersion.R11) { list.Add(new DxfCodePair(9, PUCSORG)); list.Add(new DxfCodePair(10, header.PaperspaceUCSOrigin?.X ?? default(double))); list.Add(new DxfCodePair(20, header.PaperspaceUCSOrigin?.Y ?? default(double))); list.Add(new DxfCodePair(30, header.PaperspaceUCSOrigin?.Z ?? default(double))); } // PUCSORGBACK if (version >= DxfAcadVersion.R2000) { list.Add(new DxfCodePair(9, PUCSORGBACK)); list.Add(new DxfCodePair(10, header.PaperspaceUCSOriginBack?.X ?? default(double))); list.Add(new DxfCodePair(20, header.PaperspaceUCSOriginBack?.Y ?? default(double))); list.Add(new DxfCodePair(30, header.PaperspaceUCSOriginBack?.Z ?? default(double))); } // PUCSORGBOTTOM if (version >= DxfAcadVersion.R2000) { list.Add(new DxfCodePair(9, PUCSORGBOTTOM)); list.Add(new DxfCodePair(10, header.PaperspaceUCSOriginBottom?.X ?? default(double))); list.Add(new DxfCodePair(20, header.PaperspaceUCSOriginBottom?.Y ?? default(double))); list.Add(new DxfCodePair(30, header.PaperspaceUCSOriginBottom?.Z ?? default(double))); } // PUCSORGFRONT if (version >= DxfAcadVersion.R2000) { list.Add(new DxfCodePair(9, PUCSORGFRONT)); list.Add(new DxfCodePair(10, header.PaperspaceUCSOriginFront?.X ?? default(double))); list.Add(new DxfCodePair(20, header.PaperspaceUCSOriginFront?.Y ?? default(double))); list.Add(new DxfCodePair(30, header.PaperspaceUCSOriginFront?.Z ?? default(double))); } // PUCSORGLEFT if (version >= DxfAcadVersion.R2000) { list.Add(new DxfCodePair(9, PUCSORGLEFT)); list.Add(new DxfCodePair(10, header.PaperspaceUCSOriginLeft?.X ?? default(double))); list.Add(new DxfCodePair(20, header.PaperspaceUCSOriginLeft?.Y ?? default(double))); list.Add(new DxfCodePair(30, header.PaperspaceUCSOriginLeft?.Z ?? default(double))); } // PUCSORGRIGHT if (version >= DxfAcadVersion.R2000) { list.Add(new DxfCodePair(9, PUCSORGRIGHT)); list.Add(new DxfCodePair(10, header.PaperspaceUCSOriginRight?.X ?? default(double))); list.Add(new DxfCodePair(20, header.PaperspaceUCSOriginRight?.Y ?? default(double))); list.Add(new DxfCodePair(30, header.PaperspaceUCSOriginRight?.Z ?? default(double))); } // PUCSORGTOP if (version >= DxfAcadVersion.R2000) { list.Add(new DxfCodePair(9, PUCSORGTOP)); list.Add(new DxfCodePair(10, header.PaperspaceUCSOriginTop?.X ?? default(double))); list.Add(new DxfCodePair(20, header.PaperspaceUCSOriginTop?.Y ?? default(double))); list.Add(new DxfCodePair(30, header.PaperspaceUCSOriginTop?.Z ?? default(double))); } // PUCSORTHOREF if (version >= DxfAcadVersion.R2000) { list.Add(new DxfCodePair(9, PUCSORTHOREF)); list.Add(new DxfCodePair(2, (header.PaperspaceOrthoUCSReference))); } // PUCSORTHOVIEW if (version >= DxfAcadVersion.R2000) { list.Add(new DxfCodePair(9, PUCSORTHOVIEW)); list.Add(new DxfCodePair(70, (short)(header.PaperspaceOrthographicViewType))); } // PUCSXDIR if (version >= DxfAcadVersion.R11) { list.Add(new DxfCodePair(9, PUCSXDIR)); list.Add(new DxfCodePair(10, header.PaperspaceXAxis?.X ?? default(double))); list.Add(new DxfCodePair(20, header.PaperspaceXAxis?.Y ?? default(double))); list.Add(new DxfCodePair(30, header.PaperspaceXAxis?.Z ?? default(double))); } // PUCSYDIR if (version >= DxfAcadVersion.R11) { list.Add(new DxfCodePair(9, PUCSYDIR)); list.Add(new DxfCodePair(10, header.PaperspaceYAxis?.X ?? default(double))); list.Add(new DxfCodePair(20, header.PaperspaceYAxis?.Y ?? default(double))); list.Add(new DxfCodePair(30, header.PaperspaceYAxis?.Z ?? default(double))); } // QTEXTMODE list.Add(new DxfCodePair(9, QTEXTMODE)); list.Add(new DxfCodePair(70, BoolShort(header.UseQuickTextMode))); // REGENMODE list.Add(new DxfCodePair(9, REGENMODE)); list.Add(new DxfCodePair(70, BoolShort(header.UseRegenMode))); // SHADEDGE if (version >= DxfAcadVersion.R11) { list.Add(new DxfCodePair(9, SHADEDGE)); list.Add(new DxfCodePair(70, (short)(header.EdgeShading))); } // SHADEDIF if (version >= DxfAcadVersion.R11) { list.Add(new DxfCodePair(9, SHADEDIF)); list.Add(new DxfCodePair(70, (header.PercentAmbientToDiffuse))); } // SHADOWPLANELOCATION if (version >= DxfAcadVersion.R2007) { list.Add(new DxfCodePair(9, SHADOWPLANELOCATION)); list.Add(new DxfCodePair(40, (header.ShadowPlaneZOffset))); } // SKETCHINC list.Add(new DxfCodePair(9, SKETCHINC)); list.Add(new DxfCodePair(40, (header.SketchRecordIncrement))); // SKPOLY list.Add(new DxfCodePair(9, SKPOLY)); list.Add(new DxfCodePair(70, (short)(header.PolylineSketchMode))); // SORTENTS if (version >= DxfAcadVersion.R2004) { list.Add(new DxfCodePair(9, SORTENTS)); list.Add(new DxfCodePair(280, (short)(header.ObjectSortingMethodsFlags))); } // SPLFRAME if (version <= DxfAcadVersion.R2010) { list.Add(new DxfCodePair(9, SPLFRAME)); list.Add(new DxfCodePair(70, BoolShort(header.DisplaySplinePolygonControl))); } // SPLINESEGS list.Add(new DxfCodePair(9, SPLINESEGS)); list.Add(new DxfCodePair(70, (header.LineSegmentsPerSplinePatch))); // SPLINETYPE list.Add(new DxfCodePair(9, SPLINETYPE)); list.Add(new DxfCodePair(70, (short)(header.PEditSplineCurveType))); // SURFTAB1 list.Add(new DxfCodePair(9, SURFTAB1)); list.Add(new DxfCodePair(70, (header.MeshTabulationsInFirstDirection))); // SURFTAB2 list.Add(new DxfCodePair(9, SURFTAB2)); list.Add(new DxfCodePair(70, (header.MeshTabulationsInSecondDirection))); // SURFTYPE list.Add(new DxfCodePair(9, SURFTYPE)); list.Add(new DxfCodePair(70, (short)(header.PEditSmoothSurfaceType))); // SURFU list.Add(new DxfCodePair(9, SURFU)); list.Add(new DxfCodePair(70, (header.PEditSmoothMDensith))); // SURFV list.Add(new DxfCodePair(9, SURFV)); list.Add(new DxfCodePair(70, (header.PEditSmoothNDensith))); // TDCREATE list.Add(new DxfCodePair(9, TDCREATE)); list.Add(new DxfCodePair(40, DateDouble(header.CreationDate))); // TDINDWG list.Add(new DxfCodePair(9, TDINDWG)); list.Add(new DxfCodePair(40, TimeSpanDouble(header.TimeInDrawing))); // TDUCREATE if (version >= DxfAcadVersion.R2000) { list.Add(new DxfCodePair(9, TDUCREATE)); list.Add(new DxfCodePair(40, DateDouble(header.CreationDateUniversal))); } // TDUPDATE list.Add(new DxfCodePair(9, TDUPDATE)); list.Add(new DxfCodePair(40, DateDouble(header.UpdateDate))); // TDUSRTIMER list.Add(new DxfCodePair(9, TDUSRTIMER)); list.Add(new DxfCodePair(40, TimeSpanDouble(header.UserElapsedTimer))); // TDUUPDATE if (version >= DxfAcadVersion.R2000) { list.Add(new DxfCodePair(9, TDUUPDATE)); list.Add(new DxfCodePair(40, DateDouble(header.UpdateDateUniversal))); } // TEXTSIZE list.Add(new DxfCodePair(9, TEXTSIZE)); list.Add(new DxfCodePair(40, (header.DefaultTextHeight))); // TEXTSTYLE list.Add(new DxfCodePair(9, TEXTSTYLE)); list.Add(new DxfCodePair(7, (header.TextStyle))); // THICKNESS list.Add(new DxfCodePair(9, THICKNESS)); list.Add(new DxfCodePair(40, (header.Thickness))); // TILEMODE if (version >= DxfAcadVersion.R11) { list.Add(new DxfCodePair(9, TILEMODE)); list.Add(new DxfCodePair(70, BoolShort(header.PreviousReleaseTileCompatability))); } // TRACEWID list.Add(new DxfCodePair(9, TRACEWID)); list.Add(new DxfCodePair(40, (header.TraceWidth))); // TREEDEPTH if (version >= DxfAcadVersion.R14) { list.Add(new DxfCodePair(9, TREEDEPTH)); list.Add(new DxfCodePair(70, (header.SpacialIndexMaxDepth))); } // UCSBASE if (version >= DxfAcadVersion.R2000) { list.Add(new DxfCodePair(9, UCSBASE)); list.Add(new DxfCodePair(2, (header.UCSDefinitionName))); } // UCSNAME if (version <= DxfAcadVersion.R10) { list.Add(new DxfCodePair(9, UCSNAME)); list.Add(new DxfCodePair(1, (header.UCSName))); } // UCSNAME if (version >= DxfAcadVersion.R11) { list.Add(new DxfCodePair(9, UCSNAME)); list.Add(new DxfCodePair(2, (header.UCSName))); } // UCSORG list.Add(new DxfCodePair(9, UCSORG)); list.Add(new DxfCodePair(10, header.UCSOrigin?.X ?? default(double))); list.Add(new DxfCodePair(20, header.UCSOrigin?.Y ?? default(double))); list.Add(new DxfCodePair(30, header.UCSOrigin?.Z ?? default(double))); // UCSORGBACK if (version >= DxfAcadVersion.R2000) { list.Add(new DxfCodePair(9, UCSORGBACK)); list.Add(new DxfCodePair(10, header.UCSOriginBack?.X ?? default(double))); list.Add(new DxfCodePair(20, header.UCSOriginBack?.Y ?? default(double))); list.Add(new DxfCodePair(30, header.UCSOriginBack?.Z ?? default(double))); } // UCSORGBOTTOM if (version >= DxfAcadVersion.R2000) { list.Add(new DxfCodePair(9, UCSORGBOTTOM)); list.Add(new DxfCodePair(10, header.UCSOriginBottom?.X ?? default(double))); list.Add(new DxfCodePair(20, header.UCSOriginBottom?.Y ?? default(double))); list.Add(new DxfCodePair(30, header.UCSOriginBottom?.Z ?? default(double))); } // UCSORGFRONT if (version >= DxfAcadVersion.R2000) { list.Add(new DxfCodePair(9, UCSORGFRONT)); list.Add(new DxfCodePair(10, header.UCSOriginFront?.X ?? default(double))); list.Add(new DxfCodePair(20, header.UCSOriginFront?.Y ?? default(double))); list.Add(new DxfCodePair(30, header.UCSOriginFront?.Z ?? default(double))); } // UCSORGLEFT if (version >= DxfAcadVersion.R2000) { list.Add(new DxfCodePair(9, UCSORGLEFT)); list.Add(new DxfCodePair(10, header.UCSOriginLeft?.X ?? default(double))); list.Add(new DxfCodePair(20, header.UCSOriginLeft?.Y ?? default(double))); list.Add(new DxfCodePair(30, header.UCSOriginLeft?.Z ?? default(double))); } // UCSORGRIGHT if (version >= DxfAcadVersion.R2000) { list.Add(new DxfCodePair(9, UCSORGRIGHT)); list.Add(new DxfCodePair(10, header.UCSOriginRight?.X ?? default(double))); list.Add(new DxfCodePair(20, header.UCSOriginRight?.Y ?? default(double))); list.Add(new DxfCodePair(30, header.UCSOriginRight?.Z ?? default(double))); } // UCSORGTOP if (version >= DxfAcadVersion.R2000) { list.Add(new DxfCodePair(9, UCSORGTOP)); list.Add(new DxfCodePair(10, header.UCSOriginTop?.X ?? default(double))); list.Add(new DxfCodePair(20, header.UCSOriginTop?.Y ?? default(double))); list.Add(new DxfCodePair(30, header.UCSOriginTop?.Z ?? default(double))); } // UCSORTHOREF if (version >= DxfAcadVersion.R2000) { list.Add(new DxfCodePair(9, UCSORTHOREF)); list.Add(new DxfCodePair(2, (header.OrthoUCSReference))); } // UCSORTHOVIEW if (version >= DxfAcadVersion.R2000) { list.Add(new DxfCodePair(9, UCSORTHOVIEW)); list.Add(new DxfCodePair(70, (short)(header.OrthgraphicViewType))); } // UCSXDIR list.Add(new DxfCodePair(9, UCSXDIR)); list.Add(new DxfCodePair(10, header.UCSXAxis?.X ?? default(double))); list.Add(new DxfCodePair(20, header.UCSXAxis?.Y ?? default(double))); list.Add(new DxfCodePair(30, header.UCSXAxis?.Z ?? default(double))); // UCSYDIR list.Add(new DxfCodePair(9, UCSYDIR)); list.Add(new DxfCodePair(10, header.UCSYAxis?.X ?? default(double))); list.Add(new DxfCodePair(20, header.UCSYAxis?.Y ?? default(double))); list.Add(new DxfCodePair(30, header.UCSYAxis?.Z ?? default(double))); // UNITMODE if (version >= DxfAcadVersion.R11) { list.Add(new DxfCodePair(9, UNITMODE)); list.Add(new DxfCodePair(70, BoolShort(header.DisplayFractionsInInput))); } // USERI1 list.Add(new DxfCodePair(9, USERI1)); list.Add(new DxfCodePair(70, (header.UserInt1))); // USERI2 list.Add(new DxfCodePair(9, USERI2)); list.Add(new DxfCodePair(70, (header.UserInt2))); // USERI3 list.Add(new DxfCodePair(9, USERI3)); list.Add(new DxfCodePair(70, (header.UserInt3))); // USERI4 list.Add(new DxfCodePair(9, USERI4)); list.Add(new DxfCodePair(70, (header.UserInt4))); // USERI5 list.Add(new DxfCodePair(9, USERI5)); list.Add(new DxfCodePair(70, (header.UserInt5))); // USERR1 list.Add(new DxfCodePair(9, USERR1)); list.Add(new DxfCodePair(40, (header.UserReal1))); // USERR2 list.Add(new DxfCodePair(9, USERR2)); list.Add(new DxfCodePair(40, (header.UserReal2))); // USERR3 list.Add(new DxfCodePair(9, USERR3)); list.Add(new DxfCodePair(40, (header.UserReal3))); // USERR4 list.Add(new DxfCodePair(9, USERR4)); list.Add(new DxfCodePair(40, (header.UserReal4))); // USERR5 list.Add(new DxfCodePair(9, USERR5)); list.Add(new DxfCodePair(40, (header.UserReal5))); // USRTIMER list.Add(new DxfCodePair(9, USRTIMER)); list.Add(new DxfCodePair(70, BoolShort(header.UserTimerOn))); // VERSIONGUID if (version >= DxfAcadVersion.R2000) { list.Add(new DxfCodePair(9, VERSIONGUID)); list.Add(new DxfCodePair(2, GuidString(header.VersionGuid))); } // VISRETAIN if (version >= DxfAcadVersion.R12) { list.Add(new DxfCodePair(9, VISRETAIN)); list.Add(new DxfCodePair(70, BoolShort(header.RetainXRefDependentVisibilitySettings))); } // WORLDVIEW list.Add(new DxfCodePair(9, WORLDVIEW)); list.Add(new DxfCodePair(70, BoolShort(header.SetUCSToWCSInDViewOrVPoint))); // XCLIPFRAME if (version >= DxfAcadVersion.R2004) { list.Add(new DxfCodePair(9, XCLIPFRAME)); list.Add(new DxfCodePair(290, (header.IsXRefClippingBoundaryVisible))); } // XEDIT if (version >= DxfAcadVersion.R2000) { list.Add(new DxfCodePair(9, XEDIT)); list.Add(new DxfCodePair(290, (header.CanUseInPlaceReferenceEditing))); } }