Ejemplo n.º 1
0
 public override void HideProperties(ref DynamicTypeDescriptor dt)
 {
     if (TreatMouseDownAsMouseClick)
     {
         dt.RemoveProperty("ThresholdBetweenMouseDownAndMouseUp");
     }
 }
Ejemplo n.º 2
0
        internal DynamicProperty(DynamicTypeDescriptor descriptor, Type type, object value, string name, Attribute[] attrs)
            : base(name, attrs)
        {
            _descriptor = descriptor;
            _type       = type;
            Value       = value;
            DefaultValueAttribute def = DynamicTypeDescriptor.GetAttribute <DefaultValueAttribute>(Attributes);

            if (def == null)
            {
                _hasDefaultValue = false;
            }
            else
            {
                _hasDefaultValue = true;
                _defaultValue    = def.Value;
            }
            if (attrs != null)
            {
                foreach (Attribute att in attrs)
                {
                    _attributes.Add(att);
                }
            }
        }
        public InternalAssetEditor(Asset asset, ArchiveEditorFunctions archive, bool hideHelp)
        {
            InitializeComponent();
            TopMost = true;

            this.asset   = asset;
            this.archive = archive;

            DynamicTypeDescriptor dt = new DynamicTypeDescriptor(asset.GetType());

            asset.SetDynamicProperties(dt);
            propertyGridAsset.SelectedObject = dt.FromComponent(asset);

            labelAssetName.Text = $"[{asset.AHDR.assetType.ToString()}] {asset.ToString()}";

            propertyGridAsset.HelpVisible = !hideHelp;

            if (asset is AssetCAM cam)
            {
                SetupForCam(cam);
            }
            else if (asset is AssetCSN csn)
            {
                SetupForCsn(csn);
            }
            else if (asset is AssetGRUP grup)
            {
                SetupForGrup(grup);
            }
            else if (asset is AssetRenderWareModel arwm)
            {
                SetupForModel(arwm);
            }
            else if (asset is AssetSHRP shrp)
            {
                SetupForShrp(shrp);
            }
            else if (asset is AssetWIRE wire)
            {
                SetupForWire(wire);
            }

            Button buttonHelp = new Button()
            {
                Dock = DockStyle.Fill, Text = "Open Wiki Page", AutoSize = true
            };

            buttonHelp.Click += (object sender, EventArgs e) =>
                                System.Diagnostics.Process.Start(AboutBox.WikiLink + asset.AHDR.assetType.ToString());
            tableLayoutPanel1.Controls.Add(buttonHelp, 0, tableLayoutPanel1.RowCount - 1);

            Button buttonFindCallers = new Button()
            {
                Dock = DockStyle.Fill, Text = "Find Who Targets Me", AutoSize = true
            };

            buttonFindCallers.Click += (object sender, EventArgs e) =>
                                       Program.MainForm.FindWhoTargets(GetAssetID());
            tableLayoutPanel1.Controls.Add(buttonFindCallers, 1, tableLayoutPanel1.RowCount - 1);
        }
Ejemplo n.º 4
0
 public override void SetDynamicProperties(DynamicTypeDescriptor dt)
 {
     if (game == Game.Scooby)
     {
         dt.RemoveProperty("RandomRange");
     }
     base.SetDynamicProperties(dt);
 }
Ejemplo n.º 5
0
 public FlagsField_UInt_Dyna(EndianConvertibleWithData asset, int flagsLoc, DynamicTypeDescriptor dt, string[] flagNames)
     : base(asset, flagsLoc, dt)
 {
     for (uint i = 0; i < 32; i++)
     {
         AddPropertyAt(i, flagNames);
     }
 }
Ejemplo n.º 6
0
 public FlagsField_Byte_Dyna(DynaBase asset, int flagsLoc, DynamicTypeDescriptor dt, string[] flagNames)
     : base(asset, flagsLoc, dt)
 {
     for (uint i = 0; i < 8; i++)
     {
         AddPropertyAt(i, flagNames);
     }
 }
Ejemplo n.º 7
0
 public override void SetDynamicProperties(DynamicTypeDescriptor dt)
 {
     if (game != Game.Incredibles)
     {
         dt.RemoveProperty("UnknownIntC8");
     }
     base.SetDynamicProperties(dt);
 }
