CDXML Name: | n |
CDX Constant Name: | kCDXObj_Node |
CDX Constant Value: | 0x8004 |
Contained by objects: | kCDXObj_Fragment |
First written/read in: | ChemDraw 4.0 |
Description:
A Node object is the basic building block of CDX chemical objects. At its most basic level, a Node is "a thing at the end of a bond." Most commonly, a Node will represent a single atom, but it may have other chemical meanings according to the value of the kCDXProp_Node_Type property.
When looking at a Node, there are really two places to find most types of information. Consider a node with the atom label (a contained Text object) CH2. The Text object contains the three characters 'C', 'H', and '2'. You could take the Text object itself and -- with no other information -- figure out that this node represents a carbon atom and two attached hydrogens. For such a simple case, that sort of analysis is easy, but things can get very complicated very quickly.
For that reason, ChemDraw will always write redundant information. It is always safe to ignore the label entirely when interpreting ChemDraw-generated files. Instead, you can find out that this node is a carbon by looking at the kCDXProp_Node_Element property, and you can find the number of attached hydrogens by looking at the kCDXProp_Atom_NumHydrogens property.
All Nodes must be contained in Fragment objects; they cannot be stored directly in Page or Fragment objects. This redundancy extends across all node types.
When reading files, ChemDraw does two things. If a contained Text object is present, ChemDraw uses that object as is as the Node's label, and ignores the chemical properties entirely. If a Text object is not present, ChemDraw then looks to the chemical properties and creates an atom label on the fly, if appropriate. Accordingly, programs writing their own CDX files are welcome to write either a Text object or a collection of chemical properties, whichever is most convenient. Of course, they can write out both, too, just like ChemDraw does -- but they do not have to do so.
Most Node objects have no required properties or objects, but nodes representing multicenter attachments or variable attachment points require the kCDXProp_Node_Attachments property.
Subobjects:
Value | Name | CDXML Name | |
0x8003 | kCDXObj_Fragment | fragment | |
A collection of nodes and their connectivity (bonds). | |||
0x8006 | kCDXObj_Text | t | |
An arbitrary block of (possibly styled) text. | |||
0x8011 | kCDXObj_ObjectTag | objecttag | |
Arbitrarily named property, one or more of which can be attached to any ChemDraw object. |
Properties:
Value | Name | CDXML Name | Type |
n/a | n/a | id | UINT16 |
A unique identifier for an object, used when other objects refer to it. | |||
0x000A | kCDXProp_ZOrder | Z | INT16 |
Back-to-front ordering index in 2D drawing. | |||
0x000F | kCDXProp_IgnoreWarnings | IgnoreWarnings | CDXBooleanImplied |
Signifies whether chemical warnings should be suppressed on this object. | |||
0x0010 | kCDXProp_ChemicalWarning | Warning | CDXString |
A warning concerning possible chemical problems with this object. | |||
0x0011 | kCDXProp_Visible | Visible | CDXBoolean |
The object is visible if non-zero. | |||
0x0200 | kCDXProp_2DPosition | p | CDXPoint2D |
The 2D location (in the order of vertical and horizontal locations) of an object. | |||
0x0201 | kCDXProp_3DPosition | xyz | CDXPoint3D |
The 3D location (in the order of X-, Y-, and Z-locations in right-handed coordinate system) of an object in CDX coordinate units. The precise meaning of this attribute varies depending on the type of object. | |||
0x0301 | kCDXProp_ForegroundColor | color | UINT16 |
The foreground color of an object represented as the two-based index into the object's color table. | |||
0x0302 | kCDXProp_BackgroundColor | bgcolor | INT16 |
The background color of an object represented as the two-based index into the object's color table. | |||
0x0400 | kCDXProp_Node_Type | NodeType | INT16 |
The type of a node object. This is an enumerated property. | |||
0x0401 | kCDXProp_Node_LabelDisplay | LabelDisplay | INT8 |
The characteristics of node label display. This is an enumerated property. | |||
0x0402 | kCDXProp_Node_Element | Element | INT16 |
The atomic number of the atom representing this node. | |||
0x0403 | kCDXProp_Atom_ElementList | ElementList | CDXElementList |
A list of atomic numbers. | |||
0x0404 | kCDXProp_Atom_Formula | Formula | CDXFormula |
The composition of a node representing a fragment whose composition is known, but whose connectivity is not. For example, C4H9 represents a mixture of the 4 butyl isomers. | |||
0x0420 | kCDXProp_Atom_Isotope | Isotope | INT16 |
The absolute isotopic mass of an atom (2 for deuterium, 14 for carbon-14). | |||
0x0421 | kCDXProp_Atom_Charge | Charge | INT8 |
The atomic charge of an atom. | |||
0x0422 | kCDXProp_Atom_Radical | Radical | UINT8 |
The atomic radical attribute of an atom. This is an enumerated property. | |||
0x0423 | kCDXProp_Atom_RestrictFreeSites | FreeSites | UINT8 |
Indicates that up to the specified number of additional substituents are permitted on this atom. | |||
0x0424 | kCDXProp_Atom_RestrictImplicitHydrogens | ImplicitHydrogens | CDXBooleanImplied |
Signifies that implicit hydrogens are not allowed on this atom. | |||
0x0425 | kCDXProp_Atom_RestrictRingBondCount | RingBondCount | INT8 |
The number of ring bonds attached to an atom. This is an enumerated property. | |||
0x0426 | kCDXProp_Atom_RestrictUnsaturatedBonds | UnsaturatedBonds | INT8 |
Indicates whether unsaturation should be present or absent. This is an enumerated property. | |||
0x0427 | kCDXProp_Atom_RestrictRxnChange | RxnChange | CDXBooleanImplied |
If present, signifies that the reaction change of an atom must be as specified. | |||
0x0428 | kCDXProp_Atom_RestrictRxnStereo | RxnStereo | INT8 |
The change of stereochemistry of an atom during a reaction. This is an enumerated property. | |||
0x0429 | kCDXProp_Atom_AbnormalValence | AbnormalValence | CDXBooleanImplied |
Signifies that an abnormal valence for an atom is permitted. | |||
0x042B | kCDXProp_Atom_NumHydrogens | NumHydrogens | UINT16 |
The number of (explicit) hydrogens in a labeled atom consisting of one heavy atom and (optionally) the symbol H (e.g., CH3). | |||
0x042E | kCDXProp_Atom_HDot | HDot | CDXBooleanImplied |
Signifies the presence of an implicit hydrogen with stereochemistry specified equivalent to an explicit H atom with a wedged bond. | |||
0x042F | kCDXProp_Atom_HDash | HDash | CDXBooleanImplied |
Signifies the presence of an implicit hydrogen with stereochemistry specified equivalent to an explicit H atom with a hashed bond. | |||
0x0430 | kCDXProp_Atom_Geometry | Geometry | INT8 |
The geometry of the bonds about this atom. This is an enumerated property. | |||
0x0431 | kCDXProp_Atom_BondOrdering | BondOrdering | CDXObjectIDArray |
An ordering of the bonds to this node, used for stereocenters, fragments, and named alternative groups with more than one attachment. | |||
0x0432 | kCDXProp_Node_Attachments | Attachments | CDXObjectIDArrayWithCounts |
Required for multi- and variable attached nodes. For multicenter attachment nodes or variable attachment nodes, a list of IDs of the nodes which are multiply or variably attached to this node. | |||
0x0433 | kCDXProp_Atom_GenericNickname | GenericNickname | CDXString |
The name of the generic nickname. | |||
0x0434 | kCDXProp_Atom_AltGroupID | AltGroupID | CDXObjectID |
The ID of the alternative group object that describes this node. | |||
0x0435 | kCDXProp_Atom_RestrictSubstituentsUpTo | SubstituentsUpTo | UINT8 |
Indicates that substitution is restricted to no more than the specified value. | |||
0x0436 | kCDXProp_Atom_RestrictSubstituentsExactly | SubstituentsExactly | UINT8 |
Indicates that exactly the specified number of substituents must be present. | |||
0x0437 | kCDXProp_Atom_CIPStereochemistry | AS | INT8 |
The node's absolute stereochemistry according to the Cahn-Ingold-Prelog system. This is an enumerated property. | |||
0x0438 | kCDXProp_Atom_Translation | Translation | INT8 |
Provides for restrictions on whether a given node may match other more- or less-general nodes. This is an enumerated property. | |||
0x0439 | kCDXProp_Atom_AtomNumber | AtomNumber | CDXString |
Atom number, as text. | |||
0x043A | kCDXProp_Atom_ShowQuery | ShowAtomQuery | CDXBoolean |
Show the query indicator if non-zero. | |||
0x043B | kCDXProp_Atom_ShowStereo | ShowAtomStereo | CDXBoolean |
Show the stereochemistry indicator if non-zero. | |||
0x043C | kCDXProp_Atom_ShowAtomNumber | ShowAtomNumber | CDXBoolean |
Show the atom number if non-zero. | |||
0x043D | kCDXProp_Atom_LinkCountLow | LinkCountLow | INT16 |
Low end of repeat count for link nodes. | |||
0x043E | kCDXProp_Atom_LinkCountHigh | LinkCountHigh | INT16 |
High end of repeat count for link nodes. | |||
0x043F | kCDXProp_Atom_IsotopicAbundance | IsotopicAbundance | INT8 |
Isotopic abundance of this atom's isotope. This is an enumerated property. | |||
0x0440 | kCDXProp_Atom_ExternalConnectionType | ExternalConnectionType | INT8 |
Type of external connection, for atoms of type kCDXNodeType_ExternalConnectionPoint. This is an enumerated property. | |||
0x0441 | kCDXProp_Atom_GenericList | GenericList | CDXGenericList |
A list of generic nicknames. | |||
0x0445 | kCDXProp_Atom_ShowEnhancedStereo | ShowAtomEnhancedStereo | CDXBoolean |
Show the enhanced stereochemistry indicator if non-zero. | |||
0x0446 | kCDXProp_Atom_EnhancedStereoType | EnhancedStereoType | UINT8 |
The type of enhanced stereochemistry present on this atom. This is an enumerated property. | |||
0x0447 | kCDXProp_Atom_EnhancedStereoGroupNum | EnhancedStereoGroupNum | UINT16 |
The group number associated with Or and And enhanced stereochemistry types. | |||
0x0807 | kCDXProp_LineWidth | LineWidth | CDXCoordinate |
The default line width. | |||
0x080A | kCDXProp_LabelStyle | (not used) | CDXFontStyle |
The default style for atom labels.. | |||
0x081A | kCDXProp_LabelStyleFont | LabelFont | INT16 |
The default font family for atom labels. | |||
0x081C | kCDXProp_LabelStyleSize | LabelSize | INT16 |
The default font size for atom labels. | |||
0x081E | kCDXProp_LabelStyleFace | LabelFace | INT16 |
The default font style for atom labels. |