public TreComponent(Component c) { //Component class variables this.Name = c.Name; this.Bearings = c.Bearings; this.PlateConnectors = c.PlateConnectors; this.ComponentType = c.ComponentType; this.ComponentFunctions = c.ComponentFunctions; this.Members = c.Members; //TreComponent specific //Line 1 DisplayUnits = "Imperial"; InternalUnits = "Imperial"; //Line 2 CSIFailure = "1"; SSIFailure = "0"; SummaryResultOfAnalyze = "0"; GeoconvertFailure = "0"; AllJointsArePlated = "0"; TrussUnstable = "0"; EstimateHasBeenDone = "0"; TrussDeflectionFailure = "0"; CamberStatus = "0"; ReactionFailure = "0"; HorizontalTotalDeflectionFailure = "0"; HorizontalLiveDeflectionFailure = "0"; BearingOutOfScarf = "0"; WedgeFailure = "0"; HeelFailure = "0"; FloorSpliceJointFailure = "0"; BearingNotAtJointFailure = "0"; BirdsmouthHeelFailure = "0"; LSLFailure = "0"; MinChordGradeFailureCanada = "0"; Span2x3ExceededCanada = "0"; Min2x3WebGradeFailureCanada = "0"; Min2x4WebGradeFailureCanada = "0"; DryLbrWithMetalWebFailCanada = "0"; MaxAllowedSpanCanada = "0"; NailingPatternFailureCanada = "0"; MissedLoadingCanada = "0"; UnspecifiedDesignFailCanada = "0"; ChangedRequirementsCanada = "0"; PanelRackingDeflectionFailure = "0"; AnalysisResult = "0"; TreVersionNumber = "7300"; //Line 3 ProgramMode = "0"; TypeOfTruss = "0"; //Line 4 //Line 5 RoofOrFloorTruss = "ROOF BASICS"; Quantity = "1"; TrussSpan = "0.0"; TopSlope = "0.0"; BottomSlope = "0.0"; LeftOverhangLength = "0.0"; RightOverhangLength = "0.0"; //Part6Spacing; RoofSetupTrusses = "0.0"; LeftTopChordOverhang = "1"; RightTopChordOverhang = "1"; DesignConnectionStatus = "1"; RightBearingSize = "3.5"; RightSeatCut = "3.5"; LeftBearingSize = "3.5"; LeftSeatCut = "3.5"; RightHeelHeight = "4.188"; LeftHeelHeight = "4.164"; Spacing = "24.0"; RightButtCut = "0.274870"; LeftButtCut = "0.250882"; RightHeelMatch = "-1"; LeftHeelMatch = "-1"; RightOverhangType = "0"; LeftOverhangType = "0"; LoadingFileName = "MATRIX"; GirderTrussIndicator = "1"; AtticVersatruss = "0"; UserLevel = "0"; SquareCutRoofWebs = "0"; TOWOptimizeNonApexVerts = "0"; TOWOptimizeApexVerts = "0"; TOWKeepVerticalsVertical = "0"; TOWDoNotMoveVerticals = "0"; OptimizeTurbo = "0"; RoofDetailMode = "0"; PosiRoof = "0"; TurboWebSquare = "0"; TurboWeb = "0"; TrussApplicationType = "0"; RightHeelReductionType = "1"; LeftHeelReductionType = "1"; UseAlternateSpacing = "0.0"; FirstAlternateSpacing = "0.0"; SecondAlternateSpacing = "0.0"; PiggybackFlag = "1"; PiggybackStyle = "0"; PiggybackGableFlag = "1"; PiggybackBottomChordOffset = "1.5"; PiggybackTailOffset = "0.25"; PiggybackTopChordButtCutFlag = "1"; PiggybackTopChordButtCutLength = "0.25"; PiggybackBottomChordButtCutFlag = "1"; PiggybackBottomChordButtCutLength = "0.25"; PiggybackMinimumStudLength = "6.0"; PiggybackStudSpacing = "16.0"; PiggybackGableStudLayout = "10736"; /* FloorSetupTrusses; RoofFloorPosi; UseMitekAutomatedMach; ShowTrimmableIcon; TrimmableEnd; UseFullMetalWebOnly; R) TrussDepth; NumberOfTopChords; NumberOfBottomChords; Bearing1Size; Bearing2Size; TopChordRibbon1; TopChordRibbon2; BottomChordRibbon1; BottomChordRibbon2; OR) NumberOfDetails; OR) DetailType; OR) XCoordinateLocation; NumberOfFullEndVertical; NumberOfShortEndVertical; TopRibbonDepth; BottomRibbonDepth; NumberOfEndVerticals; FireCutOffset; BearingSize; GapDistance; NumberOfTopPlies; BottomChordHoldBack; FortyFiveDegreeFirstWeb; WhichEnd; NumberOfWebsFortyFiveDegreeCase; LengthOfExtraTcPlies; MeasureFromTop; BlockLocation; MaterialListIndex; RecutBottomChordByNumberOfEndVerticals; DoubleTopChordLength; NumberOfVerticals; NumberOfDrops; SideMeasuredFrom; LapDistance; BearingCondition; NotUsed; WhichSideIsDropped; RibbonBlockWidthIfUsed; Width; Height; NumberOfLeftVerticals; NumberOfRightVerticals; ContinuousBottomChordFlag; AddAdditionalVerticalAtEndOfTopChord; HorizontalLengthOfFirstWeb; public List<TreWindZoneData> WindCCAutoRoofZones; public List<TreWindZoneData> NumWindCCAutoRoofZones; public List<TreWindZoneData> NumWindCCUsedRoofZones; public List<TreWindZoneData> NumWindMWFRS1stPerpAutoRoofZones; public List<TreWindZoneData> NumWindMWFRS1stPerpUsedRoofZones; public List<TreWindZoneData> NumWindMWFRS2ndPerpAutoRoofZones; public List<TreWindZoneData> NumWindMWFRS2ndPerpUsedRoofZones; public List<TreWindZoneData> NumWindMWFRS1stParaAutoRoofZones; public List<TreWindZoneData> NumWindMWFRS1stParaUsedRoofZones; public List<TreWindZoneData> NumWindMWFRS2ndParaAutoRoofZones; public List<TreWindZoneData> NumWindMWFRS2ndParaUsedRoofZones; public List<TreWindZoneData> NumWindMWFRS3ndParaAutoRoofZones; public List<TreWindZoneData> NumWindMWFRS3ndParaUsedRoofZones; public List<TreWindZoneData> NumWindMWFRS4ndParaAutoRoofZones; public List<TreWindZoneData> NumWindMWFRS4ndParaUsedRoofZones; */ MemberInfo = new TreMemberInfo(); PartNumber = ""; //Might be omitted TrussType = "0"; StudSpacing = "0.0"; OptimizeDuringAnalysis = "0"; WebEndCutType = "1"; TrussDifficultyFactor = "1.0"; DesignMethodSelected = "0"; BuildingCode = "2"; BuildingType = "0"; ContinuityCode = "0"; SheathTopChord = "1"; SheathBottomChord = "1"; DesignDeflection = "0"; MaximumPlies = "2"; MinimumPlies = "2"; MaximumBraces = "2"; TopChordPurlinSpacing = "0.0"; BottomChordPurlinSpacing = "0.0"; CheckStockLength = "1"; WetService = "0"; StepLumber = "0"; PinnedSplices = "0"; NumberOfPlies = "2"; BracingType = "0"; UseBoltHoles = "0"; BoltHoleDiameter = "0.0"; DeflnCompositeAction = "0"; ThirdPreferenceBearingDesignOption = "4"; SecondPreferenceBearingDesignOption = "2"; FirstPreferenceBearingDesignOption = "1"; UseVerticalMembersForMultiPlyNails = "1"; HeelDesignMethodSelected = "1"; CreepFactorWetLumber = "2.0"; CreepFactorDryLumber = "1.5"; BottomChordSheathingGroup = ""; FlatTopChordSheathingGroup = ""; TopChordSheathingGroup = ""; //TODO: Get from file /* TODO: Is index its own variable or 2nd line of var in source docs? BottomChordSheathingMaterial = "1"; Index = "3"; FlatTopChordSheathingMaterialIndex = "1"; TwoAnalogNodesForDado = "0"; */ MinSliderPercent = "10.0"; MinSliderLength = "18.0"; AnalogMethod = "0"; GussetRepairInventoryID = ""; //TODO: Get from file RepairSheathingMaterialIndex = "8"; GussetRepairOption3 = "3"; GussetRepairOption2 = "2"; GussetRepairOption1 = "1"; GussetRepairDoubleLayer = "1"; GussetRepairIncrementMaterial = "1"; GussetRepairCheckGrainDirection = "1"; BearingMaterialIndex = "5"; BearingMaterialConsiderList = ""; //TODO: Get from file NailTrussSymmetrically = "0"; TrussSheathingInventoryID = ""; //TODO: Get from file TrussSheathingMaterial = "7"; PlyToPlyCompositeDesign = "1"; BearingSupportDepth = "1.5"; UseBearingSizeKzpFactor = "0"; IgnoreFlatRoofPart9Factor = "0"; BracingMaterialFixity = "0"; LatBracingStartMaterial = ""; //TODO: Get from file LatBracingMaterialInventoryID = ""; //TODO: Get from file ForintekTrussOverride = "0"; UseModifyBendingCapacityFactor = "1"; BearingCapacity = "0.0"; FirstAndThirdLength = "12.0"; Span = "506.0004"; MaxSpan = "506.0004"; PriceQuantity = "0"; AdditionalTrussInfoQuantity = "2"; //TODO: Find in documentation??? //QuantityForMDSM = ; //TODO: Find in file //PliesOnGirder; //TODO: Find in file //PliesOnTruss; //TODO: Find in file //NoOfGirders; //TODO: Find in file //MDSMUsed; //TODO: Find in file Ply = "2"; /* TopChordLiveLoad; TopChordDeadLoad; BottomChordLiveLoad; BottomChordDeadLoad; AdditionalTrussInfoSpacing; LeftOverhang; RightOverhang; AdditionalTrussInfoLeftButtCut; AdditionalTrussInfoRightButtCut; AdditionalTrussInfoLeftHeelHeight; AdditionalTrussInfoRightHeelHeight; AdditionalTrussInfoLeftSeatCut; AdditionalTrussInfoRightSeatCut; TrussHeight; LeftHeelToPeak; RightHeelToPeak; MaxTopChordCSI; MaxBottomChordCSI; SSI; Girder; SpanCarried; TotalBearings; LeftStub; RightStub; VerticalDeflection; VerticalLLDeflection; VerticalTLDeflection; HorizontalDeflection; VerticalLLDeflectionLocation; VerticalTLDeflectionLocation; HorizontalDeflectionLocation; LeftCantilever; RightCantilever; Gable; RegularGable; StructuralGable; LouveredGable; GableStudSpacing; TopChordLumber; BottomChordLumber; Valley; NumberTopChordNailRows; TopChordInchesOnCenter; NumberBottomChordNailRows; BottomChordInchesOnCenter; NumberWebNailRows; WebInchesOnCenter; TotalChords; TotalWebs; */ Wedges = "0"; Sliders = "0"; /* Blocks; NumberOfBlockSplices; */ Date = "7/31/96"; /* DifficultyFactor; Warning; TestedTruss; CornerJoints; Reaction1; Reaction2; Reaction3; Reaction4; Reaction5; Reaction6; Reaction7; MaxHorz1; MaxUplift1; MaxUplift2; MaxUplift3; MaxUplift4; UseToeNails; */ RealSpliceBlocksSaved = "1"; /* ComponentLoads; RepStressStatus; GID; */ TotalBoardFeet = "264.00"; TrussWeight = "564"; TotalPlateArea = "0.00"; NumberOfPlates = "0"; NumberOfPlatesSetup = "0"; Batched = "0"; Printed = "0"; TopChordSegments = "3"; TopChordPanels = "3 6 2"; TotalOfTopChordPanels = "11"; TopChordSlopes = "26.57 0.00 -26.57"; BottomChordSegments = "1"; BottomChordPanels = "10"; TotalOfBottomChordPanels = "10"; BottomChordSlopes = "0.00"; HeelSolved = "0"; CantileverSingleCut = "1"; CantileverToBearingEdge = "0"; RightEndVerticalThroughBC = "0"; LeftEndVerticalThroughBC = "0"; DefaultReinforcingMember = "6109"; LeftHeelReinforcementType = "6101"; RightHeelReinforcementType = "6101"; LeftHeelMaterial = "1"; RightHeelMaterial = "1"; SingleCutBottomChord = "0"; LeftSliderLength = "30.0"; RightSliderLength = "30.0"; LeftHeelLumberID = "0"; RightHeelLumberID = "0"; Dummy1 = "0"; Dummy2 = "0"; LeftWedgeMaterialIndex = "-1"; RightWedgeMaterialIndex = "-1"; LeftSliderLengthMultiPoint = "30.0"; RightSliderLengthMultiPoint = "30.0"; LeftSliderIncrementValue = "6.0"; RightSliderIncrementValue = "6.0"; LeftSliderIncreasePercentage = "50.0"; RightSliderIncreasePercentage = "50.0"; LeftSliderIncreasedLengthOrPct = "1"; RightSliderIncreasedLengthOrPct = "1"; LeftSliderIncrementalIncrease = "1"; RightSliderIncrementalIncrease = "1"; GlobalChangeSliderLength = "0"; EndVerticalUseWebLumber = "1"; LeftHeelType = "0"; RightHeelType = "0"; LeftHeelSolveReason = "0"; RightHeelSolveReason = "0"; LeftHeelChanged = "0"; RightHeelChanged = "0"; LeftWedgeSize = "11.25"; RightWedgeSize = "0.0"; LeftHeelPreviousGroup = "-1"; RightHeelPreviousGroup = "-1"; LeftHeelPreviousMaterial = "-1"; RightHeelPreviousMaterial = "-1"; LeftHeelPreviousMaterialID = "-1"; RightHeelPreviousMaterialID = "-1"; LeftCantileverWebOption = "0"; RightCantileverWebOptions = "0"; LeftStubLegDownFlag = "0"; LeftStubDistance = "0.0"; RightStubLegDownFlag = "0"; RightStubDistance = "0.0"; CuttingInfo = new List<TreCuttingInfo>(); HangerOptions = new List<HangerOption>(); //DOLSDeadOnly = ; //SeismicDOL; //GeometryOption; //LCDeleted; LoadCases = new List<TreLoadCaseInfo>(); //LiveLoads = new TreLoadInformation(); //TotalLoad = new TreLoadInformation(); //WindLive = new TreLoadInformation(); //WindTotal = new TreLoadInformation(); //LayoutLoadDistributionMethod =; BasicLoadInfo = new BasicLoad(); //DragLoadCases; //TrussApp; CountryBasicLoadInfo = new CountryBasicLoad(); SnowLoadInfo = new BasicLoadSnow(); WindLoadInfo = new BasicLoadWind(); FloorLoadInfo = new BasicLoadFloor(); AdditionalLumberInfo = new List<TreLumberInfo>(); //TS; //BS; LumberPullList = new List<TreLumberPullList>(); //TotalSawUnits; //TotalFabUnits; //TotalOtherUnits; DefaultMaterials = new List<TreMaterial>(); DefaultMaterialsMap = new List<TreMaterialMap>(); ShopNotes = "<S>\n<E>"; PlateInventoryID = "0"; PlatingInfo = new List<TrePlatingInfo>(); NumberOfReactionCases = "0"; TreReactions = new List<TreReactionInfo>(); SheathingInfo = new List<TreSheathing>(); MasterTruss = "T1.TRE"; AlignWebs = "1"; AlignSplices = "1"; GableStudAllPlies = "1"; GableStudPly = "1"; GableStudPlies = "1, 2"; FillerAllPlies = "1"; FillerPly = "1"; FillerPlies = "4"; LeftByDistance = "1"; LeftMaintainSeatCut = "1"; LeftLegDown = "0"; LeftMaintainOverhangs = "0"; LeftBearingHeight = "0.0"; LeftDistance = "42.0"; RightByDistance = "1"; RightMaintainSeatCut = "1"; RightLegDown = "0"; RightMaintainOverhangs = "0"; RightBearingHeight = "0.0"; RightDistance = "0.0"; ChordEndFixityForMatrix = "2"; AutoFixUnstables = "1"; MinSpanForFixedPitchBreaksOrHeels = "108"; NumberOfEndFixitiesChanged = "4"; //WallLength = ; ApplyDropToAllIndicator = "0"; MoveVertWebsTrussIndicator = "0"; CornerRafterIndicator = "0"; CaliforniaHipFrontAngle = "0.0"; CaliforniaHipCornerThickness = "1.5"; DropHipThickness = "1.5"; DropHipAngle = "0.558"; DropHipIndicator = "0"; CaliforniaHipExtension1 = "0.0"; CaliforniaHipExtension2 = "0.0"; CaliforniaHipIndicator = "0"; RHPoint = "5"; NumberOfProfile = "10"; BearingPoints = new List<TrePoint>(); NumberOfSegments = "0"; NumberOfPanelsForSegmentAtIndex = new List<string>(); NumberOfCalHipExtensions = "0"; HipExtensions = new List<TreHipExension>(); NumberOfDropTops = "0"; DropTops = new List<TreDropTop>(); }
private void _parseMemberInfo() { TreMemberInfo treMemberInfo = new TreMemberInfo(); treMemberInfo.TreMembers = new List<TreMember>(); // The line numbers should not be understood as concrete, but as pointers to the line specified in the Mitek documentation currentLine = 107; _parseLine25(treMemberInfo); _parseLine26(treMemberInfo); // Set truss members for (int i = 0; i < Convert.ToInt32(treMemberInfo.NumberOfMembers); i++) { TreMember treMember = new TreMember(); // Parse the five lines that make up a truss member // The line numbers should not be understood as concrete, but as pointers to the line specified in the Mitek documentation _parseLine27(treMember); _parseLine28(treMember); _parseLine31(treMember); _parseLine32(treMember); _parseLine33(treMember); treMemberInfo.TreMembers.Add(treMember); } }
private void _parseLine25(TreMemberInfo treMemberInfo) { string[] line25 = Contents[currentLine].Trim().Split(','); if (line25.Length < 4) { throw new Exception("Problem while parsing Member Info in TRE file (first line in Member Info section): too few items"); } treMemberInfo.TrussHighestVerticalPoint = line25[0]; treMemberInfo.TopChordLumberSize = line25[1]; treMemberInfo.BottomChordLumberSize = line25[2]; treMemberInfo.WebLumberSize = line25[3]; currentLine++; }
private void _parseLine26(TreMemberInfo treMemberInfo) { // Parse line 26 (see MiTek's documentation file for the TRE file format) // Line 26 == Contents[_memberInfoIndex + 2] string[] line26 = Contents[currentLine].Trim().Split(' '); if (line26.Length < 12) { throw new Exception("Problem while parsing Member Info in TRE file (second line in Member Info section): too few items"); } treMemberInfo.NumberOfMembers = line26[0]; treMemberInfo.OriginLineMemberNumber = line26[1]; treMemberInfo.AlwaysSetTo0 = line26[2]; treMemberInfo.InitialReferenceLineV0 = line26[3]; treMemberInfo.InitialReferenceLineH0 = line26[4]; treMemberInfo.InitialReferenceLineV99 = line26[5]; treMemberInfo.InitialReferenceLineOHL = line26[6]; treMemberInfo.InitialReferenceLineOHR = line26[7]; treMemberInfo.InitialReferenceLineSCL = line26[8]; treMemberInfo.InitialReferenceLineSCR = line26[9]; treMemberInfo.InitialReferenceLineOH1 = line26[10]; treMemberInfo.InitialReferenceLineOH2 = line26[11]; currentLine++; }
private void _parseMemberInfo() { while(Contents[currentLine].Contains("MEMBER INFO") == false) { currentLine++; } TreMemberInfo treMemberInfo = new TreMemberInfo(); treMemberInfo.TreMembers = new List<TreMember>(); // The line numbers should not be understood as concrete, but as pointers to the line specified in the Mitek documentation currentLine++; _parseLine25(treMemberInfo); _parseLine26(treMemberInfo); // Set truss members for (int i = 0; i < Convert.ToInt32(treMemberInfo.NumberOfMembers); i++) { TreMember treMember = new TreMember(); // Parse the five lines that make up a truss member // The line numbers should not be understood as concrete, but as pointers to the line specified in the Mitek documentation _parseLine27(treMember); _parseLine28(treMember); _parseLine31(treMember); _parseLine32(treMember); _parseLine33(treMember); treMemberInfo.TreMembers.Add(treMember); } this.MemberInfo = treMemberInfo; }