Ejemplo n.º 8
0
 public override void SetDynamicProperties(DynamicTypeDescriptor dt)
 {
     if (game == Game.Scooby)
     {
         dt.RemoveProperty("PressedModel_AssetID");
     }
     base.SetDynamicProperties(dt);
 }
Ejemplo n.º 9
0
        public override void SetDynamicProperties(DynamicTypeDescriptor dt)
        {
            if (game != Game.BFBB)
            {
                dt.RemoveProperty("PaddingC");
            }

            base.SetDynamicProperties(dt);
        }
Ejemplo n.º 10
0
 public override void SetDynamicProperties(DynamicTypeDescriptor dt)
 {
     if (game != Game.BFBB)
     {
         dt.RemoveProperty("Volume");
         dt.RemoveProperty("StartFriction");
     }
     base.SetDynamicProperties(dt);
 }
Ejemplo n.º 11
0
        public override void SetDynamicProperties(DynamicTypeDescriptor dt)
        {
            if (game == Game.Scooby)
            {
                dt.RemoveProperty("CombatID");
                dt.RemoveProperty("BrainID");
            }

            base.SetDynamicProperties(dt);
        }
Ejemplo n.º 12
0
        /// <summary>
        /// Save a DynamicTypeDescriptor for the specified values
        /// </summary>
        /// <param name="typeName"></param>
        /// <param name="valueDictionary"></param>
        /// <param name="nameSpace"></param>
        /// <returns></returns>
        protected DynamicTypeDescriptor SaveTypeDescriptor(string typeName, Dictionary <object, object> valueDictionary, string nameSpace = null)
        {
            DynamicTypeDescriptor descriptor = EnsureType(typeName, nameSpace);

            foreach (object key in valueDictionary.Keys)
            {
                object value = valueDictionary[key];
                if (value != null)
                {
                    Type   childType     = value.GetType();
                    string childTypeName = $"{typeName}.{key}";
                    DynamicTypePropertyDescriptor propertyDescriptor = new DynamicTypePropertyDescriptor
                    {
                        DynamicTypeDescriptorId = descriptor.Id,
                        ParentTypeName          = descriptor.TypeName,
                        PropertyType            = childType.Name,
                        PropertyName            = key.ToString(),
                    };

                    if (childType == typeof(JObject) || childType == typeof(Dictionary <object, object>))
                    {
                        propertyDescriptor.PropertyType = childTypeName;
                        SetDynamicTypePropertyDescriptor(propertyDescriptor);
                        Dictionary <object, object> data = value as Dictionary <object, object>;
                        if (data is null)
                        {
                            data = ((JObject)value).ToObject <Dictionary <object, object> >();
                        }
                        SaveTypeDescriptor(childTypeName, data);
                    }
                    else if (childType == typeof(JArray) || childType.IsArray)
                    {
                        propertyDescriptor.PropertyType = $"arrayOf({childTypeName})";
                        SetDynamicTypePropertyDescriptor(propertyDescriptor);

                        foreach (object obj in (IEnumerable)value)
                        {
                            Dictionary <object, object> data = new Dictionary <object, object>();
                            if (obj is JObject jobj)
                            {
                                data = jobj.ToObject <Dictionary <object, object> >();
                                SaveTypeDescriptor(childTypeName, data);
                            }
                        }
                    }
                    else
                    {
                        SetDynamicTypePropertyDescriptor(propertyDescriptor);
                    }
                }
            }

            return(DynamicTypeDataRepository.Retrieve <DynamicTypeDescriptor>(descriptor.Id));
        }
