protected override void PopulateDbRow(Element element, DataRow row) { AreaLoad areaLoad = element as AreaLoad; Utility.Assign(row, APIObjectList.ColumnRes("ColN_CST_AreaLoadId"), APIObjectList.GetIdDbValue(areaLoad)); Utility.Assign(row, APIObjectList.ColumnRes("ColN_CST_SlabId"), APIObjectList.GetIdDbValue(areaLoad.HostElement)); }
public bool Read(string FilePath) { ClearVars(); //To Do: read from file FileStream kFs = new FileStream(FilePath, FileMode.Open, FileAccess.ReadWrite); StreamReader sr = new StreamReader(kFs); string str = ""; while (sr.EndOfStream == false) { str = sr.ReadLine(); if (BasicInfo.UsersTitle == "") { if (str.Contains("ASTRA")) { if (str.Length > 12) { str = str.Remove(0, 12); BasicInfo.UsersTitle = str; continue; } } } //if (ProjectTitle == "") //{ // ProjectTitle = str; // continue; //} if (str.Contains("UNIT") && this.LUnit == "" && this.MUnit == "") { string[] ss = CAstraUnits.GetBasicLengthMassUnits(str); this.MUnit = ss[0]; this.LUnit = ss[1]; switch (this.MUnit.ToUpper()) { case "MTON": this.wfct_flag = 1; break; case "KN": this.wfct_flag = 2; break; case "KG": this.wfct_flag = 3; break; case "NEW": this.wfct_flag = 4; break; case "N": this.wfct_flag = 4; break; case "GM": this.wfct_flag = 5; break; case "GMS": this.wfct_flag = 5; break; case "KIP": this.wfct_flag = 6; break; case "LBS": this.wfct_flag = 7; break; } switch (this.LUnit.ToUpper()) { case "MM": this.lfct_flag = 1; break; case "CM": this.lfct_flag = 2; break; case "M": this.lfct_flag = 3; break; case "ME": this.lfct_flag = 3; break; case "METRES": this.lfct_flag = 3; break; case "YDS": this.lfct_flag = 4; break; case "FT": this.lfct_flag = 5; break; case "INCH": this.lfct_flag = 6; break; case "IN": this.lfct_flag = 6; break; } } if (str.ToUpper().Contains("STRUCTURE")) { str = str.Replace('\t', ' '); string[] values = str.Split(new char[] { ' ' }); while (str.IndexOf(" ") != -1) { str = str.Replace(" ", " "); } if (values.Length == 3) { int.Parse(values[1]); BasicInfo.Type = (StructureType)int.Parse(values[1]); BasicInfo.RunningOption = short.Parse(values[2]); } //str = str.Remove(0, 10); //str = str.Trim(); //string[] values = str.Split(new char[] { ' ' }); //while (str.IndexOf(" ") != -1) //{ // str = str.Replace(" ", " "); //} //str = str.Replace('\t', ' '); //values = str.Split(new char[] { ' ' }); //str = values[0]; //StructureType = ((str == "1") ? StructureType.SPACE : (str == "2") ? StructureType.FLOOR : StructureType.PLANE); //try { this.Modex = short.Parse(values[1]); } //catch (Exception ex) { this.Modex = -1; } } string find = getNodeName(str); if (find == "N000") { str = str.Replace('\t', ' '); string[] values = str.Split(new char[] { ' ' }); while (str.IndexOf(" ") != -1) { str = str.Replace(" ", " "); } if (values.Length == 3) { BasicInfo.MassUnit = CAstraUnits.GetMassUnit(values[1]); BasicInfo.LengthUnit = CAstraUnits.GetLengthUnit(values[2]); } } if (find == "N001") { if (str.Contains("UNIT")) { double[] d = CAstraUnits.GetLengthMassUnits(str); NodeData.MassFactor = d[0]; NodeData.LengthFactor = d[1]; string[] unt = CAstraUnits.GetUnits(str); BasicInfo.MassUnit = CAstraUnits.GetMassUnit(unt[0]); BasicInfo.LengthUnit = CAstraUnits.GetLengthUnit(unt[1]); NodeData.MassUnit = CAstraUnits.GetMassUnit(unt[2]); NodeData.LengthUnit = CAstraUnits.GetLengthUnit(unt[3]); } try { NodeData.Add(CNodeData.Parse(str)); } catch (Exception ex) { } } else if (find == "N002") { if (str.Contains("UNIT")) { double[] d = CAstraUnits.GetLengthMassUnits(str); BeamConnectivity.MassFactor = d[0]; BeamConnectivity.LengthFactor = d[1]; } try { BeamConnectivity.Add(CMemberConnectivity.Parse(str)); } catch (Exception ex) { } } else if (find == "N003") { if (str.Contains("UNIT")) { double[] d = CAstraUnits.GetLengthMassUnits(str); SectionProperty.MassFactor = d[0]; SectionProperty.LengthFactor = d[1]; string[] unt = CAstraUnits.GetUnits(str); //BasicInfo.MassUnit = CAstraUnits.GetMassUnit(unt[0]); //BasicInfo.LengthUnit = CAstraUnits.GetLengthUnit(unt[1]); SectionProperty.MassUnit = CAstraUnits.GetMassUnit(unt[2]); SectionProperty.LengthUnit = CAstraUnits.GetLengthUnit(unt[3]); } try { SectionProperty.Add(CSectionProperty.Parse(str)); } catch (Exception ex) { } } else if (find == "N004") { if (str.Contains("UNIT")) { double[] d = CAstraUnits.GetLengthMassUnits(str); MaterialProperty.MassFactor = d[0]; MaterialProperty.LengthFactor = d[1]; string[] unt = CAstraUnits.GetUnits(str); //BasicInfo.MassUnit = CAstraUnits.GetMassUnit(unt[0]); //BasicInfo.LengthUnit = CAstraUnits.GetLengthUnit(unt[1]); MaterialProperty.MassUnit = CAstraUnits.GetMassUnit(unt[2]); MaterialProperty.LengthUnit = CAstraUnits.GetLengthUnit(unt[3]); } try { MaterialProperty.Add(CMaterialProperty.Parse(str)); } catch (Exception ex) { } } else if (find == "N005") { try { Support.Add(CSupport.Parse(str)); } catch (Exception ex) { } } else if (find == "N008") { try { MemberTruss.Add(CMemberTruss.Parse(str)); } catch (Exception ex) { } } else if (find == "N010") { try { SelfWeight = (CSelfWeight.Parse(str)); } catch (Exception ex) { } } else if (find == "N007") { if (str.Contains("UNIT")) { double[] d = CAstraUnits.GetLengthMassUnits(str); MemberBeamLoad.MassFactor = d[0]; MemberBeamLoad.LengthFactor = d[1]; string[] unt = CAstraUnits.GetUnits(str); //BasicInfo.MassUnit = CAstraUnits.GetMassUnit(unt[0]); //BasicInfo.LengthUnit = CAstraUnits.GetLengthUnit(unt[1]); MemberBeamLoad.MassUnit = CAstraUnits.GetMassUnit(unt[2]); MemberBeamLoad.LengthUnit = CAstraUnits.GetLengthUnit(unt[3]); } try { MemberBeamLoad.Add(CMemberBeamLoading.Parse(str)); } catch (Exception ex) { } } else if (find == "N009") { try { BeamConnectivityRelease.Add(CBeamConnectivityRelease.Parse(str)); } catch (Exception ex) { } } else if (find == "N006") { if (str.Contains("UNIT")) { double[] d = CAstraUnits.GetLengthMassUnits(str); JointNodalLoad.MassFactor = d[0]; JointNodalLoad.LengthFactor = d[1]; string[] unt = CAstraUnits.GetUnits(str); //BasicInfo.MassUnit = CAstraUnits.GetMassUnit(unt[0]); //BasicInfo.LengthUnit = CAstraUnits.GetLengthUnit(unt[1]); JointNodalLoad.MassUnit = CAstraUnits.GetMassUnit(unt[2]); JointNodalLoad.LengthUnit = CAstraUnits.GetLengthUnit(unt[3]); } try { //CJointNodalLoad jntLoad = new CJointNodalLoad(); //jntLoad = CJointNodalLoad.Parse(str); JointNodalLoad.Add(CJointNodalLoad.Parse(str)); } catch (Exception ex) { } } else if (find == "N099") { try { Analysis = CAnalysis.Parse(str); } catch (Exception ex) { } } else if (find == "N011") { if (str.Contains("FILE")) { int j = str.IndexOf("FILE"); str = str.Remove(0, j + 5); str = str.ToUpper().Trim(); MovingLoad.FileName = str; } try { MovingLoad.Add(CMovingLoad.Parse(str)); } catch (Exception ex) { } } else if (find == "N012") { string[] values = str.Split(new char[] { ' ' }); if (values.Length == 4) { try { LoadGeneration.repeatTime = int.Parse(values[3]); } catch (Exception ex) { } } try { LoadGeneration.Add(CLoadGeneration.Parse(str)); } catch (Exception ex) { } } else if (find == "N013") { try { LoadCombination.Add(CLoadCombination.Parse(str)); } catch (Exception ex) { } } else if (find == "N014") { if (str.Contains("UNIT")) { double[] d = CAstraUnits.GetLengthMassUnits(str); AreaLoad.MassFactor = d[0]; AreaLoad.LengthFactor = d[1]; string[] unt = CAstraUnits.GetUnits(str); //BasicInfo.MassUnit = CAstraUnits.GetMassUnit(unt[0]); //BasicInfo.LengthUnit = CAstraUnits.GetLengthUnit(unt[1]); AreaLoad.MassUnit = CAstraUnits.GetMassUnit(unt[2]); AreaLoad.LengthUnit = CAstraUnits.GetLengthUnit(unt[3]); } try { AreaLoad.Add(CAreaLoad.Parse(str)); } catch (Exception ex) { } } else if (find == "N019") { if (str.Contains("UNIT")) { double[] d = CAstraUnits.GetLengthMassUnits(str); MatPropertyInfo.MassFactor = d[0]; MatPropertyInfo.LengthFactor = d[1]; string[] unt = CAstraUnits.GetUnits(str); //BasicInfo.MassUnit = CAstraUnits.GetMassUnit(unt[0]); //BasicInfo.LengthUnit = CAstraUnits.GetLengthUnit(unt[1]); MatPropertyInfo.MassUnit = CAstraUnits.GetMassUnit(unt[2]); MatPropertyInfo.LengthUnit = CAstraUnits.GetLengthUnit(unt[3]); } try { MatPropertyInfo.Add(CMaterialPropertyInformation.Parse(str)); } catch (Exception ex) { } } else if (find == "N016") { if (str.Contains("UNIT")) { double[] d = CAstraUnits.GetLengthMassUnits(str); ElementData.MassFactor = d[0]; ElementData.LengthFactor = d[1]; string[] unt = CAstraUnits.GetUnits(str); //BasicInfo.MassUnit = CAstraUnits.GetMassUnit(unt[0]); //BasicInfo.LengthUnit = CAstraUnits.GetLengthUnit(unt[1]); ElementData.MassUnit = CAstraUnits.GetMassUnit(unt[2]); ElementData.LengthUnit = CAstraUnits.GetLengthUnit(unt[3]); } try { //ElementData.Add(CElementData.Parse(str)); } catch (Exception ex) { } } else if (find == "N020") { try { ElementMultiplier.Add(CElementMultiplier.Parse(str)); } catch (Exception ex) { } } else if (find == "N018") { try { ElementData.Add(CElementData.Parse(str)); } catch (Exception ex) { } } if (Analysis.NDYN == 2) { if (find == "N101") { try { TimeHistory.THist_1 = CTimeHistory1.Parse(str); } catch (Exception exx) { } } else if (find == "N102") { try { TimeHistory.THist_2 = CTimeHistory2.Parse(str); } catch (Exception exx) { } } else if (find == "N103") { try { TimeHistory.THist_3 = CTimeHistory3.Parse(str); } catch (Exception exx) { } } else if (find == "N104") { try { TimeHistory.THist_4 = CTimeHistory4.Parse(str); } catch (Exception exx) { } } else if (find == "N105") { try { if (TimeHistory.THist_5.Count > 0) { TimeHistory.THist_5.NodalConstraint = true; } TimeHistory.THist_5.Add(CTimeHistory5.Parse(str)); } catch (Exception exx) { } } else if (find == "N106") { try { TimeHistory.THist_6.Add(CTimeHistory6.Parse(str)); } catch (Exception exx) { } } } else if (Analysis.NDYN == 3) { Response.ReadFromStream(sr); } } kFs.Close(); sr.Close(); return(true); }
/// <summary> /// /// </summary> /// <param name="app"></param> /// <param name="element"></param> /// <returns></returns> public static Revit.Element CloneElement(Application app, Revit.Element element) { Opening opening = element as Opening; if (opening != null) { return(CloneElement(app, opening)); } BoundaryConditions boundaryConditions = element as BoundaryConditions; if (boundaryConditions != null) { return(CloneElement(app, boundaryConditions)); } AreaLoad areaLoad = element as AreaLoad; if (areaLoad != null) { return(CloneElement(app, areaLoad)); } AreaReinforcement areaReinforcement = element as AreaReinforcement; if (areaReinforcement != null) { return(CloneElement(app, areaReinforcement)); } BeamSystem beamSystem = element as BeamSystem; if (beamSystem != null) { return(CloneElement(app, beamSystem)); } Dimension dimension = element as Dimension; if (dimension != null) { return(CloneElement(app, dimension)); } FamilyInstance familyInstance = element as FamilyInstance; if (familyInstance != null) { return(CloneElement(app, familyInstance)); } Floor floor = element as Floor; if (floor != null) { return(CloneElement(app, floor)); } Grid grid = element as Grid; if (grid != null) { return(CloneElement(app, grid)); } Group group = element as Group; if (group != null) { return(CloneElement(app, group)); } Level level = element as Level; if (floor != null) { return(CloneElement(app, floor)); } LineLoad lineLoad = element as LineLoad; if (lineLoad != null) { return(CloneElement(app, lineLoad)); } LoadCase loadCase = element as LoadCase; if (loadCase != null) { return(CloneElement(app, loadCase)); } LoadCombination loadCombination = element as LoadCombination; if (loadCombination != null) { return(CloneElement(app, loadCombination)); } LoadNature loadNature = element as LoadNature; if (loadNature != null) { return(CloneElement(app, loadNature)); } LoadUsage loadUsage = element as LoadUsage; if (loadUsage != null) { return(CloneElement(app, loadUsage)); } ModelCurve modelCurve = element as ModelCurve; if (modelCurve != null) { return(CloneElement(app, modelCurve)); } PointLoad pointLoad = element as PointLoad; if (pointLoad != null) { return(CloneElement(app, pointLoad)); } Rebar rebar = element as Rebar; if (rebar != null) { return(CloneElement(app, rebar)); } ReferencePlane referencePlane = element as ReferencePlane; if (referencePlane != null) { return(CloneElement(app, referencePlane)); } Room room = element as Room; if (room != null) { return(CloneElement(app, room)); } RoomTag roomTag = element as RoomTag; if (roomTag != null) { return(CloneElement(app, roomTag)); } SketchPlane sketchPlane = element as SketchPlane; if (sketchPlane != null) { return(CloneElement(app, sketchPlane)); } View3D view3D = element as View3D; if (view3D != null) { return(CloneElement(app, view3D)); } ViewDrafting viewDrafting = element as ViewDrafting; if (viewDrafting != null) { return(CloneElement(app, viewDrafting)); } ViewSection viewSection = element as ViewSection; if (viewSection != null) { return(CloneElement(app, viewSection)); } ViewSheet viewSheet = element as ViewSheet; if (viewSheet != null) { return(CloneElement(app, viewSheet)); } Wall wall = element as Wall; if (wall != null) { return(CloneElement(app, wall)); } // this element has not yet been exposed in the Creation Document class //Debug.Assert(false); return(null); }
private void Stream( ArrayList data, AreaLoad areaload ) { data.Add( new Snoop.Data.ClassSeparator( typeof( AreaLoad ) ) ); data.Add( new Snoop.Data.Xyz( "Force 1", areaload.ForceVector1 ) ); data.Add( new Snoop.Data.Xyz( "Force 2", areaload.ForceVector2 ) ); data.Add( new Snoop.Data.Xyz( "Force 3", areaload.ForceVector3 ) ); data.Add( new Snoop.Data.CategorySeparator( "Loops" ) ); data.Add( new Snoop.Data.Int( "Number of loops", areaload.GetLoops().Count ) ); for( int i = 0; i < areaload.GetLoops().Count; i++ ) { CurveLoop curveloop = areaload.GetLoops()[i] as CurveLoop; CurveLoopIterator iter = curveloop.GetCurveLoopIterator(); iter.Reset(); int j = 0; while( iter.MoveNext() ) { data.Add( new Snoop.Data.Object( string.Format( "Loop [{0:d}], Curve [{1:d}]", i, j ), ( iter.Current as Curve ) ) ); j++; } } data.Add( new Snoop.Data.CategorySeparator( "Reference Points" ) ); data.Add( new Snoop.Data.Int( "Number of reference points", areaload.NumRefPoints ) ); for( int i = 0; i < areaload.NumRefPoints; i++ ) { data.Add( new Snoop.Data.Xyz( string.Format( "Reference PT [{0:d}]", i ), areaload.GetRefPoint( i ) ) ); } }
private void Stream( ArrayList data, AreaLoad areaload ) { data.Add( new Snoop.Data.ClassSeparator( typeof( AreaLoad ) ) ); data.Add( new Snoop.Data.Xyz( "Force 1", areaload.Force1 ) ); data.Add( new Snoop.Data.Xyz( "Force 2", areaload.Force2 ) ); data.Add( new Snoop.Data.Xyz( "Force 3", areaload.Force3 ) ); data.Add( new Snoop.Data.CategorySeparator( "Loops" ) ); data.Add( new Snoop.Data.Int( "Number of loops", areaload.NumLoops ) ); for( int i = 0; i < areaload.NumLoops; i++ ) { for( int j = 0; j < areaload.get_NumCurves( i ); j++ ) data.Add( new Snoop.Data.Object( string.Format( "Loop [{0:d}], Curve [{1:d}]", i, j ), areaload.get_Curve( i, j ) ) ); } data.Add( new Snoop.Data.CategorySeparator( "Reference Points" ) ); data.Add( new Snoop.Data.Int( "Number of reference points", areaload.NumRefPoints ) ); for( int i = 0; i < areaload.NumRefPoints; i++ ) { data.Add( new Snoop.Data.Xyz( string.Format( "Reference PT [{0:d}]", i ), areaload.get_RefPoint( i ) ) ); } }
private void Stream( ArrayList data, AreaLoad areaload ) { data.Add( new Snoop.Data.ClassSeparator( typeof( AreaLoad ) ) ); data.Add( new Snoop.Data.Xyz( "Force 1", areaload.ForceVector1 ) ); data.Add( new Snoop.Data.Xyz( "Force 2", areaload.ForceVector2 ) ); data.Add( new Snoop.Data.Xyz( "Force 3", areaload.ForceVector3 ) ); data.Add( new Snoop.Data.CategorySeparator( "Loops" ) ); data.Add( new Snoop.Data.Int( "Number of loops", areaload.GetLoops().Count ) ); int i = 0, j = 0; foreach( var loop in areaload.GetLoops() ) { foreach( var curve in loop ) { data.Add( new Snoop.Data.Object( string.Format( "Loop [{0:d}], Curve [{1:d}]", i, j ), curve ) ); j++; } i++; } data.Add( new Snoop.Data.CategorySeparator( "Reference Points" ) ); data.Add( new Snoop.Data.Int( "Number of reference points", areaload.NumRefPoints ) ); for( i = 0; i < areaload.NumRefPoints; i++ ) { data.Add( new Snoop.Data.Xyz( string.Format( "Reference PT [{0:d}]", i ), areaload.GetRefPoint( i ) ) ); } }
private void store(OleDbConnection cn, uint itemId, string loadCase, AreaLoad obj) { }
public bool Validate(AreaLoad areaLoad) { return(APIObjectList.GetCategoryId(areaLoad.HostElement) == (BuiltInCategory)(-2000032)); }
public static List <SpeckleObject> ToSpeckle(this AreaLoad myAreaLoad) { var polylines = new List <double[]>(); var loops = myAreaLoad.GetLoops(); foreach (var loop in loops) { var coor = new List <double>(); foreach (var curve in loop) { var points = curve.Tessellate(); foreach (var p in points.Skip(1)) { coor.Add(p.X / Scale); coor.Add(p.Y / Scale); coor.Add(p.Z / Scale); } } polylines.Add(coor.ToArray()); // Only get outer loop break; } var forces = new StructuralVectorThree(new double[3]); forces.Value[0] = myAreaLoad.ForceVector1.X; forces.Value[1] = myAreaLoad.ForceVector1.Y; forces.Value[2] = myAreaLoad.ForceVector1.Z; if (myAreaLoad.OrientTo == LoadOrientTo.HostLocalCoordinateSystem) { var hostTransform = myAreaLoad.HostElement.GetLocalCoordinateSystem(); var b0 = hostTransform.get_Basis(0); var b1 = hostTransform.get_Basis(1); var b2 = hostTransform.get_Basis(2); var fx = forces.Value[0] * b0.X + forces.Value[1] * b1.X + forces.Value[2] * b2.X; var fy = forces.Value[0] * b0.Y + forces.Value[1] * b1.Y + forces.Value[2] * b2.Y; var fz = forces.Value[0] * b0.Z + forces.Value[1] * b1.Z + forces.Value[2] * b2.Z; forces = new StructuralVectorThree(new double[] { fx, fy, fz }); } else if (myAreaLoad.OrientTo == LoadOrientTo.WorkPlane) { var workPlane = ((SketchPlane)Doc.GetElement(myAreaLoad.WorkPlaneId)).GetPlane(); var b0 = workPlane.XVec; var b1 = workPlane.YVec; var b2 = workPlane.Normal; var fx = forces.Value[0] * b0.X + forces.Value[1] * b1.X + forces.Value[2] * b2.X; var fy = forces.Value[0] * b0.Y + forces.Value[1] * b1.Y + forces.Value[2] * b2.Y; var fz = forces.Value[0] * b0.Z + forces.Value[1] * b1.Z + forces.Value[2] * b2.Z; forces = new StructuralVectorThree(new double[] { fx, fy, fz }); } var myLoadCase = new StructuralLoadCase(); myLoadCase.Name = myAreaLoad.LoadCaseName; myLoadCase.ApplicationId = myAreaLoad.LoadCase.UniqueId; switch (myAreaLoad.LoadCategoryName) { case "Dead Loads": myLoadCase.CaseType = StructuralLoadCaseType.Dead; break; case "Live Loads": myLoadCase.CaseType = StructuralLoadCaseType.Live; break; case "Seismic Loads": myLoadCase.CaseType = StructuralLoadCaseType.Earthquake; break; case "Snow Loads": myLoadCase.CaseType = StructuralLoadCaseType.Snow; break; case "Wind Loads": myLoadCase.CaseType = StructuralLoadCaseType.Wind; break; default: myLoadCase.CaseType = StructuralLoadCaseType.Generic; break; } var myLoads = new List <SpeckleObject>(); var counter = 0; foreach (var vals in polylines) { var myLoad = new Structural2DLoadPanel(); myLoad.Name = myAreaLoad.Name; myLoad.Value = vals.ToList(); myLoad.Loading = forces; myLoad.LoadCaseRef = myLoadCase.ApplicationId; myLoad.Closed = true; myLoad.ApplicationId = myAreaLoad.UniqueId + "_" + (counter++).ToString(); myLoads.Add(myLoad); } return(myLoads.Concat(new List <SpeckleObject>() { myLoadCase }).ToList()); }
/// <summary> /// 地域情報取得 /// </summary> /// <returns>地域情報リスト</returns> public List <AreaData> GetAreaList() { var TelgObj = GetTelegrams().ToArray(); return(AreaLoad.AnalyzeTelegram(TelgObj)); }