Schematic API Constants reference

Note: The Altium Designer SDK is currently in the Beta phase and therefore evolving along with its documentation. This reference document, derived from the Altium Designer RTL documentation, is a work in progress and includes some aspects that are different to the new SDK.

Model Type Constants

The model type constants are derived from the EDPSch_Types unit.

cModelType_SCH = 'SCHLIB'; cModelCaption_Sch = 'Symbol';
cModelType_PCB = 'PCBLIB'; cModelCaption_PCB = 'Footprint';
cModelType_Sim = 'SIM'; cModelCaption_Sim = 'Simulation Model';
cModelType_PCB3D = 'PCB3DLib'; cModelCaption_PCB3D = '3D PCB Model';
cModelType_PCAD = 'PCADLib';
cModelType_SI = 'SI'; cModelCaption_SI = 'Signal Integrity';

Schematic Message Constants

The constants are derived from the EDPSch_Types unit.

SCHM_NullMessage = 0;
SCHM_PrimitiveRegistration = 1;
SCHM_BeginModify = 2;
SCHM_EndModify = 3;
SCHM_YieldToRobots = 4;
SCHM_CancelModify = 5;
SCHM_Create = 6;
SCHM_Destroy = 7;
SCHM_ProcessStart = 8;
SCHM_ProcessEnd = 9;
SCHM_ProcessCancel = 10;
SCHM_CycleEnd = 11;
SCHM_CycleStart = 12;
SCHM_SystemInvalid = 13;
SCHM_SystemValid = 14;

Internal Unit constants

cUnits : Array [TUnit] Of TDynamicString = ('mil', 'mm', 'in', 'cm', '', 'm', 'AutoImperial', 'AutoMetric');
cUnitSystems : Array[TUnitSystem] Of TUnitSet = ([eMil, eIN, eDXP, eAutoImperial], [eMM, eCM, eM, eAutoMetric]);
cAutoUnits = [eAutoImperial, eAutoMetric];
cDefaultUnit : Array[TUnitSystem] Of TUnit = (eDXP, eMM);
cDefaultGridSettingsUnit : Array[TUnitSystem] Of TUnit = (eMil, eMM);

//1 DXP 2004 SP1 Internal Unit =
// 100000 DXP 2004 SP2 Internal Unit (= 10 mils)
cBaseUnit = 100000;

//1 mil = 10000 DXP 2004 SP2 internal units
cInternalPrecision = 10000;

//Size of workspace in DXP 2004 SP1 base logical unit
cMaxWorkspace = 6500;

//Size of workspace in DXP 2004 SP1 base logical unit
cMinWorkspace = 10;

//Size of workspace in the new logical unit - max
cMaxWorkspaceSize = cMaxWorkspace*cBaseUnit;

//Size of workspace in the new logical unit - min
cMinWorkspaceSize = cMinWorkspace*cBaseUnit;
CMaxTextParamLength = 32000;

cSchInternalTolerance_Metric = 2*cInternalPrecision;

//0 for imperial and 0.004318mm for metric
cSchInternalTolerance : Array[TUnitSystem] Of TCoord = (0, cSchInternalTolerance_Metric);

cSymbolLineWidthArray : Array [TSize] of Integer = (0,1*cBaseUnit,3*cBaseUnit,5*cBaseUnit);

cDefaultCustomSizeX_Sheet : Array[TUnitSystem] Of Integer = (1500*cBaseUnit, 30*c10_0MM);
cDefaultCustomSizeY_Sheet : Array[TUnitSystem] Of Integer = (950* cBaseUnit, 20*c10_0MM);
cDefaultCustomSizeX_Library : Array[TUnitSystem] Of Integer = (2000*cBaseUnit, 40*c10_0MM);
cDefaultCustomSizeY_Library : Array[TUnitSystem] Of Integer = (2000*cBaseUnit, 40*c10_0MM);
cDefaultCustomMarginWidth : Array[TUnitSystem] Of Integer = (20 * cBaseUnit, c5_0MM );

