diff --git a/DeedyDesigner/Deedy.Activity/ActionViewer.cs b/DeedyDesigner/Deedy.Activity/ActionViewer.cs
index f818623..7eb3c8a 100644
--- a/DeedyDesigner/Deedy.Activity/ActionViewer.cs
+++ b/DeedyDesigner/Deedy.Activity/ActionViewer.cs
@@ -92,13 +92,13 @@ namespace Deedy.Activity
         /// 
         /// 动作节点
         /// 
-        public IDeedyAction DeedyAction
+        public IActionElement DeedyAction
         {
-            get { return (IDeedyAction)GetValue(DeedyActionProperty); }
+            get { return (IActionElement)GetValue(DeedyActionProperty); }
             set { SetValue(DeedyActionProperty, value); }
         }
         public static readonly DependencyProperty DeedyActionProperty =
-            DependencyProperty.Register("DeedyAction", typeof(IDeedyAction), typeof(ActionViewer), new PropertyMetadata(null,
+            DependencyProperty.Register("DeedyAction", typeof(IActionElement), typeof(ActionViewer), new PropertyMetadata(null,
                 (d, e) => (d as ActionViewer)?.DeedyAction_PropertyChangedCallback(e)));
         /// 
         /// 处理「DeedyActionViewer.DeedyAction」属性变更
@@ -107,7 +107,7 @@ namespace Deedy.Activity
         {
             //
         }
-        public void ReadyToWorking(Runtime? runtime)
+        public void ReadyToWorking(IElementActivity? element = null, Output? output = null)
         {
             throw new NotImplementedException();
         }
diff --git a/DeedyDesigner/Deedy.Activity/DeedyAction.cs b/DeedyDesigner/Deedy.Activity/BasalAction.cs
similarity index 82%
rename from DeedyDesigner/Deedy.Activity/DeedyAction.cs
rename to DeedyDesigner/Deedy.Activity/BasalAction.cs
index 5800f92..1eada7f 100644
--- a/DeedyDesigner/Deedy.Activity/DeedyAction.cs
+++ b/DeedyDesigner/Deedy.Activity/BasalAction.cs
@@ -8,18 +8,18 @@ using System.Threading.Tasks;
 
 namespace Deedy.Activity
 {
-    public abstract class DeedyAction : IDeedyAction
+    public abstract class BasalAction : IActionElement
     {
-        protected internal DeedyAction() { }
+        protected internal BasalAction() { }
         public string DEClass { get; protected internal set; } = "";
         public string DETitle { get; set; } = "";
         public string DERemark { get; set; } = "";
         public string DEIdentify { get; set; } = "";
         public int DepthLevel { get; protected internal set; } = 0;
-        public IDeedyElement? ParentElement { get; protected internal set; }
+        public IElementActivity? ParentElement { get; protected internal set; }
         public IActionViewer? ActionViewer { get; protected internal set; }
 
-        public IDeedyElement RootElement => (this.ParentElement == null) ? this : this.ParentElement.RootElement;
+        public IElementActivity RootElement => (this.ParentElement == null) ? this : this.ParentElement.RootElement;
 
         public event PropertyChangedEventHandler? PropertyChanged;
 
@@ -55,22 +55,22 @@ namespace Deedy.Activity
             return true;
         }
 
-        public void InsertToFore(IDeedyElement deedyElement)
+        public void InsertToFore(IElementActivity deedyElement)
         {
             throw new NotImplementedException();
         }
 
-        public void InsertAtRear(IDeedyElement deedyElement)
+        public void InsertAtRear(IElementActivity deedyElement)
         {
             throw new NotImplementedException();
         }
 
-        public void SwapIndex(IDeedyElement deedyElement)
+        public void SwapIndex(IElementActivity deedyElement)
         {
             throw new NotImplementedException();
         }
 
-        public void ReadyToWorking(IDeedyElement? parent = null)
+        public void ReadyToWorking(IElementActivity? element = null, Output? output = null)
         {
             throw new NotImplementedException();
         }
diff --git a/DeedyDesigner/Deedy.Activity/Collection/DeedyElementCollection.cs b/DeedyDesigner/Deedy.Activity/Collection/DeedyElementCollection.cs
index 86c462a..b1a3fe8 100644
--- a/DeedyDesigner/Deedy.Activity/Collection/DeedyElementCollection.cs
+++ b/DeedyDesigner/Deedy.Activity/Collection/DeedyElementCollection.cs
@@ -8,7 +8,7 @@ using System.Threading.Tasks;
 
 namespace Deedy.Activity
 {
-    public class DeedyElementCollection : ObservableCollection
+    public class DeedyElementCollection : ObservableCollection
     {
         public DeedyElementCollection() : this(false) { }
         public DeedyElementCollection(bool needDistinct = false)
@@ -16,15 +16,15 @@ namespace Deedy.Activity
             this._needDistinct = needDistinct;
         }
         private bool _needDistinct = false;
-        public void AddRange(params IDeedyElement[] elements)
+        public void AddRange(params IElementActivity[] elements)
         {
             foreach (var element in elements) this.Add(element);
         }
-        public void AddRange([AllowNull] IEnumerable elements)
+        public void AddRange([AllowNull] IEnumerable elements)
         {
             if (elements != null) foreach (var element in elements) this.Add(element);
         }
-        public new void Add([AllowNull] IDeedyElement element)
+        public new void Add([AllowNull] IElementActivity element)
         {
             if (element == null) return;
             if (this._needDistinct)
diff --git a/DeedyDesigner/Deedy.Activity/Contract/Interface/ICombinedElement.cs b/DeedyDesigner/Deedy.Activity/Contract/Interface/ICombinedElement.cs
index 7de00fc..8e4e344 100644
--- a/DeedyDesigner/Deedy.Activity/Contract/Interface/ICombinedElement.cs
+++ b/DeedyDesigner/Deedy.Activity/Contract/Interface/ICombinedElement.cs
@@ -7,7 +7,7 @@ using System.Threading.Tasks;
 
 namespace Deedy.Activity
 {
-    public interface ICombinedElement : IDeedyElement
+    public interface ICombinedElement : IElementActivity
     {
         public DeedyElementCollection Elements { get; set; }
     }
diff --git a/DeedyDesigner/Deedy.Activity/Contract/Interface/IContainerElement.cs b/DeedyDesigner/Deedy.Activity/Contract/Interface/IContainerElement.cs
index 138d86b..42d5b1e 100644
--- a/DeedyDesigner/Deedy.Activity/Contract/Interface/IContainerElement.cs
+++ b/DeedyDesigner/Deedy.Activity/Contract/Interface/IContainerElement.cs
@@ -8,7 +8,7 @@ namespace Deedy.Activity
 {
     public interface IContainerElement : ICombinedElement
     {
-        public void Append(IDeedyElement deedyElement);
-        public void Remove(IDeedyElement deedyElement);
+        public void Append(IElementActivity deedyElement);
+        public void Remove(IElementActivity deedyElement);
     }
 }
diff --git a/DeedyDesigner/Deedy.Activity/DeedyAction/ExecAction.cs b/DeedyDesigner/Deedy.Activity/DeedyAction/ExecAction.cs
index 22897ed..3150c9c 100644
--- a/DeedyDesigner/Deedy.Activity/DeedyAction/ExecAction.cs
+++ b/DeedyDesigner/Deedy.Activity/DeedyAction/ExecAction.cs
@@ -6,7 +6,7 @@ using System.Threading.Tasks;
 
 namespace Deedy.Activity
 {
-    public abstract class ExecAction : DeedyAction
+    public abstract class ExecAction : BasalAction
     {
         protected internal ExecAction() { }
     }
diff --git a/DeedyDesigner/Deedy.Activity/DeedyAction/FlowAction.cs b/DeedyDesigner/Deedy.Activity/DeedyAction/FlowAction.cs
index 082a416..6074b9d 100644
--- a/DeedyDesigner/Deedy.Activity/DeedyAction/FlowAction.cs
+++ b/DeedyDesigner/Deedy.Activity/DeedyAction/FlowAction.cs
@@ -6,7 +6,7 @@ using System.Threading.Tasks;
 
 namespace Deedy.Activity
 {
-    public abstract class FlowAction : DeedyAction
+    public abstract class FlowAction : BasalAction
     {
         protected internal FlowAction() { }
     }
diff --git a/DeedyDesigner/Deedy.Activity/DeedyAction/FlowAction/CombinedNode.cs b/DeedyDesigner/Deedy.Activity/DeedyAction/FlowAction/CombinedNode.cs
index abf8046..22a214f 100644
--- a/DeedyDesigner/Deedy.Activity/DeedyAction/FlowAction/CombinedNode.cs
+++ b/DeedyDesigner/Deedy.Activity/DeedyAction/FlowAction/CombinedNode.cs
@@ -6,8 +6,10 @@ using System.Threading.Tasks;
 
 namespace Deedy.Activity
 {
-    public abstract class CombinedNode : FlowAction
+    public abstract class CombinedNode : FlowAction, ICombinedElement
     {
         public CombinedNode() { }
+
+        public DeedyElementCollection Elements { get => throw new NotImplementedException(); set => throw new NotImplementedException(); }
     }
 }
diff --git a/DeedyDesigner/Deedy.Activity/DeedyAction/FlowAction/ContainerBlock.cs b/DeedyDesigner/Deedy.Activity/DeedyAction/FlowAction/ContainerBlock.cs
index 5a3a419..b7f7259 100644
--- a/DeedyDesigner/Deedy.Activity/DeedyAction/FlowAction/ContainerBlock.cs
+++ b/DeedyDesigner/Deedy.Activity/DeedyAction/FlowAction/ContainerBlock.cs
@@ -6,8 +6,20 @@ using System.Threading.Tasks;
 
 namespace Deedy.Activity
 {
-    public abstract class ContainerBlock : FlowAction
+    public abstract class ContainerBlock : FlowAction, IContainerElement
     {
         public ContainerBlock() { }
+
+        public DeedyElementCollection Elements { get => throw new NotImplementedException(); set => throw new NotImplementedException(); }
+
+        public void Append(IElementActivity deedyElement)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void Remove(IElementActivity deedyElement)
+        {
+            throw new NotImplementedException();
+        }
     }
 }
diff --git a/DeedyDesigner/Deedy.Activity/DeedyAction/FuncAction.cs b/DeedyDesigner/Deedy.Activity/DeedyAction/FuncAction.cs
index de4e48b..7888cf8 100644
--- a/DeedyDesigner/Deedy.Activity/DeedyAction/FuncAction.cs
+++ b/DeedyDesigner/Deedy.Activity/DeedyAction/FuncAction.cs
@@ -6,7 +6,7 @@ using System.Threading.Tasks;
 
 namespace Deedy.Activity
 {
-    public abstract class FuncAction : DeedyAction
+    public abstract class FuncAction : BasalAction
     {
         protected internal FuncAction() { }
     }
diff --git a/DeedyDesigner/Deedy.Activity/DeedyAction/FuncAction/CombinedFunction.cs b/DeedyDesigner/Deedy.Activity/DeedyAction/FuncAction/CombinedFunction.cs
index 7b194d5..51581cc 100644
--- a/DeedyDesigner/Deedy.Activity/DeedyAction/FuncAction/CombinedFunction.cs
+++ b/DeedyDesigner/Deedy.Activity/DeedyAction/FuncAction/CombinedFunction.cs
@@ -6,8 +6,10 @@ using System.Threading.Tasks;
 
 namespace Deedy.Activity
 {
-    public abstract class CombinedFunction : FuncAction
+    public abstract class CombinedFunction : FuncAction, ICombinedElement
     {
         public CombinedFunction() { }
+
+        public DeedyElementCollection Elements { get => throw new NotImplementedException(); set => throw new NotImplementedException(); }
     }
 }
diff --git a/DeedyDesigner/Deedy.Activity/DeedyAction/FuncAction/ContainerFunction.cs b/DeedyDesigner/Deedy.Activity/DeedyAction/FuncAction/ContainerFunction.cs
index cccd542..9ad0895 100644
--- a/DeedyDesigner/Deedy.Activity/DeedyAction/FuncAction/ContainerFunction.cs
+++ b/DeedyDesigner/Deedy.Activity/DeedyAction/FuncAction/ContainerFunction.cs
@@ -6,8 +6,20 @@ using System.Threading.Tasks;
 
 namespace Deedy.Activity
 {
-    public abstract class ContainerFunction : FuncAction
+    public abstract class ContainerFunction : FuncAction, IContainerElement
     {
         public ContainerFunction() { }
+
+        public DeedyElementCollection Elements { get => throw new NotImplementedException(); set => throw new NotImplementedException(); }
+
+        public void Append(IElementActivity deedyElement)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void Remove(IElementActivity deedyElement)
+        {
+            throw new NotImplementedException();
+        }
     }
 }
diff --git a/DeedyDesigner/Deedy.Activity/DeedyVisual/DeedyLayout.cs b/DeedyDesigner/Deedy.Activity/DeedyVisual/DeedyLayout.cs
index bc63a3d..8e60251 100644
--- a/DeedyDesigner/Deedy.Activity/DeedyVisual/DeedyLayout.cs
+++ b/DeedyDesigner/Deedy.Activity/DeedyVisual/DeedyLayout.cs
@@ -15,9 +15,9 @@ namespace Deedy.Activity
         public string DERemark { get; set; } = "";
         public string DEIdentify { get; set; } = "";
         public int DepthLevel { get; protected internal set; } = 0;
-        public IDeedyElement? ParentElement { get; protected internal set; }
+        public IElementActivity? ParentElement { get; protected internal set; }
 
-        public IDeedyElement RootElement => (this.ParentElement == null) ? this : this.ParentElement.RootElement;
+        public IElementActivity RootElement => (this.ParentElement == null) ? this : this.ParentElement.RootElement;
 
         public DeedyElementCollection Elements { get => throw new NotImplementedException(); set => throw new NotImplementedException(); }
 
@@ -57,37 +57,37 @@ namespace Deedy.Activity
             return true;
         }
 
-        public void Append(IDeedyElement deedyElement)
+        public void Append(IElementActivity deedyElement)
         {
             throw new NotImplementedException();
         }
 
-        public void Remove(IDeedyElement deedyElement)
+        public void Remove(IElementActivity deedyElement)
         {
             throw new NotImplementedException();
         }
 
-        public void InsertToFore(IDeedyElement deedyElement)
+        public void InsertToFore(IElementActivity deedyElement)
         {
             throw new NotImplementedException();
         }
 
-        public void InsertAtRear(IDeedyElement deedyElement)
+        public void InsertAtRear(IElementActivity deedyElement)
         {
             throw new NotImplementedException();
         }
 
-        public void SwapIndex(IDeedyElement element1, IDeedyElement element2)
+        public void SwapIndex(IElementActivity element1, IElementActivity element2)
         {
             throw new NotImplementedException();
         }
 
-        public void SwapIndex(IDeedyElement deedyElement)
+        public void SwapIndex(IElementActivity deedyElement)
         {
             throw new NotImplementedException();
         }
 
-        public void ReadyToWorking(IDeedyElement? parent = null)
+        public void ReadyToWorking(IElementActivity? element = null, Output? output = null)
         {
             throw new NotImplementedException();
         }
diff --git a/DeedyDesigner/Deedy.Activity/IDeedyAction.cs b/DeedyDesigner/Deedy.Activity/IActionElement.cs
similarity index 79%
rename from DeedyDesigner/Deedy.Activity/IDeedyAction.cs
rename to DeedyDesigner/Deedy.Activity/IActionElement.cs
index 0fd7a0b..eb2cc97 100644
--- a/DeedyDesigner/Deedy.Activity/IDeedyAction.cs
+++ b/DeedyDesigner/Deedy.Activity/IActionElement.cs
@@ -6,7 +6,7 @@ using System.Threading.Tasks;
 
 namespace Deedy.Activity
 {
-    public interface IDeedyAction : IDeedyElement
+    public interface IActionElement : IElementActivity
     {
         public IActionViewer? ActionViewer { get; }
     }
diff --git a/DeedyDesigner/Deedy.Activity/IActionViewer.cs b/DeedyDesigner/Deedy.Activity/IActionViewer.cs
index fdeec36..7a1c90b 100644
--- a/DeedyDesigner/Deedy.Activity/IActionViewer.cs
+++ b/DeedyDesigner/Deedy.Activity/IActionViewer.cs
@@ -9,11 +9,9 @@ using System.Windows;
 
 namespace Deedy.Activity
 {
-    public interface IActionViewer : INotifyPropertyChanged
+    public interface IActionViewer : IDeedyActivity, INotifyPropertyChanged
     {
         [AllowNull]
-        public IDeedyAction DeedyAction { get; set; }
-        public void ReadyToWorking(Runtime? runtime);
-        
+        public IActionElement DeedyAction { get; set; }        
     }
 }
diff --git a/DeedyDesigner/Deedy.Activity/IDeedyActivity.cs b/DeedyDesigner/Deedy.Activity/IDeedyActivity.cs
new file mode 100644
index 0000000..f76203f
--- /dev/null
+++ b/DeedyDesigner/Deedy.Activity/IDeedyActivity.cs
@@ -0,0 +1,13 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Deedy.Activity
+{
+    public interface IDeedyActivity
+    {
+        public void ReadyToWorking(IElementActivity? element = null, Output? output = null);
+    }
+}
diff --git a/DeedyDesigner/Deedy.Activity/IDeedyElement.cs b/DeedyDesigner/Deedy.Activity/IElementActivity.cs
similarity index 73%
rename from DeedyDesigner/Deedy.Activity/IDeedyElement.cs
rename to DeedyDesigner/Deedy.Activity/IElementActivity.cs
index 7ac21f0..0c4ee02 100644
--- a/DeedyDesigner/Deedy.Activity/IDeedyElement.cs
+++ b/DeedyDesigner/Deedy.Activity/IElementActivity.cs
@@ -10,23 +10,23 @@ using System.Windows.Markup;
 
 namespace Deedy.Activity
 {
-    public interface IDeedyElement : INotifyPropertyChanged
+    public interface IElementActivity : IDeedyActivity, INotifyPropertyChanged
     {
         public string DEClass { get; }
         public string DETitle { get; set; }
         public string DERemark { get; set; }
         public string DEIdentify { get; set; }
         public int DepthLevel { get; }
-        public IDeedyElement? ParentElement { get; }
-        public IDeedyElement RootElement { get; }
-        public void InsertToFore(IDeedyElement deedyElement);
-        public void InsertAtRear(IDeedyElement deedyElement);
-        public void SwapIndex(IDeedyElement deedyElement);
+        public IElementActivity? ParentElement { get; }
+        public IElementActivity RootElement { get; }
+        public void InsertToFore(IElementActivity deedyElement);
+        public void InsertAtRear(IElementActivity deedyElement);
+        public void SwapIndex(IElementActivity deedyElement);
         /// 
         /// 将当前节点链接到一个节点上
         /// 
         /// 要链接到的节点
-        public virtual void LinkTo([AllowNull] IDeedyElement element)
+        public virtual void LinkTo([AllowNull] IElementActivity element)
         {
             if (element == null)
             {
@@ -58,26 +58,26 @@ namespace Deedy.Activity
         public virtual void Unlink()
         {
             (this.ParentElement as IContainerElement)?.Remove(this);
-            this.SetNamedPropertyValue(nameof(ParentElement), null);
+            this.SetNamedPropertyValue(nameof(ParentElement), null);
             this.SetNamedPropertyValue(nameof(DepthLevel), 0);
         }
         /// 
         /// 构建结构树,设置层级:并且完成参数映射的刷新
         /// 
         /// 
-        public void ReadyToWorking(IDeedyElement? parent = null)
+        public new void ReadyToWorking(IElementActivity? element = null, Output? output = null)
         {
             //TODO:刷新参数映射
-            this.LinkTo(parent);
+            this.LinkTo(element);
             if (this is IContainerElement container)
-                foreach (IDeedyElement element in container.Elements)
-                    element.ReadyToWorking(this);
+                foreach (IElementActivity subElement in container.Elements)
+                    subElement.ReadyToWorking(this);
         }
-        public virtual IDeedyElement? Clone()
+        public virtual IElementActivity? Clone()
         {
             try
             {
-                return XamlReader.Parse(XamlWriter.Save(this)) as IDeedyElement;
+                return XamlReader.Parse(XamlWriter.Save(this)) as IElementActivity;
             }
             catch { return null; }
         }
@@ -92,13 +92,13 @@ namespace Deedy.Activity
             catch { document = string.Empty; }
             return result;
         }
-        public static virtual bool TryDecode(string document, out IDeedyElement? element)
+        public static virtual bool TryDecode(string document, out IElementActivity? element)
         {
-            IDeedyElement? instance = null;
+            IElementActivity? instance = null;
             bool result = false;
             try
             {
-                instance = XamlReader.Parse(document) as IDeedyElement;
+                instance = XamlReader.Parse(document) as IElementActivity;
                 result = instance != null;
             }
             catch { }
diff --git a/DeedyDesigner/Deedy.Activity/IDeedyVisual.cs b/DeedyDesigner/Deedy.Activity/IVisualElement.cs
similarity index 74%
rename from DeedyDesigner/Deedy.Activity/IDeedyVisual.cs
rename to DeedyDesigner/Deedy.Activity/IVisualElement.cs
index 70ba1d2..3f8571a 100644
--- a/DeedyDesigner/Deedy.Activity/IDeedyVisual.cs
+++ b/DeedyDesigner/Deedy.Activity/IVisualElement.cs
@@ -6,7 +6,7 @@ using System.Threading.Tasks;
 
 namespace Deedy.Activity
 {
-    public interface IDeedyVisual : IDeedyElement
+    public interface IVisualElement : IElementActivity
     {
     }
 }