diff --git a/source/Model/Behavior.ts b/source/Model/Behavior.ts
index 37618ff..75dea14 100644
--- a/source/Model/Behavior.ts
+++ b/source/Model/Behavior.ts
@@ -1,128 +1,11 @@
-import { IAnyObject } from "./Renderer";
 import { Emitter, EventType } from "./Emitter";
 import type { Individual } from "./Individual";
 import type { Group } from "./Group";
 import type { Model } from "./Model";
-import type { Range } from "./Range";
-import type { Label } from "./Label";
-
-type IObjectParamCacheType
 = {
-    picker: P;
-    objects: Q;
-}
-
-/**
- * 参数类型
- */
-type IMapBasicParamTypeKeyToType = {
-    "number": number;
-    "string": string;
-    "boolean": boolean;
-}
-
-type IMapObjectParamTypeKeyToType = {
-    "R": IObjectParamCacheType;
-    "G": IObjectParamCacheType;
-    "LR": IObjectParamCacheType;
-    "LG": IObjectParamCacheType;
-}
-
-type IMapVectorParamTypeKeyToType = {
-    "vec": number[];
-}
-
-/**
- * 参数类型映射
- */
-type AllMapType = IMapBasicParamTypeKeyToType & IMapObjectParamTypeKeyToType & IMapVectorParamTypeKeyToType;
-type IParamType = keyof AllMapType;
-type IObjectType = keyof IMapObjectParamTypeKeyToType;
-type IVectorType = keyof IMapVectorParamTypeKeyToType;
-type IParamValue = AllMapType[K];
-
-/**
- * 特殊对象类型判定
- */
-const objectTypeListEnumSet = new Set(["R", "G", "LR", "LG"]);
-
-/**
- * 对象断言表达式
- */
-function isObjectType(key: IParamType): key is IVectorType {
-    return objectTypeListEnumSet.has(key);
-}
-
-/**
- * 向量断言表达式
- */
-function isVectorType(key: IParamType): key is IObjectType {
-    return key === "vec";
-}
-
-/**
- * 模型参数类型
- */
-interface IBehaviorParameterOptionItem {
-
-    /**
-     * 参数类型
-     */
-    type: T | string;
-
-    /**
-     * 参数默认值
-     */
-    defaultValue?: IParamValue;
-
-    /**
-     * 数值变化回调
-     */
-    onChange?: (value: IParamValue) => any;
-
-    /**
-     * 名字
-     */
-    name: string;
-
-    /**
-     * 字符长度
-     */
-    maxLength?: number;
-
-    /**
-     * 数字步长
-     */
-    numberStep?: number;
-
-    /**
-     * 最大值最小值
-     */
-    numberMax?: number;
-    numberMin?: number;
-
-    /**
-     * 图标名字
-     */
-    iconName?: string;
-}
-
-interface IBehaviorParameter {
-    [x: string]: IParamType;
-}
-
-/**
- * 参数类型列表
- */
-type IBehaviorParameterOption = {
-    [X in keyof P]: IBehaviorParameterOptionItem
;
-}
-
-/**
- * 参数类型列表映射到参数对象
- */
-type IBehaviorParameterValue
 = {
-    [X in keyof P]: IParamValue
-}
+import {
+    IParamValue, isObjectType, isVectorType,
+    IBehaviorParameterOptionItem, IBehaviorParameter, IBehaviorParameterOption, IBehaviorParameterValue
+} from "./Parameter";
 
 /**
  * 行为构造函数类型
diff --git a/source/Model/Parameter.ts b/source/Model/Parameter.ts
new file mode 100644
index 0000000..5027117
--- /dev/null
+++ b/source/Model/Parameter.ts
@@ -0,0 +1,126 @@
+import type { Group } from "./Group";
+import type { Range } from "./Range";
+import type { Label } from "./Label";
+
+type IObjectParamCacheType
 = {
+    picker: P;
+    objects: Q;
+}
+
+/**
+ * 参数类型
+ */
+type IMapBasicParamTypeKeyToType = {
+    "number": number;
+    "string": string;
+    "boolean": boolean;
+}
+
+type IMapObjectParamTypeKeyToType = {
+    "R": IObjectParamCacheType;
+    "G": IObjectParamCacheType;
+    "LR": IObjectParamCacheType;
+    "LG": IObjectParamCacheType;
+}
+
+type IMapVectorParamTypeKeyToType = {
+    "vec": number[];
+}
+
+/**
+ * 参数类型映射
+ */
+type AllMapType = IMapBasicParamTypeKeyToType & IMapObjectParamTypeKeyToType & IMapVectorParamTypeKeyToType;
+type IParamType = keyof AllMapType;
+type IObjectType = keyof IMapObjectParamTypeKeyToType;
+type IVectorType = keyof IMapVectorParamTypeKeyToType;
+type IParamValue = AllMapType[K];
+
+/**
+ * 特殊对象类型判定
+ */
+const objectTypeListEnumSet = new Set(["R", "G", "LR", "LG"]);
+
+ /**
+  * 对象断言表达式
+  */
+function isObjectType(key: IParamType): key is IVectorType {
+    return objectTypeListEnumSet.has(key);
+}
+ 
+ /**
+  * 向量断言表达式
+  */
+function isVectorType(key: IParamType): key is IObjectType {
+    return key === "vec";
+}
+
+/**
+ * 模型参数类型
+ */
+interface IBehaviorParameterOptionItem {
+
+    /**
+     * 参数类型
+     */
+    type: T | string;
+
+    /**
+     * 参数默认值
+     */
+    defaultValue?: IParamValue;
+
+    /**
+     * 数值变化回调
+     */
+    onChange?: (value: IParamValue) => any;
+
+    /**
+     * 名字
+     */
+    name: string;
+
+    /**
+     * 字符长度
+     */
+    maxLength?: number;
+
+    /**
+     * 数字步长
+     */
+    numberStep?: number;
+
+    /**
+     * 最大值最小值
+     */
+    numberMax?: number;
+    numberMin?: number;
+
+    /**
+     * 图标名字
+     */
+    iconName?: string;
+}
+
+interface IBehaviorParameter {
+    [x: string]: IParamType;
+}
+
+/**
+ * 参数类型列表
+ */
+type IBehaviorParameterOption = {
+    [X in keyof P]: IBehaviorParameterOptionItem
;
+}
+
+/**
+ * 参数类型列表映射到参数对象
+ */
+type IBehaviorParameterValue
 = {
+    [X in keyof P]: IParamValue
+}
+
+export {
+    IParamType, IParamValue, isObjectType, isVectorType,
+    IBehaviorParameterOptionItem, IBehaviorParameter, IBehaviorParameterOption, IBehaviorParameterValue
+}
\ No newline at end of file