cPolylineCutterBoxHeight = 3 *cBaseUnit;
cDefaultSheetFileNamePosition : Array[TUnitSystem] Of Integer = (10 *cBaseUnit, c2_5MM);
cBusEntryLength : Array[TUnitSystem] Of Integer = (10 *cBaseUnit, c2_0MM);
cDefaultPortWidth : Array[TUnitSystem] Of Integer = (50 *cBaseUnit, c10_0MM);
cDefaultSheetSymbolXSize : Array[TUnitSystem] Of Integer = (80 *cBaseUnit, 5*c7_5MM);
cDefaultSheetSymbolYSize : Array[TUnitSystem] Of Integer = (50 *cBaseUnit, 5*c5_0MM);
cDefaultSheetEntryGridSize : Array[TUnitSystem] Of Integer = (10 *cBaseUnit, c2_5MM);
cDefaultPolylineCutterFixedLength : Array[TUnitSystem] Of Integer = (10 *cBaseUnit, c2_5MM);
cDefaultAutoPanJumpDistance : Array[TUnitSystem] Of Integer = (30 *cBaseUnit, c7_5MM);
cDefaultAutoPanShiftJumpDistance : Array[TUnitSystem] Of Integer = (100*cBaseUnit, c25_0MM);
cDefaultPinLength : Array[TUnitSystem] Of Integer = (30 *cBaseUnit, c0_50MM);
cDefaultCircleRadius : Array[TUnitSystem] Of Integer = (100*cBaseUnit, c7_5MM);
cDefaultArcRadius : Array[TUnitSystem] Of Integer = (10 *cBaseUnit, c5_0MM);
cDefaultStartAngle = 30;
cDefaultEndAngle = 330;
cDefaultEllipseRadius : Array[TUnitSystem] Of Integer = (20 * cBaseUnit, c5_0MM);
cDefaultEllipseSecondaryRadius : Array[TUnitSystem] Of Integer = (10 * cBaseUnit, c2_5MM);
cDefaultEllipticalArcSecondaryRadius: Array[TUnitSystem] Of Integer = (10 * cBaseUnit, c2_5MM);
cDefaultRectangleCornerX : Array[TUnitSystem] Of Integer = (50 * cBaseUnit, c5_0MM);
cDefaultRectangleCornerY : Array[TUnitSystem] Of Integer = (50 * cBaseUnit, c5_0MM);
cDefaultIEESymbolScale : Array[TUnitSystem] Of Integer = (10 * cBaseUnit, c2_5MM);
cDefaultRoundRectCornerXRadius : Array[TUnitSystem] Of Integer = (20 * cBaseUnit, c0_50MM);
cDefaultRoundRectCornerYRadius : Array[TUnitSystem] Of Integer = (20 * cBaseUnit, c0_50MM);
cDefaultLabelXSize : Array[TUnitSystem] Of Integer = (40 * cBaseUnit, c0_25MM);
cDefaultLabelYSize : Array[TUnitSystem] Of Integer = (10 * cBaseUnit, c0_50MM);
cIEESymbolScale_Min = 1 * cBaseUnit;
cIEESymbolScale_Max = 200 * cBaseUnit;
cIEESymbolScale_Step = 1 * cBaseUnit;

cDuplicateOffsetX : Array[TUnitSystem] Of Integer = ( 20 * cBaseUnit, c5_0MM);
cDuplicateOffsetY : Array[TUnitSystem] Of Integer = (-20 * cBaseUnit, -c5_0MM);

cJumpLocationZoomRectWidth = 200 * cBaseUnit;
cJumpLocationZoomRectHeight = 200 * cBaseUnit;
cSheetSymbolBoundingRectInflate = 20 * cBaseUnit;
cPinFullBoundingRectInflate = 5 * cBaseUnit;
cPolylineBoundingRectInflate = 10 * cBaseUnit;
cFindReplaceRectInflate = 50 * cBaseUnit;
cPinIEEESymbolRectInflateBy = 6 * cBaseUnit;
cPortWidthInflate = 10 * cBaseUnit;
cMinPortWidth = 30 * cBaseUnit;
cMinSheetSymbolBorderGap : Array[TUnitSystem] Of Integer = (10 * cBaseUnit, c2_5MM);

MM to Internal Units Values

Each Millimetre constant value is expressed in internal units (rounded to nearest integer value).
c0_25MM = 98425;
c0_50MM = 196850;
c0_75MM = 295275;
c1_00MM = 393701;
c1_5MM = 590551;
c2_0MM = 787402;
c2_5MM = 984252;
c3_0MM = 1181102;
c3_5MM = 1377953;
c4_0MM = 1574803;
c4_5MM = 1771654;
c5_0MM = 1968504;
c5_5MM = 2165354;
c6_0MM = 2362205;
c6_5MM = 2559055;
c7_0MM = 2755906;
c7_5MM = 2952756;
c8_0MM = 3149606;
c8_5MM = 3346457;
c9_0MM = 3543307;
c9_5MM = 3740157;
c10_0MM = 3937008;
c15_0MM = 5905512;
c20_0MM = 7874016;
c25_0MM = 9842520;
c30_0MM = 11811024;
c35_0MM = 13779528;
c40_0MM = 15748031;
c45_0MM = 17716535;
c50_0MM = 19685039;
c55_0MM = 21653543;
c60_0MM = 23622047;
c65_0MM = 25590551;
c70_0MM = 27559055;
c75_0MM = 29527559;
c80_0MM = 31496063;
c85_0MM = 33464567;
c90_0MM = 35433071;
c95_0MM = 37401575;
c100_0MM = 39370078;
c1000_0MM = 393700787;

