static private GetKeyWord ( string line, int &ifcID, string &keyword, string &def ) : void | ||
line | string | |
ifcID | int | |
keyword | string | |
def | string | |
return | void |
internal static IfcColour parseColour(string str) { string kw = "", def = ""; int id = 0; ParserIfc.GetKeyWord(str, out id, out kw, out def); if (string.IsNullOrEmpty(kw)) { return(null); } if (string.Compare(kw, "IFCCOLOURRGB", false) == 0) { return(IfcColourRgb.Parse(str)); } if (string.Compare(kw, "IFCDRAUGHTINGPREDEFINEDCOLOUR", false) == 0) { return(IfcDraughtingPreDefinedColour.Parse(str)); } return(null); }
internal static IfcColourOrFactor parseColourOrFactor(string str) { if (str[0] == '#') { return(null); } string kw = "", def = ""; int id = 0; ParserIfc.GetKeyWord(str, out id, out kw, out def); if (string.IsNullOrEmpty(kw)) { return(null); } if (string.Compare(kw, "IFCCOLOURRGB", false) == 0) { return(IfcColourRgb.Parse(str)); } return(new IfcNormalisedRatioMeasure(ParserSTEP.ParseDouble(def))); }
internal BaseClassIfc InterpretLine(string line) { if (line.StartsWith("ISO")) { return(null); } string ts = line.Trim().Replace(" ", ""); if (ts.StartsWith("FILE_SCHEMA(('IFC2X4", true, System.Globalization.CultureInfo.CurrentCulture) || ts.StartsWith("FILE_SCHEMA(('IFC4", true, System.Globalization.CultureInfo.CurrentCulture)) { mRelease = ReleaseVersion.IFC4; return(null); } BaseClassIfc result = ParserIfc.ParseLine(line, mRelease); if (result == null) { int ifcID = 0; string kw = "", str = ""; ParserIfc.GetKeyWord(line, out ifcID, out kw, out str); if (string.IsNullOrEmpty(kw)) { return(null); } result = new BaseClassIfc(ifcID, kw, str); } if (result == null) { return(null); } IfcApplication application = result as IfcApplication; if (application != null) { IfcApplication ea = mFactory.mApplication; if (ea != null && ea.mVersion == application.mVersion) { if (string.Compare(ea.ApplicationFullName, application.ApplicationFullName, true) == 0) { if (string.Compare(ea.mApplicationIdentifier, application.mApplicationIdentifier) == 0) { mIfcObjects[ea.mIndex] = null; mFactory.mApplication = application; mFactory.OwnerHistory(IfcChangeActionEnum.ADDED).mLastModifyingApplication = application.mIndex; if (mFactory.mOwnerHistoryModify != null) { mFactory.mOwnerHistoryModify.mLastModifyingApplication = application.mIndex; } } } } } IfcContext context = result as IfcContext; if (context != null) { mContext = context; } IfcGeometricRepresentationContext geometricRepresentationContext = result as IfcGeometricRepresentationContext; if (geometricRepresentationContext != null) { if (string.Compare(geometricRepresentationContext.mContextType, "Plan", true) != 0) { mFactory.mGeomRepContxt = geometricRepresentationContext; } if (geometricRepresentationContext.mPrecision > 1e-6) { Tolerance = geometricRepresentationContext.mPrecision; } } IfcSIUnit unit = result as IfcSIUnit; if (unit != null) { if (unit.Name == IfcSIUnitName.METRE && unit.Prefix == IfcSIPrefix.NONE) { mFactory.mSILength = unit; } else if (unit.Name == IfcSIUnitName.SQUARE_METRE && unit.Prefix == IfcSIPrefix.NONE) { mFactory.mSIArea = unit; } else if (unit.Name == IfcSIUnitName.CUBIC_METRE && unit.Prefix == IfcSIPrefix.NONE) { mFactory.mSIVolume = unit; } } this[result.mIndex] = result; //IfcWorkPlan workPlan = result as IfcWorkPlan; //if(workPlan != null) //{ // mWorkPlans.Add(workPlan); // return workPlan; //} return(result); }