Ejemplo n.º 13
0
        public static DynamicTypeDescriptor GetTypeDescriptor(ISysObjectManager mgr, Type type,
                                                              IEnumerable <SysObject> items)
        {
            var res = new DynamicTypeDescriptor(type);

            foreach (var o in items)
            {
                // разбор
                var attributes = GetAttributes(o, type);

                // описание типа
                var sysObjNameAttr =
                    Attribute.GetCustomAttribute(type, typeof(SysObjectNameAttribute)) as SysObjectNameAttribute;
                var typename = sysObjNameAttr != null
                    ? sysObjNameAttr.SysObjectName
                    : type.Name;

                if (typename.EqIgnoreCase(o.ObjectName))
                {
                    //TODO: правильнее было бы передавать все аттрибуты
                    res.AddAttributes(
                        attributes.Where(p => p is DisplayNameAttribute || p is ListViewCaptionAttribute).ToArray());
                    continue;
                }

                var propertyType = GetObjectTrueType(mgr, o);

                //HACK: Добавляем атрибут CustomXmlIgnoreAttribute к свойству
                if (typeof(IList).IsAssignableFrom(propertyType) && propertyType.IsGenericType)
                {
                    var itemType = propertyType.GetGenericArguments().FirstOrDefault();
                    if (
                        itemType != null && (
                            typeof(AddressBook) == itemType ||
                            typeof(IWBPosQLFDetailDesc) == itemType ||
                            typeof(GlobalParamValue).IsAssignableFrom(itemType) ||
                            typeof(EpsConfig).IsAssignableFrom(itemType)) ||
                        typeof(MotionAreaGroupTr).IsAssignableFrom(itemType)
                        )
                    {
                        var attrs = new List <Attribute>(attributes)
                        {
                            new XmlNotIgnoreAttribute()
                        };
                        attributes = attrs.ToArray();
                    }
                }

                var propertyDesc = new DynamicPropertyDescriptor(o.ObjectName, attributes, type, propertyType,
                                                                 o.ObjectDefaultValue);
                res.AddProperty(propertyDesc);
            }
            return(res);
        }
Ejemplo n.º 14
0
        public override void SetDynamicProperties(DynamicTypeDescriptor dt)
        {
            if (game != Game.Incredibles)
            {
                dt.RemoveProperty("Flag1");
                dt.RemoveProperty("Flag2");
                dt.RemoveProperty("Flag3");
                dt.RemoveProperty("Flag4");
            }

            base.SetDynamicProperties(dt);
        }
Ejemplo n.º 15
0
        public void CanAddType()
        {
            DynamicTypeManager    mgr            = new DynamicTypeManager(new DynamicTypeDataRepository(), DataSettings.Default);
            string                testType       = "CanAddTypeTest";
            DynamicTypeDescriptor typeDescriptor = mgr.GetTypeDescriptor(testType);

            Expect.IsNull(typeDescriptor, "typeDescriptor should have been null");
            typeDescriptor = mgr.AddType(testType);
            Expect.IsNotNull(typeDescriptor, "typeDescriptor should NOT have been null");
            typeDescriptor = mgr.GetTypeDescriptor(testType);
            Expect.IsNotNull(typeDescriptor, "typeDescriptor should NOT have been null");
            OutLineFormat("{0}", typeDescriptor.PropertiesToString());
        }
Ejemplo n.º 16
0
        public override void SetDynamicProperties(DynamicTypeDescriptor dt)
        {
            if (game == Game.Scooby)
            {
                dt.RemoveProperty("Conditional");
                dt.RemoveProperty("AssetUnderEvaluation");
            }
            else
            {
                dt.RemoveProperty("ScoobyConditional");
            }

            base.SetDynamicProperties(dt);
        }
Ejemplo n.º 17
0
        public override void SetDynamicProperties(DynamicTypeDescriptor dt)
        {
            if (game == Game.Scooby)
            {
                dt.RemoveProperty("DestroyShrapnel_AssetID");
                dt.RemoveProperty("HitShrapnel_AssetID");
                dt.RemoveProperty("DestroySFX_AssetID");
                dt.RemoveProperty("HitSFX_AssetID");
                dt.RemoveProperty("HitModel_AssetID");
                dt.RemoveProperty("DestroyModel_AssetID");
            }

            base.SetDynamicProperties(dt);
        }
Ejemplo n.º 18
0
        public override void HideProperties(ref DynamicTypeDescriptor dt)
        {
            dt.Properties.Clear();

            var isSpecialScript = IsSpecialScript(Script, BaseScriptManager);

            if (!isSpecialScript)
            {
                AddProperty(dt, "Name");
            }
            else
            {
                AddProperty(dt, "ReadonlyName");
            }
        }
