user: Explain D in complete detail according to the official Blender documentation.

assistant: NodeTreeInterfaceSocketVectorPercentage4D.dimensions)   - [(bpy.types.NodeTreeInterfaceSocketVectorTranslation attribute)](bpy.types.NodeTreeInterfaceSocketVectorTranslation.html#bpy.types.NodeTreeInterfaceSocketVectorTranslation.dimensions)   - [(bpy.types.NodeTreeInterfaceSocketVectorTranslation2D attribute)](bpy.types.NodeTreeInterfaceSocketVectorTranslation2D.html#bpy.types.NodeTreeInterfaceSocketVectorTranslation2D.dimensions)   - [(bpy.types.NodeTreeInterfaceSocketVectorTranslation4D attribute)](bpy.types.NodeTreeInterfaceSocketVectorTranslation4D.html#bpy.types.NodeTreeInterfaceSocketVectorTranslation4D.dimensions)   - [(bpy.types.NodeTreeInterfaceSocketVectorVelocity attribute)](bpy.types.NodeTreeInterfaceSocketVectorVelocity.html#bpy.types.NodeTreeInterfaceSocketVectorVelocity.dimensions)   - [(bpy.types.NodeTreeInterfaceSocketVectorVelocity2D attribute)](bpy.types.NodeTreeInterfaceSocketVectorVelocity2D.html#bpy.types.NodeTreeInterfaceSocketVectorVelocity2D.dimensions)   - [(bpy.types.NodeTreeInterfaceSocketVectorVelocity4D attribute)](bpy.types.NodeTreeInterfaceSocketVectorVelocity4D.html#bpy.types.NodeTreeInterfaceSocketVectorVelocity4D.dimensions)   - [(bpy.types.NodeTreeInterfaceSocketVectorXYZ attribute)](bpy.types.NodeTreeInterfaceSocketVectorXYZ.html#bpy.types.NodeTreeInterfaceSocketVectorXYZ.dimensions)   - [(bpy.types.NodeTreeInterfaceSocketVectorXYZ2D attribute)](bpy.types.NodeTreeInterfaceSocketVectorXYZ2D.html#bpy.types.NodeTreeInterfaceSocketVectorXYZ2D.dimensions)   - [(bpy.types.NodeTreeInterfaceSocketVectorXYZ4D attribute)](bpy.types.NodeTreeInterfaceSocketVectorXYZ4D.html#bpy.types.NodeTreeInterfaceSocketVectorXYZ4D.dimensions)   - [(bpy.types.Object attribute)](bpy.types.Object.html#bpy.types.Object.dimensions)   - [(gpu.types.Buffer attribute)](gpu.types.html#gpu.types.Buffer.dimensions) - [dimensions() (in module blf)](blf.html#blf.dimensions) - [direction (bpy.types.Brush attribute)](bpy.types.Brush.html#bpy.types.Brush.direction)   - [(bpy.types.DisplaceModifier attribute)](bpy.types.DisplaceModifier.html#bpy.types.DisplaceModifier.direction)   - [(bpy.types.KeyMapItem attribute)](bpy.types.KeyMapItem.html#bpy.types.KeyMapItem.direction)   - [(bpy.types.UserSolidLight attribute)](bpy.types.UserSolidLight.html#bpy.types.UserSolidLight.direction)   - [(bpy.types.WipeStrip attribute)](bpy.types.WipeStrip.html#bpy.types.WipeStrip.direction) - [direction_type (bpy.types.ShaderNodeTangent attribute)](bpy.types.ShaderNodeTangent.html#bpy.types.ShaderNodeTangent.direction_type) - [directory (bpy.types.CompositorNodeOutputFile attribute)](bpy.types.CompositorNodeOutputFile.html#bpy.types.CompositorNodeOutputFile.directory)   - [(bpy.types.FileSelectParams attribute)](bpy.types.FileSelectParams.html#bpy.types.FileSelectParams.directory)   - [(bpy.types.ImageStrip attribute)](bpy.types.ImageStrip.html#bpy.types.ImageStrip.directory)   - [(bpy.types.MovieClipProxy attribute)](bpy.types.MovieClipProxy.html#bpy.types.MovieClipProxy.directory)   - [(bpy.types.NodesModifierBake attribute)](bpy.types.NodesModifierBake.html#bpy.types.NodesModifierBake.directory)   - [(bpy.types.ScriptDirectory attribute)](bpy.types.ScriptDirectory.html#bpy.types.ScriptDirectory.directory)   - [(bpy.types.StripProxy attribute)](bpy.types.StripProxy.html#bpy.types.StripProxy.directory) - [directory_browse() (in module bpy.ops.buttons)](bpy.ops.buttons.html#bpy.ops.buttons.directory_browse) - [directory_new() (in module bpy.ops.file)](bpy.ops.file.html#bpy.ops.file.directory_new) - [disable() (in module blf)](blf.html#blf.disable) - [disable_collisions (bpy.types.RigidBodyConstraint attribute)](bpy.types.RigidBodyConstraint.html#bpy.types.RigidBodyConstraint.disable_collisions) - [disable_keep_transform() (in module bpy.ops.constraint)](bpy.ops.constraint.html#bpy.ops.constraint.disable_keep_transform) | - [disable_markers() (in module bpy.ops.clip)](bpy.ops.clip.html#bpy.ops.clip.disable_markers) - [disabled_marker (bpy.types.ThemeClipEditor attribute)](bpy.types.ThemeClipEditor.html#bpy.types.ThemeClipEditor.disabled_marker) - [discard() (bmesh.types.bmesh.types.BMEditSelSeq method)](bmesh.types.html#bmesh.types.bmesh.types.BMEditSelSeq.discard) - [disconnect() (in module bpy.ops.sequencer)](bpy.ops.sequencer.html#bpy.ops.sequencer.disconnect) - [disconnect_hair() (in module bpy.ops.particle)](bpy.ops.particle.html#bpy.ops.particle.disconnect_hair) - [disconnected_distance_max (bpy.types.Brush attribute)](bpy.types.Brush.html#bpy.types.Brush.disconnected_distance_max) - [displace_factor (bpy.types.DynamicPaintSurface attribute)](bpy.types.DynamicPaintSurface.html#bpy.types.DynamicPaintSurface.displace_factor) - [displace_type (bpy.types.DynamicPaintSurface attribute)](bpy.types.DynamicPaintSurface.html#bpy.types.DynamicPaintSurface.displace_type) - [displacement_method (bpy.types.Material attribute)](bpy.types.Material.html#bpy.types.Material.displacement_method) - [displacement_space (bpy.types.BakeSettings attribute)](bpy.types.BakeSettings.html#bpy.types.BakeSettings.displacement_space) - [DisplaceModifier (class in bpy.types)](bpy.types.DisplaceModifier.html#bpy.types.DisplaceModifier) - [display_aspect (bpy.types.Image attribute)](bpy.types.Image.html#bpy.types.Image.display_aspect)   - [(bpy.types.MovieClip attribute)](bpy.types.MovieClip.html#bpy.types.MovieClip.display_aspect) - [display_bounds_type (bpy.types.Object attribute)](bpy.types.Object.html#bpy.types.Object.display_bounds_type) - [display_channel (bpy.types.SpaceSequenceEditor attribute)](bpy.types.SpaceSequenceEditor.html#bpy.types.SpaceSequenceEditor.display_channel) - [display_channels (bpy.types.SpaceImageEditor attribute)](bpy.types.SpaceImageEditor.html#bpy.types.SpaceImageEditor.display_channels) - [display_color (bpy.types.ParticleSettings attribute)](bpy.types.ParticleSettings.html#bpy.types.ParticleSettings.display_color) - [display_depth (bpy.types.CameraBackgroundImage attribute)](bpy.types.CameraBackgroundImage.html#bpy.types.CameraBackgroundImage.display_depth) - [display_device (bpy.types.ColorManagedDisplaySettings attribute)](bpy.types.ColorManagedDisplaySettings.html#bpy.types.ColorManagedDisplaySettings.display_device) - [display_handle (bpy.types.View3DOverlay attribute)](bpy.types.View3DOverlay.html#bpy.types.View3DOverlay.display_handle) - [display_interpolation (bpy.types.FluidDomainSettings attribute)](bpy.types.FluidDomainSettings.html#bpy.types.FluidDomainSettings.display_interpolation) - [display_method (bpy.types.ParticleSettings attribute)](bpy.types.ParticleSettings.html#bpy.types.ParticleSettings.display_method) - [display_mode (bpy.types.SpaceOutliner attribute)](bpy.types.SpaceOutliner.html#bpy.types.SpaceOutliner.display_mode)   - [(bpy.types.SpaceSequenceEditor attribute)](bpy.types.SpaceSequenceEditor.html#bpy.types.SpaceSequenceEditor.display_mode)   - [(bpy.types.Stereo3dDisplay attribute)](bpy.types.Stereo3dDisplay.html#bpy.types.Stereo3dDisplay.display_mode)   - [(bpy.types.Stereo3dFormat attribute)](bpy.types.Stereo3dFormat.html#bpy.types.Stereo3dFormat.display_mode) - [display_name() (in module bpy.path)](bpy.path.html#bpy.path.display_name) - [display_name_from_filepath() (in module bpy.path)](bpy.path.html#bpy.path.display_name_from_filepath) - [display_name_to_filepath() (in module bpy.path)](bpy.path.html#bpy.path.display_name_to_filepath) - [display_percentage (bpy.types.ParticleSettings attribute)](bpy.types.ParticleSettings.html#bpy.types.ParticleSettings.display_percentage) - [display_shape (bpy.types.NodeSocket attribute)](bpy.types.NodeSocket.html#bpy.types.NodeSocket.display_shape) - [display_size (bpy.types.Camera attribute)](bpy.types.Camera.html#bpy.types.Camera.display_size)   - [(bpy.types.FileSelectParams attribute)](bpy.types.FileSelectParams.html#bpy.types.FileSelectParams.display_size)   - [(bpy.types.ParticleSettings attribute)](bpy.types.ParticleSettings.html#bpy.types.ParticleSettings.display_size) - [display_size_discrete (bpy.types.FileSelectParams attribute)](bpy.types.FileSelectParams.html#bpy.types.FileSelectParams.display_size_discrete) - [display_stack() (bpy.types.SequenceEditor method)](bpy.types.SequenceEditor.html#bpy.types.SequenceEditor.display_stack) - [display_step (bpy.types.ParticleEdit attribute)](bpy.types.ParticleEdit.html#bpy.types.ParticleEdit.display_step)   - [(bpy.types.ParticleSettings attribute)](bpy.types.ParticleSettings.html#bpy.types.ParticleSettings.display_step) - [display_stretch_type (bpy.types.SpaceUVEditor attribute)](bpy.types.SpaceUVEditor.html#bpy.types.SpaceUVEditor.display_stretch_type) - [display_thickness (bpy.types.FluidDomainSettings attribute)](bpy.types.FluidDomainSettings.html#bpy.types.FluidDomainSettings.display_thickness) - [display_type (bpy.types.Armature attribute)](bpy.types.Armature.html#bpy.types.Armature.display_type)   - [(bpy.types.Bone attribute)](bpy.types.Bone.html#bpy.types.Bone.display_type)   - [(bpy.types.EditBone attribute)](bpy.types.EditBone.html#bpy.types.EditBone.display_type)   - [(bpy.types.FileSelectParams attribute)](bpy.types.FileSelectParams.html#bpy.types.FileSelectParams.display_type)   - [(bpy.types.Object attribute)](bpy.types.Object.html#bpy.types.Object.display_type) - [DisplaySafeAreas (class in bpy.types)](bpy.types.DisplaySafeAreas.html#bpy.types.DisplaySafeAreas) - [dissolve() (in module bpy.ops.armature)](bpy.ops.armature.html#bpy.ops.armature.dissolve)   - [(in module bpy.ops.grease_pencil)](bpy.ops.grease_pencil.html#bpy.ops.grease_pencil.dissolve) - [dissolve_degenerate() (in module bmesh.ops)](bmesh.ops.html#bmesh.ops.dissolve_degenerate)   - [(in module bpy.ops.mesh)](bpy.ops.mesh.html#bpy.ops.mesh.dissolve_degenerate) - [dissolve_edges() (in module bmesh.ops)](bmesh.ops.html#bmesh.ops.dissolve_edges)   - [(in module bpy.ops.mesh)](bpy.ops.mesh.html#bpy.ops.mesh.dissolve_edges) - [dissolve_faces() (in module bmesh.ops)](bmesh.ops.html#bmesh.ops.dissolve_faces)   - [(in module bpy.ops.mesh)](bpy.ops.mesh.html#bpy.ops.mesh.dissolve_faces) - [dissolve_limit() (in module bmesh.ops)](bmesh.ops.html#bmesh.ops.dissolve_limit) - [dissolve_limited() (in module bpy.ops.mesh)](bpy.ops.mesh.html#bpy.ops.mesh.dissolve_limited) - [dissolve_mode() (in module bpy.ops.mesh)](bpy.ops.mesh.html#bpy.ops.mesh.dissolve_mode) - [dissolve_speed (bpy.types.DynamicPaintSurface attribute)](bpy.types.DynamicPaintSurface.html#bpy.types.DynamicPaintSurface.dissolve_speed)   - [(bpy.types.FluidDomainSettings attribute)](bpy.types.FluidDomainSettings.html#bpy.types.FluidDomainSettings.dissolve_speed) - [dissolve_verts() (in module bmesh.ops)](bmesh.ops.html#bmesh.ops.dissolve_verts)   - [(in module bpy.ops.curve)](bpy.ops.curve.html#bpy.ops.curve.dissolve_verts)   - [(in module bpy.ops.mesh)](bpy.ops.mesh.html#bpy.ops.mesh.dissolve_verts) - [distance (aud.aud.Source attribute)](aud.html#aud.aud.Source.distance)   - [(bpy.types.BoidRuleFight attribute)](bpy.types.BoidRuleFight.html#bpy.types.BoidRuleFight.distance)   - [(bpy.types.BoidRuleFollowLeader attribute)](bpy.types.BoidRuleFollowLeader.html#bpy.types.BoidRuleFollowLeader.distance)   - [(bpy.types.GreasePencilMultiplyModifier attribute)](bpy.types.GreasePencilMultiplyModifier.html#bpy.types.GreasePencilMultiplyModifier.distance)   - [(bpy.types.GreasePencilSimplifyModifier attribute)](bpy.types.GreasePencilSimplifyModifier.html#bpy.types.GreasePencilSimplifyModifier.distance)   - [(bpy.types.KinematicConstraint attribute)](bpy.types.KinematicConstraint.html#bpy.types.KinematicConstraint.distance)   - [(bpy.types.LimitDistanceConstraint attribute)](bpy.types.LimitDistanceConstraint.html#bpy.types.LimitDistanceConstraint.distance)   - [(bpy.types.MovieTrackingSettings attribute)](bpy.types.MovieTrackingSettings.html#bpy.types.MovieTrackingSettings.distance)   - [(bpy.types.ShaderNodeTexVoronoi attribute)](bpy.types.ShaderNodeTexVoronoi.html#bpy.types.ShaderNodeTexVoronoi.distance)   - [(bpy.types.ShrinkwrapConstraint attribute)](bpy.types.ShrinkwrapConstraint.html#bpy.types.ShrinkwrapConstraint.distance)   - [(bpy.types.WorldLighting attribute)](bpy.types.WorldLighting.html#bpy.types.WorldLighting.distance) - [distance_end (bpy.types.GreasePencilWeightProximityModifier attribute)](bpy.types.GreasePencilWeightProximityModifier.html#bpy.types.GreasePencilWeightProximityModifier.distance_end) - [distance_max (bpy.types.FieldSettings attribute)](bpy.types.FieldSettings.html#bpy.types.FieldSettings.distance_max)   - [(bpy.types.Speaker attribute)](bpy.types.Speaker.html#bpy.types.Speaker.distance_max) - [distance_maximum (aud.aud.Handle attribute)](aud.html#aud.aud.Handle.distance_maximum)   - [(aud.aud.SequenceEntry attribute)](aud.html#aud.aud.SequenceEntry.distance_maximum) - [distance_metric (bpy.types.VoronoiTexture attribute)](bpy.types.VoronoiTexture.html#bpy.types.VoronoiTexture.distance_metric) - [distance_min (bpy.types.ClothCollisionSettings attribute)](bpy.types.ClothCollisionSettings.html#bpy.types.ClothCollisionSettings.distance_min)   - [(bpy.types.FieldSettings attribute)](bpy.types.FieldSettings.html#bpy.types.FieldSettings.distance_min) - [distance_model (aud.aud.Device attribute)](aud.html#aud.aud.Device.distance_model)   - [(aud.aud.Sequence attribute)](aud.html#aud.aud.Sequence.distance_model) - [DISTANCE_MODEL_EXPONENT (in module aud)](aud.html#aud.DISTANCE_MODEL_EXPONENT) - [DISTANCE_MODEL_EXPONENT_CLAMPED (in module aud)](aud.html#aud.DISTANCE_MODEL_EXPONENT_CLAMPED) - [DISTANCE_MODEL_INVALID (in module aud)](aud.html#aud.DISTANCE_MODEL_INVALID) - [DISTANCE_MODEL_INVERSE (in module aud)](aud.html#aud.DISTANCE_MODEL_INVERSE) - [DISTANCE_MODEL_INVERSE_CLAMPED (in module aud)](aud.html#aud.DISTANCE_MODEL_INVERSE_CLAMPED) - [DISTANCE_MODEL_LINEAR (in module aud)](aud.html#aud.DISTANCE_MODEL_LINEAR) - [DISTANCE_MODEL_LINEAR_CLAMPED (in module aud)](aud.html#aud.DISTANCE_MODEL_LINEAR_CLAMPED) - [distance_point_to_plane() (in module mathutils.geometry)](mathutils.geometry.html#mathutils.geometry.distance_point_to_plane) - [distance_reference (aud.aud.Handle attribute)](aud.html#aud.aud.Handle.distance_reference)   - [(aud.aud.SequenceEntry attribute)](aud.html#aud.aud.SequenceEntry.distance_reference)   - [(bpy.types.Speaker attribute)](bpy.types.Speaker.html#bpy.types.Speaker.distance_reference) - [distance_start (bpy.types.GreasePencilWeightProximityModifier attribute)](bpy.types.GreasePencilWeightProximityModifier.html#bpy.types.GreasePencilWeightProximityModifier.distance_start) - [distor_node (bpy.types.ThemeNodeEditor attribute)](bpy.types.ThemeNodeEditor.html#bpy.types.ThemeNodeEditor.distor_node) - [distort_max (bpy.types.MeshStatVis attribute)](bpy.types.MeshStatVis.html#bpy.types.MeshStatVis.distort_max) - [distort_min (bpy.types.MeshStatVis attribute)](bpy.types.MeshStatVis.html#bpy.types.MeshStatVis.distort_min) - [DistortedNoiseTexture (class in bpy.types)](bpy.types.DistortedNoiseTexture.html#bpy.types.DistortedNoiseTexture) - [DistortedNoiseTexture.users_material (in module bpy.types)](bpy.types.DistortedNoiseTexture.html#bpy.types.DistortedNoiseTexture.users_material) - [DistortedNoiseTexture.users_object_modifier (in module bpy.types)](bpy.types.DistortedNoiseTexture.html#bpy.types.DistortedNoiseTexture.users_object_modifier) - [distortion (bpy.types.DistortedNoiseTexture attribute)](bpy.types.DistortedNoiseTexture.html#bpy.types.DistortedNoiseTexture.distortion) - [distortion_model (bpy.types.MovieTrackingCamera attribute)](bpy.types.MovieTrackingCamera.html#bpy.types.MovieTrackingCamera.distortion_model) - [distribute_method (bpy.types.GeometryNodeDistributePointsOnFaces attribute)](bpy.types.GeometryNodeDistributePointsOnFaces.html#bpy.types.GeometryNodeDistributePointsOnFaces.distribute_method) - [distribution (bpy.types.ParticleSettings attribute)](bpy.types.ParticleSettings.html#bpy.types.ParticleSettings.distribution)   - [(bpy.types.ShaderNodeBsdfAnisotropic attribute)](bpy.types.ShaderNodeBsdfAnisotropic.html#bpy.types.ShaderNodeBsdfAnisotropic.distribution)   - [(bpy.types.ShaderNodeBsdfGlass attribute)](bpy.types.ShaderNodeBsdfGlass.html#bpy.types.ShaderNodeBsdfGlass.distribution)   - [(bpy.types.ShaderNodeBsdfMetallic attribute)](bpy.types.ShaderNodeBsdfMetallic.html#bpy.types.ShaderNodeBsdfMetallic.distribution)   - [(bpy.types.ShaderNodeBsdfPrincipled attribute)](bpy.types.ShaderNodeBsdfPrincipled.html#bpy.types.ShaderNodeBsdfPrincipled.distribution)   - [(bpy.types.ShaderNodeBsdfRefraction attribute)](bpy.types.ShaderNodeBsdfRefraction.html#bpy.types.ShaderNodeBsdfRefraction.distribution)   - [(bpy.types.ShaderNodeBsdfSheen attribute)](bpy.types.ShaderNodeBsdfSheen.html#bpy.types.ShaderNodeBsdfSheen.distribution) - [dither (bpy.types.ImagePaint attribute)](bpy.types.ImagePaint.html#bpy.types.ImagePaint.dither) - [dither_intensity (bpy.types.RenderSettings attribute)](bpy.types.RenderSettings.html#bpy.types.RenderSettings.dither_intensity) - [division_k1 (bpy.types.MovieTrackingCamera attribute)](bpy.types.MovieTrackingCamera.html#bpy.types.MovieTrackingCamera.division_k1) - [division_k2 (bpy.types.MovieTrackingCamera attribute)](bpy.types.MovieTrackingCamera.html#bpy.types.MovieTrackingCamera.division_k2) - [doc_view() (in module bpy.ops.wm)](bpy.ops.wm.html#bpy.ops.wm.doc_view) - [doc_view_manual() (in module bpy.ops.wm)](bpy.ops.wm.html#bpy.ops.wm.doc_view_manual) - [doc_view_manual_ui_context() (in module bpy.ops.wm)](bpy.ops.wm.html#bpy.ops.wm.doc_view_manual_ui_context) - [dolly() (in module bpy.ops.view3d)](bpy.ops.view3d.html#bpy.ops.view3d.dolly) - [domain (bpy.types.ForeachGeometryElementGenerationItem attribute)](bpy.types.ForeachGeometryElementGenerationItem.html#bpy.types.ForeachGeometryElementGenerationItem.domain)   - [(bpy.types.GeometryAttributeConstraint attribute)](bpy.types.GeometryAttributeConstraint.html#bpy.types.GeometryAttributeConstraint.domain)   - [(bpy.types.GeometryNodeAccumulateField attribute)](bpy.types.GeometryNodeAccumulateField.htm