internal IfcStructuralLoadGroup(IfcStructuralAnalysisModel sm, string name, List<double> factors, List<IfcStructuralLoadCase> cases, bool ULS) : base(sm.mDatabase, name) { mPredefinedType = IfcLoadGroupTypeEnum.LOAD_COMBINATION; mLoadGroupFor.Add(sm); sm.addLoadGroup(this); mPurpose = (ULS ? "ULS" : "SLS"); if (factors != null && factors.Count > 0) { double prevfactor = factors[0]; List<IfcObjectDefinition> ods = new List<IfcObjectDefinition>(); for (int icounter = 0; icounter < cases.Count; icounter++) { double factor = (factors.Count > icounter ? factors[icounter] : prevfactor); if (Math.Abs(factor - prevfactor) > mDatabase.Tolerance) { new IfcRelAssignsToGroupByFactor(this, ods, prevfactor); ods = new List<IfcObjectDefinition>(); prevfactor = factor; } ods.Add(cases[icounter]); } new IfcRelAssignsToGroupByFactor(this, ods, prevfactor); } else { new IfcRelAssignsToGroupByFactor(this, cases.ConvertAll(x => x as IfcObjectDefinition), 1); } }
public IfcStructuralLoadCase(IfcStructuralAnalysisModel sm, string name, IfcActionTypeEnum action, IfcActionSourceTypeEnum source, double coeff, string purpose) : base(sm, name, IfcLoadGroupTypeEnum.LOAD_CASE, action, source, coeff, purpose) { new IfcRelAssignsToGroup(this) { Name = Name + " Actions", Description = Description }; }
internal IfcStructuralLoadGroup(IfcStructuralAnalysisModel sm, string name, IfcLoadGroupTypeEnum type, IfcActionTypeEnum action, IfcActionSourceTypeEnum source, double coeff, string purpose) : base(sm.mDatabase, name) { mLoadGroupFor.Add(sm); sm.addLoadGroup(this); mPredefinedType = type; mActionType = action; mActionSource = source; mCoefficient = coeff; if (!string.IsNullOrEmpty(purpose)) mPurpose = purpose; }
protected IfcStructuralItem(IfcStructuralAnalysisModel sm, int id) : base(sm.mDatabase) { sm.mIsGroupedBy[0].assign(this); if (string.IsNullOrEmpty(Name)) Name = id.ToString(); else if (!string.IsNullOrEmpty(Description)) Description = id.ToString(); mID = id; mDatabase.mContext.setStructuralUnits(); }
internal IfcStructuralConnection(IfcStructuralAnalysisModel sm, int id) : base(sm, id) { }
internal static void parseFields(IfcStructuralAnalysisModel c, List<string> arrFields, ref int ipos) { IfcSystem.parseFields(c, arrFields, ref ipos); c.mPredefinedType = (IfcAnalysisModelTypeEnum)Enum.Parse(typeof(IfcAnalysisModelTypeEnum), arrFields[ipos++].Replace(".", "")); c.mOrientationOf2DPlane = ParserSTEP.ParseLink(arrFields[ipos++]); string str = arrFields[ipos++]; if (str != "$") c.mLoadedBy = ParserSTEP.SplitListLinks(str); str = arrFields[ipos++]; if (str != "$") c.mHasResults = ParserSTEP.SplitListLinks(str); }
internal new static IfcStructuralAnalysisModel Parse(string strDef) { IfcStructuralAnalysisModel m = new IfcStructuralAnalysisModel(); int ipos = 0; parseFields(m, ParserSTEP.SplitLineFields(strDef), ref ipos); return m; }
internal IfcStructuralAnalysisModel(IfcStructuralAnalysisModel i) : base(i) { mPredefinedType = i.mPredefinedType; mOrientationOf2DPlane = i.mOrientationOf2DPlane; mLoadedBy = new List<int>(i.mLoadedBy.ToArray()); mHasResults = new List<int>(i.mHasResults.ToArray()); }