Ejemplo n.º 19
0
        private void UpdateInterfaceFromRandomizer()
        {
            if (InvokeRequired)
            {
                Invoke(new Action(UpdateInterfaceFromRandomizer));
                return;
            }
            programIsChangingStuff = true;

            comboBoxGame.SelectedIndex = randomizer.game;

            if (string.IsNullOrEmpty(backupDir))
            {
                labelBackupDir.Text = "Backup Directory: None";
            }
            else
            {
                labelBackupDir.Text = "Backup Directory: " + backupDir;
            }

            if (!string.IsNullOrEmpty(randomizer.rootDir))
            {
                if (randomizer.isDir)
                {
                    labelRootDir.Text     = "Game Directory: " + randomizer.rootDir;
                    buttonPerform.Enabled = true;
                }
                else
                {
                    labelRootDir.Text     = "File: " + randomizer.rootDir;
                    buttonPerform.Enabled = true;
                }
            }
            else
            {
                buttonPerform.Enabled = false;
            }

            textBoxSeed.Text = randomizer.seedText;
            labelSeed.Text   = "Seed: " + randomizer.seed.ToString();

            DynamicTypeDescriptor dt = new DynamicTypeDescriptor(randomizer.settings.GetType());

            randomizer.settings.SetDynamicProperties(dt, comboBoxGame.SelectedIndex);
            propertyGridSettings.SelectedObject = dt.FromComponent(randomizer.settings);

            programIsChangingStuff = false;
        }
 public override void SetDynamicProperties(DynamicTypeDescriptor dt)
 {
     if (!inc)
     {
         dt.RemoveProperty("UnknownInt34");
         dt.RemoveProperty("UnknownInt38");
         dt.RemoveProperty("UnknownInt3C");
         dt.RemoveProperty("UnknownInt40");
         dt.RemoveProperty("UnknownInt44");
         dt.RemoveProperty("UnknownInt48");
         dt.RemoveProperty("UnknownInt4C");
         dt.RemoveProperty("UnknownInt50");
         dt.RemoveProperty("UnknownInt54");
     }
     base.SetDynamicProperties(dt);
 }
Ejemplo n.º 21
0
        private void propertyGrid_PropertyValueChanged(object sender, PropertyValueChangedEventArgs e)
        {
            DynamicTypeDescriptor dt = new DynamicTypeDescriptor(m_CurrentObjectType);

            m_CurrentObject.HideProperties(ref dt);

            if (sender != null) // If it was modified from UI, call the callback. In other cases we don't want to do that.
            {
                m_CurrentObject.OnPropertiesModified();
            }

            propertyGrid.BeginInvokeIfCreated(new MethodInvoker(() =>
            {
                propertyGrid.SelectedObject = dt.FromComponent(m_CurrentObject);
            }));
        }
Ejemplo n.º 22
0
 public override void SetDynamicProperties(DynamicTypeDescriptor dt)
 {
     if (game == Game.Scooby)
     {
         dt.RemoveProperty("LoldHeight");
     }
     if (game != Game.Incredibles)
     {
         dt.RemoveProperty("UnknownInt44");
         dt.RemoveProperty("UnknownInt48");
         dt.RemoveProperty("UnknownInt4C");
         dt.RemoveProperty("UnknownInt50");
         dt.RemoveProperty("UnknownInt54");
         dt.RemoveProperty("UnknownInt58");
     }
     base.SetDynamicProperties(dt);
 }
Ejemplo n.º 23
0
        private static TestDynamicTypeManager GetTestDynamicTypeManager()
        {
            TestDynamicTypeManager repo;
            // clear existing entries if any
            TestDynamicTypeManager testRepo = new TestDynamicTypeManager(new DynamicTypeDataRepository(), DataSettings.Default);

            testRepo.DynamicTypeDataRepository.DynamicTypeDescriptorsWhere(d => d.Id > 0).Each(d => testRepo.DynamicTypeDataRepository.Delete(d));
            testRepo.DynamicTypeDataRepository.DataInstancesWhere(d => d.Id > 0).Each(d => testRepo.DynamicTypeDataRepository.Delete(d));

            // make sure the type isn't in the repo
            DynamicTypeDescriptor descriptor = testRepo.DynamicTypeDataRepository.DynamicTypeDescriptorsWhere(d => d.Id > 0).FirstOrDefault();

            Expect.IsNull(descriptor);

            repo = testRepo;
            return(repo);
        }
