public static string ToNative(this Structural1DInfluenceEffect infl) { return(SchemaConversion.Helper.ToNativeTryCatch(infl, () => new GSA1DInfluenceEffect() { Value = infl }.SetGWACommand())); }
public static string ToNative(this Structural1DInfluenceEffect infl) { return(new GSA1DInfluenceEffect() { Value = infl }.SetGWACommand()); }
public void ParseGWACommand(List <GSA1DElement> e1Ds) { if (this.GWACommand == null) { return; } var obj = new Structural1DInfluenceEffect(); var pieces = this.GWACommand.ListSplit("\t"); var counter = 1; // Skip identifier obj.Name = pieces[counter++].Trim(new char[] { '"' }); obj.GSAEffectGroup = Convert.ToInt32(pieces[counter++]); var targetElementRef = pieces[counter++]; GSA1DElement targetElement; if (e1Ds != null) { targetElement = e1Ds.Where(e => targetElementRef == e.GSAId.ToString()).FirstOrDefault(); obj.ElementRef = targetElement.Value.ApplicationId; this.SubGWACommand.Add(targetElement.GWACommand); } else { return; } var pos = pieces[counter++]; if (pos.Contains("%")) { obj.Position = Convert.ToDouble(pos.Replace("%", "")) / 100; } else { // Get element length var eCoor = targetElement.Value.Value; var eLength = Math.Sqrt( Math.Pow(eCoor[0] - eCoor[3], 2) + Math.Pow(eCoor[1] - eCoor[4], 2) + Math.Pow(eCoor[2] - eCoor[5], 2) ); obj.Position = Convert.ToDouble(pos) / eLength; } obj.Factor = Convert.ToDouble(pieces[counter++]); var effectType = pieces[counter++]; switch (effectType) { case "DISP": obj.EffectType = StructuralInfluenceEffectType.Displacement; break; case "FORCE": obj.EffectType = StructuralInfluenceEffectType.Force; break; default: return; } counter++; //Axis which doesn't make sense var dir = pieces[counter++]; obj.Directions = new StructuralVectorBoolSix(new bool[6]); switch (dir.ToLower()) { case "x": obj.Directions.Value[0] = true; break; case "y": obj.Directions.Value[1] = true; break; case "z": obj.Directions.Value[2] = true; break; case "xx": obj.Directions.Value[3] = true; break; case "yy": obj.Directions.Value[4] = true; break; case "zz": obj.Directions.Value[5] = true; break; } this.Value = obj; }