Other Constants

cMaxShortStringLength

cMaxShortStringLength = 254;

cOldSheetEntryGrid

cOldSheetEntryGrid = 10;

cOldMaxPolygonVertices

cOldMaxPolygonVertices = 50;
cCharacterApproximativeWidth = 8 * cBaseUnit;
cCharacterApproximativeHeight = 10 * cBaseUnit;
cCharacterWidthTolerance = 4 * cBaseUnit;
cConnectionDrawingThreshold = 3;

cPinBoundingRectInflate = 2 * cBaseUnit;
cMinWireUnderlineWidth = 5 * cBaseUnit;
cMinBusUnderlineWidth = 7 * cBaseUnit;
cCompilationMaskedPopupString = 'Removed by Compilation Mask';

LibPrimitiveSet

LibPrimitiveSet: TObjectSet = [eRectangle,
eLine,
eArc,
eBus,
eBusEntry,
eEllipticalArc,
eRoundRectangle,
eImage,
ePie,
eEllipse,
ePolygon,
ePolyline,
ePort,
eBezier,
eLabel,
eNetlabel,
eTextFrame,
eSymbol,
ePin,
eParameterSet
eWire];

cObjectInspectorViewname = 'SchObjectInspector';
cLibObjectInspectorViewname = 'SchLibObjectInspector';

cGroundTypeSet = [ePowerGndPower, ePowerGndSignal, ePowerGndEarth];

CLineShapeArrowRatio = 2;
CLineShapeSizeCoefs : Array[TSize] Of Integer = (1, 2, 3, 4);

cNoUnionIndex = 0;

cStringIncrementStyleStrings : Array[TStringIncrementStyle] Of String = ('None','Horizontal First', 'Vertical First');

cBooleanEditorAttributes

cBooleanEditorAttributes =
[eObjectAttribute_IsHidden,
eObjectAttribute_Locked,
eObjectAttribute_Accessible,
eObjectAttribute_Solid,
eObjectAttribute_ShowName,
eObjectAttribute_IsMirrored,
eObjectAttribute_DesignatorLocked,
eObjectAttribute_PartIdLocked,
eObjectAttribute_PinsMoveable,
eObjectAttribute_ImageKeepAspect,
eObjectAttribute_ImageEmbed,
eObjectAttribute_ParameterAllowLibrarySynchronize,
eObjectAttribute_ParameterAllowDatabaseSynchronize,
eObjectAttribute_TextAutoPosition,
eObjectAttribute_PinShowDesignator,
eObjectAttribute_ShowHiddenFields,
eObjectAttribute_ShowHiddenPins,
eObjectAttribute_ShowDesignator,
eObjectAttribute_TextFrameWordWrap,
eObjectAttribute_TextFrameShowBorder,
eObjectAttribute_TextFrameClipToRect,
eObjectAttribute_PowerObjectShowNetName];

cStringEditorAttributes

cStringEditorAttributes =
[eObjectAttribute_LocationX,
eObjectAttribute_LocationY,
eObjectAttribute_CornerLocationX,
eObjectAttribute_CornerLocationY,
eObjectAttribute_Width,
eObjectAttribute_Radius,
eObjectAttribute_StartAngle,
eObjectAttribute_EndAngle,
eObjectAttribute_SecondaryRadius,
eObjectAttribute_StringText,
eObjectAttribute_Name,
eObjectAttribute_Description,
eObjectAttribute_ParameterValue,
eObjectAttribute_ParameterName,
eObjectAttribute_PinWidth,
eObjectAttribute_PinDefaultValue,
eObjectAttribute_PinDesignator,
eObjectAttribute_PinHiddenNetName,
eObjectAttribute_PinLength,
eObjectAttribute_RoundRectangleCornerRadiusX,
eObjectAttribute_RoundRectangleCornerRadiusY,
eObjectAttribute_SchComponentLibReference,
eObjectAttribute_SchComponentDesignator,
eObjectAttribute_SheetEntryDistanceFromTop,
eObjectAttribute_SymbolScaleFactor,
eObjectAttribute_TaskHolderInstanceName,
eObjectAttribute_SheetName,
eObjectAttribute_OwnerName,
eObjectAttribute_SchComponentComment,
eObjectAttribute_SchComponentLibraryName,
eObjectAttribute_SchComponentFootprint,
eObjectAttribute_SelectedVertex_X,
eObjectAttribute_SelectedVertex_Y,
eObjectAttribute_SelectedVertex2_X,
eObjectAttribute_SelectedVertex2_Y];