Ejemplo n.º 24
0
        protected DynamicTypeDescriptor EnsureType(string typeName, DynamicNamespaceDescriptor nspace)
        {
            lock (_typeDescriptorLock)
            {
                DynamicTypeDescriptor descriptor = DynamicTypeDataRepository.Query <DynamicTypeDescriptor>(td => td.TypeName == typeName).FirstOrDefault();
                if (descriptor == null)
                {
                    descriptor = new DynamicTypeDescriptor()
                    {
                        DynamicNamespaceDescriptorId = nspace.Id,
                        TypeName = typeName
                    };

                    descriptor = DynamicTypeDataRepository.Save(descriptor);
                }
                return(descriptor);
            }
        }
Ejemplo n.º 25
0
        public override void SetDynamicProperties(DynamicTypeDescriptor dt)
        {
            if (game == Game.Scooby)
            {
                dt.RemoveProperty("zSurfUVFX2");
            }
            else
            {
                dt.RemoveProperty("UnknownInt");
            }

            if (game != Game.Incredibles)
            {
                dt.RemoveProperty("ImpactSound_AssetID");
                dt.RemoveProperty("DashImpactType");
                dt.RemoveProperty("DashImpactThrowBack");
                dt.RemoveProperty("DashSprayMagnitude");
                dt.RemoveProperty("DashCoolRate");
                dt.RemoveProperty("DashCoolAmount");
                dt.RemoveProperty("DashPass");
                dt.RemoveProperty("DashRampMaxDistance");
                dt.RemoveProperty("DashRampMinDistance");
                dt.RemoveProperty("DashRampKeySpeed");
                dt.RemoveProperty("DashRampMaxHeight");
                dt.RemoveProperty("DashRampTarget_MovePoint_AssetID");
                dt.RemoveProperty("DamageAmount");
                dt.RemoveProperty("HitSourceDamageType");
                dt.RemoveProperty("OffSurface");
                dt.RemoveProperty("OnSurface");
                dt.RemoveProperty("HitDecalData0");
                dt.RemoveProperty("HitDecalData1");
                dt.RemoveProperty("HitDecalData2");
                dt.RemoveProperty("OffSurfaceTime");
                dt.RemoveProperty("SwimmableSurface");
                dt.RemoveProperty("DashFall");
                dt.RemoveProperty("NeedButtonPress");
                dt.RemoveProperty("DashAttack");
                dt.RemoveProperty("FootstepDecals");
                dt.RemoveProperty("DrivingSurfaceType");
            }

            base.SetDynamicProperties(dt);
        }
Ejemplo n.º 26
0
        public void AssociationsAreMade()
        {
            DynamicTypeManager         mgr = new DynamicTypeManager(new DynamicTypeDataRepository(), DataSettings.Default);
            DynamicNamespaceDescriptor ns  = new DynamicNamespaceDescriptor {
                Namespace = $"Test.Name.Space.{nameof(AssociationsAreMade)}"
            };

            ns = mgr.DynamicTypeDataRepository.Save(ns);

            DynamicTypeDescriptor typeDescriptor = new DynamicTypeDescriptor {
                DynamicNamespaceDescriptorId = ns.Id
            };

            Expect.IsNull(typeDescriptor.DynamicNamespaceDescriptor);

            typeDescriptor = mgr.DynamicTypeDataRepository.Save(typeDescriptor);
            Expect.IsNotNull(typeDescriptor.DynamicNamespaceDescriptor);
            Expect.AreEqual(ns, typeDescriptor.DynamicNamespaceDescriptor);
        }
Ejemplo n.º 27
0
        public override void HideProperties(ref DynamicTypeDescriptor dt)
        {
            dt.Properties.Clear();
            AddProperty(dt, "CommandType");

            if (Command is CommandDown || Command is CommandRelease || Command is CommandPress)
            {
                AddProperty(dt, "X");
                AddProperty(dt, "Y");
                AddProperty(dt, "DontMove");
            }
            if (Command is CommandDown || Command is CommandPress)
            {
                AddProperty(dt, "MouseButton");
            }
            else if (Command is CommandMove)
            {
                AddProperty(dt, "X");
                AddProperty(dt, "Y");
            }
            else if (Command is CommandForImage || Command is CommandForeachImage || Command is CommandIfImageVisible)
            {
                AddProperty(dt, "Asset");
                AddProperty(dt, "Timeout");
            }
            else if (Command is CommandSleep)
            {
                AddProperty(dt, "Time");
            }
            else if (Command is CommandRunScript)
            {
                AddProperty(dt, "Script");
            }
            else if (Command is CommandWriteText)
            {
                AddProperty(dt, "Text");
            }
            if (Command is CommandIfImageVisible)
            {
                AddProperty(dt, "ExpectTrue");
            }
        }
Ejemplo n.º 28
0
        public void CanAddPropertyToType()
        {
            DynamicTypeManager mgr = new DynamicTypeManager(new DynamicTypeDataRepository(), DataSettings.Default);

            mgr.DynamicTypeDataRepository.Query <DynamicTypeDescriptor>(d => d.Id > 0).Each(d => mgr.DynamicTypeDataRepository.Delete(d));
            mgr.DynamicTypeDataRepository.Query <DynamicTypePropertyDescriptor>(p => p.Id > 0).Each(p => mgr.DynamicTypeDataRepository.Delete(p));
            string testType      = nameof(CanAddPropertyToType);
            string testProperty  = "SomeProperty";
            string testProperty2 = "BooleanProperty";

            mgr.AddType(testType);
            DynamicTypePropertyDescriptor prop  = mgr.AddProperty(testType, testProperty, "String");
            DynamicTypePropertyDescriptor prop2 = mgr.AddProperty(testType, testProperty2, "Boolean");

            Expect.IsNotNull(prop);
            DynamicTypeDescriptor typeDescriptor = mgr.GetTypeDescriptor(testType);

            Expect.IsNotNull(typeDescriptor);
            Expect.IsTrue(typeDescriptor.Properties.Count == 2);
        }
Ejemplo n.º 29
0
        public void SaveDescriptorDoesntDuplicte()
        {
            TestDynamicTypeManager testRepo = new TestDynamicTypeManager(new DynamicTypeDataRepository(), DataSettings.Default);
            JObject jobj = (JObject)JsonConvert.DeserializeObject(new { Name = "some name", Arr = new object[] { new { Fromage = "gooey" } } }.ToJson());
            Dictionary <object, object> data = jobj.ToObject <Dictionary <object, object> >();
            string testTypeName = "test_typeName";

            testRepo.DynamicTypeDataRepository.DeleteWhere <DynamicTypeDescriptor>(new { TypeName = testTypeName });
            DynamicTypeDescriptor descriptor = testRepo.DynamicTypeDataRepository.DynamicTypeDescriptorsWhere(d => d.TypeName == testTypeName).FirstOrDefault();

            Expect.IsNull(descriptor);

            testRepo.TestSaveTypDescriptor(testTypeName, data);
            int count = testRepo.DynamicTypeDataRepository.DynamicTypeDescriptorsWhere(d => d.TypeName == testTypeName).Count();

            Expect.IsTrue(count == 1);
            testRepo.TestSaveTypDescriptor(testTypeName, data);
            count = testRepo.DynamicTypeDataRepository.DynamicTypeDescriptorsWhere(d => d.TypeName == testTypeName).Count();
            Expect.IsTrue(count == 1);
        }
Ejemplo n.º 30
0
        public DynamicTypePropertyDescriptor AddProperty(string typeName, string propertyName, string propertyType, string nameSpace = null)
        {
            Type type = Type.GetType(propertyType);

            if (type == null)
            {
                type = Type.GetType($"System.{propertyType}");
            }
            Args.ThrowIfNull(type, "propertyType");
            nameSpace = nameSpace ?? DynamicNamespaceDescriptor.DefaultNamespace;
            DynamicNamespaceDescriptor nameSpaceDescriptor = EnsureNamespace(nameSpace);
            DynamicTypeDescriptor      typeDescriptor      = EnsureType(typeName, nameSpaceDescriptor);

            return(SetDynamicTypePropertyDescriptor(new DynamicTypePropertyDescriptor
            {
                DynamicTypeDescriptorId = typeDescriptor.Id,
                ParentTypeName = typeDescriptor.TypeName,
                PropertyType = propertyType,
                PropertyName = propertyName
            }));
        }
Ejemplo n.º 31
0
 public void AddValuesToProperty(DynamicTypeDescriptor.CustomPropertyDescriptor property)
 {
     DynamicTypeDescriptor.StandardValueAttribute value = null;
     foreach (int key in select.Keys)
     {
         value = new DynamicTypeDescriptor.StandardValueAttribute(key, select[key].name);
         value.Description = select[key].description;
         property.StatandardValues.Add(value);
     }
 }