cComboBoxEditorAttributes

cComboBoxEditorAttributes =
[eObjectAttribute_OwnerPartId,
eObjectAttribute_OwnerPartDisplayMode,
eObjectAttribute_LineStyle,
eObjectAttribute_StartLineShape,
eObjectAttribute_EndLineShape,
eObjectAttribute_LineShapeSize,
eObjectAttribute_Orientation,
eObjectAttribute_Alignment,
eObjectAttribute_BorderWidth,
eObjectAttribute_LineWidth,
eObjectAttribute_JunctionSize,
eObjectAttribute_ParameterType,
eObjectAttribute_ParameterReadOnlyState,
eObjectAttribute_PinSwapId_Pin,
eObjectAttribute_PinSwapId_Part,
eObjectAttribute_PinSwapId_PartPin,
eObjectAttribute_PinFormalType,
eObjectAttribute_PinElectrical,
eObjectAttribute_PinIeeeSymbolInner,
eObjectAttribute_PinIeeeSymbolOuter,
eObjectAttribute_PinIeeeSymbolInnerEdge,
eObjectAttribute_PinIeeeSymbolOuterEdge,
eObjectAttribute_SheetEntrySide,
eObjectAttribute_PortArrowStyle,
eObjectAttribute_PortIOType,
eObjectAttribute_PowerObjectStyle,
eObjectAttribute_CrossSheetConnectorStyle,
eObjectAttribute_SchComponentDisplayMode,
eObjectAttribute_SchComponentPartId,
eObjectAttribute_SchComponentKind,
eObjectAttribute_IeeeSymbol];

cColorEditorAttributes

cColorEditorAttributes =
[eObjectAttribute_Color,
eObjectAttribute_TextColor,
eObjectAttribute_AreaColor];

cContextHelpStringsByObjectId

cContextHelpStringsByObjectId : Array[TObjectId] Of TDynamicString =
( 'FirstObjectID',
'ClipBoardContainer',
'Note',
'Probe',
'Rectangle',
'Line',
'ConnectionLine',
'BusEntry',
'Arc',
'EllipticalArc',
'RoundRectangle',
'Image',
'Pie',
'TextFrame',
'Ellipse',
'Junction',
'Polygon',
'Polyline',
'Wire',
'Bus',
'Bezier',
'Label',
'NetLabel',
'Designator',
'SchComponent',
'Parameter',
'ParameterSet',
'ParameterList',
'SheetName',
'SheetFileName',
'Sheet',
'SchLib',
'Symbol',
'NoERC',
'ErrorMarker',
'Pin',
'Port',
'PowerObject',
'SheetEntry',
'SheetSymbol',
'Template',
'TaskHolder',
'MapDefiner',
'ImplementationMap',
'Implementation',
'ImplementationsList',
'CrossSheetConnector',
'CompileMask',
'OpenBusComponent',
'OpenBusLink',
'OpenBusDesignator',
'HarnessConnector',
'HarnessEntry',
'HarnessConnectorType',
'SignalHarness',
'OpenBusPort',
'LastObjectId'
);

Power Object constants

cPowerObjectLineWidth = 1 * cBaseUnit;
cPowerGndPowerXOffset1 = 0 * cBaseUnit;
cPowerGndPowerXOffset2 = 3 * cBaseUnit;
cPowerGndPowerXOffset3 = 6 * cBaseUnit;
cPowerGndPowerXOffset4 = 9 * cBaseUnit;
cPowerGndPowerYOffset1 = 10 * cBaseUnit;
cPowerGndPowerYOffset2 = 7 * cBaseUnit;
cPowerGndPowerYOffset3 = 4 * cBaseUnit;
cPowerGndPowerYOffset4 = 1 * cBaseUnit;
cPowerNameXOffset1 = 2 * cBaseUnit;

Parameter Set constants

cParameterSetLineWidth = 1 *cBaseUnit;
cParameterSetLineLength = 6 *cBaseUnit;
cParameterSetCircleRadius = 6 *cBaseUnit;
cParameterSetCircleCenterOffset = 12 *cBaseUnit;
cParameterSetIOffsetX = 12 *cBaseUnit;
cParameterSetIOffsetY = 5 *cBaseUnit;
cParameterSetTextOffetX = 20 *cBaseUnit;
cParameterSetParamDefaultLength = 5 *cBaseUnit;
cParameterSetParam000XOffset = 32 *cBaseUnit;
cParameterSetParam090XOffset = 4 *cBaseUnit;
cParameterSetParam090YOffset = 24 *cBaseUnit;
cParameterSetParam180XOffset = 12 *cBaseUnit
cParameterSetParam270XOffset = 10 *cBaseUnit
cParameterSetParam270YOffset = 22 *cBaseUnit;
cParameterSetParamYOffset = 2 *cBaseUnit;
cParameterSetParamDeltaYOffset1 = 12 *cBaseUnit;

Title Block constants

cTitleBlockWidth = 350 *cBaseUnit;
cTitleBlockWidth1 = 100 *cBaseUnit;
cTitleBlockWidth2 = 150 *cBaseUnit;
cTitleBlockWidth3 = 300 *cBaseUnit;
cTitleBlockHeight = 80 *cBaseUnit;
cTitleBlockHeight1 = 50 *cBaseUnit;
cTitleBlockHeight2 = 20 *cBaseUnit;
cTitleBlockHeight3 = 10 *cBaseUnit;
cTitleBlockTextXPos_Title = 345 *cBaseUnit;
cTitleBlockTextXPos_Number = 295 *cBaseUnit;
cTitleBlockTextXPos_Revision = 95 *cBaseUnit;
cTitleBlockTextXPos_Size = 345 *cBaseUnit;
cTitleBlockTextXPos_SheetStyle = 340 *cBaseUnit;
cTitleBlockTextYPos_SheetStyle = 35 *cBaseUnit;
cTitleBlockTextXPos_Date1 = 345 *cBaseUnit;
cTitleBlockTextXPos_Date2 = 300 *cBaseUnit;
cTitleBlockTextXPos_SheetNbr = 145 *cBaseUnit;
cTitleBlockTextXPos_File1 = 345 *cBaseUnit;
cTitleBlockTextXPos_File2 = 300 *cBaseUnit;
cTitleBlockTextXPos_DrawnBy = 145 *cBaseUnit;
cTitleBlockTextYPos_TextLine1 = 20 *cBaseUnit;
cTitleBlockTextYPos_TextLine2 = 10 *cBaseUnit;
cAnsiTitleBlock1 = 175 *cBaseUnit;
cAnsiTitleBlock2 = 625 *cBaseUnit;
cAnsiTitleBlock3 = 425 *cBaseUnit;
cAnsiTitleBlock4 = 125 *cBaseUnit;
cAnsiTitleBlock5 = 63 *cBaseUnit;
cAnsiTitleBlock6 = 25 *cBaseUnit;
cAnsiTitleBlock7 = 387 *cBaseUnit;
cAnsiTitleBlock8 = 325 *cBaseUnit;
cAnsiTitleBlock9 = 276 *cBaseUnit;
cAnsiTitleBlock10 = 36 *cBaseUnit;
cAnsiTitleBlock11 = 420 *cBaseUnit;
cAnsiTitleBlock12 = 170 *cBaseUnit;
cAnsiTitleBlock13 = 420 *cBaseUnit;
cAnsiTitleBlock14 = 382 *cBaseUnit;
cAnsiTitleBlock15 = 271 *cBaseUnit;
cAnsiTitleBlock16 = 31 *cBaseUnit;

Differential Pair constants

cDifferentialPairWidth = 21 * cBaseUnit
+ cParameterSetLineWidth Div 2;
cDifferentialPairHeight = 9 * cBaseUnit
+ cParameterSetLineWidth;
cDifferentialPairShadowSize = cParameterSetLineWidth;
cDiffPairPosNetNaming = '_P';
cDiffPairNegNetNaming = '_N';
cDefaultDiffPairName : TDynamicString = 'DIFFPAIR';
cDiffPairParam : TDynamicString = 'DifferentialPair';
cDefaultDiffPair : TDynamicString = 'DefaultDiffPair'

If you find an issue, select the text/image and pressCtrl + Enterto send us your feedback.