This commit is contained in:
Jon Mirtschin 2022-11-22 19:54:52 +11:00
Родитель 359ae62b53
Коммит 09a0f173b5
34 изменённых файлов: 838 добавлений и 777 удалений

Просмотреть файл

@ -204,6 +204,21 @@ namespace GeometryGym.Ifc
return ReleaseVersion.IFC4X3;
return ReleaseVersion.IFC4A2;
}
internal override void ProcessFileDescription()
{
base.ProcessFileDescription();
foreach (string description in OriginatingFileInformation.FileDescriptions)
{
string modelView = description.ToLower();
if (modelView.Contains("coordination"))
ModelView = ModelView.Ifc2x3Coordination;
else if (modelView.Contains("referenceview"))
ModelView = ModelView.Ifc4Reference;
else if (modelView.Contains("designtransfer"))
ModelView = ModelView.Ifc4DesignTransfer;
}
}
public double Tolerance
{
get { return mModelTolerance; }
@ -462,6 +477,8 @@ namespace GeometryGym.Ifc
return null;
}
}
public class DuplicateMapping
{
private Dictionary<string, int> mDictionary = new Dictionary<string, int>();
@ -2482,13 +2499,13 @@ namespace GeometryGym.Ifc
if(obj is IfcRoot root)
root.GlobalId = ParserSTEP.StripString(def, ref pos, def.Length);
else if(obj is IfcProperty property)
property.Name = ParserIfc.Decode(ParserSTEP.StripString(def, ref pos, def.Length));
property.Name = ParserSTEP.Decode(ParserSTEP.StripString(def, ref pos, def.Length));
else if(obj is IfcPropertyTemplate propertyTemplate)
propertyTemplate.Name = ParserIfc.Decode(ParserSTEP.StripString(def, ref pos, def.Length));
propertyTemplate.Name = ParserSTEP.Decode(ParserSTEP.StripString(def, ref pos, def.Length));
else if(obj is IfcPhysicalQuantity quantity)
quantity.Name = ParserIfc.Decode(ParserSTEP.StripString(def, ref pos, def.Length));
quantity.Name = ParserSTEP.Decode(ParserSTEP.StripString(def, ref pos, def.Length));
else if(obj is IfcMaterialConstituent materialConstituent)
materialConstituent.Name = ParserIfc.Decode(ParserSTEP.StripString(def, ref pos, def.Length));
materialConstituent.Name = ParserSTEP.Decode(ParserSTEP.StripString(def, ref pos, def.Length));
}
}
catch (Exception) { }
@ -2509,86 +2526,47 @@ namespace GeometryGym.Ifc
}
internal bool processFileHeaderLine(string line)
{
string ts = line.Replace(" ", "");
if (ts.StartsWith("FILE_SCHEMA(('IFC2X4", true, CultureInfo.CurrentCulture) ||
ts.StartsWith("FILE_SCHEMA(('IFC4", true, CultureInfo.CurrentCulture))
string lineNoSpaces = ParserSTEP.StripComments(line).Replace(" ", "");
if(lineNoSpaces.StartsWith("FILE_SCHEMA"))
{
if (ts.StartsWith("FILE_SCHEMA(('IFC4X1", true, CultureInfo.CurrentCulture))
mDatabase.Release = ReleaseVersion.IFC4X1;
else if (ts.StartsWith("FILE_SCHEMA(('IFC4X2", true, CultureInfo.CurrentCulture))
mDatabase.Release = ReleaseVersion.IFC4X2;
else if (ts.StartsWith("FILE_SCHEMA(('IFC4X3_RC1", true, CultureInfo.CurrentCulture) ||
ts.StartsWith("FILE_SCHEMA(('IFC4X3_RC1", true, CultureInfo.CurrentCulture))
mDatabase.Release = ReleaseVersion.IFC4X3_RC1;
else if (ts.StartsWith("FILE_SCHEMA(('IFC4X3_RC2", true, CultureInfo.CurrentCulture))
mDatabase.Release = ReleaseVersion.IFC4X3_RC2;
else if (ts.StartsWith("FILE_SCHEMA(('IFC4X3_RC3", true, CultureInfo.CurrentCulture))
mDatabase.Release = ReleaseVersion.IFC4X3_RC3;
else if (ts.StartsWith("FILE_SCHEMA(('IFC4X3_RC4", true, CultureInfo.CurrentCulture))
mDatabase.Release = ReleaseVersion.IFC4X3_RC4;
else if (ts.StartsWith("FILE_SCHEMA(('IFC4X3", true, CultureInfo.CurrentCulture))
mDatabase.Release = ReleaseVersion.IFC4X3;
else
mDatabase.Release = ReleaseVersion.IFC4;
if (mDatabase.Release > ReleaseVersion.IFC2x3)
if (lineNoSpaces.StartsWith("FILE_SCHEMA(('IFC2X4", true, CultureInfo.CurrentCulture) ||
lineNoSpaces.StartsWith("FILE_SCHEMA(('IFC4", true, CultureInfo.CurrentCulture))
{
if (mDatabase.Release == ReleaseVersion.IFC4X1)
mDatabase.ModelView = ModelView.Ifc4X1NotAssigned;
else if (mDatabase.Release == ReleaseVersion.IFC4X2)
mDatabase.ModelView = ModelView.Ifc4X2NotAssigned;
else if(mDatabase.Release > ReleaseVersion.IFC4X2)
if (lineNoSpaces.StartsWith("FILE_SCHEMA(('IFC4X1", true, CultureInfo.CurrentCulture))
mDatabase.Release = ReleaseVersion.IFC4X1;
else if (lineNoSpaces.StartsWith("FILE_SCHEMA(('IFC4X2", true, CultureInfo.CurrentCulture))
mDatabase.Release = ReleaseVersion.IFC4X2;
else if (lineNoSpaces.StartsWith("FILE_SCHEMA(('IFC4X3_RC1", true, CultureInfo.CurrentCulture) ||
lineNoSpaces.StartsWith("FILE_SCHEMA(('IFC4X3_RC1", true, CultureInfo.CurrentCulture))
mDatabase.Release = ReleaseVersion.IFC4X3_RC1;
else if (lineNoSpaces.StartsWith("FILE_SCHEMA(('IFC4X3_RC2", true, CultureInfo.CurrentCulture))
mDatabase.Release = ReleaseVersion.IFC4X3_RC2;
else if (lineNoSpaces.StartsWith("FILE_SCHEMA(('IFC4X3_RC3", true, CultureInfo.CurrentCulture))
mDatabase.Release = ReleaseVersion.IFC4X3_RC3;
else if (lineNoSpaces.StartsWith("FILE_SCHEMA(('IFC4X3_RC4", true, CultureInfo.CurrentCulture))
mDatabase.Release = ReleaseVersion.IFC4X3_RC4;
else if (lineNoSpaces.StartsWith("FILE_SCHEMA(('IFC4X3", true, CultureInfo.CurrentCulture))
mDatabase.Release = ReleaseVersion.IFC4X3;
else
mDatabase.Release = ReleaseVersion.IFC4;
if (mDatabase.Release > ReleaseVersion.IFC2x3)
{
mDatabase.ModelView = ModelView.Ifc4X3NotAssigned;
}
else if (mDatabase.ModelView == ModelView.Ifc2x3Coordination || mDatabase.ModelView == ModelView.Ifc2x3NotAssigned)
mDatabase.ModelView = ModelView.Ifc4NotAssigned;
}
return true;
}
if (ts.StartsWith("FILE_DESCRIPTION", true, System.Globalization.CultureInfo.CurrentCulture))
{
int pos1 = ts.IndexOf('('), pos2 = ts.LastIndexOf(')');
if (pos1 > 1 && pos2 > pos1)
{
string str = ts.Substring(pos1 + 1, pos2 - pos1 - 2);
List<string> fields = ParserSTEP.SplitLineFields(str);
if(fields.Count > 0)
{
string modelView = fields[0].ToLower();
if (modelView.Contains("coordination"))
mDatabase.ModelView = ModelView.Ifc2x3Coordination;
else if (modelView.Contains("referenceview"))
mDatabase.ModelView = ModelView.Ifc4Reference;
else if (modelView.Contains("designtransfer"))
mDatabase.ModelView = ModelView.Ifc4DesignTransfer;
}
}
return true;
}
if (ts.StartsWith("FILE_NAME", true, System.Globalization.CultureInfo.CurrentCulture))
{
try
{
int pos1 = ts.IndexOf('('), pos2 = ts.LastIndexOf(')');
if (pos1 > 1 && pos2 > pos1)
{
string str = ts.Substring(pos1 + 1, pos2 - pos1 - 2);
List<string> fields = ParserSTEP.SplitLineFields(str);
if (fields.Count > 1)
if (mDatabase.Release == ReleaseVersion.IFC4X1)
mDatabase.ModelView = ModelView.Ifc4X1NotAssigned;
else if (mDatabase.Release == ReleaseVersion.IFC4X2)
mDatabase.ModelView = ModelView.Ifc4X2NotAssigned;
else if (mDatabase.Release > ReleaseVersion.IFC4X2)
{
string field = ParserSTEP.StripComments(fields[1].Replace("'", "").Trim());
DateTime dateTime = DateTime.MinValue;
if (DateTime.TryParse(field, out dateTime))
mDatabase.TimeStamp = dateTime;
if(fields.Count > 5)
mDatabase.OriginatingSystem = ParserSTEP.StripComments(fields[5].Replace("'", ""));
mDatabase.ModelView = ModelView.Ifc4X3NotAssigned;
}
else if (mDatabase.ModelView == ModelView.Ifc2x3Coordination || mDatabase.ModelView == ModelView.Ifc2x3NotAssigned)
mDatabase.ModelView = ModelView.Ifc4NotAssigned;
}
return true;
}
catch { }
return true;
}
return false;
return mDatabase.processFileHeaderLine(line);
}
@ -2743,27 +2721,27 @@ namespace GeometryGym.Ifc
lines.Add("ISO-10303-21;\r\nHEADER;\r\nFILE_DESCRIPTION(('ViewDefinition [" + modelView + "]'),'2;1');");
lines.Add("FILE_NAME(");
lines.Add("/* name */ '" + ParserIfc.Encode(fileName) + "',");
lines.Add("/* name */ '" + ParserSTEP.Encode(fileName) + "',");
DateTime now = DateTime.Now;
lines.Add("/* time_stamp */ '" + now.Year + "-" + (now.Month < 10 ? "0" : "") + now.Month + "-" + (now.Day < 10 ? "0" : "") + now.Day + "T" + (now.Hour < 10 ? "0" : "") + now.Hour + ":" + (now.Minute < 10 ? "0" : "") + now.Minute + ":" + (now.Second < 10 ? "0" : "") + now.Second + "',");
IfcPerson person = mDatabase.Factory.mPerson;
string authorName = person == null ? mDatabase.Factory.PersonIdentification() : person.Name;
lines.Add("/* author */ ('" + ParserIfc.Encode(authorName) + "'),");
lines.Add("/* author */ ('" + ParserSTEP.Encode(authorName) + "'),");
string organizationName = IfcOrganization.Organization;
IfcOrganization organization = mDatabase.Factory.Organization;
if (organization != null)
organizationName = organization.Name;
lines.Add("/* organization */ ('" + ParserIfc.Encode(organizationName) + "'),");
lines.Add("/* preprocessor_version */ '" + ParserIfc.Encode(mDatabase.Factory.ToolkitName) + "',");
lines.Add("/* originating_system */ '" + ParserIfc.Encode(mDatabase.Factory.ApplicationFullName) + "',");
lines.Add("/* organization */ ('" + ParserSTEP.Encode(organizationName) + "'),");
lines.Add("/* preprocessor_version */ '" + ParserSTEP.Encode(mDatabase.Factory.ToolkitName) + "',");
lines.Add("/* originating_system */ '" + ParserSTEP.Encode(mDatabase.Factory.ApplicationFullName) + "',");
lines.Add("/* authorization */ '" + (string.IsNullOrEmpty(mDatabase.Authorization) ? "None" : ParserIfc.Encode(mDatabase.Authorization)) + "'");
lines.Add("/* authorization */ '" + (string.IsNullOrEmpty(mDatabase.Authorization) ? "None" : ParserSTEP.Encode(mDatabase.Authorization)) + "'");
if(mDatabase.Comments.Count > 0)
{
foreach (string comment in mDatabase.Comments)
{
if(!string.IsNullOrEmpty(comment))
lines.Add("/* " + ParserIfc.Encode(comment) + "*/");
lines.Add("/* " + ParserSTEP.Encode(comment) + "*/");
}
}
lines.Add(");");

Просмотреть файл

@ -1459,9 +1459,9 @@ namespace GeometryGym.Ifc
internal string mApplicationIdentifier;// : IfcIdentifier;
public IfcOrganization ApplicationDeveloper { get { return mApplicationDeveloper; } set { mApplicationDeveloper = value; } }
public string Version { get { return mVersion; } set { mVersion = ParserIfc.Encode(value); } }
public string ApplicationFullName { get { return ParserIfc.Decode(mApplicationFullName); } set { mApplicationFullName = ParserIfc.Encode(value); } }
public string ApplicationIdentifier { get { return ParserIfc.Decode(mApplicationIdentifier); } set { mApplicationIdentifier = ParserIfc.Encode(value); } }
public string Version { get { return mVersion; } set { mVersion = ParserSTEP.Encode(value); } }
public string ApplicationFullName { get { return ParserSTEP.Decode(mApplicationFullName); } set { mApplicationFullName = ParserSTEP.Encode(value); } }
public string ApplicationIdentifier { get { return ParserSTEP.Decode(mApplicationIdentifier); } set { mApplicationIdentifier = ParserSTEP.Encode(value); } }
public string Name { get { return ApplicationFullName; } set { ApplicationFullName = value; } }

Просмотреть файл

@ -506,7 +506,7 @@ namespace GeometryGym.Ifc
public string Name { get { return mName; } set { mName = (string.IsNullOrEmpty(value) ? "Unknown" : value); } }
public string Description { get { return mDescription; } set { mDescription = value; } }
public string Specification { get { return mSpecification; } set { mSpecification = value; } }
public List<string> ReferenceTokens { get { return mReferenceTokens.ConvertAll(x => ParserIfc.Decode(x)); } }
public List<string> ReferenceTokens { get { return mReferenceTokens.ConvertAll(x => ParserSTEP.Decode(x)); } }
public SET<IfcRelAssociatesClassification> ClassificationForObjects { get { return mClassificationForObjects; } }
public SET<IfcClassificationReference> HasReferences { get { return mHasReferences; } }
@ -1658,7 +1658,7 @@ namespace GeometryGym.Ifc
public SET<IfcExternalReferenceRelationship> HasExternalReference { get { return mHasExternalReference; } }
public SET<IfcResourceConstraintRelationship> HasConstraintRelationships { get { return mHasConstraintRelationships; } }
public string Name { get { return ParserIfc.Decode(mName); } set { mName = ParserIfc.Encode(value); } }
public string Name { get { return ParserSTEP.Decode(mName); } set { mName = ParserSTEP.Encode(value); } }
public IfcMeasureWithUnit ConversionFactor { get { return mConversionFactor; } set { mConversionFactor = value; } }
internal IfcConversionBasedUnit() : base() { }

Просмотреть файл

@ -154,7 +154,7 @@ namespace GeometryGym.Ifc
public IfcFacetedBrepWithVoids(IfcClosedShell s, IEnumerable<IfcClosedShell> voids) : base(s) { mVoids.AddRange(voids); }
}
[Serializable]
public partial class IfcFacility : IfcSpatialStructureElement //IFC4x2 //SUPERTYPE OF(IfcBridge, IfcBuilding)
public partial class IfcFacility : IfcSpatialStructureElement //SUPERTYPE OF(IfcBridge , IfcBuilding , IfcMarineFacility , IfcRailway , IfcRoad)
{
internal IfcFacility() : base() { }
public IfcFacility(DatabaseIfc db) : base(db.Factory.RootPlacement) { }

Просмотреть файл

@ -352,7 +352,7 @@ namespace GeometryGym.Ifc
public abstract IfcMeasureValue MeasureValue { get; }
}
[Serializable]
[Serializable, VersionAdded(ReleaseVersion.IFC2x2)]
public partial class IfcPile : IfcDeepFoundation
{
private IfcPileTypeEnum mPredefinedType = IfcPileTypeEnum.NOTDEFINED;// OPTIONAL : IfcPileTypeEnum;
@ -510,6 +510,9 @@ namespace GeometryGym.Ifc
[Serializable]
public abstract partial class IfcPoint : IfcGeometricRepresentationItem, IfcGeometricSetSelect, IfcPointOrVertexPoint /*ABSTRACT SUPERTYPE OF (ONEOF (IfcCartesianPoint ,IfcPointOnCurve ,IfcPointOnSurface))*/
{
//INVERSE
internal IfcVertexPoint mOfVertex = null; // GG attribute
protected IfcPoint() : base() { }
protected IfcPoint(DatabaseIfc db) : base(db) { }
protected IfcPoint(DatabaseIfc db, IfcPoint p, DuplicateOptions options) : base(db, p, options) { }
@ -1658,7 +1661,7 @@ namespace GeometryGym.Ifc
internal string mMapZone = "";// : OPTIONAL IfcIdentifier
internal IfcNamedUnit mMapUnit = null;// : OPTIONAL IfcNamedUnit;
public string MapProjection { get { return mMapProjection; } set { mMapProjection = ParserIfc.Encode(value); } }
public string MapProjection { get { return mMapProjection; } set { mMapProjection = value; } }
public string MapZone { get { return mMapZone; } set { mMapZone = value; } }
public IfcNamedUnit MapUnit { get { return mMapUnit; } set { mMapUnit = value; } }
@ -1976,7 +1979,7 @@ namespace GeometryGym.Ifc
internal LIST<IfcValue> mEnumerationValues = new LIST<IfcValue>();// : LIST [1:?] OF UNIQUE IfcValue
internal IfcUnit mUnit; // : OPTIONAL IfcUnit;
public string Name { get { return ParserIfc.Decode(mName); } set { mName = (string.IsNullOrEmpty(value) ? "Unknown" : ParserIfc.Encode(value)); } }
public string Name { get { return mName; } set { mName = (string.IsNullOrEmpty(value) ? "Unknown" : value); } }
public LIST<IfcValue> EnumerationValues { get { return mEnumerationValues; } }
public IfcUnit Unit { get { return mUnit; } set { mUnit = value; } }

Просмотреть файл

@ -470,7 +470,7 @@ namespace GeometryGym.Ifc
internal double mBarCount = double.NaN; // : OPTIONAL IfcCountMeasure;
public double TotalCrossSectionArea { get { return mTotalCrossSectionArea; } set { mTotalCrossSectionArea = value; } }
public string SteelGrade { get { return ParserIfc.Decode(mSteelGrade); } set { mSteelGrade = ParserIfc.Encode(value); } }
public string SteelGrade { get { return mSteelGrade; } set { mSteelGrade = string.IsNullOrEmpty(value) ? "Unknown" : value; } }
public IfcReinforcingBarSurfaceEnum BarSurface { get { return mBarSurface; } set { mBarSurface = value; } }
public double EffectiveDepth { get { return mEffectiveDepth; } set { mEffectiveDepth = value; } }
public double NominalBarDiameter { get { return mNominalBarDiameter; } set { mNominalBarDiameter = value; } }
@ -1327,7 +1327,7 @@ namespace GeometryGym.Ifc
internal IfcStructuralMember mRelatedStructuralMember;// : IfcStructuralMember;
public IfcElement RelatingElement { get { return mRelatingElement as IfcElement; } set { mRelatingElement = value; value.mHasStructuralMember.Add(this); } }
public IfcStructuralMember RelatedStructuralMember { get { return mRelatedStructuralMember as IfcStructuralMember; } set { mRelatedStructuralMember = value; value.mStructuralMemberForGG = this; } }
public IfcStructuralMember RelatedStructuralMember { get { return mRelatedStructuralMember as IfcStructuralMember; } set { mRelatedStructuralMember = value; value.mStructuralMemberFor = this; } }
internal IfcRelConnectsStructuralElement() : base() { }
internal IfcRelConnectsStructuralElement(DatabaseIfc db, IfcRelConnectsStructuralElement c, DuplicateOptions options) : base(db, c, options)

Просмотреть файл

@ -1850,7 +1850,10 @@ additional types some additional representation types are given:
[Serializable]
public partial class IfcStructuralLoadPlanarForce : IfcStructuralLoadStatic
{
internal double mPlanarForceX = 0, mPlanarForceY = 0, mPlanarForceZ = 0;// : OPTIONAL IfcPlanarForceMeasure;
private double mPlanarForceX = double.NaN, mPlanarForceY = double.NaN, mPlanarForceZ = double.NaN;// : OPTIONAL IfcPlanarForceMeasure;
public double PlanarForceX { get { return double.IsNaN(mPlanarForceX) ? 0 : mPlanarForceX; } set { mPlanarForceX = value; } }
public double PlanarForceY { get { return double.IsNaN(mPlanarForceY) ? 0 : mPlanarForceY; } set { mPlanarForceY = value; } }
public double PlanarForceZ { get { return double.IsNaN(mPlanarForceZ) ? 0 : mPlanarForceZ; } set { mPlanarForceZ = value; } }
internal IfcStructuralLoadPlanarForce() : base() { }
internal IfcStructuralLoadPlanarForce(DatabaseIfc db, IfcStructuralLoadPlanarForce f) : base(db,f) { mPlanarForceX = f.mPlanarForceX; mPlanarForceY = f.mPlanarForceY; mPlanarForceZ = f.mPlanarForceZ; }
public IfcStructuralLoadPlanarForce(DatabaseIfc db) : base(db) { }
@ -1921,7 +1924,7 @@ additional types some additional representation types are given:
{
//INVERSE
internal SET<IfcRelConnectsStructuralMember> mConnectedBy = new SET<IfcRelConnectsStructuralMember>();// : SET [0:?] OF IfcRelConnectsStructuralMember FOR RelatingStructuralMember
internal IfcRelConnectsStructuralElement mStructuralMemberForGG = null;
internal IfcRelConnectsStructuralElement mStructuralMemberFor = null; // GG attribute
public SET<IfcRelConnectsStructuralMember> ConnectedBy { get { return mConnectedBy; } }

Просмотреть файл

@ -131,8 +131,8 @@ namespace GeometryGym.Ifc
[Serializable]
public partial class IfcVertexPoint : IfcVertex, IfcPointOrVertexPoint
{
internal IfcPoint mVertexGeometry;// : IfcPoint;
public IfcPoint VertexGeometry { get { return mVertexGeometry; } set { mVertexGeometry = value; } }
private IfcPoint mVertexGeometry;// : IfcPoint;
public IfcPoint VertexGeometry { get { return mVertexGeometry; } set { mVertexGeometry = value; if (value != null) value.mOfVertex = this; } }
internal IfcVertexPoint() : base() { }
internal IfcVertexPoint(DatabaseIfc db, IfcVertexPoint v, DuplicateOptions options) : base(db, v, options) { VertexGeometry = db.Factory.Duplicate(v.VertexGeometry) as IfcPoint; }
@ -761,7 +761,7 @@ namespace GeometryGym.Ifc
public override object Value { get { return Identifier; } set { Identifier = value.ToString(); } }
public override Type ValueType { get { return typeof(string); } }
public IfcIdentifier(string value) { Identifier = value; }
public override string ToString() { return "IFCIDENTIFIER('" + ParserIfc.Encode( Identifier) + "')"; }
public override string ToString() { return "IFCIDENTIFIER('" + ParserSTEP.Encode( Identifier) + "')"; }
}
[Serializable]
public partial class IfcInteger : IfcSimpleValue
@ -779,7 +779,7 @@ namespace GeometryGym.Ifc
public override object Value { get { return Label; } set { Label = value.ToString(); } }
public override Type ValueType { get { return typeof(string); } }
public IfcLabel(string value) { Label = value; }
public override string ToString() { return "IFCLABEL('" + ParserIfc.Encode(Label) + "')"; }
public override string ToString() { return "IFCLABEL('" + ParserSTEP.Encode(Label) + "')"; }
}
[Serializable]
public partial class IfcLogical : IfcSimpleValue
@ -830,7 +830,7 @@ namespace GeometryGym.Ifc
public override object Value { get { return Text; } set { Text = value.ToString(); } }
public override Type ValueType { get { return typeof(string); } }
public IfcText(string value) { Text = value; }
public override string ToString() { return "IFCTEXT('" + ParserIfc.Encode(Text) + "')"; }
public override string ToString() { return "IFCTEXT('" + ParserSTEP.Encode(Text) + "')"; }
}
[Serializable]
public partial class IfcTime : IfcSimpleValue
@ -906,7 +906,7 @@ namespace GeometryGym.Ifc
}
public override Type ValueType { get { return typeof(Uri); } }
public IfcURIReference(string value) { mValue = value; }
public override string ToString() { return "IFCURIREFERENCE('" + ParserIfc.Encode(mValue) + "')"; }
public override string ToString() { return "IFCURIREFERENCE('" + ParserSTEP.Encode(mValue) + "')"; }
}
[Serializable]

Просмотреть файл

@ -295,21 +295,21 @@ namespace GeometryGym.Ifc
//internal string mIdentifier : IfcIdentifier; IFC4 moved to control
internal DateTime mCreationDate;// : IfcDateTime;
internal SET<IfcPerson> mCreators = new SET<IfcPerson>();// : OPTIONAL SET [1:?] OF IfcPerson;
internal string mPurpose = "$";// : OPTIONAL IfcLabel;
internal string mDuration = "$", mTotalFloat = "$";// : OPTIONAL IfcDuration; IFC4
internal string mPurpose = "";// : OPTIONAL IfcLabel;
internal string mDuration = "", mTotalFloat = "";// : OPTIONAL IfcDuration; IFC4
internal DateTime mStartTime;// : IfcDateTime;
internal DateTime mFinishTime = DateTime.MinValue;// : OPTIONAL IfcDateTime; IFC4
internal double mSSDuration = 0, mSSTotalFloat = 0; //: OPTIONAL IfcTimeMeasure;
internal IfcDateTimeSelect mSSCreationDate, mSSStartTime; //: IfcDateTimeSelect;
internal IfcDateTimeSelect mSSFinishTime; //: OPTIONAL IfcDateTimeSelect;
internal IfcWorkControlTypeEnum mWorkControlType = IfcWorkControlTypeEnum.NOTDEFINED;// : OPTIONAL IfcWorkControlTypeEnum; IFC2x3
internal string mUserDefinedControlType = "$";// : OPTIONAL IfcLabel;
internal string mUserDefinedControlType = "";// : OPTIONAL IfcLabel;
public DateTime CreationDate { get { return mCreationDate; } set { mCreationDate = value; } }
public SET<IfcPerson> Creators { get { return mCreators; } }
public DateTime StartTime { get { return mStartTime; } set { mStartTime = value; } }
public DateTime FinishTime { get { return mFinishTime; } set { mFinishTime = value; } }
public string Purpose { get { return (mPurpose == "$" ? "" : ParserIfc.Decode(mPurpose)); } set { mPurpose = (string.IsNullOrEmpty(value) ? "$" : ParserIfc.Encode(value)); } }
public string Purpose { get { return mPurpose; } set { mPurpose = value; } }
protected IfcWorkControl() : base() { mCreationDate = DateTime.Now; mStartTime = DateTime.Now; }
protected IfcWorkControl(DatabaseIfc db) : base(db)

Просмотреть файл

@ -87,7 +87,7 @@ namespace GeometryGym.Ifc
}
internal string removeFileNameIllegal(string filename)
{
return ParserIfc.Encode(filename).Replace("*", "x").Replace(".", "_").Replace("\"", "").Replace("/", "_").Replace("\\", "_").Replace("[", "(").Replace("]", ")").Replace(":", "-").Replace(";", "-").Replace("|", "-").Replace("=", "-").Replace(",", "_").Replace("<", "(").Replace(">", ")");
return ParserSTEP.Encode(filename).Replace("*", "x").Replace(".", "_").Replace("\"", "").Replace("/", "_").Replace("\\", "_").Replace("[", "(").Replace("]", ")").Replace(":", "-").Replace(";", "-").Replace("|", "-").Replace("=", "-").Replace(",", "_").Replace("<", "(").Replace(">", ")");
}
internal string RepositoryName { get { return removeFileNameIllegal(genRepositoryName); } }
protected string RepositoryNameStub { get { return mGlobalId; } }

Просмотреть файл

@ -35,133 +35,6 @@ namespace GeometryGym.Ifc
{
public static class ParserIfc
{
public static string Encode(string str)
{
if (string.IsNullOrEmpty(str))
return "";
string result = "";
int length = str.Length;
for (int icounter = 0; icounter < length; icounter++)
{
char c = str[icounter];
if (c == '\r')
{
if(icounter + 1 < length)
{
if (str[icounter + 1] == '\n' && icounter + 2 == length)
return result;
}
continue;
}
if(c == '\n')
{
if (icounter + 1 == length)
return result;
}
if (c == '\'')
result += "\\X\\27"; // Alternative result += "''";
else if (c == '\\')
result += "\\\\";
else
{
int i = (int)c;
if (i < 32 || i > 126)
result += "\\X2\\" + string.Format("{0:x4}", i, CultureInfo.InvariantCulture).ToUpper() + "\\X0\\";
else
result += c;
}
}
return result;
}
public static string Decode(string str) //http://www.buildingsmart-tech.org/implementation/get-started/string-encoding/string-encoding-decoding-summary
{
if (string.IsNullOrEmpty(str) || str == "$")
return "";
int ilast = str.Length - 4, icounter = 0, strLength = str.Length;
string result = "";
while (icounter < ilast)
{
char c = str[icounter];
if(c == '\'')
{
if (icounter + 1 < ilast && str[icounter+1] == '\'')
icounter++;
}
if (c == '\\')
{
if (icounter + 1 < strLength && str[icounter + 1] == '\\')
{
result += c;
icounter++;
}
else if (icounter + 3 < strLength)
{
char c3 = str[icounter + 3], c2 = str[icounter + 2], c1 = str[icounter + 1];
if (c2 == '\\')
{
if (c1 == 'S')
{
result += (char)((int)c3 + 128);
icounter += 3;
}
else if (c1 == 'X' && strLength > icounter + 4)
{
string s = str.Substring(icounter + 3, 2);
Int32 i = Convert.ToInt32(s, 16);
Byte[] bytes = BitConverter.GetBytes(i);
c = Encoding.Unicode.GetChars(bytes)[0];
result += c;
icounter += 4;
}
else
result += str[icounter];
}
else if (c3 == '\\' && c2 == '2' && c1 == 'X')
{
icounter += 4;
while (str[icounter] != '\\')
{
string s = str.Substring(icounter, 4);
Int32 i = Convert.ToInt32(s, 16);
Byte[] bytes = BitConverter.GetBytes(i);
c = Encoding.Unicode.GetChars(bytes)[0];
result += c;
icounter += 4;
}
icounter += 3;
}
else if (c1 == '\\' && c2 == 'X')
{
if (c3 == '2')
{
icounter += 6;
while (str[icounter] != '\\')
{
string s = str.Substring(icounter, 4);
c = System.Text.Encoding.Unicode.GetChars(BitConverter.GetBytes(Convert.ToInt32(s, 16)))[0];
//result += (char)();
result += c;
icounter += 4;
}
icounter += 5;
}
else
result += str[icounter];
}
else
result += str[icounter];
}
else
result += str[icounter];
}
else
result += str[icounter];
icounter++;
}
while (icounter < str.Length)
result += str[icounter++];
return result;
}
public static T ParseEnum<T>(string str, string enumName) where T : struct
{
@ -457,7 +330,7 @@ namespace GeometryGym.Ifc
if (str.StartsWith("IFCBOOLEAN("))
return new IfcBoolean(string.Compare(str.Substring(11, str.Length - 12), ".T.") == 0);
if (str.StartsWith("IFCIDENTIFIER("))
return new IfcIdentifier(ParserIfc.Decode(str.Substring(15, str.Length - 17)));
return new IfcIdentifier(ParserSTEP.Decode(str.Substring(15, str.Length - 17)));
if (str.StartsWith("IFCINTEGER("))
return new IfcInteger(long.Parse(str.Substring(11, str.Length - 12)));
if (str.StartsWith("IFCLABEL("))
@ -465,7 +338,7 @@ namespace GeometryGym.Ifc
if (str.Length <= 12)
return new IfcLabel("");
string s = str.Substring(10, str.Length - 12);
return new IfcLabel((str[10] == '$' || s == null ? "" : ParserIfc.Decode(s)));
return new IfcLabel((str[10] == '$' || s == null ? "" : ParserSTEP.Decode(s)));
}
if (str.StartsWith("IFCLOGICAL("))
{
@ -482,10 +355,10 @@ namespace GeometryGym.Ifc
if (str.StartsWith("IFCTEXT("))
{
string s = str.Substring(9, str.Length - 11);
return new IfcText((str[9] == '$' || s == null ? "" : ParserIfc.Decode(s)));
return new IfcText((str[9] == '$' || s == null ? "" : ParserSTEP.Decode(s)));
}
if (str.StartsWith("IFCURIREFERENCE("))
return new IfcURIReference(str[16] == '$' ? "" : ParserIfc.Decode(str.Substring(17, str.Length - 19)));
return new IfcURIReference(str[16] == '$' ? "" : ParserSTEP.Decode(str.Substring(17, str.Length - 19)));
if(str.StartsWith("IFCDATE("))
{
string valueString = str.Substring(9, str.Length - 11);

Просмотреть файл

@ -52,7 +52,7 @@ namespace GeometryGym.Ifc
protected override string BuildStringSTEP(ReleaseVersion release)
{
return "." + (release < ReleaseVersion.IFC4 && mRole == IfcRoleEnum.COMMISSIONINGENGINEER ? "COMISSIONINGENGINEER" : mRole.ToString()) +
(string.IsNullOrEmpty( mUserDefinedRole) ? ".,$," : ".,'" + ParserIfc.Encode(mUserDefinedRole) + "',") + (string.IsNullOrEmpty(mDescription) ? "$" : "'" + ParserIfc.Encode(mDescription) + "'"); }
(string.IsNullOrEmpty( mUserDefinedRole) ? ".,$," : ".,'" + ParserSTEP.Encode(mUserDefinedRole) + "',") + (string.IsNullOrEmpty(mDescription) ? "$" : "'" + ParserSTEP.Encode(mDescription) + "'"); }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
string s = ParserSTEP.StripField(str, ref pos, len);
@ -63,8 +63,8 @@ namespace GeometryGym.Ifc
else
Enum.TryParse<IfcRoleEnum>( s.Replace(".", ""), out mRole);
}
mUserDefinedRole = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mDescription = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mUserDefinedRole = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mDescription = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
}
}
public partial class IfcActuator
@ -100,16 +100,16 @@ namespace GeometryGym.Ifc
protected override string BuildStringSTEP(ReleaseVersion release)
{
return (mPurpose == IfcAddressTypeEnum.NOTDEFINED ? "$," : "." + mPurpose.ToString() + ".,") +
(string.IsNullOrEmpty(mDescription) ? "$," : "'" + ParserIfc.Encode(mDescription) + "',") +
(string.IsNullOrEmpty(mUserDefinedPurpose) ? "$" : "'" + ParserIfc.Encode(mUserDefinedPurpose) + "'");
(string.IsNullOrEmpty(mDescription) ? "$," : "'" + ParserSTEP.Encode(mDescription) + "',") +
(string.IsNullOrEmpty(mUserDefinedPurpose) ? "$" : "'" + ParserSTEP.Encode(mUserDefinedPurpose) + "'");
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
string s = ParserSTEP.StripField(str, ref pos, len);
if (s.StartsWith("."))
Enum.TryParse<IfcAddressTypeEnum>(s.Replace(".", ""), true, out mPurpose);
mDescription = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mUserDefinedPurpose = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mDescription = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mUserDefinedPurpose = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
}
}
public partial class IfcAdvancedBrep
@ -335,13 +335,13 @@ namespace GeometryGym.Ifc
protected override string BuildStringSTEP(ReleaseVersion release)
{
return (mTangentialContinuity == IfcLogicalEnum.UNKNOWN ? "$," : (mTangentialContinuity == IfcLogicalEnum.TRUE ? ".T.," : ".F.,")) +
(string.IsNullOrEmpty(mStartTag) ? "$," : "'" + ParserIfc.Encode(mStartTag) + "',") + (string.IsNullOrEmpty(mEndTag) ? "$" : "'" + ParserIfc.Encode(mEndTag) + "'");
(string.IsNullOrEmpty(mStartTag) ? "$," : "'" + ParserSTEP.Encode(mStartTag) + "',") + (string.IsNullOrEmpty(mEndTag) ? "$" : "'" + ParserSTEP.Encode(mEndTag) + "'");
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
mTangentialContinuity = ParserIfc.StripLogical(str, ref pos, len);
mStartTag = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mEndTag = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mStartTag = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mEndTag = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
}
}
public partial class IfcAlignment2DVerSegCircularArc
@ -429,13 +429,13 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return ParserSTEP.ObjToLinkString(mHorizontal) + "," + ParserSTEP.ObjToLinkString(mVertical) + "," + (string.IsNullOrEmpty(mTag) ? "$" : "'" + ParserIfc.Encode(mTag) + "'");
return ParserSTEP.ObjToLinkString(mHorizontal) + "," + ParserSTEP.ObjToLinkString(mVertical) + "," + (string.IsNullOrEmpty(mTag) ? "$" : "'" + ParserSTEP.Encode(mTag) + "'");
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
mHorizontal = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcAlignment2DHorizontal;
Vertical = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcAlignment2DVertical;
mTag = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mTag = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
}
}
public partial class IfcAlignmentHorizontal
@ -481,13 +481,13 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return (string.IsNullOrEmpty(mStartTag) ? "$" : "'" + ParserIfc.Encode(mStartTag) + "'") +
(string.IsNullOrEmpty(mEndTag) ? ",$" : ",'" + ParserIfc.Encode(mEndTag) + "'");
return (string.IsNullOrEmpty(mStartTag) ? "$" : "'" + ParserSTEP.Encode(mStartTag) + "'") +
(string.IsNullOrEmpty(mEndTag) ? ",$" : ",'" + ParserSTEP.Encode(mEndTag) + "'");
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
StartTag = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
EndTag = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
StartTag = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
EndTag = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
}
}
public partial class IfcAlignmentSegment
@ -613,7 +613,7 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
string result = (string.IsNullOrEmpty(mName) ? "$," : "'" + ParserIfc.Encode(mName) + "',") + (string.IsNullOrEmpty( mDescription) ? "$," : "'" + ParserIfc.Encode(mDescription) + "',");
string result = (string.IsNullOrEmpty(mName) ? "$," : "'" + ParserSTEP.Encode(mName) + "',") + (string.IsNullOrEmpty( mDescription) ? "$," : "'" + ParserSTEP.Encode(mDescription) + "',");
if (mAppliedValue == null)
result += "$";
else
@ -628,14 +628,14 @@ namespace GeometryGym.Ifc
if (release < ReleaseVersion.IFC4)
return result + (mSSApplicableDate == null ? ",$" : ",#" + mSSApplicableDate.StepId) + (mSSFixedUntilDate == null ? ",$" : ",#" + mSSFixedUntilDate.StepId);
result += IfcDate.STEPAttribute(mApplicableDate) + "," + IfcDate.STEPAttribute(mFixedUntilDate);
result += (string.IsNullOrEmpty(mCategory) ? ",$," : ",'" + ParserIfc.Encode(mCategory) + "',") + (string.IsNullOrEmpty(mCondition) ? "$," : "'" + ParserIfc.Encode(mCondition) + "',");
result += (string.IsNullOrEmpty(mCategory) ? ",$," : ",'" + ParserSTEP.Encode(mCategory) + "',") + (string.IsNullOrEmpty(mCondition) ? "$," : "'" + ParserSTEP.Encode(mCondition) + "',");
return result + (mArithmeticOperator == IfcArithmeticOperatorEnum.NONE ? "$," : "." + mArithmeticOperator.ToString() + ".,")
+ (mComponents.Count == 0 ? "$" : "(" + string.Join(",", mComponents.Select(x => "#" + x.StepId)) + ")"); ;
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
mName = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mDescription = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mName = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mDescription = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
string s = ParserSTEP.StripField(str, ref pos, len).Trim();
if(s.StartsWith("IFC"))
mAppliedValue = ParserIfc.parseValue(s);
@ -651,8 +651,8 @@ namespace GeometryGym.Ifc
{
mApplicableDate = IfcDate.ParseSTEP(ParserSTEP.StripString(str, ref pos, len));
mFixedUntilDate = IfcDate.ParseSTEP(ParserSTEP.StripString(str, ref pos, len));
mCategory = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mCondition = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mCategory = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mCondition = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
s = ParserSTEP.StripField(str, ref pos, len);
if (s.StartsWith("."))
Enum.TryParse<IfcArithmeticOperatorEnum>(s.Replace(".", ""), true, out mArithmeticOperator);
@ -681,42 +681,42 @@ namespace GeometryGym.Ifc
protected override string BuildStringSTEP(ReleaseVersion release)
{
if(release < ReleaseVersion.IFC4)
return (string.IsNullOrEmpty(mDescription) ? "$,#" : "'" + ParserIfc.Encode(mDescription) + "',#") +
mApprovalDateTime.StepId + (string.IsNullOrEmpty(mStatus) ? ",$," : ",'" + ParserIfc.Encode(mStatus) + "',") +
(string.IsNullOrEmpty(mLevel) ? "$," : "'" + ParserIfc.Encode(mLevel) + "',") +
(string.IsNullOrEmpty(mQualifier) ? "$," : "'" + ParserIfc.Encode(mQualifier) + "',") +
(string.IsNullOrEmpty(mName) ? "$," : "'" + ParserIfc.Encode(mName) + "',") +
(string.IsNullOrEmpty(mIdentifier) ? "$" : "'" + ParserIfc.Encode(mIdentifier) + "'");
return (string.IsNullOrEmpty(mIdentifier) ? "$," : "'" + ParserIfc.Encode(mIdentifier) + "',") +
(string.IsNullOrEmpty(mName) ? "$," : "'" + ParserIfc.Encode(mName) + "',") +
(string.IsNullOrEmpty(mDescription) ? "$," : "'" + ParserIfc.Encode(mDescription) + "',") +
return (string.IsNullOrEmpty(mDescription) ? "$,#" : "'" + ParserSTEP.Encode(mDescription) + "',#") +
mApprovalDateTime.StepId + (string.IsNullOrEmpty(mStatus) ? ",$," : ",'" + ParserSTEP.Encode(mStatus) + "',") +
(string.IsNullOrEmpty(mLevel) ? "$," : "'" + ParserSTEP.Encode(mLevel) + "',") +
(string.IsNullOrEmpty(mQualifier) ? "$," : "'" + ParserSTEP.Encode(mQualifier) + "',") +
(string.IsNullOrEmpty(mName) ? "$," : "'" + ParserSTEP.Encode(mName) + "',") +
(string.IsNullOrEmpty(mIdentifier) ? "$" : "'" + ParserSTEP.Encode(mIdentifier) + "'");
return (string.IsNullOrEmpty(mIdentifier) ? "$," : "'" + ParserSTEP.Encode(mIdentifier) + "',") +
(string.IsNullOrEmpty(mName) ? "$," : "'" + ParserSTEP.Encode(mName) + "',") +
(string.IsNullOrEmpty(mDescription) ? "$," : "'" + ParserSTEP.Encode(mDescription) + "',") +
IfcDate.STEPAttribute(mTimeOfApproval) +
(string.IsNullOrEmpty(mStatus) ? ",$," : ",'" + ParserIfc.Encode(mStatus) + "',") +
(string.IsNullOrEmpty(mLevel) ? "$," : "'" + ParserIfc.Encode(mLevel) + "',") +
(string.IsNullOrEmpty(mQualifier) ? "$," : "'" + ParserIfc.Encode(mQualifier) + "',") +
(string.IsNullOrEmpty(mStatus) ? ",$," : ",'" + ParserSTEP.Encode(mStatus) + "',") +
(string.IsNullOrEmpty(mLevel) ? "$," : "'" + ParserSTEP.Encode(mLevel) + "',") +
(string.IsNullOrEmpty(mQualifier) ? "$," : "'" + ParserSTEP.Encode(mQualifier) + "',") +
(mRequestingApproval == null ? "$," : "#," + mRequestingApproval.StepId) + (mGivingApproval == null ? "$" : "#" + mGivingApproval.StepId);
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
if (release < ReleaseVersion.IFC4)
{
mDescription = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mDescription = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mApprovalDateTime = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcDateTimeSelect;
mStatus = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mLevel = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mQualifier = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mName = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mIdentifier = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mStatus = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mLevel = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mQualifier = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mName = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mIdentifier = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
}
else
{
mIdentifier = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mName = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mDescription = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mIdentifier = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mName = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mDescription = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mTimeOfApproval = IfcDate.ParseSTEP(ParserSTEP.StripString(str, ref pos, len));
mStatus = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mLevel = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mQualifier = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mStatus = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mLevel = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mQualifier = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
RequestingApproval = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcActorSelect;
GivingApproval = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcActorSelect;
}
@ -751,7 +751,7 @@ namespace GeometryGym.Ifc
protected override string BuildStringSTEP(ReleaseVersion release)
{
return base.BuildStringSTEP(release) + ",#" + mRelatedApproval.StepId + ",#" + mRelatingApproval.StepId +
(release < ReleaseVersion.IFC4 ? (string.IsNullOrEmpty(mDescription) ? ",$,'" : ",'" + ParserIfc.Encode(mDescription) + "','") + ParserIfc.Encode(mName) + "'": ""); }
(release < ReleaseVersion.IFC4 ? (string.IsNullOrEmpty(mDescription) ? ",$,'" : ",'" + ParserSTEP.Encode(mDescription) + "','") + ParserSTEP.Encode(mName) + "'": ""); }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
base.parse(str, ref pos, release, len, dictionary);
@ -759,8 +759,8 @@ namespace GeometryGym.Ifc
mRelatingApproval = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcApproval;
if (release < ReleaseVersion.IFC4)
{
mDescription = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mName = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mDescription = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mName = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
}
}
}
@ -800,7 +800,7 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return base.BuildStringSTEP(release) + (string.IsNullOrEmpty(mIdentification) ? ",$," : ",'" + ParserIfc.Encode(mIdentification) +
return base.BuildStringSTEP(release) + (string.IsNullOrEmpty(mIdentification) ? ",$," : ",'" + ParserSTEP.Encode(mIdentification) +
(mOriginalValue == null ? "',$" : "',#" + mOriginalValue.StepId) + (mCurrentValue == null ? ",$" : ",#" + mCurrentValue.StepId) +
(mTotalReplacementCost == null ? ",$" : ",#" + mTotalReplacementCost.StepId) + (mOwner == null ? ",$" : ",#" + mOwner.StepId) +
(mUser == null ? ",$" : ",#" + mUser.StepId) + (mResponsiblePerson == null ? ",$" : ",#" + mResponsiblePerson.StepId) +
@ -810,7 +810,7 @@ namespace GeometryGym.Ifc
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
base.parse(str, ref pos, release, len, dictionary);
mIdentification = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mIdentification = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mOriginalValue = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcCostValue;
mCurrentValue = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcCostValue;
mTotalReplacementCost = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcCostValue;

Просмотреть файл

@ -146,10 +146,10 @@ namespace GeometryGym.Ifc
}
public abstract partial class IfcBoundaryCondition
{
protected override string BuildStringSTEP(ReleaseVersion release) { return (string.IsNullOrEmpty(mName) ? "$" : "'" + ParserIfc.Encode(mName) + "'"); }
protected override string BuildStringSTEP(ReleaseVersion release) { return (string.IsNullOrEmpty(mName) ? "$" : "'" + ParserSTEP.Encode(mName) + "'"); }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
mName = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mName = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
}
}
public partial class IfcBoundaryEdgeCondition
@ -429,7 +429,7 @@ namespace GeometryGym.Ifc
return base.BuildStringSTEP(release) +
(release < ReleaseVersion.IFC4 ? "" :
(mPredefinedType == IfcBuiltSystemTypeEnum.NOTDEFINED ? ",$," : ",." + mPredefinedType + ".,") +
(string.IsNullOrEmpty(mLongName) ? "$" : "'" + ParserIfc.Encode(mLongName) + "'"));
(string.IsNullOrEmpty(mLongName) ? "$" : "'" + ParserSTEP.Encode(mLongName) + "'"));
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
@ -439,7 +439,7 @@ namespace GeometryGym.Ifc
string s = ParserSTEP.StripField(str, ref pos, len);
if (s.StartsWith("."))
Enum.TryParse<IfcBuiltSystemTypeEnum>(s.Replace(".", ""), true, out mPredefinedType);
mLongName = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mLongName = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
}
}
}

Просмотреть файл

@ -207,7 +207,7 @@ namespace GeometryGym.Ifc
protected override string BuildStringSTEP(ReleaseVersion release)
{
return "(" + string.Join(",", mCoordList.Select(x => "(" + formatLength(x.Item1) + "," + formatLength(x.Item2) + ")")) + ")" +
(release < ReleaseVersion.IFC4X1 ? "" : (mTagList == null || mTagList.Count == 0 ? ",$" : ",(" + string.Join(",", mTagList.Select(x=> (string.IsNullOrEmpty(x) ? "$" : "'" + ParserIfc.Encode(x) + "'"))) + ")" ));
(release < ReleaseVersion.IFC4X1 ? "" : (mTagList == null || mTagList.Count == 0 ? ",$" : ",(" + string.Join(",", mTagList.Select(x=> (string.IsNullOrEmpty(x) ? "$" : "'" + ParserSTEP.Encode(x) + "'"))) + ")" ));
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
@ -225,7 +225,7 @@ namespace GeometryGym.Ifc
{
string field = lst[icounter];
if (field.Length > 2)
mTagList.Add(ParserIfc.Decode(field.Substring(1, field.Length - 2)));
mTagList.Add(ParserSTEP.Decode(field.Substring(1, field.Length - 2)));
else
mTagList.Add(null);
}
@ -260,7 +260,7 @@ namespace GeometryGym.Ifc
textWriter.Write("))");
if(release >= ReleaseVersion.IFC4X1)
textWriter.Write(mTagList == null || mTagList.Count == 0 ? ",$" : ",(" + string.Join(",", mTagList.Select(x => (string.IsNullOrEmpty(x) ? "$" : "'" + ParserIfc.Encode(x) + "'"))) + ")");
textWriter.Write(mTagList == null || mTagList.Count == 0 ? ",$" : ",(" + string.Join(",", mTagList.Select(x => (string.IsNullOrEmpty(x) ? "$" : "'" + ParserSTEP.Encode(x) + "'"))) + ")");
WriteStepLineWorkerSuffix(textWriter);
}
@ -286,7 +286,7 @@ namespace GeometryGym.Ifc
}
stringBuilder.Append("))");
return stringBuilder.ToString() +
(release < ReleaseVersion.IFC4X1 ? "" : (mTagList == null || mTagList.Count == 0 ? ",$" : ",(" + string.Join(",", mTagList.Select(x => (string.IsNullOrEmpty(x) ? "$" : "'" + ParserIfc.Encode(x) + "'"))) + ")"));
(release < ReleaseVersion.IFC4X1 ? "" : (mTagList == null || mTagList.Count == 0 ? ",$" : ",(" + string.Join(",", mTagList.Select(x => (string.IsNullOrEmpty(x) ? "$" : "'" + ParserSTEP.Encode(x) + "'"))) + ")"));
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
@ -303,7 +303,7 @@ namespace GeometryGym.Ifc
{
string field = lst[icounter];
if (field.Length > 2)
mTagList.Add(ParserIfc.Decode(field.Substring(1, field.Length - 2)));
mTagList.Add(ParserSTEP.Decode(field.Substring(1, field.Length - 2)));
else
mTagList.Add(null);
}
@ -467,52 +467,52 @@ namespace GeometryGym.Ifc
if (mReferenceTokens.Count > 0)
tokens = "('" + string.Join("','", mReferenceTokens) + "')";
bool older = mDatabase.Release <= ReleaseVersion.IFC2x3;
return (string.IsNullOrEmpty(mSource) ? (older ? "'Unknown'," : "$,") : "'" + ParserIfc.Encode(mSource) + "',") +
(string.IsNullOrEmpty(mEdition) ? (older ? "'Unknown'," : "$,") : "'" + ParserIfc.Encode(mEdition) + "',") +
return (string.IsNullOrEmpty(mSource) ? (older ? "'Unknown'," : "$,") : "'" + ParserSTEP.Encode(mSource) + "',") +
(string.IsNullOrEmpty(mEdition) ? (older ? "'Unknown'," : "$,") : "'" + ParserSTEP.Encode(mEdition) + "',") +
(older ? (mEditionDateSS == null ? "$" : "#" + mEditionDateSS.StepId) : IfcDate.STEPAttribute(mEditionDate)) + ",'" +
ParserIfc.Encode(mName) + (older ? "'" : (string.IsNullOrEmpty(mDescription) ? "',$," : "','" + ParserIfc.Encode(mDescription) + "',") + (string.IsNullOrEmpty(mSpecification) ? "$," : "'" + ParserIfc.Encode(mSpecification) + "',") + tokens);
ParserSTEP.Encode(mName) + (older ? "'" : (string.IsNullOrEmpty(mDescription) ? "',$," : "','" + ParserSTEP.Encode(mDescription) + "',") + (string.IsNullOrEmpty(mSpecification) ? "$," : "'" + ParserSTEP.Encode(mSpecification) + "',") + tokens);
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
mSource = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mEdition = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mSource = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mEdition = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
if (release <= ReleaseVersion.IFC2x3)
{
mEditionDateSS = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcCalendarDate;
mName = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mName = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
}
else
{
mEditionDate = IfcDateTime.ParseSTEP(ParserSTEP.StripField(str, ref pos, len));
mName = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mDescription = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mSpecification = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mName = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mDescription = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mSpecification = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mReferenceTokens = ParserSTEP.SplitListStrings(ParserSTEP.StripField(str, ref pos, len));
}
}
}
public partial class IfcClassificationItem
{
protected override string BuildStringSTEP(ReleaseVersion release) { return "#" + mNotation.StepId + ",#" + mItemOf.StepId + ",'" + ParserIfc.Encode(mTitle) + "'"; }
protected override string BuildStringSTEP(ReleaseVersion release) { return "#" + mNotation.StepId + ",#" + mItemOf.StepId + ",'" + ParserSTEP.Encode(mTitle) + "'"; }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
mNotation = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcClassificationNotationFacet;
mItemOf = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcClassification;
mTitle = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mTitle = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
}
}
public partial class IfcClassificationItemRelationship
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return mSource + "," + mEdition + (mEditionDate == null ? ",$,'" : ",#" + mEditionDate.StepId + ",'") + ParserIfc.Encode(mName) + "'";
return mSource + "," + mEdition + (mEditionDate == null ? ",$,'" : ",#" + mEditionDate.StepId + ",'") + ParserSTEP.Encode(mName) + "'";
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
mSource = ParserSTEP.StripString(str, ref pos, len);
mEdition = ParserSTEP.StripString(str, ref pos, len);
mEditionDate = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcCalendarDate;
mName = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mName = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
}
}
public partial class IfcClassificationNotation
@ -525,8 +525,8 @@ namespace GeometryGym.Ifc
}
public partial class IfcClassificationNotationFacet
{
protected override string BuildStringSTEP(ReleaseVersion release) { return "'" + ParserIfc.Encode( mNotationValue) + "'"; }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary) { mNotationValue = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len)); }
protected override string BuildStringSTEP(ReleaseVersion release) { return "'" + ParserSTEP.Encode( mNotationValue) + "'"; }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary) { mNotationValue = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len)); }
}
public partial class IfcClassificationReference
{
@ -535,7 +535,7 @@ namespace GeometryGym.Ifc
if (release < ReleaseVersion.IFC4)
return base.BuildStringSTEP(release) + (ReferencedSource is IfcClassification ? "," + ParserSTEP.ObjToLinkString(ReferencedSource) : ",$");
return base.BuildStringSTEP(release) + "," + ParserSTEP.ObjToLinkString(ReferencedSource) +
(string.IsNullOrEmpty(mDescription) ? ",$" : ",'" + ParserIfc.Encode(mDescription) + "'") + (string.IsNullOrEmpty(mSort) ? ",$" : ",'" + ParserIfc.Encode(mSort) + "'");
(string.IsNullOrEmpty(mDescription) ? ",$" : ",'" + ParserSTEP.Encode(mDescription) + "'") + (string.IsNullOrEmpty(mSort) ? ",$" : ",'" + ParserSTEP.Encode(mSort) + "'");
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
@ -543,8 +543,8 @@ namespace GeometryGym.Ifc
ReferencedSource = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcClassificationReferenceSelect;
if (release > ReleaseVersion.IFC2x3)
{
mDescription = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mSort = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mDescription = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mSort = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
}
}
}
@ -610,10 +610,10 @@ namespace GeometryGym.Ifc
}
public abstract partial class IfcColourSpecification
{
protected override string BuildStringSTEP(ReleaseVersion release) { return (string.IsNullOrEmpty(mName) ? "$" : "'" + ParserIfc.Encode(mName) + "'"); }
protected override string BuildStringSTEP(ReleaseVersion release) { return (string.IsNullOrEmpty(mName) ? "$" : "'" + ParserSTEP.Encode(mName) + "'"); }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
mName = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mName = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
}
}
public partial class IfcColumn
@ -645,7 +645,7 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return base.BuildStringSTEP(release) + ",'" + ParserIfc.Encode(mUsageName) + "',(" +
return base.BuildStringSTEP(release) + ",'" + ParserSTEP.Encode(mUsageName) + "',(" +
string.Join(",", mHasProperties.Values.OrderBy(x=>x.StepId).Select(x=>"#" + x.StepId)) + ")";
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
@ -666,13 +666,13 @@ namespace GeometryGym.Ifc
{
if (release < ReleaseVersion.IFC4)
return "";
return base.BuildStringSTEP(release) + (string.IsNullOrEmpty(mUsageName) ? ",$," : ",'" + ParserIfc.Encode(mUsageName) + "',") + (mTemplateType == IfcComplexPropertyTemplateTypeEnum.NOTDEFINED ? ",$," : ",." + mTemplateType + ".,") +
return base.BuildStringSTEP(release) + (string.IsNullOrEmpty(mUsageName) ? ",$," : ",'" + ParserSTEP.Encode(mUsageName) + "',") + (mTemplateType == IfcComplexPropertyTemplateTypeEnum.NOTDEFINED ? ",$," : ",." + mTemplateType + ".,") +
(mHasPropertyTemplates.Count == 0 ? "$" : "(" + string.Join(",", mHasPropertyTemplates.Values.Select(x => "#" + x.StepId)) + ")");
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
base.parse(str, ref pos, release, len, dictionary);
mUsageName = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mUsageName = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
string field = ParserSTEP.StripField(str, ref pos, len);
if (field.StartsWith("."))
Enum.TryParse<IfcComplexPropertyTemplateTypeEnum>(field.Replace(".", ""), true, out mTemplateType);
@ -717,13 +717,13 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return base.BuildStringSTEP(release) + ",(#" + String.Join(",#", mProfiles.Select(x=>x.StepId)) + (string.IsNullOrEmpty(mLabel) ? "),$" : "),'" + ParserIfc.Encode(mLabel) + "'");
return base.BuildStringSTEP(release) + ",(#" + String.Join(",#", mProfiles.Select(x=>x.StepId)) + (string.IsNullOrEmpty(mLabel) ? "),$" : "),'" + ParserSTEP.Encode(mLabel) + "'");
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
base.parse(str, ref pos, release, len, dictionary);
mProfiles.AddRange(ParserSTEP.StripListLink(str, ref pos, len).Select(x=>dictionary[x] as IfcProfileDef));
mLabel = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mLabel = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
}
}
public partial class IfcCompressor
@ -903,23 +903,23 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return "'" + ParserIfc.Encode(mName) + (string.IsNullOrWhiteSpace(mDescription) ? "',$,." : "','" + ParserIfc.Encode(mDescription) +
"',.") + mConstraintGrade.ToString() + (string.IsNullOrWhiteSpace(mConstraintSource) ? ".,$," : ".,'" + ParserIfc.Encode(mConstraintSource) + "',") +
return "'" + ParserSTEP.Encode(mName) + (string.IsNullOrWhiteSpace(mDescription) ? "',$,." : "','" + ParserSTEP.Encode(mDescription) +
"',.") + mConstraintGrade.ToString() + (string.IsNullOrWhiteSpace(mConstraintSource) ? ".,$," : ".,'" + ParserSTEP.Encode(mConstraintSource) + "',") +
(mCreatingActor == null ? "$," : "#" + mCreatingActor.StepId + ",") +
(release < ReleaseVersion.IFC4 ? (mSSCreationTime == null ? "$" : "#" + mSSCreationTime.StepId) : IfcDate.STEPAttribute(mCreationTime)) +
(string.IsNullOrEmpty(mUserDefinedGrade) ? ",$" : ",'" + ParserIfc.Encode(mUserDefinedGrade) + "'"); }
(string.IsNullOrEmpty(mUserDefinedGrade) ? ",$" : ",'" + ParserSTEP.Encode(mUserDefinedGrade) + "'"); }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
Name = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
Description = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
Name = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
Description = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
Enum.TryParse<IfcConstraintEnum>(ParserSTEP.StripField(str, ref pos, len).Replace(".", ""), true, out mConstraintGrade);
mConstraintSource = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mConstraintSource = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mCreatingActor = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcActorSelect;
if (release < ReleaseVersion.IFC4)
mSSCreationTime = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcDateTimeSelect;
else
mCreationTime = IfcDate.ParseSTEP(ParserSTEP.StripString(str, ref pos, len));
mUserDefinedGrade = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mUserDefinedGrade = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
}
}
public partial class IfcConstructionEquipmentResource
@ -1013,8 +1013,8 @@ namespace GeometryGym.Ifc
protected override string BuildStringSTEP(ReleaseVersion release)
{
if (release < ReleaseVersion.IFC4)
return base.BuildStringSTEP(release) + (string.IsNullOrEmpty(mIdentification) ? ",$," : ",'" + ParserIfc.Encode(mIdentification) + "',") +
(string.IsNullOrEmpty(mResourceGroup) ? "$," : "'" + ParserIfc.Encode(mResourceGroup) + "',") + ParserSTEP.ObjToLinkString(mBaseQuantitySS);
return base.BuildStringSTEP(release) + (string.IsNullOrEmpty(mIdentification) ? ",$," : ",'" + ParserSTEP.Encode(mIdentification) + "',") +
(string.IsNullOrEmpty(mResourceGroup) ? "$," : "'" + ParserSTEP.Encode(mResourceGroup) + "',") + ParserSTEP.ObjToLinkString(mBaseQuantitySS);
return base.BuildStringSTEP(release) + (mUsage == null ? ",$,(" : ",#" + mUsage.StepId + ",(") +
String.Join(",", BaseCosts.Select(x=>"#" + x.StepId)) + (mBaseQuantity == null ? "),$" : "),#" + mBaseQuantity.StepId);
}
@ -1024,8 +1024,8 @@ namespace GeometryGym.Ifc
if (release < ReleaseVersion.IFC4)
{
mIdentification = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mResourceGroup = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mIdentification = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mResourceGroup = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mBaseQuantitySS = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcMeasureWithUnit;
}
else
@ -1055,9 +1055,9 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return base.BuildStringSTEP(release) + (string.IsNullOrEmpty(mObjectType) ? ",$" : ",'" + ParserIfc.Encode(mObjectType) + "'") +
(string.IsNullOrEmpty(mLongName) ? ",$" : ",'" + ParserIfc.Encode(mLongName) + "'") +
(string.IsNullOrEmpty(mPhase) ? ",$" : ",'" + ParserIfc.Encode(mPhase) + "'") +
return base.BuildStringSTEP(release) + (string.IsNullOrEmpty(mObjectType) ? ",$" : ",'" + ParserSTEP.Encode(mObjectType) + "'") +
(string.IsNullOrEmpty(mLongName) ? ",$" : ",'" + ParserSTEP.Encode(mLongName) + "'") +
(string.IsNullOrEmpty(mPhase) ? ",$" : ",'" + ParserSTEP.Encode(mPhase) + "'") +
(mRepresentationContexts.Count == 0 ? ",$," : ",(" + string.Join(",", mRepresentationContexts.Select(x => "#" + x.StepId)) + "),") +
(mUnitsInContext == null ? "$" : "#" + mUnitsInContext.StepId);
@ -1065,9 +1065,9 @@ namespace GeometryGym.Ifc
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
base.parse(str, ref pos, release, len, dictionary);
mObjectType = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mLongName = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mPhase = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mObjectType = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mLongName = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mPhase = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
RepresentationContexts.AddRange(ParserSTEP.StripListLink(str, ref pos, len).ConvertAll(x => dictionary[x] as IfcRepresentationContext));
mUnitsInContext = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcUnitAssignment;
@ -1079,22 +1079,22 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return base.BuildStringSTEP(release) + ",'" + ParserIfc.Encode(mName) + "'";
return base.BuildStringSTEP(release) + ",'" + ParserSTEP.Encode(mName) + "'";
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
base.parse(str, ref pos, release, len, dictionary);
Name = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
Name = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
}
}
public abstract partial class IfcControl
{
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + (release < ReleaseVersion.IFC4 ? "" : (string.IsNullOrEmpty( mIdentification) ? ",$" : ",'" + ParserIfc.Encode(mIdentification) + "'")); }
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + (release < ReleaseVersion.IFC4 ? "" : (string.IsNullOrEmpty( mIdentification) ? ",$" : ",'" + ParserSTEP.Encode(mIdentification) + "'")); }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
base.parse(str, ref pos, release, len, dictionary);
if (release > ReleaseVersion.IFC2x3)
mIdentification = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mIdentification = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
}
}
public partial class IfcController
@ -1236,15 +1236,15 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return "'" + ParserIfc.Encode(mName) + "'," + (string.IsNullOrEmpty(mDescription) ? "$," : "'" + ParserIfc.Encode(mDescription) + "',") +
(string.IsNullOrEmpty(mGeodeticDatum) ? "$" : "'" + ParserIfc.Encode(mGeodeticDatum) + "'") + (string.IsNullOrEmpty(mVerticalDatum) ? ",$" : ",'" + ParserIfc.Encode(mVerticalDatum) + "'");
return "'" + ParserSTEP.Encode(mName) + "'," + (string.IsNullOrEmpty(mDescription) ? "$," : "'" + ParserSTEP.Encode(mDescription) + "',") +
(string.IsNullOrEmpty(mGeodeticDatum) ? "$" : "'" + ParserSTEP.Encode(mGeodeticDatum) + "'") + (string.IsNullOrEmpty(mVerticalDatum) ? ",$" : ",'" + ParserSTEP.Encode(mVerticalDatum) + "'");
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
mName = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mDescription = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mGeodeticDatum = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mVerticalDatum = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mName = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mDescription = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mGeodeticDatum = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mVerticalDatum = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
}
}
public partial class IfcCosineSpiral
@ -1309,12 +1309,12 @@ namespace GeometryGym.Ifc
{
return base.BuildStringSTEP(release) + (mSubmittedBy == null ? ",$" : ",#" + mSubmittedBy.StepId) +
(mPreparedBy == null ? ",$" : ",#" + mPreparedBy.StepId) + (mSubmittedOnSS == null ? ",$" : ",#" + mSubmittedOnSS.StepId) +
(string.IsNullOrEmpty(mStatus) ? ",$" : ",'" + ParserIfc.Encode(mStatus) + "'") +
(string.IsNullOrEmpty(mStatus) ? ",$" : ",'" + ParserSTEP.Encode(mStatus) + "'") +
(mTargetUsers.Count == 0 ? ",$" : ",(" + string.Join(",", mTargetUsers.Select(x=>"#" + x.StepId)) +")") +
(mUpdateDateSS == null ? ",$" : ",#" + mUpdateDateSS.StepId) + (string.IsNullOrEmpty(mIdentification) ? ",$,." : ",'" + ParserIfc.Encode( mIdentification) + "',.") +
(mUpdateDateSS == null ? ",$" : ",#" + mUpdateDateSS.StepId) + (string.IsNullOrEmpty(mIdentification) ? ",$,." : ",'" + ParserSTEP.Encode( mIdentification) + "',.") +
mPredefinedType.ToString() + ".";
}
return base.BuildStringSTEP(release) + ",." + mPredefinedType.ToString() + (string.IsNullOrEmpty(mStatus) ? ".,$," : ".,'" + ParserIfc.Encode(mStatus) + "',") + IfcDate.STEPAttribute( mSubmittedOn) + "," + IfcDate.STEPAttribute(mUpdateDate);
return base.BuildStringSTEP(release) + ",." + mPredefinedType.ToString() + (string.IsNullOrEmpty(mStatus) ? ".,$," : ".,'" + ParserSTEP.Encode(mStatus) + "',") + IfcDate.STEPAttribute( mSubmittedOn) + "," + IfcDate.STEPAttribute(mUpdateDate);
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
@ -1324,10 +1324,10 @@ namespace GeometryGym.Ifc
mSubmittedBy = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcActorSelect;
mPreparedBy = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcActorSelect;
mSubmittedOnSS = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcDateTimeSelect;
mStatus = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mStatus = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mTargetUsers.AddRange(ParserSTEP.StripListLink(str, ref pos, len).Select(x=>dictionary[x] as IfcActorSelect));
mUpdateDateSS = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcDateTimeSelect;
mIdentification = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mIdentification = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
Enum.TryParse<IfcCostScheduleTypeEnum>(ParserSTEP.StripField(str, ref pos, len).Replace(".", ""), true, out mPredefinedType);
}
else
@ -1623,12 +1623,12 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return (string.IsNullOrEmpty(mName) ? "$,(" : "'" + ParserIfc.Encode(mName) + "',(") +
return (string.IsNullOrEmpty(mName) ? "$,(" : "'" + ParserSTEP.Encode(mName) + "',(") +
string.Join(",", mPatternList.Select(x => "#" + x.StepId)) + ")";
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
mName = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mName = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mPatternList.AddRange(ParserSTEP.StripListLink(str, ref pos, len).Select(x => dictionary[x] as IfcCurveStyleFontPattern));
}
}
@ -1636,11 +1636,11 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return (string.IsNullOrEmpty(mName) ? "$,#" : "'" + ParserIfc.Encode(mName) + "',#") + mCurveStyleFont.StepId + "," + mCurveFontScaling.ToString();
return (string.IsNullOrEmpty(mName) ? "$,#" : "'" + ParserSTEP.Encode(mName) + "',#") + mCurveStyleFont.StepId + "," + mCurveFontScaling.ToString();
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
mName = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mName = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mCurveStyleFont = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcCurveStyleFontSelect;
mCurveFontScaling = ParserSTEP.StripDouble(str, ref pos, len);
}

Просмотреть файл

@ -65,14 +65,14 @@ namespace GeometryGym.Ifc
protected override string BuildStringSTEP(ReleaseVersion release)
{
return base.BuildStringSTEP(release) + ",#" + mParentProfile.StepId + (mOperator == null ? ",*" : ",#" + mOperator.StepId) +
(string.IsNullOrEmpty(mLabel) ? ",$" : ",'" + ParserIfc.Encode(mLabel) + "'");
(string.IsNullOrEmpty(mLabel) ? ",$" : ",'" + ParserSTEP.Encode(mLabel) + "'");
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
base.parse(str, ref pos, release, len, dictionary);
mParentProfile = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcProfileDef;
mOperator = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcCartesianTransformationOperator2D;
mLabel = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mLabel = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
}
}
public partial class IfcDerivedUnit
@ -81,7 +81,7 @@ namespace GeometryGym.Ifc
{
return "(" + string.Join(",", mElements.Select(x=> "#" +x.StepId)) +
"),." + mUnitType.ToString() + (mUserDefinedType == "$" ? ".,$" : ".,'" + mUserDefinedType + "'") +
(release >= ReleaseVersion.IFC4X3 ? (string.IsNullOrEmpty(mName) ? ",$" : ",'" + ParserIfc.Encode(mName) + "'") : "");
(release >= ReleaseVersion.IFC4X3 ? (string.IsNullOrEmpty(mName) ? ",$" : ",'" + ParserSTEP.Encode(mName) + "'") : "");
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
@ -89,7 +89,7 @@ namespace GeometryGym.Ifc
Enum.TryParse<IfcDerivedUnitEnum>(ParserSTEP.StripField(str, ref pos, len).Replace(".", ""), true, out mUnitType);
mUserDefinedType = ParserSTEP.StripString(str, ref pos, len);
if(release >= ReleaseVersion.IFC4X3)
mName = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mName = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
}
}
public partial class IfcDerivedUnitElement
@ -284,13 +284,13 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return base.BuildStringSTEP(release) + (release < ReleaseVersion.IFC4 ? (string.IsNullOrEmpty(mControlElementId) ? ",$" : ",'" + ParserIfc.Encode(mControlElementId) + "'") : "");
return base.BuildStringSTEP(release) + (release < ReleaseVersion.IFC4 ? (string.IsNullOrEmpty(mControlElementId) ? ",$" : ",'" + ParserSTEP.Encode(mControlElementId) + "'") : "");
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
base.parse(str, ref pos, release, len, dictionary);
if(release < ReleaseVersion.IFC4)
mControlElementId = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mControlElementId = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
}
}
public partial class IfcDistributionPort
@ -322,12 +322,12 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return base.BuildStringSTEP(release) + (release < ReleaseVersion.IFC4 ? "" : (string.IsNullOrEmpty(mLongName) ? ",$,." : ",'" + ParserIfc.Encode(mLongName) + "',.") + mPredefinedType.ToString() + ".");
return base.BuildStringSTEP(release) + (release < ReleaseVersion.IFC4 ? "" : (string.IsNullOrEmpty(mLongName) ? ",$,." : ",'" + ParserSTEP.Encode(mLongName) + "',.") + mPredefinedType.ToString() + ".");
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
base.parse(str, ref pos, release, len, dictionary);
mLongName = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mLongName = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
string s = ParserSTEP.StripField(str, ref pos, len);
if (s.StartsWith("."))
Enum.TryParse<IfcDistributionSystemEnum>(s.Replace(".", ""), true, out mPredefinedType);
@ -337,15 +337,15 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return (string.IsNullOrEmpty(mFileExtension) ? "$," : "'" + ParserIfc.Encode(mFileExtension) + ",',") +
(string.IsNullOrEmpty(mMimeContentType) ? "$," : "'" + ParserIfc.Encode(mMimeContentType) + "',") +
(string.IsNullOrEmpty(mMimeSubtype) ? "$" : "'" + ParserIfc.Encode(mMimeSubtype) + "'");
return (string.IsNullOrEmpty(mFileExtension) ? "$," : "'" + ParserSTEP.Encode(mFileExtension) + ",',") +
(string.IsNullOrEmpty(mMimeContentType) ? "$," : "'" + ParserSTEP.Encode(mMimeContentType) + "',") +
(string.IsNullOrEmpty(mMimeSubtype) ? "$" : "'" + ParserSTEP.Encode(mMimeSubtype) + "'");
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
mFileExtension = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mMimeContentType = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mMimeSubtype = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mFileExtension = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mMimeContentType = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mMimeSubtype = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
}
}
public partial class IfcDocumentInformation
@ -356,28 +356,28 @@ namespace GeometryGym.Ifc
{
return "";//to be implemented
}
return "'" + ParserIfc.Encode(mIdentification) + "','" + ParserIfc.Encode(mName) +
(string.IsNullOrEmpty(mDescription) ? "',$," : "','" + ParserIfc.Encode(mDescription) + "',") +
return "'" + ParserSTEP.Encode(mIdentification) + "','" + ParserSTEP.Encode(mName) +
(string.IsNullOrEmpty(mDescription) ? "',$," : "','" + ParserSTEP.Encode(mDescription) + "',") +
(release < ReleaseVersion.IFC4 ? (mDocumentReferences.Count == 0 ? "$," : "(#" + string.Join(",#", mDocumentReferences) + "),") :
(string.IsNullOrEmpty(mLocation) ? "$," : "'" + ParserIfc.Encode(mLocation) + "',")) +
(string.IsNullOrEmpty(mPurpose) ? "$," : "'" + ParserIfc.Encode(mPurpose) + "',") + (string.IsNullOrEmpty(mIntendedUse) ? "$," : "'" + ParserIfc.Encode(mIntendedUse) + "',") +
(string.IsNullOrEmpty(mScope) ? "$," : "'" + ParserIfc.Encode(mScope) + "',") +
(string.IsNullOrEmpty(mRevision) ? "$," : "'" + ParserIfc.Encode(mRevision) + "',") +
(string.IsNullOrEmpty(mLocation) ? "$," : "'" + ParserSTEP.Encode(mLocation) + "',")) +
(string.IsNullOrEmpty(mPurpose) ? "$," : "'" + ParserSTEP.Encode(mPurpose) + "',") + (string.IsNullOrEmpty(mIntendedUse) ? "$," : "'" + ParserSTEP.Encode(mIntendedUse) + "',") +
(string.IsNullOrEmpty(mScope) ? "$," : "'" + ParserSTEP.Encode(mScope) + "',") +
(string.IsNullOrEmpty(mRevision) ? "$," : "'" + ParserSTEP.Encode(mRevision) + "',") +
(mDocumentOwner == null ? "$" : "#" + mDocumentOwner.StepId) +
(mEditors.Count == 0 ? ",$," : ",(" + string.Join(",", mEditors.Select(x=>"#" + x.StepId) + "),") + IfcDateTime.STEPAttribute(mCreationTime) + "," + IfcDateTime.STEPAttribute(mLastRevisionTime) + "," +
(release < ReleaseVersion.IFC4 ? (mSSElectronicFormat == null ? "$" : "#" + mSSElectronicFormat.StepId) : (string.IsNullOrEmpty(mElectronicFormat) ? "$" : "'" + ParserIfc.Encode(mElectronicFormat) + "'")) +
(release < ReleaseVersion.IFC4 ? (mSSElectronicFormat == null ? "$" : "#" + mSSElectronicFormat.StepId) : (string.IsNullOrEmpty(mElectronicFormat) ? "$" : "'" + ParserSTEP.Encode(mElectronicFormat) + "'")) +
(release < ReleaseVersion.IFC4 ? ",$,$" : "," + IfcDate.STEPAttribute(mValidFrom) + "," + IfcDate.STEPAttribute(mValidUntil)) +
(mConfidentiality == IfcDocumentConfidentialityEnum.NOTDEFINED ? ",$," : ",." + mConfidentiality.ToString() + ".,") + (mStatus == IfcDocumentStatusEnum.NOTDEFINED ? "$" : "." + mStatus.ToString() + "."));
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
mIdentification = ParserIfc.Decode( ParserSTEP.StripString(str, ref pos, len));
mName = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mDescription = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mIdentification = ParserSTEP.Decode( ParserSTEP.StripString(str, ref pos, len));
mName = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mDescription = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
if (release < ReleaseVersion.IFC4)
DocumentReferences.AddRange(ParserSTEP.StripListLink(str, ref pos, len).Select(x => dictionary[x] as IfcDocumentReference));
else
mLocation = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mLocation = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mPurpose = ParserSTEP.StripString(str, ref pos, len);
mIntendedUse = ParserSTEP.StripString(str, ref pos, len);
mScope = ParserSTEP.StripString(str, ref pos, len);
@ -406,27 +406,27 @@ namespace GeometryGym.Ifc
{
return base.BuildStringSTEP(release) + ",#" + mRelatingDocument.StepId + ",(" +
string.Join(",", mRelatedDocuments.Select(x=>"#" + x.StepId)) +
(string.IsNullOrEmpty( mRelationshipType) ? "),$" : "),'" + ParserIfc.Encode(mRelationshipType) + "'");
(string.IsNullOrEmpty( mRelationshipType) ? "),$" : "),'" + ParserSTEP.Encode(mRelationshipType) + "'");
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
RelatingDocument = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcDocumentInformation;
RelatedDocuments.AddRange(ParserSTEP.StripListLink(str, ref pos, len).Select(x=>dictionary[x] as IfcDocumentInformation));
RelationshipType = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
RelationshipType = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
}
}
public partial class IfcDocumentReference
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return base.BuildStringSTEP(release) + (release < ReleaseVersion.IFC4 ? "" : (string.IsNullOrEmpty(mDescription) ? ",$," : ",'" + ParserIfc.Encode(mDescription) + "',") +
return base.BuildStringSTEP(release) + (release < ReleaseVersion.IFC4 ? "" : (string.IsNullOrEmpty(mDescription) ? ",$," : ",'" + ParserSTEP.Encode(mDescription) + "',") +
(mReferencedDocument == null ? "$" : "#" + mReferencedDocument.StepId)); }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
base.parse(str, ref pos, release, len, dictionary);
if (release != ReleaseVersion.IFC2x3)
{
mDescription = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mDescription = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mReferencedDocument = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcDocumentInformation;
}
}
@ -438,7 +438,7 @@ namespace GeometryGym.Ifc
return base.BuildStringSTEP(release) + "," + formatLength(mOverallHeight) + "," + formatLength(mOverallWidth) +
(release < ReleaseVersion.IFC4 ? "" : (mPredefinedType == IfcDoorTypeEnum.NOTDEFINED ? ",$," : ",." + mPredefinedType.ToString() + ".,") +
(mOperationType == IfcDoorTypeOperationEnum.NOTDEFINED ? "$," : "." + SerializeDoorTypeOperation(mOperationType, release) + ".,") +
(string.IsNullOrEmpty(mUserDefinedOperationType) ? "$" : ",'" + ParserIfc.Encode(mUserDefinedOperationType) + "'"));
(string.IsNullOrEmpty(mUserDefinedOperationType) ? "$" : ",'" + ParserSTEP.Encode(mUserDefinedOperationType) + "'"));
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
@ -455,7 +455,7 @@ namespace GeometryGym.Ifc
mOperationType = ParseDoorTypeOperation(s.Substring(1, s.Length - 2));
try
{
mUserDefinedOperationType = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mUserDefinedOperationType = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
}
catch (Exception) { }
}
@ -531,14 +531,14 @@ namespace GeometryGym.Ifc
(release < ReleaseVersion.IFC4 ? ",." : ",." + mPredefinedType.ToString() + ".,.") +
IfcDoor.SerializeDoorTypeOperation(mOperationType, release) + (release < ReleaseVersion.IFC4 ? ".,.NOTDEFINED" : "") + ".," +
ParserSTEP.BoolToString(mParameterTakesPrecedence) + (release < ReleaseVersion.IFC4 ? "," +
ParserSTEP.BoolToString(false) : (string.IsNullOrEmpty(mUserDefinedOperationType) ? ",$" : ",'" + ParserIfc.Encode(mUserDefinedOperationType) + "'")); }
ParserSTEP.BoolToString(false) : (string.IsNullOrEmpty(mUserDefinedOperationType) ? ",$" : ",'" + ParserSTEP.Encode(mUserDefinedOperationType) + "'")); }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
base.parse(str, ref pos, release, len, dictionary);
Enum.TryParse<IfcDoorTypeEnum>(ParserSTEP.StripField(str, ref pos, len).Replace(".", ""), true, out mPredefinedType);
mOperationType = IfcDoor.ParseDoorTypeOperation(ParserSTEP.StripField(str, ref pos, len).Replace(".", ""));
mParameterTakesPrecedence = ParserSTEP.StripBool(str, ref pos, len);
mUserDefinedOperationType = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mUserDefinedOperationType = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
}
}
public partial class IfcDraughtingCallout
@ -553,14 +553,14 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return (string.IsNullOrEmpty(mName) ? "$," : "'" + ParserIfc.Encode(mName) + "',") +
(string.IsNullOrEmpty(mDescription) ? "$," : "'" + ParserIfc.Encode(mDescription) + "',") +
return (string.IsNullOrEmpty(mName) ? "$," : "'" + ParserSTEP.Encode(mName) + "',") +
(string.IsNullOrEmpty(mDescription) ? "$," : "'" + ParserSTEP.Encode(mDescription) + "',") +
ParserSTEP.LinkToString(mRelatingDraughtingCallout) + "," + ParserSTEP.LinkToString(mRelatedDraughtingCallout);
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
mName = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mDescription = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mName = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mDescription = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mRelatingDraughtingCallout = ParserSTEP.StripLink(str, ref pos, len);
mRelatedDraughtingCallout = ParserSTEP.StripLink(str, ref pos, len);
}

Просмотреть файл

@ -149,13 +149,13 @@ namespace GeometryGym.Ifc
{
return base.BuildStringSTEP(release) + (release > ReleaseVersion.IFC2x3 ? "" :
",." + mDistributionPointFunction.ToString() +
(string.IsNullOrEmpty(mUserDefinedFunction) ? ".,$" : ".,'" + ParserIfc.Encode(mUserDefinedFunction) + "'"));
(string.IsNullOrEmpty(mUserDefinedFunction) ? ".,$" : ".,'" + ParserSTEP.Encode(mUserDefinedFunction) + "'"));
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
base.parse(str, ref pos, release, len, dictionary);
Enum.TryParse<IfcElectricDistributionPointFunctionEnum>(ParserSTEP.StripField(str, ref pos, len).Replace(".", ""), true, out mDistributionPointFunction);
mUserDefinedFunction = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mUserDefinedFunction = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
}
}
public partial class IfcElectricFlowStorageDevice
@ -290,11 +290,11 @@ namespace GeometryGym.Ifc
}
public abstract partial class IfcElement
{
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + "," + (string.IsNullOrEmpty(mTag) ? "$" : "'" + ParserIfc.Encode(mTag) + "'"); }
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + "," + (string.IsNullOrEmpty(mTag) ? "$" : "'" + ParserSTEP.Encode(mTag) + "'"); }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
base.parse(str, ref pos, release, len, dictionary);
mTag = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mTag = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
}
}
public abstract partial class IfcElementarySurface
@ -337,12 +337,12 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return base.BuildStringSTEP(release) + (string.IsNullOrEmpty(mMethodOfMeasurement) ? ",$,(" : ",'" + ParserIfc.Encode(mMethodOfMeasurement) + "',(") + string.Join(",", mQuantities.Values.Select(x=>"#" + x.StepId)) + ")";
return base.BuildStringSTEP(release) + (string.IsNullOrEmpty(mMethodOfMeasurement) ? ",$,(" : ",'" + ParserSTEP.Encode(mMethodOfMeasurement) + "',(") + string.Join(",", mQuantities.Values.Select(x=>"#" + x.StepId)) + ")";
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
base.parse(str, ref pos, release, len, dictionary);
mMethodOfMeasurement = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mMethodOfMeasurement = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
foreach (IfcPhysicalQuantity quantity in ParserSTEP.StripListLink(str, ref pos, len).Select(x => dictionary[x] as IfcPhysicalQuantity))
addQuantity(quantity);
}
@ -351,12 +351,12 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return base.BuildStringSTEP(release) + (release < ReleaseVersion.IFC4 && (this as IfcDoorType != null || this as IfcWindowType != null) ? "" : (string.IsNullOrEmpty(mElementType) ? ",$" : ",'" + ParserIfc.Encode(mElementType) + "'"));
return base.BuildStringSTEP(release) + (release < ReleaseVersion.IFC4 && (this as IfcDoorType != null || this as IfcWindowType != null) ? "" : (string.IsNullOrEmpty(mElementType) ? ",$" : ",'" + ParserSTEP.Encode(mElementType) + "'"));
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
base.parse(str, ref pos, release, len, dictionary);
mElementType = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mElementType = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
}
}
public partial class IfcEllipse
@ -406,13 +406,13 @@ namespace GeometryGym.Ifc
}
public partial class IfcEnvironmentalImpactValue
{
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + ",'" + mImpactType + "',." + mEnvCategory.ToString() + ".," +(string.IsNullOrEmpty(mUserDefinedCategory) ? "$" : "'" + ParserIfc.Encode(mUserDefinedCategory) + "'"); }
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + ",'" + mImpactType + "',." + mEnvCategory.ToString() + ".," +(string.IsNullOrEmpty(mUserDefinedCategory) ? "$" : "'" + ParserSTEP.Encode(mUserDefinedCategory) + "'"); }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
base.parse(str, ref pos, release, len, dictionary);
mImpactType = ParserSTEP.StripString(str, ref pos, len);
Enum.TryParse<IfcEnvironmentalImpactCategoryEnum>(ParserSTEP.StripField(str, ref pos, len).Replace(".", ""), true, out mEnvCategory);
mUserDefinedCategory = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mUserDefinedCategory = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
}
}
public partial class IfcEvaporativeCooler
@ -476,7 +476,7 @@ namespace GeometryGym.Ifc
protected override string BuildStringSTEP(ReleaseVersion release)
{
return (release < ReleaseVersion.IFC4 ? "" : base.BuildStringSTEP(release) + ",." + mPredefinedType.ToString() + ".,." + mEventTriggerType.ToString() +
(string.IsNullOrEmpty(mUserDefinedEventTriggerType) ? ".,$" : (".,'" + ParserIfc.Encode(mUserDefinedEventTriggerType) + "'")) +
(string.IsNullOrEmpty(mUserDefinedEventTriggerType) ? ".,$" : (".,'" + ParserSTEP.Encode(mUserDefinedEventTriggerType) + "'")) +
(mEventOccurrenceTime == null ? ",$" : ",#" + mEventOccurrenceTime.StepId));
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
@ -485,7 +485,7 @@ namespace GeometryGym.Ifc
Enum.TryParse<IfcEventTypeEnum>(ParserSTEP.StripField(str, ref pos, len).Replace(".", ""), true, out mPredefinedType);
Enum.TryParse<IfcEventTriggerTypeEnum>(ParserSTEP.StripField(str, ref pos, len).Replace(".", ""), true, out mEventTriggerType);
mUserDefinedEventTriggerType = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mUserDefinedEventTriggerType = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mEventOccurrenceTime = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcEventTime;
}
}
@ -513,14 +513,14 @@ namespace GeometryGym.Ifc
protected override string BuildStringSTEP(ReleaseVersion release)
{
return (release < ReleaseVersion.IFC4 ? "" : base.BuildStringSTEP(release) + ",." + mPredefinedType.ToString() + ".,." + mEventTriggerType.ToString() +
(string.IsNullOrEmpty(mUserDefinedEventTriggerType) ? ".,$" : (".,'" + ParserIfc.Encode(mUserDefinedEventTriggerType) + "'")));
(string.IsNullOrEmpty(mUserDefinedEventTriggerType) ? ".,$" : (".,'" + ParserSTEP.Encode(mUserDefinedEventTriggerType) + "'")));
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
base.parse(str, ref pos, release, len, dictionary);
Enum.TryParse<IfcEventTypeEnum>(ParserSTEP.StripField(str, ref pos, len).Replace(".", ""), true, out mPredefinedType);
Enum.TryParse<IfcEventTriggerTypeEnum>(ParserSTEP.StripField(str, ref pos, len).Replace(".", ""), true, out mEventTriggerType);
mUserDefinedEventTriggerType = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mUserDefinedEventTriggerType = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
}
}
public partial class IfcExtendedMaterialProperties
@ -530,7 +530,7 @@ namespace GeometryGym.Ifc
if (mProperties.Count == 0)
return "";
return base.BuildStringSTEP(release) + ",(#" + string.Join(",#", mProperties.Values.Select(x => x.StepId)) +
(string.IsNullOrEmpty(mDescription) ? "),$,'" : "),'" + ParserIfc.Encode(mDescription) + "','") + ParserIfc.Encode(mName) + "'";
(string.IsNullOrEmpty(mDescription) ? "),$,'" : "),'" + ParserSTEP.Encode(mDescription) + "','") + ParserSTEP.Encode(mName) + "'";
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
@ -541,8 +541,8 @@ namespace GeometryGym.Ifc
if (property != null)
mProperties[property.Name] = property;
}
mDescription = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mName = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mDescription = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mName = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
}
}
public abstract partial class IfcExtendedProperties
@ -553,15 +553,15 @@ namespace GeometryGym.Ifc
return "";
if (release < ReleaseVersion.IFC4)
return "";
return (string.IsNullOrEmpty(mName) ? "$," : "'" + ParserIfc.Encode(mName) + "',")
+ (string.IsNullOrEmpty(mDescription) ? "$,(#" : "'" + ParserIfc.Encode(mDescription) + "',(#") + string.Join(",#", mProperties.Values.Select(x=>x.StepId)) + ")";
return (string.IsNullOrEmpty(mName) ? "$," : "'" + ParserSTEP.Encode(mName) + "',")
+ (string.IsNullOrEmpty(mDescription) ? "$,(#" : "'" + ParserSTEP.Encode(mDescription) + "',(#") + string.Join(",#", mProperties.Values.Select(x=>x.StepId)) + ")";
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
if (release > ReleaseVersion.IFC2x3)
{
mName = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mDescription = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mName = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mDescription = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
foreach (int i in ParserSTEP.StripListLink(str, ref pos, len))
{
IfcProperty property = dictionary[i] as IfcProperty;
@ -575,15 +575,15 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return (string.IsNullOrEmpty(mLocation) ? "$," : "'" + ParserIfc.Encode(mLocation) + "',") +
(string.IsNullOrEmpty(mIdentification) ? "$" : "'" + ParserIfc.Encode(mIdentification) + "'") +
(string.IsNullOrEmpty(mName) ? ",$" : ",'" + ParserIfc.Encode(mName) + "'");
return (string.IsNullOrEmpty(mLocation) ? "$," : "'" + ParserSTEP.Encode(mLocation) + "',") +
(string.IsNullOrEmpty(mIdentification) ? "$" : "'" + ParserSTEP.Encode(mIdentification) + "'") +
(string.IsNullOrEmpty(mName) ? ",$" : ",'" + ParserSTEP.Encode(mName) + "'");
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
mLocation = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mIdentification = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mName = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mLocation = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mIdentification = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mName = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
}
}
public partial class IfcExternalReferenceRelationship

Просмотреть файл

@ -380,7 +380,7 @@ namespace GeometryGym.Ifc
(mVelocityTimeSeries == null ? ",$" : ",#" + mVelocityTimeSeries.StepId) +
(mFlowrateTimeSeries == null ? ",$" : ",#" + mFlowrateTimeSeries.StepId) + ",#" + mFluid.StepId +
(mPressureTimeSeries == null ? ",$" : ",#" + mPressureTimeSeries.StepId) +
(string.IsNullOrEmpty(mUserDefinedPropertySource) ? ",$," : ",'" + ParserIfc.Encode(mUserDefinedPropertySource) + "',") +
(string.IsNullOrEmpty(mUserDefinedPropertySource) ? ",$," : ",'" + ParserSTEP.Encode(mUserDefinedPropertySource) + "',") +
ParserSTEP.DoubleOptionalToString(mTemperatureSingleValue) + "," + ParserSTEP.DoubleOptionalToString(mWetBulbTemperatureSingleValue) + "," +
(mWetBulbTemperatureTimeSeries == null ? ",$" : ",#" + mWetBulbTemperatureTimeSeries.StepId) +
(mTemperatureTimeSeries == null ? ",$" :",#" + mTemperatureTimeSeries.StepId) + "," +
@ -396,7 +396,7 @@ namespace GeometryGym.Ifc
mFlowrateTimeSeries = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcTimeSeries;
mFluid = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcMaterial;
mPressureTimeSeries = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcTimeSeries;
mUserDefinedPropertySource = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mUserDefinedPropertySource = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mTemperatureSingleValue = ParserSTEP.StripLink(str, ref pos, len);
mWetBulbTemperatureSingleValue = ParserSTEP.StripLink(str, ref pos, len);
mWetBulbTemperatureTimeSeries = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcTimeSeries;

Просмотреть файл

@ -121,14 +121,14 @@ namespace GeometryGym.Ifc
protected override string BuildStringSTEP(ReleaseVersion release)
{
return base.BuildStringSTEP(release) + ",#" + mParentContext.StepId + (double.IsNaN(mTargetScale) || mTargetScale <=0 ? ",$,." : "," + ParserSTEP.DoubleOptionalToString(mTargetScale) + ",.") +
mTargetView.ToString() + (string.IsNullOrEmpty(mUserDefinedTargetView) ? ".,$" : ".,'" + ParserIfc.Encode(mUserDefinedTargetView) + "'"); }
mTargetView.ToString() + (string.IsNullOrEmpty(mUserDefinedTargetView) ? ".,$" : ".,'" + ParserSTEP.Encode(mUserDefinedTargetView) + "'"); }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
base.parse(str, ref pos, release, len, dictionary);
ParentContext = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcGeometricRepresentationContext;
mTargetScale = ParserSTEP.StripDouble(str, ref pos, len);
Enum.TryParse<IfcGeometricProjectionEnum>(ParserSTEP.StripField(str, ref pos, len).Replace(".", ""), true, out mTargetView);
mUserDefinedTargetView = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mUserDefinedTargetView = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
}
}
public partial class IfcGeometricSet
@ -199,10 +199,10 @@ namespace GeometryGym.Ifc
}
public partial class IfcGridAxis
{
protected override string BuildStringSTEP(ReleaseVersion release) { return (string.IsNullOrEmpty(mAxisTag) ? "$," : "'" + ParserIfc.Encode(mAxisTag) + "',#") + AxisCurve.StepId + "," + ParserSTEP.BoolToString(mSameSense); }
protected override string BuildStringSTEP(ReleaseVersion release) { return (string.IsNullOrEmpty(mAxisTag) ? "$," : "'" + ParserSTEP.Encode(mAxisTag) + "',#") + AxisCurve.StepId + "," + ParserSTEP.BoolToString(mSameSense); }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
mAxisTag = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mAxisTag = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
AxisCurve = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcCurve;
mSameSense = ParserSTEP.StripBool(str, ref pos, len);
}

Просмотреть файл

@ -31,11 +31,11 @@ namespace GeometryGym.Ifc
{
public partial class IfcImageTexture
{
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + ",'" + ParserIfc.Encode(mUrlReference) + "'"; }
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + ",'" + ParserSTEP.Encode(mUrlReference) + "'"; }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
base.parse(str, ref pos, release, len, dictionary);
mUrlReference = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mUrlReference = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
}
}
public partial class IfcIndexedColourMap

Просмотреть файл

@ -99,18 +99,18 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
string result = "'" + ParserIfc.Encode(mName) + (string.IsNullOrEmpty(mVersion) ? "',$," : "','" + ParserIfc.Encode(mVersion) + "',") +
string result = "'" + ParserSTEP.Encode(mName) + (string.IsNullOrEmpty(mVersion) ? "',$," : "','" + ParserSTEP.Encode(mVersion) + "',") +
(mPublisher == null? "$" : "#" + mPublisher.StepId);
if (mDatabase.Release < ReleaseVersion.IFC4)
return result + (mVersionDateSS == null ? ",$" : ",#" + mVersionDateSS.StepId) + ",(" + string.Join(",", mHasConstraintRelationships.Select(x => "#" + x.StepId)) + ")";
return result + "," + IfcDateTime.STEPAttribute(mVersionDate) + "," +
(string.IsNullOrEmpty(mLocation) ? "$," : "'" + ParserIfc.Encode(mLocation) + "',") +
(string.IsNullOrEmpty(mDescription) ? "$" : "'" + ParserIfc.Encode(mDescription) + "'");
(string.IsNullOrEmpty(mLocation) ? "$," : "'" + ParserSTEP.Encode(mLocation) + "',") +
(string.IsNullOrEmpty(mDescription) ? "$" : "'" + ParserSTEP.Encode(mDescription) + "'");
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
mName = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mVersion = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mName = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mVersion = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mPublisher = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcActorSelect;
if (release < ReleaseVersion.IFC4)
{
@ -120,8 +120,8 @@ namespace GeometryGym.Ifc
else
{
mVersionDate = IfcDateTime.ParseSTEP(ParserSTEP.StripField(str, ref pos, len));
mLocation = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mDescription = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mLocation = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mDescription = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
}
}
}
@ -132,8 +132,8 @@ namespace GeometryGym.Ifc
string result = base.BuildStringSTEP(release);
if (release < ReleaseVersion.IFC4)
return result;
return result + (string.IsNullOrEmpty(mDescription) ? ",$," : ",'" + ParserIfc.Encode(mDescription) + "',") +
(string.IsNullOrEmpty(mLanguage) ? "$," : "'" + ParserIfc.Encode(mLanguage) + "',") + ParserSTEP.ObjToLinkString(mReferencedLibrary);
return result + (string.IsNullOrEmpty(mDescription) ? ",$," : ",'" + ParserSTEP.Encode(mDescription) + "',") +
(string.IsNullOrEmpty(mLanguage) ? "$," : "'" + ParserSTEP.Encode(mLanguage) + "',") + ParserSTEP.ObjToLinkString(mReferencedLibrary);
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
@ -141,7 +141,7 @@ namespace GeometryGym.Ifc
if (release != ReleaseVersion.IFC2x3)
{
mDescription = ParserSTEP.StripString(str, ref pos, len);
mLanguage = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mLanguage = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
ReferencedLibrary = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcLibraryInformation;
}
}
@ -200,10 +200,10 @@ namespace GeometryGym.Ifc
}
public abstract partial class IfcLightSource
{
protected override string BuildStringSTEP(ReleaseVersion release) { return (string.IsNullOrEmpty(mName) ? "$," : "'" + ParserIfc.Encode(mName) + "',") + ParserSTEP.LinkToString(mLightColour) + "," + ParserSTEP.DoubleOptionalToString(mAmbientIntensity) + "," + ParserSTEP.DoubleOptionalToString(mIntensity); }
protected override string BuildStringSTEP(ReleaseVersion release) { return (string.IsNullOrEmpty(mName) ? "$," : "'" + ParserSTEP.Encode(mName) + "',") + ParserSTEP.LinkToString(mLightColour) + "," + ParserSTEP.DoubleOptionalToString(mAmbientIntensity) + "," + ParserSTEP.DoubleOptionalToString(mIntensity); }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
mName = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mName = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mLightColour = ParserSTEP.StripLink(str, ref pos, len);
mAmbientIntensity = ParserSTEP.StripDouble(str, ref pos, len);
mIntensity = ParserSTEP.StripDouble(str, ref pos, len);

Просмотреть файл

@ -113,17 +113,17 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return "'" + ParserIfc.Encode(mName) + (release > ReleaseVersion.IFC2x3 ? (string.IsNullOrEmpty(mDescription) ? "',$," : "','" + ParserIfc.Encode(mDescription) + "',") +
(string.IsNullOrEmpty(mCategory) ? "$" : "'" + ParserIfc.Encode(mCategory) + "'") : "'" ); }
return "'" + ParserSTEP.Encode(mName) + (release > ReleaseVersion.IFC2x3 ? (string.IsNullOrEmpty(mDescription) ? "',$," : "','" + ParserSTEP.Encode(mDescription) + "',") +
(string.IsNullOrEmpty(mCategory) ? "$" : "'" + ParserSTEP.Encode(mCategory) + "'") : "'" ); }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
mName = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mName = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
if (release != ReleaseVersion.IFC2x3)
{
try
{
mDescription = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mCategory = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mDescription = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mCategory = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
}
catch (Exception) { }
}
@ -145,29 +145,29 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return (string.IsNullOrEmpty(mName) ? "$," : "'" + ParserIfc.Encode(mName) + "',") +
(string.IsNullOrEmpty(mDescription) ? "$,#" : "'" + ParserIfc.Encode(mDescription) + "',#") + mMaterial.StepId + "," +
ParserSTEP.DoubleToString(mFraction) + (string.IsNullOrEmpty(mCategory) ? ",$" : ",'" + ParserIfc.Encode(mCategory) + "'");
return (string.IsNullOrEmpty(mName) ? "$," : "'" + ParserSTEP.Encode(mName) + "',") +
(string.IsNullOrEmpty(mDescription) ? "$,#" : "'" + ParserSTEP.Encode(mDescription) + "',#") + mMaterial.StepId + "," +
ParserSTEP.DoubleToString(mFraction) + (string.IsNullOrEmpty(mCategory) ? ",$" : ",'" + ParserSTEP.Encode(mCategory) + "'");
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
mName = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mDescription = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mName = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mDescription = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mMaterial = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcMaterial;
mFraction = ParserSTEP.StripDouble(str, ref pos, len);
mCategory = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mCategory = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
}
}
public partial class IfcMaterialConstituentSet
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return (string.IsNullOrEmpty(mName) ? "$," : "'" + ParserIfc.Encode(mName) + "',") + (string.IsNullOrEmpty(mDescription) ? "$,(#" : "'" + ParserIfc.Encode(mDescription) + "',(#") + string.Join(",#", mMaterialConstituents.Values.Select(x=>x.StepId)) + ")";
return (string.IsNullOrEmpty(mName) ? "$," : "'" + ParserSTEP.Encode(mName) + "',") + (string.IsNullOrEmpty(mDescription) ? "$,(#" : "'" + ParserSTEP.Encode(mDescription) + "',(#") + string.Join(",#", mMaterialConstituents.Values.Select(x=>x.StepId)) + ")";
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
mName = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mDescription = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mName = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mDescription = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
foreach (IfcMaterialConstituent constituent in ParserSTEP.StripListLink(str, ref pos, len).Select(x=>dictionary[x] as IfcMaterialConstituent))
mMaterialConstituents[constituent.Name] = constituent;
}
@ -187,9 +187,9 @@ namespace GeometryGym.Ifc
{
return (mMaterial == null ? "$," : "#" + mMaterial.StepId + ",") + ParserSTEP.DoubleToString(mLayerThickness) + "," +
ParserIfc.LogicalToString(mIsVentilated) + (release < ReleaseVersion.IFC4 ? "" :
(string.IsNullOrEmpty(mName) ? ",$," : ",'" + ParserIfc.Encode(mName) + "',") +
(string.IsNullOrEmpty(mDescription) ? "$," : "'" + ParserIfc.Encode(mDescription) + "',") +
(string.IsNullOrEmpty(mCategory) ? "$," : "'" + ParserIfc.Encode(mCategory) + "',") +
(string.IsNullOrEmpty(mName) ? ",$," : ",'" + ParserSTEP.Encode(mName) + "',") +
(string.IsNullOrEmpty(mDescription) ? "$," : "'" + ParserSTEP.Encode(mDescription) + "',") +
(string.IsNullOrEmpty(mCategory) ? "$," : "'" + ParserSTEP.Encode(mCategory) + "',") +
ParserSTEP.DoubleOptionalToString(mPriority));
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
@ -201,9 +201,9 @@ namespace GeometryGym.Ifc
{
if (release != ReleaseVersion.IFC2x3)
{
mName = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mDescription = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mCategory = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mName = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mDescription = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mCategory = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mPriority = ParserSTEP.StripDouble(str, ref pos, len);
}
}
@ -215,15 +215,15 @@ namespace GeometryGym.Ifc
protected override string BuildStringSTEP(ReleaseVersion release)
{
return "(" + string.Join(",", mMaterialLayers.Select(x=>"#" +x.StepId)) +
(string.IsNullOrEmpty(mLayerSetName) ? "),$" : "),'" + ParserIfc.Encode(mLayerSetName) + "'") +
(release < ReleaseVersion.IFC4 ? "" : (string.IsNullOrEmpty(mDescription) ? ",$" : ",'" + ParserIfc.Encode(mDescription) + "'"));
(string.IsNullOrEmpty(mLayerSetName) ? "),$" : "),'" + ParserSTEP.Encode(mLayerSetName) + "'") +
(release < ReleaseVersion.IFC4 ? "" : (string.IsNullOrEmpty(mDescription) ? ",$" : ",'" + ParserSTEP.Encode(mDescription) + "'"));
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
MaterialLayers.AddRange(ParserSTEP.StripListLink(str, ref pos, len).Select(x => dictionary[x] as IfcMaterialLayer));
mLayerSetName = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mLayerSetName = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
if (release != ReleaseVersion.IFC2x3)
mDescription = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mDescription = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
}
}
public partial class IfcMaterialLayerSetUsage
@ -284,21 +284,21 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return (release < ReleaseVersion.IFC4 ? "" : (string.IsNullOrEmpty(mName) ? "$," : "'" + ParserIfc.Encode(mName) + "',") +
(string.IsNullOrEmpty(mDescription) ? "$," : "'" + ParserIfc.Encode(mDescription) + "',") + ParserSTEP.ObjToLinkString(mMaterial) + "," +
ParserSTEP.ObjToLinkString(mProfile) + (mPriority >= 0 && mPriority <= 100 ? "," + mPriority+ "," : ",$,") + (string.IsNullOrEmpty(mCategory) ? "$" : "'" + ParserIfc.Encode(mCategory) + "'"));
return (release < ReleaseVersion.IFC4 ? "" : (string.IsNullOrEmpty(mName) ? "$," : "'" + ParserSTEP.Encode(mName) + "',") +
(string.IsNullOrEmpty(mDescription) ? "$," : "'" + ParserSTEP.Encode(mDescription) + "',") + ParserSTEP.ObjToLinkString(mMaterial) + "," +
ParserSTEP.ObjToLinkString(mProfile) + (mPriority >= 0 && mPriority <= 100 ? "," + mPriority+ "," : ",$,") + (string.IsNullOrEmpty(mCategory) ? "$" : "'" + ParserSTEP.Encode(mCategory) + "'"));
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
mName = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mDescription = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mName = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mDescription = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
Material = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcMaterial;
Profile = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcProfileDef;
string s = ParserSTEP.StripField(str, ref pos, len);
double d = 0;
if(double.TryParse(s, System.Globalization.NumberStyles.Any, ParserSTEP.NumberFormat, out d)) //Was normalizedRatioMeasure
Priority =(int)d;
mCategory = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mCategory = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
}
}
public partial class IfcMaterialProfileSet
@ -307,14 +307,14 @@ namespace GeometryGym.Ifc
{
if (release < ReleaseVersion.IFC4 || mMaterialProfiles.Count == 0)
return "";
return (string.IsNullOrEmpty(mName) ? "$," : "'" + ParserIfc.Encode(mName) + "',") +
(string.IsNullOrEmpty(mDescription) ? "$,(" : "'" + ParserIfc.Encode(mDescription) + "',(") +
return (string.IsNullOrEmpty(mName) ? "$," : "'" + ParserSTEP.Encode(mName) + "',") +
(string.IsNullOrEmpty(mDescription) ? "$,(" : "'" + ParserSTEP.Encode(mDescription) + "',(") +
string.Join(",", mMaterialProfiles.Select(x=>"#" + x.StepId)) + ")," + ParserSTEP.ObjToLinkString(mCompositeProfile);
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
mName = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mDescription = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mName = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mDescription = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
MaterialProfiles.AddRange(ParserSTEP.StripListLink(str, ref pos, len).ConvertAll(x => dictionary[x] as IfcMaterialProfile));
CompositeProfile = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcCompositeProfileDef;
}
@ -377,7 +377,7 @@ namespace GeometryGym.Ifc
return "";
return base.BuildStringSTEP(release) + ",#" + mRelatingMaterial.StepId + ",(" +
string.Join(",", mRelatedMaterials.Select(x=>"#" + x.StepId)) +
(string.IsNullOrEmpty(mMaterialExpression) ? "),$" : "),'" + ParserIfc.Encode(mMaterialExpression) + "'");
(string.IsNullOrEmpty(mMaterialExpression) ? "),$" : "),'" + ParserSTEP.Encode(mMaterialExpression) + "'");
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
@ -385,7 +385,7 @@ namespace GeometryGym.Ifc
base.parse(str, ref pos, release, len, dictionary);
RelatingMaterial = dictionary[ ParserSTEP.StripLink(str, ref pos, len)] as IfcMaterial;
RelatedMaterials.AddRange(ParserSTEP.StripListLink(str, ref pos, len).Select(x=>Database[x] as IfcMaterial));
mMaterialExpression = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mMaterialExpression = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
}
}
public partial class IfcMeasureWithUnit
@ -406,18 +406,18 @@ namespace GeometryGym.Ifc
{
return base.BuildStringSTEP(release) + "," + ParserSTEP.DoubleOptionalToString(mCompressiveStrength) + "," +
ParserSTEP.DoubleOptionalToString(mMaxAggregateSize) +
(string.IsNullOrEmpty(mAdmixturesDescription) ? ",$," : ",'" + ParserIfc.Encode(mAdmixturesDescription) + "',") +
(string.IsNullOrEmpty(mAdmixturesDescription) ? ",$," : ",'" + ParserSTEP.Encode(mAdmixturesDescription) + "',") +
(string.IsNullOrEmpty(mWorkability) ? "$," : "'" + mWorkability + "',") + ParserSTEP.DoubleOptionalToString(mProtectivePoreRatio) +
(string.IsNullOrEmpty(mWaterImpermeability) ? ",$" : ",'" + ParserIfc.Encode(mWaterImpermeability) + "'"); }
(string.IsNullOrEmpty(mWaterImpermeability) ? ",$" : ",'" + ParserSTEP.Encode(mWaterImpermeability) + "'"); }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
base.parse(str, ref pos, release, len, dictionary);
mCompressiveStrength = ParserSTEP.StripDouble(str, ref pos, len);
mMaxAggregateSize = ParserSTEP.StripDouble(str, ref pos, len);
mAdmixturesDescription = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mWorkability = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mAdmixturesDescription = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mWorkability = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mProtectivePoreRatio = ParserSTEP.StripDouble(str, ref pos, len);
mWaterImpermeability = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mWaterImpermeability = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
}
}
public partial class IfcMechanicalFastener
@ -537,15 +537,15 @@ namespace GeometryGym.Ifc
protected override string BuildStringSTEP(ReleaseVersion release)
{
return base.BuildStringSTEP(release) + ",." + mBenchMark.ToString() +
(string.IsNullOrEmpty(mValueSource) ? ".,$," : ".,'" + ParserIfc.Encode(mValueSource) + "',") +
(string.IsNullOrEmpty(mValueSource) ? ".,$," : ".,'" + ParserSTEP.Encode(mValueSource) + "',") +
(mDataValue == null ? "$" : (mDataValue is BaseClassIfc o ? "#" + o.StepId : mDataValue.ToString())) +
(mDatabase.Release < ReleaseVersion.IFC4 ? "" : ",#" + mReferencePath.StepId);
(release < ReleaseVersion.IFC4 ? "" : (mReferencePath == null ? ",$" : ",#" + mReferencePath.StepId));
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
base.parse(str, ref pos, release, len, dictionary);
Enum.TryParse<IfcBenchmarkEnum>(ParserSTEP.StripField(str, ref pos, len).Replace(".", ""), true, out mBenchMark);
mValueSource = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mValueSource = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
string s = ParserSTEP.StripField(str, ref pos, len);
if(s[0] == '#')
mDataValue = dictionary[ParserSTEP.ParseLink(s)] as IfcMetricValueSelect;
@ -584,10 +584,10 @@ namespace GeometryGym.Ifc
}
public partial class IfcMonetaryUnit
{
protected override string BuildStringSTEP(ReleaseVersion release) { return (release < ReleaseVersion.IFC4 ? "." + mCurrency + "." : "'" + ParserIfc.Encode(mCurrency) + "'"); }
protected override string BuildStringSTEP(ReleaseVersion release) { return (release < ReleaseVersion.IFC4 ? "." + mCurrency + "." : "'" + ParserSTEP.Encode(mCurrency) + "'"); }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
mCurrency = ParserIfc.Decode( ParserSTEP.StripField(str, ref pos, len).Replace(release < ReleaseVersion.IFC4 ? "." : "'", ""));
mCurrency = ParserSTEP.Decode( ParserSTEP.StripField(str, ref pos, len).Replace(release < ReleaseVersion.IFC4 ? "." : "'", ""));
}
}
public partial class IfcMooringDevice

Просмотреть файл

@ -33,11 +33,11 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return base.BuildStringSTEP(release) + (string.IsNullOrEmpty(mObjectType) ? ",$" : ",'" + ParserIfc.Encode(mObjectType) + "'"); }
return base.BuildStringSTEP(release) + (string.IsNullOrEmpty(mObjectType) ? ",$" : ",'" + ParserSTEP.Encode(mObjectType) + "'"); }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
base.parse(str, ref pos, release, len, dictionary);
mObjectType = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mObjectType = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
}
}
public abstract partial class IfcObjectPlacement
@ -59,7 +59,7 @@ namespace GeometryGym.Ifc
protected override string BuildStringSTEP(ReleaseVersion release)
{
return base.BuildStringSTEP(release) + (mBenchmarkValues.Count == 0 ? ",$," : ",(" + string.Join(",", mBenchmarkValues.Select(x=>"#" + x.StepId)) + "),") +
(mLogicalAggregator != IfcLogicalOperatorEnum.NONE ? "." + mLogicalAggregator.ToString() + ".,." : "$,.") + mObjectiveQualifier + (string.IsNullOrEmpty(mUserDefinedQualifier) ? ".,$" : ".,'" + ParserIfc.Encode(mUserDefinedQualifier) + "'");
(mLogicalAggregator != IfcLogicalOperatorEnum.NONE ? "." + mLogicalAggregator.ToString() + ".,." : "$,.") + mObjectiveQualifier + (string.IsNullOrEmpty(mUserDefinedQualifier) ? ".,$" : ".,'" + ParserSTEP.Encode(mUserDefinedQualifier) + "'");
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
@ -69,7 +69,7 @@ namespace GeometryGym.Ifc
if (s[0] == '.')
Enum.TryParse<IfcLogicalOperatorEnum>(s.Replace(".", ""), true, out mLogicalAggregator);
Enum.TryParse<IfcObjectiveEnum>(ParserSTEP.StripField( str, ref pos, len).Replace(".", ""), true, out mObjectiveQualifier);
mUserDefinedQualifier = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mUserDefinedQualifier = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
}
}
public partial class IfcOccupant
@ -112,12 +112,12 @@ namespace GeometryGym.Ifc
}
public partial class IfcOffsetCurveByDistances
{
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + ",(" + string.Join(",", OffsetValues.ConvertAll(x => "#" + x.StepId)) + (string.IsNullOrEmpty(Tag) ? "),$" : "),'" + ParserIfc.Encode(Tag) + "'"); }
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + ",(" + string.Join(",", OffsetValues.ConvertAll(x => "#" + x.StepId)) + (string.IsNullOrEmpty(Tag) ? "),$" : "),'" + ParserSTEP.Encode(Tag) + "'"); }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
base.parse(str, ref pos, release, len, dictionary);
OffsetValues.AddRange(ParserSTEP.StripListLink(str, ref pos, len).ConvertAll(x => dictionary[x] as IfcPointByDistanceExpression));
Tag = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
Tag = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
}
}
public partial class IfcOneDirectionRepeatFactor
@ -135,7 +135,7 @@ namespace GeometryGym.Ifc
return base.BuildStringSTEP(release) + "," + (mHorizontalWidths ? ".T." : ".F") +
",(" + string.Join(",", mWidths.ConvertAll(x => ParserSTEP.DoubleToString(x))) + ")" +
",(" + string.Join(",", mSlopes.ConvertAll(x => ParserSTEP.DoubleToString(x))) + ")" +
(mTags.Count == 0 ? ",$" : ",(" + string.Join(",", mTags.ConvertAll(x => "'" + ParserIfc.Encode(x) + "'")) + ")") + ",#" + mOffsetPoint.StepId;
(mTags.Count == 0 ? ",$" : ",(" + string.Join(",", mTags.ConvertAll(x => "'" + ParserSTEP.Encode(x) + "'")) + ")") + ",#" + mOffsetPoint.StepId;
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
@ -143,7 +143,7 @@ namespace GeometryGym.Ifc
HorizontalWidths = ParserSTEP.StripBool(str, ref pos, len);
Widths.AddRange(ParserSTEP.StripListDouble(str, ref pos, len));
Slopes.AddRange(ParserSTEP.StripListDouble(str, ref pos, len));
Tags.AddRange(ParserSTEP.SplitListStrings(ParserSTEP.StripField(str, ref pos, len)).ConvertAll(x => ParserIfc.Decode(x)));
Tags.AddRange(ParserSTEP.SplitListStrings(ParserSTEP.StripField(str, ref pos, len)).ConvertAll(x => ParserSTEP.Decode(x)));
OffsetPoint = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcCartesianPoint;
}
}
@ -165,17 +165,17 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return (string.IsNullOrEmpty(mIdentification) ? "$,'" : "'" + ParserIfc.Encode(mIdentification) + "','") + ParserIfc.Encode(Name)
+ (string.IsNullOrEmpty(mDescription) ? "',$," : "','" + ParserIfc.Encode(mDescription) + "',")
return (string.IsNullOrEmpty(mIdentification) ? "$,'" : "'" + ParserSTEP.Encode(mIdentification) + "','") + ParserSTEP.Encode(Name)
+ (string.IsNullOrEmpty(mDescription) ? "',$," : "','" + ParserSTEP.Encode(mDescription) + "',")
+ (mRoles.Count == 0 ? "$," : "(" + string.Join(",", Roles.Select(x=>"#" + x.StepId)) + "),")
+ (mAddresses.Count == 0 ? "$" : "(" + string.Join(",", Addresses.Select(x=> "#" + x.StepId)) + ")");
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
mIdentification = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mName = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mDescription = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mIdentification = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mName = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mDescription = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
Roles.AddRange(ParserSTEP.StripListLink(str, ref pos, len).ConvertAll(x=>dictionary[x] as IfcActorRole));
mAddresses.AddRange(ParserSTEP.StripListLink(str, ref pos, len).ConvertAll(x=>dictionary[x] as IfcAddress));
}

Просмотреть файл

@ -91,12 +91,12 @@ namespace GeometryGym.Ifc
protected override string BuildStringSTEP(ReleaseVersion release)
{
string predefined = (release < ReleaseVersion.IFC4 ? "" : (mPredefinedType == IfcPerformanceHistoryTypeEnum.NOTDEFINED ? ",$" : ",." + mPredefinedType.ToString() + "."));
return base.BuildStringSTEP(release) + ",'" + ParserIfc.Encode(mLifeCyclePhase) + "'" + predefined;
return base.BuildStringSTEP(release) + ",'" + ParserSTEP.Encode(mLifeCyclePhase) + "'" + predefined;
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
base.parse(str, ref pos, release, len, dictionary);
mLifeCyclePhase = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mLifeCyclePhase = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
if(release > ReleaseVersion.IFC2x3)
{
string s = ParserSTEP.StripField(str, ref pos, len);
@ -146,24 +146,24 @@ namespace GeometryGym.Ifc
string id = Identification;
if (string.IsNullOrEmpty(mIdentification) && string.IsNullOrEmpty(mGivenName) && string.IsNullOrEmpty(mFamilyName))
id = "Unknown";
return (string.IsNullOrEmpty(id) ? "$," : "'" + ParserIfc.Encode(id) + "',") +
(string.IsNullOrEmpty(mFamilyName) ? "$," : "'" + ParserIfc.Encode(mFamilyName) + "',") +
(string.IsNullOrEmpty(mGivenName) ? "$," : "'" + ParserIfc.Encode(mGivenName) + "',") +
(mMiddleNames.Count == 0 ? "$," : "(" + string.Join(",", mMiddleNames.Select(x=> "'" + ParserIfc.Encode(x) + "'")) + "),") +
(mPrefixTitles.Count == 0 ? "$," : "(" + string.Join(",", mPrefixTitles.Select(x=>"'" + ParserIfc.Encode(x) + "'")) + "),") +
(mSuffixTitles.Count == 0 ? "$," : "(" + string.Join(",", mSuffixTitles.Select(x=>"'" + ParserIfc.Encode(x) + "'")) + "),") +
return (string.IsNullOrEmpty(id) ? "$," : "'" + ParserSTEP.Encode(id) + "',") +
(string.IsNullOrEmpty(mFamilyName) ? "$," : "'" + ParserSTEP.Encode(mFamilyName) + "',") +
(string.IsNullOrEmpty(mGivenName) ? "$," : "'" + ParserSTEP.Encode(mGivenName) + "',") +
(mMiddleNames.Count == 0 ? "$," : "(" + string.Join(",", mMiddleNames.Select(x=> "'" + ParserSTEP.Encode(x) + "'")) + "),") +
(mPrefixTitles.Count == 0 ? "$," : "(" + string.Join(",", mPrefixTitles.Select(x=>"'" + ParserSTEP.Encode(x) + "'")) + "),") +
(mSuffixTitles.Count == 0 ? "$," : "(" + string.Join(",", mSuffixTitles.Select(x=>"'" + ParserSTEP.Encode(x) + "'")) + "),") +
(Roles.Count == 0 ? "$," : "(" + string.Join(",", Roles.ConvertAll(x=> "#" + x.StepId)) + "),") +
(Addresses.Count == 0 ? "$" : "(" + string.Join(",", Addresses.ConvertAll(x=> "#" + x.StepId)) + ")");
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
mIdentification = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mFamilyName = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mGivenName = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mMiddleNames.AddRange(ParserSTEP.SplitListStrings(ParserSTEP.StripField(str, ref pos, len)).Select(x=>ParserIfc.Decode(x)));
mPrefixTitles.AddRange(ParserSTEP.SplitListStrings(ParserSTEP.StripField(str, ref pos, len)).Select(x => ParserIfc.Decode(x)));
mSuffixTitles.AddRange(ParserSTEP.SplitListStrings(ParserSTEP.StripField(str, ref pos, len)).Select(x => ParserIfc.Decode(x)));
mIdentification = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mFamilyName = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mGivenName = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mMiddleNames.AddRange(ParserSTEP.SplitListStrings(ParserSTEP.StripField(str, ref pos, len)).Select(x=>ParserSTEP.Decode(x)));
mPrefixTitles.AddRange(ParserSTEP.SplitListStrings(ParserSTEP.StripField(str, ref pos, len)).Select(x => ParserSTEP.Decode(x)));
mSuffixTitles.AddRange(ParserSTEP.SplitListStrings(ParserSTEP.StripField(str, ref pos, len)).Select(x => ParserSTEP.Decode(x)));
mRoles.AddRange(ParserSTEP.StripListLink(str, ref pos, len).ConvertAll(x=> dictionary[x] as IfcActorRole));
mAddresses.AddRange(ParserSTEP.StripListLink(str, ref pos, len).ConvertAll(x=> dictionary[x] as IfcAddress));
}
@ -187,26 +187,26 @@ namespace GeometryGym.Ifc
{
return base.BuildStringSTEP(release) +
",(#" + string.Join(",#", mHasQuantities.ConvertAll(x => x.StepId.ToString())) + ")" +
",'" + ParserIfc.Encode(mDiscrimination) + "'" +
(string.IsNullOrEmpty(mQuality) ? ",$" : ",'" + ParserIfc.Encode(mQuality) + "'") +
(string.IsNullOrEmpty(mUsage) ? ",$" : ",'" + ParserIfc.Encode(mUsage) + "'");
",'" + ParserSTEP.Encode(mDiscrimination) + "'" +
(string.IsNullOrEmpty(mQuality) ? ",$" : ",'" + ParserSTEP.Encode(mQuality) + "'") +
(string.IsNullOrEmpty(mUsage) ? ",$" : ",'" + ParserSTEP.Encode(mUsage) + "'");
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
base.parse(str, ref pos, release, len, dictionary);
HasQuantities.AddRange(ParserSTEP.StripListLink(str, ref pos, len).ConvertAll(x => dictionary[x] as IfcPhysicalQuantity));
Discrimination = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
Quality = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
Usage = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
Discrimination = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
Quality = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
Usage = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
}
}
public abstract partial class IfcPhysicalQuantity
{
protected override string BuildStringSTEP(ReleaseVersion release) { return "'" + ParserIfc.Encode(mName) + (string.IsNullOrEmpty(mDescription) ? "',$" : "','" + ParserIfc.Encode(mDescription) + "'"); }
protected override string BuildStringSTEP(ReleaseVersion release) { return "'" + ParserSTEP.Encode(mName) + (string.IsNullOrEmpty(mDescription) ? "',$" : "','" + ParserSTEP.Encode(mDescription) + "'"); }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
mName = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mDescription = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mName = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mDescription = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
}
}
public abstract partial class IfcPhysicalSimpleQuantity
@ -454,32 +454,32 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return base.BuildStringSTEP(release) + (string.IsNullOrEmpty(mInternalLocation) ? ",$" : ",'" + ParserIfc.Encode(mInternalLocation) + "'") +
(mAddressLines.Count == 0 ? ",$" : ",('" + string.Join("','", mAddressLines.Select(x => ParserIfc.Encode(x))) + "')") +
(string.IsNullOrEmpty(mPostalBox) ? ",$" : ",'" + ParserIfc.Encode(mPostalBox) + "'") +
(string.IsNullOrEmpty(mTown) ? ",$" : ",'" + ParserIfc.Encode(mTown) + "'") +
(string.IsNullOrEmpty(mRegion) ? ",$" : ",'" + ParserIfc.Encode(mRegion) + "'") +
(string.IsNullOrEmpty(mPostalCode) ? ",$" : ",'" + ParserIfc.Encode(mPostalCode) + "'") +
(string.IsNullOrEmpty(mCountry) ? ",$" : ",'" + ParserIfc.Encode(mCountry) + "'");
return base.BuildStringSTEP(release) + (string.IsNullOrEmpty(mInternalLocation) ? ",$" : ",'" + ParserSTEP.Encode(mInternalLocation) + "'") +
(mAddressLines.Count == 0 ? ",$" : ",('" + string.Join("','", mAddressLines.Select(x => ParserSTEP.Encode(x))) + "')") +
(string.IsNullOrEmpty(mPostalBox) ? ",$" : ",'" + ParserSTEP.Encode(mPostalBox) + "'") +
(string.IsNullOrEmpty(mTown) ? ",$" : ",'" + ParserSTEP.Encode(mTown) + "'") +
(string.IsNullOrEmpty(mRegion) ? ",$" : ",'" + ParserSTEP.Encode(mRegion) + "'") +
(string.IsNullOrEmpty(mPostalCode) ? ",$" : ",'" + ParserSTEP.Encode(mPostalCode) + "'") +
(string.IsNullOrEmpty(mCountry) ? ",$" : ",'" + ParserSTEP.Encode(mCountry) + "'");
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
base.parse(str, ref pos, release, len, dictionary);
mInternalLocation = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mAddressLines.AddRange(ParserSTEP.SplitListStrings(ParserSTEP.StripField(str, ref pos, len)).Select(x => ParserIfc.Decode(x)));
mPostalBox = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mTown = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mRegion = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mPostalCode = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mCountry = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mInternalLocation = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mAddressLines.AddRange(ParserSTEP.SplitListStrings(ParserSTEP.StripField(str, ref pos, len)).Select(x => ParserSTEP.Decode(x)));
mPostalBox = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mTown = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mRegion = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mPostalCode = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mCountry = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
}
}
public abstract partial class IfcPreDefinedItem
{
protected override string BuildStringSTEP(ReleaseVersion release) { return "'" + ParserIfc.Encode(mName)+ "'"; }
protected override string BuildStringSTEP(ReleaseVersion release) { return "'" + ParserSTEP.Encode(mName)+ "'"; }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
mName = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mName = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
}
}
public partial class IfcPresentationLayerAssignment
@ -488,15 +488,15 @@ namespace GeometryGym.Ifc
{
if (mAssignedItems.Count < 1)
return "";
return "'" + ParserIfc.Encode(mName) + (string.IsNullOrEmpty(mDescription) ? "',$,(" : "','" + ParserIfc.Encode(mDescription) + "',(") +
string.Join(",", mAssignedItems.ConvertAll(x=> "#" + x.StepId)) + (string.IsNullOrEmpty(mIdentifier) ? "),$" : "),'" + ParserIfc.Encode(mIdentifier) + "'");
return "'" + ParserSTEP.Encode(mName) + (string.IsNullOrEmpty(mDescription) ? "',$,(" : "','" + ParserSTEP.Encode(mDescription) + "',(") +
string.Join(",", mAssignedItems.ConvertAll(x=> "#" + x.StepId)) + (string.IsNullOrEmpty(mIdentifier) ? "),$" : "),'" + ParserSTEP.Encode(mIdentifier) + "'");
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
mName = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mDescription = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mName = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mDescription = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
AssignedItems.AddRange(ParserSTEP.StripListLink(str, ref pos, len).ConvertAll(x=>dictionary[x] as IfcLayeredItem));
mIdentifier = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mIdentifier = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
}
}
public partial class IfcPresentationLayerWithStyle
@ -520,8 +520,8 @@ namespace GeometryGym.Ifc
}
public abstract partial class IfcPresentationStyle
{
protected override string BuildStringSTEP(ReleaseVersion release) { return (string.IsNullOrEmpty(mName) ? "$" : "'" + ParserIfc.Encode(mName) + "'"); }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary) { mName = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len)); }
protected override string BuildStringSTEP(ReleaseVersion release) { return (string.IsNullOrEmpty(mName) ? "$" : "'" + ParserSTEP.Encode(mName) + "'"); }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary) { mName = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len)); }
}
public partial class IfcPresentationStyleAssignment
{
@ -538,18 +538,18 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return base.BuildStringSTEP(release) + (release < ReleaseVersion.IFC4 ? ",'" + ParserIfc.Encode(mIdentification) + "'" : "") + ",." +
mPredefinedType.ToString() + (release < ReleaseVersion.IFC4 ? string.IsNullOrEmpty(mUserDefinedProcedureType) ? ".,$" : ".,'" + ParserIfc.Encode(mUserDefinedProcedureType) + "'" : "");
return base.BuildStringSTEP(release) + (release < ReleaseVersion.IFC4 ? ",'" + ParserSTEP.Encode(mIdentification) + "'" : "") + ",." +
mPredefinedType.ToString() + (release < ReleaseVersion.IFC4 ? string.IsNullOrEmpty(mUserDefinedProcedureType) ? ".,$" : ".,'" + ParserSTEP.Encode(mUserDefinedProcedureType) + "'" : "");
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
base.parse(str, ref pos, release, len, dictionary);
if(release < ReleaseVersion.IFC4)
mIdentification = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mIdentification = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
Enum.TryParse<IfcProcedureTypeEnum>(ParserSTEP.StripField(str, ref pos, len).Replace(".", ""), true, out mPredefinedType);
if(release < ReleaseVersion.IFC4)
mUserDefinedProcedureType = ParserIfc.Encode(ParserSTEP.StripString(str, ref pos, len));
mUserDefinedProcedureType = ParserSTEP.Encode(ParserSTEP.StripString(str, ref pos, len));
}
}
public partial class IfcProcedureType
@ -565,16 +565,16 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return base.BuildStringSTEP(release) + (release > ReleaseVersion.IFC2x3 ? (string.IsNullOrEmpty(mIdentification) ? ",$," : ",'" + ParserIfc.Encode(mIdentification) + "',") +
(string.IsNullOrEmpty(mLongDescription) ? "$" : "'" + ParserIfc.Encode(mLongDescription) + "'") : "");
return base.BuildStringSTEP(release) + (release > ReleaseVersion.IFC2x3 ? (string.IsNullOrEmpty(mIdentification) ? ",$," : ",'" + ParserSTEP.Encode(mIdentification) + "',") +
(string.IsNullOrEmpty(mLongDescription) ? "$" : "'" + ParserSTEP.Encode(mLongDescription) + "'") : "");
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
base.parse(str, ref pos, release, len, dictionary);
if (release > ReleaseVersion.IFC2x3)
{
mIdentification = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mLongDescription = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mIdentification = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mLongDescription = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
}
}
}
@ -592,14 +592,14 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return (string.IsNullOrEmpty(mName) ? "$," : "'" + ParserIfc.Encode(mName) + "',") +
(string.IsNullOrEmpty(mDescription) ? "$,(" : "'" + ParserIfc.Encode(mDescription) + "',(") +
return (string.IsNullOrEmpty(mName) ? "$," : "'" + ParserSTEP.Encode(mName) + "',") +
(string.IsNullOrEmpty(mDescription) ? "$,(" : "'" + ParserSTEP.Encode(mDescription) + "',(") +
string.Join(",", mRepresentations.ConvertAll(x => "#" + x.StepId)) + ")";
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
mName = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mDescription = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mName = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mDescription = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
Representations.AddRange(ParserSTEP.StripListLink(str, ref pos, len).ConvertAll(x=>dictionary[x] as Representation));
}
}
@ -607,14 +607,14 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return "." + mProfileType.ToString() + (string.IsNullOrEmpty(mProfileName) ? ".,$" : ".,'" + ParserIfc.Encode( mProfileName) + "'");
return "." + mProfileType.ToString() + (string.IsNullOrEmpty(mProfileName) ? ".,$" : ".,'" + ParserSTEP.Encode( mProfileName) + "'");
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
string s = ParserSTEP.StripField(str, ref pos, len);
if (s.StartsWith("."))
Enum.TryParse<IfcProfileTypeEnum>(s.Replace(".", ""), true, out mProfileType);
ProfileName = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
ProfileName = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
}
}
public partial class IfcProfileProperties
@ -625,7 +625,7 @@ namespace GeometryGym.Ifc
if (profileDefinition == null)
return "";
if(release < ReleaseVersion.IFC4)
return base.BuildStringSTEP(release) + (string.IsNullOrEmpty(mName) ? "$,#" : "'" + ParserIfc.Encode(mName) + "',#") + profileDefinition.StepId;
return base.BuildStringSTEP(release) + (string.IsNullOrEmpty(mName) ? "$,#" : "'" + ParserSTEP.Encode(mName) + "',#") + profileDefinition.StepId;
return base.BuildStringSTEP(release) + ",#" + profileDefinition.StepId;
}
@ -633,7 +633,7 @@ namespace GeometryGym.Ifc
{
base.parse(str, ref pos, release, len, dictionary);
if(release < ReleaseVersion.IFC4)
Name = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
Name = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
ProfileDefinition = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcProfileDef;
}
}
@ -643,14 +643,14 @@ namespace GeometryGym.Ifc
{
if (release < ReleaseVersion.IFC4)
return "";
return base.BuildStringSTEP(release) + (string.IsNullOrEmpty( mMapProjection) ? ",$," : ",'" + ParserIfc.Encode( mMapProjection) + "',") +
(string.IsNullOrEmpty( mMapZone) ? "$," : "'" + ParserIfc.Encode(mMapZone) + "',") + (mMapUnit == null ? "$" : "#" + mMapUnit.StepId);
return base.BuildStringSTEP(release) + (string.IsNullOrEmpty(mMapProjection) ? ",$," : ",'" + ParserSTEP.Encode(mMapProjection) + "',") +
(string.IsNullOrEmpty(mMapZone) ? "$," : "'" + ParserSTEP.Encode(mMapZone) + "',") + (mMapUnit == null ? "$" : "#" + mMapUnit.StepId);
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
base.parse(str, ref pos, release, len, dictionary);
mMapProjection = ParserIfc.Decode( ParserSTEP.StripString(str, ref pos, len));
mMapZone = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mMapProjection = ParserSTEP.Decode( ParserSTEP.StripString(str, ref pos, len));
mMapZone = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mMapUnit = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcNamedUnit;
}
}
@ -672,20 +672,20 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return base.BuildStringSTEP(release) + (release < ReleaseVersion.IFC4 ? ",'" + ParserIfc.Encode(mIdentification) + "',." : ",.") +
mPredefinedType.ToString() + (string.IsNullOrEmpty(mStatus) ? ".,$" : ".," + ParserIfc.Encode(mStatus) + "'") +
(release < ReleaseVersion.IFC4 ? "" : (string.IsNullOrEmpty(mLongDescription) ? ",$" : ",'" + ParserIfc.Encode(mLongDescription) + "'")); }
return base.BuildStringSTEP(release) + (release < ReleaseVersion.IFC4 ? ",'" + ParserSTEP.Encode(mIdentification) + "',." : ",.") +
mPredefinedType.ToString() + (string.IsNullOrEmpty(mStatus) ? ".,$" : ".," + ParserSTEP.Encode(mStatus) + "'") +
(release < ReleaseVersion.IFC4 ? "" : (string.IsNullOrEmpty(mLongDescription) ? ",$" : ",'" + ParserSTEP.Encode(mLongDescription) + "'")); }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
base.parse(str, ref pos, release, len, dictionary);
if (release < ReleaseVersion.IFC4)
mIdentification = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mIdentification = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
string s = ParserSTEP.StripField(str, ref pos, len);
if (s.StartsWith("."))
Enum.TryParse<IfcProjectOrderTypeEnum>(s.Replace(".", ""), true, out mPredefinedType);
mStatus = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mStatus = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
if (release != ReleaseVersion.IFC2x3)
mLongDescription = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mLongDescription = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
}
}
public partial class IfcProjectOrderRecord
@ -703,11 +703,11 @@ namespace GeometryGym.Ifc
}
public abstract partial class IfcProperty
{
protected override string BuildStringSTEP(ReleaseVersion release) { return "'" + ParserIfc.Encode(mName) + (string.IsNullOrEmpty(mSpecification) ? "',$" : "','" + ParserIfc.Encode(mSpecification) + "'"); }
protected override string BuildStringSTEP(ReleaseVersion release) { return "'" + ParserSTEP.Encode(mName) + (string.IsNullOrEmpty(mSpecification) ? "',$" : "','" + ParserSTEP.Encode(mSpecification) + "'"); }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
mName = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mSpecification = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mName = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mSpecification = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
}
}
public partial class IfcPropertyBoundedValue
@ -766,15 +766,15 @@ namespace GeometryGym.Ifc
protected override string BuildStringSTEP(ReleaseVersion release)
{
return "#" + mRelatingConstraint.StepId + ",(" + String.Join(",", mRelatedProperties.Select(x=>"#" + x.StepId)) +
(string.IsNullOrEmpty(mName) ? "),$," : "),'" + ParserIfc.Encode(mName) + "',") +
(string.IsNullOrEmpty(mDescription) ? "$" : "'" + ParserIfc.Encode( mDescription) + "'");
(string.IsNullOrEmpty(mName) ? "),$," : "),'" + ParserSTEP.Encode(mName) + "',") +
(string.IsNullOrEmpty(mDescription) ? "$" : "'" + ParserSTEP.Encode( mDescription) + "'");
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
RelatingConstraint = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcConstraint;
RelatedProperties.AddRange(ParserSTEP.StripListLink(str, ref pos, len).Select(x => dictionary[x] as IfcProperty));
Name = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
Description = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
Name = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
Description = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
}
}
public partial class IfcPropertyDependencyRelationship
@ -782,14 +782,14 @@ namespace GeometryGym.Ifc
protected override string BuildStringSTEP(ReleaseVersion release)
{
return base.BuildStringSTEP(release) + ",#" + mDependingProperty.StepId + ",#" + mDependantProperty.StepId +
(string.IsNullOrEmpty(mExpression) ? ",$" : ",'" + ParserIfc.Encode(mExpression) + "'");
(string.IsNullOrEmpty(mExpression) ? ",$" : ",'" + ParserSTEP.Encode(mExpression) + "'");
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
base.parse(str, ref pos, release, len, dictionary);
mDependingProperty = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcProperty;
mDependantProperty = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcProperty;
mExpression = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mExpression = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
}
}
public partial class IfcPropertyEnumeratedValue
@ -811,12 +811,12 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return "'" + mName + "',(" + string.Join(",", mEnumerationValues.Select(x => x.ToString())) +
return "'" + ParserSTEP.Encode(mName) + "',(" + string.Join(",", mEnumerationValues.Select(x => x.ToString())) +
(mUnit == null ? "),$" : "),#" + mUnit.ToString());
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
mName = ParserSTEP.StripString(str, ref pos, len);
mName = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
string s = ParserSTEP.StripField(str, ref pos, len);
mEnumerationValues.AddRange(ParserSTEP.SplitLineFields(s.Substring(1, s.Length - 2)).ConvertAll(x => ParserIfc.parseValue(x)));
mUnit = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcUnit;
@ -853,13 +853,13 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return base.BuildStringSTEP(release) + (string.IsNullOrEmpty(mUsageName) ? ",$," : ",'" + ParserIfc.Encode(mUsageName) + "',") +
return base.BuildStringSTEP(release) + (string.IsNullOrEmpty(mUsageName) ? ",$," : ",'" + ParserSTEP.Encode(mUsageName) + "',") +
(mPropertyReference == null ? "$" : "#" + mPropertyReference.StepId);
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
base.parse(str, ref pos, release, len, dictionary);
mUsageName = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mUsageName = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mPropertyReference = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcObjectReferenceSelect;
}
}
@ -885,7 +885,7 @@ namespace GeometryGym.Ifc
if (release < ReleaseVersion.IFC4 || mHasPropertyTemplates.Count == 0)
return "";
return base.BuildStringSTEP(release) + (mTemplateType == IfcPropertySetTemplateTypeEnum.NOTDEFINED ? ",$," : ",." + mTemplateType + ".,") +
(string.IsNullOrEmpty(mApplicableEntity) ? "$,(#" : "'" + ParserIfc.Encode(mApplicableEntity) + "',(#") + string.Join(",#", mHasPropertyTemplates.Values.Select(x => x.StepId)) + ")";
(string.IsNullOrEmpty(mApplicableEntity) ? "$,(#" : "'" + ParserSTEP.Encode(mApplicableEntity) + "',(#") + string.Join(",#", mHasPropertyTemplates.Values.Select(x => x.StepId)) + ")";
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
@ -893,7 +893,7 @@ namespace GeometryGym.Ifc
string field = ParserSTEP.StripField(str, ref pos, len);
if (field.StartsWith("."))
Enum.TryParse<IfcPropertySetTemplateTypeEnum>(field.Replace(".", ""), true, out mTemplateType);
mApplicableEntity = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mApplicableEntity = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
foreach (IfcPropertyTemplate property in ParserSTEP.StripListLink(str, ref pos, len).Select(x => dictionary[x] as IfcPropertyTemplate))
AddPropertyTemplate(property);
}
@ -926,7 +926,7 @@ namespace GeometryGym.Ifc
{
return base.BuildStringSTEP(release) + (mDefiningValues.Count > 0 ? ",(" + string.Join(",", mDefiningValues.Select(x=>x.ToString())) + ")," : ",$,") +
(mDefinedValues.Count > 0 ? "(" + string.Join(",", mDefinedValues.Select(x=>x.ToString())) + ")," : "$,") +
(string.IsNullOrEmpty(mExpression) ? "$," : "'" + ParserIfc.Encode(mExpression) + "',") +
(string.IsNullOrEmpty(mExpression) ? "$," : "'" + ParserSTEP.Encode(mExpression) + "',") +
(mDefiningUnit == null ? "$" : "#" + mDefiningUnit.StepId) +
(mDefinedUnit == null ? ",$,." : ",#,." + mDefinedUnit.StepId) + mCurveInterpolation.ToString() + ".";
}
@ -937,7 +937,7 @@ namespace GeometryGym.Ifc
{
return base.BuildStringSTEP(release) + (mDefiningValues.Count > 0 ? ",(" + string.Join(",", mDefiningValues.Select(x => x.ToString())) + ")," : ",$,") +
(mDefinedValues.Count > 0 ? "(" + string.Join(",", mDefinedValues.Select(x => x.ToString())) + ")," : "$,") +
(string.IsNullOrEmpty(mExpression) ? "$," : "'" + ParserIfc.Encode(mExpression) + "',") +
(string.IsNullOrEmpty(mExpression) ? "$," : "'" + ParserSTEP.Encode(mExpression) + "',") +
(mDefiningUnit == null ? "$" : "#" + mDefiningUnit.StepId) +
(mDefinedUnit == null ? ",$,." : ",#,." + mDefinedUnit.StepId) + mCurveInterpolation.ToString() + ".";
}
@ -966,7 +966,7 @@ namespace GeometryGym.Ifc
mDefinedValues.Add(v);
}
}
mExpression = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mExpression = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mDefiningUnit = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcUnit;
mDefinedUnit = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcUnit;
s = ParserSTEP.StripField(str, ref pos, len);
@ -1020,12 +1020,12 @@ namespace GeometryGym.Ifc
}
public partial class IfcProxy
{
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + ",." + mProxyType.ToString() + ".," + (string.IsNullOrEmpty(mTag) ? "$" : "'" + ParserIfc.Encode(mTag) + "'"); }
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + ",." + mProxyType.ToString() + ".," + (string.IsNullOrEmpty(mTag) ? "$" : "'" + ParserSTEP.Encode(mTag) + "'"); }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
base.parse(str, ref pos, release, len, dictionary);
Enum.TryParse<IfcObjectTypeEnum>(ParserSTEP.StripField(str, ref pos, len).Replace(".", ""), true, out mProxyType);
mTag = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mTag = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
}
}
public partial class IfcPump

Просмотреть файл

@ -34,7 +34,7 @@ namespace GeometryGym.Ifc
protected override string BuildStringSTEP(ReleaseVersion release)
{
return base.BuildStringSTEP(release) + "," + ParserSTEP.DoubleToString(mAreaValue) +
(release < ReleaseVersion.IFC4 ? "" : (string.IsNullOrEmpty(mFormula) ? ",$" : ",'" + ParserIfc.Encode(mFormula) + "'"));
(release < ReleaseVersion.IFC4 ? "" : (string.IsNullOrEmpty(mFormula) ? ",$" : ",'" + ParserSTEP.Encode(mFormula) + "'"));
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
@ -49,7 +49,7 @@ namespace GeometryGym.Ifc
}
}
if (release > ReleaseVersion.IFC2x3)
mFormula = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mFormula = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
}
}
public partial class IfcQuantityCount
@ -58,7 +58,7 @@ namespace GeometryGym.Ifc
{
return base.BuildStringSTEP(release) + "," +
(release < ReleaseVersion.IFC4X3 ? ParserSTEP.DoubleToString(CountValueDouble) : CountValue.ToString()) +
(release < ReleaseVersion.IFC4 ? "" : (string.IsNullOrEmpty( mFormula) ? ",$" : ",'" + ParserIfc.Encode(mFormula) + "'")); }
(release < ReleaseVersion.IFC4 ? "" : (string.IsNullOrEmpty( mFormula) ? ",$" : ",'" + ParserSTEP.Encode(mFormula) + "'")); }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
base.parse(str, ref pos, release, len, dictionary);
@ -86,7 +86,7 @@ namespace GeometryGym.Ifc
}
}
if (release > ReleaseVersion.IFC2x3)
mFormula = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mFormula = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
}
}
public partial class IfcQuantityLength
@ -94,7 +94,7 @@ namespace GeometryGym.Ifc
protected override string BuildStringSTEP(ReleaseVersion release)
{
return base.BuildStringSTEP(release) + "," + ParserSTEP.DoubleToString(Math.Max(0, mLengthValue)) +
(release < ReleaseVersion.IFC4 ? "" : (string.IsNullOrEmpty(mFormula) ? ",$" : ",'" + ParserIfc.Encode(mFormula) + "'"));
(release < ReleaseVersion.IFC4 ? "" : (string.IsNullOrEmpty(mFormula) ? ",$" : ",'" + ParserSTEP.Encode(mFormula) + "'"));
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
@ -109,7 +109,7 @@ namespace GeometryGym.Ifc
}
}
if (release > ReleaseVersion.IFC2x3)
mFormula = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mFormula = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
}
}
public partial class IfcQuantityNumber
@ -117,7 +117,7 @@ namespace GeometryGym.Ifc
protected override string BuildStringSTEP(ReleaseVersion release)
{
return base.BuildStringSTEP(release) + "," + ParserSTEP.DoubleToString(mNumberValue) +
(release < ReleaseVersion.IFC4 ? "" : (string.IsNullOrEmpty(mFormula) ? ",$" : ",'" + ParserIfc.Encode(mFormula) + "'"));
(release < ReleaseVersion.IFC4 ? "" : (string.IsNullOrEmpty(mFormula) ? ",$" : ",'" + ParserSTEP.Encode(mFormula) + "'"));
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
@ -131,7 +131,7 @@ namespace GeometryGym.Ifc
double.TryParse(s, System.Globalization.NumberStyles.Any, ParserSTEP.NumberFormat, out mNumberValue);
}
}
mFormula = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mFormula = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
}
}
public partial class IfcQuantityTime
@ -139,14 +139,14 @@ namespace GeometryGym.Ifc
protected override string BuildStringSTEP(ReleaseVersion release)
{
return base.BuildStringSTEP(release) + "," + ParserSTEP.DoubleToString( mTimeValue) +
(release < ReleaseVersion.IFC4 ? "" : (string.IsNullOrEmpty(mFormula) ? ",$" : ",'" + ParserIfc.Encode(mFormula) + "'"));
(release < ReleaseVersion.IFC4 ? "" : (string.IsNullOrEmpty(mFormula) ? ",$" : ",'" + ParserSTEP.Encode(mFormula) + "'"));
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
base.parse(str, ref pos, release, len, dictionary);
double.TryParse(ParserSTEP.StripField(str, ref pos, len), System.Globalization.NumberStyles.Any, ParserSTEP.NumberFormat, out mTimeValue);
if (release > ReleaseVersion.IFC2x3)
mFormula = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mFormula = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
}
}
public partial class IfcQuantityVolume
@ -154,7 +154,7 @@ namespace GeometryGym.Ifc
protected override string BuildStringSTEP(ReleaseVersion release)
{
return base.BuildStringSTEP(release) + "," + ParserSTEP.DoubleToString(mVolumeValue) +
(release < ReleaseVersion.IFC4 ? "" : (string.IsNullOrEmpty(mFormula) ? ",$" : ",'" + ParserIfc.Encode(mFormula) + "'"));
(release < ReleaseVersion.IFC4 ? "" : (string.IsNullOrEmpty(mFormula) ? ",$" : ",'" + ParserSTEP.Encode(mFormula) + "'"));
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
@ -167,7 +167,7 @@ namespace GeometryGym.Ifc
mVolumeValue = mv.Measure;
}
if (release > ReleaseVersion.IFC2x3)
mFormula = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mFormula = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
}
}
public partial class IfcQuantityWeight
@ -175,7 +175,7 @@ namespace GeometryGym.Ifc
protected override string BuildStringSTEP(ReleaseVersion release)
{
return base.BuildStringSTEP(release) + "," + ParserSTEP.DoubleToString(mWeightValue) +
(release < ReleaseVersion.IFC4 ? "" : (string.IsNullOrEmpty(mFormula) ? ",$" : ",'" + ParserIfc.Encode(mFormula) + "'"));
(release < ReleaseVersion.IFC4 ? "" : (string.IsNullOrEmpty(mFormula) ? ",$" : ",'" + ParserSTEP.Encode(mFormula) + "'"));
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
@ -188,7 +188,7 @@ namespace GeometryGym.Ifc
mWeightValue = mv.Measure;
}
if (release > ReleaseVersion.IFC2x3)
mFormula = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mFormula = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
}
}
}

Просмотреть файл

@ -311,16 +311,16 @@ namespace GeometryGym.Ifc
{
if (mDatabase.Release < ReleaseVersion.IFC4)
return "";
return (string.IsNullOrEmpty(mTypeIdentifier) ? "$" : "'" + ParserIfc.Encode(mTypeIdentifier) + "'") +
(string.IsNullOrEmpty(mAttributeIdentifier) ? ",$," : ",'" + ParserIfc.Encode(mAttributeIdentifier) + "',") +
(string.IsNullOrEmpty(mInstanceName) ? "$," : "'" + ParserIfc.Encode(mInstanceName) + "',") +
return (string.IsNullOrEmpty(mTypeIdentifier) ? "$" : "'" + ParserSTEP.Encode(mTypeIdentifier) + "'") +
(string.IsNullOrEmpty(mAttributeIdentifier) ? ",$," : ",'" + ParserSTEP.Encode(mAttributeIdentifier) + "',") +
(string.IsNullOrEmpty(mInstanceName) ? "$," : "'" + ParserSTEP.Encode(mInstanceName) + "',") +
(mListPositions.Count == 0 ? "$," : "(" + string.Join(",", mListPositions) + "),") + (mInnerReference == null ? "$" : "#" + mInnerReference.StepId);
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
mTypeIdentifier = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mAttributeIdentifier = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mInstanceName = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mTypeIdentifier = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mAttributeIdentifier = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mInstanceName = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
string s = ParserSTEP.StripField(str, ref pos, len);
if (s.StartsWith("("))
mListPositions.AddRange(ParserSTEP.SplitLineFields(s.Substring(1, s.Length - 2)).ConvertAll(x => int.Parse(x)));
@ -378,13 +378,13 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return ParserSTEP.DoubleToString(mTotalCrossSectionArea) + ",'" + mSteelGrade + "'," + (mBarSurface == IfcReinforcingBarSurfaceEnum.NOTDEFINED ? "$," : "." + mBarSurface.ToString() + ".,") +
return ParserSTEP.DoubleToString(mTotalCrossSectionArea) + ",'" + ParserSTEP.Encode(mSteelGrade) + "'," + (mBarSurface == IfcReinforcingBarSurfaceEnum.NOTDEFINED ? "$," : "." + mBarSurface.ToString() + ".,") +
ParserSTEP.DoubleOptionalToString(mEffectiveDepth) + "," + ParserSTEP.DoubleOptionalToString(mNominalBarDiameter) + "," + ParserSTEP.DoubleOptionalToString(mBarCount);
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
mTotalCrossSectionArea = ParserSTEP.StripDouble(str, ref pos, len);
mSteelGrade = ParserSTEP.StripString(str, ref pos, len);
mSteelGrade = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
string s = ParserSTEP.StripField(str, ref pos, len);
if (s.StartsWith("."))
Enum.TryParse<IfcReinforcingBarSurfaceEnum>(s.Replace(".", ""), true, out mBarSurface);
@ -397,13 +397,13 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return base.BuildStringSTEP(release) + (string.IsNullOrEmpty(mDefinitionType) ? ",$,(" : ",'" + ParserIfc.Encode(mDefinitionType) + "',(")
return base.BuildStringSTEP(release) + (string.IsNullOrEmpty(mDefinitionType) ? ",$,(" : ",'" + ParserSTEP.Encode(mDefinitionType) + "',(")
+ string.Join(",", mReinforcementSectionDefinitions.Select(x=>"#" + x.StepId)) + ")";
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
base.parse(str, ref pos, release, len, dictionary);
mDefinitionType = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mDefinitionType = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
ReinforcementSectionDefinitions.AddRange(ParserSTEP.StripListLink(str, ref pos, len).Select(x=>dictionary[x] as IfcSectionReinforcementProperties));
}
}
@ -437,7 +437,7 @@ namespace GeometryGym.Ifc
return base.BuildStringSTEP(release) + ",." + mPredefinedType + ".," + ParserSTEP.DoubleOptionalToString(mNominalDiameter) + "," +
ParserSTEP.DoubleOptionalToString(mCrossSectionArea) + "," + ParserSTEP.DoubleOptionalToString(mBarLength) +
(mBarSurface == IfcReinforcingBarSurfaceEnum.NOTDEFINED ? ",$," : ",." + mBarSurface.ToString() + ".,") +
(string.IsNullOrEmpty(mBendingShapeCode) ? "$," : "'" + ParserIfc.Encode(mBendingShapeCode) + "',") +
(string.IsNullOrEmpty(mBendingShapeCode) ? "$," : "'" + ParserSTEP.Encode(mBendingShapeCode) + "',") +
(mBendingParameters.Count == 0 ? "$" : "(" + string.Join(",", mBendingParameters) + ")");
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
@ -448,17 +448,17 @@ namespace GeometryGym.Ifc
mCrossSectionArea = ParserSTEP.StripDouble(str, ref pos, len);
mBarLength = ParserSTEP.StripDouble(str, ref pos, len);
Enum.TryParse<IfcReinforcingBarSurfaceEnum>(ParserSTEP.StripField(str, ref pos, len).Replace(".", ""), true, out mBarSurface);
mBendingShapeCode = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mBendingShapeCode = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mBendingParameters.AddRange(ParserSTEP.SplitListStrings(ParserSTEP.StripField(str, ref pos, len)).Select(x=>ParserIfc.parseValue(x) as IfcBendingParameterSelect));
}
}
public abstract partial class IfcReinforcingElement
{
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + (string.IsNullOrEmpty(mSteelGrade) ? ",$" : ",'" + ParserIfc.Encode(mSteelGrade) + "'"); }
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + (string.IsNullOrEmpty(mSteelGrade) ? ",$" : ",'" + ParserSTEP.Encode(mSteelGrade) + "'"); }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
base.parse(str, ref pos, release, len, dictionary);
mSteelGrade = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mSteelGrade = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
}
}
public partial class IfcReinforcingMesh
@ -498,7 +498,7 @@ namespace GeometryGym.Ifc
ParserSTEP.DoubleOptionalToString(mMeshWidth) + "," + ParserSTEP.DoubleToString(mLongitudinalBarNominalDiameter) + "," +
ParserSTEP.DoubleToString(mTransverseBarNominalDiameter) + "," + ParserSTEP.DoubleToString(mLongitudinalBarCrossSectionArea) + "," +
ParserSTEP.DoubleToString(mTransverseBarCrossSectionArea) + "," + ParserSTEP.DoubleToString(mLongitudinalBarSpacing) + "," +
ParserSTEP.DoubleToString(mTransverseBarSpacing) + (string.IsNullOrEmpty(mBendingShapeCode) ? ",$," : ",'" + ParserIfc.Encode(mBendingShapeCode) + "',") +
ParserSTEP.DoubleToString(mTransverseBarSpacing) + (string.IsNullOrEmpty(mBendingShapeCode) ? ",$," : ",'" + ParserSTEP.Encode(mBendingShapeCode) + "',") +
(mBendingParameters.Count == 0 ? "$" : "(" + string.Join(",", mBendingParameters) + ")");
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
@ -514,7 +514,7 @@ namespace GeometryGym.Ifc
mTransverseBarCrossSectionArea = ParserSTEP.StripDouble(str, ref pos, len);
mLongitudinalBarSpacing = ParserSTEP.StripDouble(str, ref pos, len);
mTransverseBarSpacing = ParserSTEP.StripDouble(str, ref pos, len);
mBendingShapeCode = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mBendingShapeCode = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mBendingParameters.AddRange(ParserSTEP.SplitListStrings(ParserSTEP.StripField(str, ref pos, len)).Select(x => ParserIfc.parseValue(x) as IfcBendingParameterSelect));
}
}
@ -703,12 +703,12 @@ namespace GeometryGym.Ifc
protected override string BuildStringSTEP(ReleaseVersion release)
{
return (RelatingConstraint == null ? "" : base.BuildStringSTEP(release) +
(string.IsNullOrEmpty(mIntent) ? ",$," : ",'" + ParserIfc.Encode(mIntent) + "',") + "#" + mRelatingConstraint.StepId);
(string.IsNullOrEmpty(mIntent) ? ",$," : ",'" + ParserSTEP.Encode(mIntent) + "',") + "#" + mRelatingConstraint.StepId);
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
base.parse(str, ref pos, release, len, dictionary);
mIntent = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mIntent = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
RelatingConstraint = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcConstraint;
}
}
@ -900,13 +900,13 @@ namespace GeometryGym.Ifc
{
if (mRealizingElements.Count == 0)
return "";
return base.BuildStringSTEP(release) + ",(" + string.Join(",", mRealizingElements.Select(x => "#" + x.StepId)) + (string.IsNullOrEmpty(mConnectionType) ? "),$" : "),'" + ParserIfc.Encode(mConnectionType) + "'");
return base.BuildStringSTEP(release) + ",(" + string.Join(",", mRealizingElements.Select(x => "#" + x.StepId)) + (string.IsNullOrEmpty(mConnectionType) ? "),$" : "),'" + ParserSTEP.Encode(mConnectionType) + "'");
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
base.parse(str, ref pos, release, len, dictionary);
RealizingElements.AddRange(ParserSTEP.StripListLink(str, ref pos, len).ConvertAll(x => dictionary[x] as IfcElement));
mConnectionType = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mConnectionType = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
}
}
public partial class IfcRelContainedInSpatialStructure
@ -1079,7 +1079,7 @@ namespace GeometryGym.Ifc
{
return base.BuildStringSTEP(release) + ",#" + mRelatingElement.StepId + ",#" + mRelatedElement.StepId +
(mInterferenceGeometry == null ? ",$" : ",#" + mInterferenceGeometry.StepId) +
(string.IsNullOrEmpty( mInterferenceType) ? ",$," : ",'" + ParserIfc.Encode(mInterferenceType) + "',") +
(string.IsNullOrEmpty( mInterferenceType) ? ",$," : ",'" + ParserSTEP.Encode(mInterferenceType) + "',") +
ParserIfc.LogicalToString(mImpliedOrder) +
(release > ReleaseVersion.IFC4X3_RC3 ? "," + ParserSTEP.ObjToLinkString(mInterferenceSpace) : "");
}
@ -1089,7 +1089,7 @@ namespace GeometryGym.Ifc
RelatingElement = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcInterferenceSelect;
RelatedElement = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcInterferenceSelect;
InterferenceGeometry =dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcConnectionGeometry;
mInterferenceType = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mInterferenceType = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mImpliedOrder = ParserIfc.StripLogical(str, ref pos, len);
if (release > ReleaseVersion.IFC4X3_RC3)
mInterferenceSpace = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcSpatialZone;
@ -1171,7 +1171,7 @@ namespace GeometryGym.Ifc
{
return base.BuildStringSTEP(release) + ",#" + mRelatingProcess.StepId + ",#" + mRelatedProcess.StepId + "," +
(release < ReleaseVersion.IFC4 ? ParserSTEP.DoubleToString(mTimeLagSS) : ParserSTEP.ObjToLinkString(mTimeLag)) + ",." +
mSequenceType + (release < ReleaseVersion.IFC4 ? "." : (string.IsNullOrEmpty(mUserDefinedSequenceType) ? ".,$" : ".,'" + ParserIfc.Encode(mUserDefinedSequenceType) + "'"));
mSequenceType + (release < ReleaseVersion.IFC4 ? "." : (string.IsNullOrEmpty(mUserDefinedSequenceType) ? ".,$" : ".,'" + ParserSTEP.Encode(mUserDefinedSequenceType) + "'"));
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
@ -1186,7 +1186,7 @@ namespace GeometryGym.Ifc
if (s != "$")
Enum.TryParse<IfcSequenceEnum>(s.Replace(".", ""), true, out mSequenceType);
if (release > ReleaseVersion.IFC2x3)
mUserDefinedSequenceType = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mUserDefinedSequenceType = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
}
}
public partial class IfcRelServicesBuildings
@ -1271,25 +1271,25 @@ namespace GeometryGym.Ifc
protected override string BuildStringSTEP(ReleaseVersion release)
{
return (mContextOfItems == null ? "$" : "#" + mContextOfItems.StepId) +
(string.IsNullOrEmpty(mRepresentationIdentifier) ? ",$," : ",'" + ParserIfc.Encode(mRepresentationIdentifier) + "',") +
(string.IsNullOrEmpty(mRepresentationType) ? "$,(" : "'" + ParserIfc.Encode(mRepresentationType) + "',(") +
(string.IsNullOrEmpty(mRepresentationIdentifier) ? ",$," : ",'" + ParserSTEP.Encode(mRepresentationIdentifier) + "',") +
(string.IsNullOrEmpty(mRepresentationType) ? "$,(" : "'" + ParserSTEP.Encode(mRepresentationType) + "',(") +
string.Join(",", mItems.ConvertAll(x => "#" + x.StepId)) + ")";
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
ContextOfItems = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcRepresentationContext;
mRepresentationIdentifier = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mRepresentationType = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mRepresentationIdentifier = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mRepresentationType = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
Items.AddRange(ParserSTEP.StripListLink(str, ref pos, len).ConvertAll(x => dictionary[x] as RepresentationItem));
}
}
public abstract partial class IfcRepresentationContext
{
protected override string BuildStringSTEP(ReleaseVersion release) { return (string.IsNullOrEmpty(mContextIdentifier) ? "$," : "'" + ParserIfc.Encode(mContextIdentifier) + "',") + (string.IsNullOrEmpty(mContextType) ? "$" : "'" + ParserIfc.Encode(mContextType) + "'"); }
protected override string BuildStringSTEP(ReleaseVersion release) { return (string.IsNullOrEmpty(mContextIdentifier) ? "$," : "'" + ParserSTEP.Encode(mContextIdentifier) + "',") + (string.IsNullOrEmpty(mContextType) ? "$" : "'" + ParserSTEP.Encode(mContextType) + "'"); }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
mContextIdentifier = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mContextType = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mContextIdentifier = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mContextType = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
}
}
public partial class IfcRepresentationMap
@ -1333,14 +1333,14 @@ namespace GeometryGym.Ifc
public abstract partial class IfcResource
{
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + (release > ReleaseVersion.IFC2x3 ? (string.IsNullOrEmpty(mIdentification) ? ",$," : ",'" + ParserIfc.Encode(mIdentification) + "',") + (string.IsNullOrEmpty(mLongDescription) ? "$" : "'" + ParserIfc.Encode(mLongDescription) + "'") : ""); }
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + (release > ReleaseVersion.IFC2x3 ? (string.IsNullOrEmpty(mIdentification) ? ",$," : ",'" + ParserSTEP.Encode(mIdentification) + "',") + (string.IsNullOrEmpty(mLongDescription) ? "$" : "'" + ParserSTEP.Encode(mLongDescription) + "'") : ""); }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
base.parse(str, ref pos, release, len, dictionary);
if (release > ReleaseVersion.IFC2x3)
{
mIdentification = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mLongDescription = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mIdentification = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mLongDescription = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
}
}
}
@ -1349,14 +1349,14 @@ namespace GeometryGym.Ifc
protected override string BuildStringSTEP(ReleaseVersion release)
{
return (mDatabase.Release < ReleaseVersion.IFC4 ? "" :
(string.IsNullOrEmpty(mName) ? "$," : "'" + ParserIfc.Encode(mName) + "',") +
(string.IsNullOrEmpty(mDescription) ? "$" : "'" + ParserIfc.Encode(mDescription) + "'")); }
(string.IsNullOrEmpty(mName) ? "$," : "'" + ParserSTEP.Encode(mName) + "',") +
(string.IsNullOrEmpty(mDescription) ? "$" : "'" + ParserSTEP.Encode(mDescription) + "'")); }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
if (release > ReleaseVersion.IFC2x3)
{
mName = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mDescription = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mName = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mDescription = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
}
}
}
@ -1373,7 +1373,7 @@ namespace GeometryGym.Ifc
{
base.parse(str, ref pos, release, len, dictionary);
mScheduleWork = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mScheduleWork = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mScheduleUsage = ParserSTEP.StripDouble(str, ref pos, len);
mScheduleStart = IfcDateTime.ParseSTEP(ParserSTEP.StripField(str, ref pos, len));
mScheduleFinish = IfcDateTime.ParseSTEP(ParserSTEP.StripField(str, ref pos, len));
@ -1494,7 +1494,12 @@ namespace GeometryGym.Ifc
}
public partial class IfcRoof
{
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + (mPredefinedType == IfcRoofTypeEnum.NOTDEFINED ? ",$" : ",." + mPredefinedType.ToString() + "."); }
protected override string BuildStringSTEP(ReleaseVersion release)
{
return base.BuildStringSTEP(release) +
(release > ReleaseVersion.IFC2x3 && mPredefinedType == IfcRoofTypeEnum.NOTDEFINED ? ",$" : ",." + mPredefinedType.ToString() + ".");
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
base.parse(str, ref pos, release, len, dictionary);
@ -1522,14 +1527,14 @@ namespace GeometryGym.Ifc
if (string.Compare(GlobalId, globalId, true) != 0)
GlobalId = globalId;
mOwnerHistory = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcOwnerHistory;
mName = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mDescription = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mName = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mDescription = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
}
protected override string BuildStringSTEP(ReleaseVersion release)
{
return "'" + mGlobalId + (mOwnerHistory == null ? "',$" : "',#" + mOwnerHistory.StepId) +
(string.IsNullOrEmpty(mName) ? ",$," : ",'" + ParserIfc.Encode(mName) + "',") +
(string.IsNullOrEmpty(mDescription) ? "$" : "'" + ParserIfc.Encode(mDescription) + "'");
(string.IsNullOrEmpty(mName) ? ",$," : ",'" + ParserSTEP.Encode(mName) + "',") +
(string.IsNullOrEmpty(mDescription) ? "$" : "'" + ParserSTEP.Encode(mDescription) + "'");
}
}
public partial class IfcRotationalStiffnessSelect

Просмотреть файл

@ -96,17 +96,17 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return (string.IsNullOrEmpty(mName) ? "$," : "'" + ParserIfc.Encode(mName) + "',") +
return (string.IsNullOrEmpty(mName) ? "$," : "'" + ParserSTEP.Encode(mName) + "',") +
(mDataOrigin == IfcDataOriginEnum.NOTDEFINED ? "$" : "." + mDataOrigin.ToString() + ".") +
(string.IsNullOrEmpty(mUserDefinedDataOrigin) ? ",$" : ",'" + ParserIfc.Encode(mUserDefinedDataOrigin) + "'");
(string.IsNullOrEmpty(mUserDefinedDataOrigin) ? ",$" : ",'" + ParserSTEP.Encode(mUserDefinedDataOrigin) + "'");
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
mName = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mName = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
string s = ParserSTEP.StripField(str, ref pos, len);
if (s.StartsWith("."))
Enum.TryParse<IfcDataOriginEnum>(s.Replace(".", ""), true, out mDataOrigin);
mUserDefinedDataOrigin = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mUserDefinedDataOrigin = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
}
}
public partial class IfcSecondOrderPolynomialSpiral
@ -346,7 +346,7 @@ namespace GeometryGym.Ifc
protected override string BuildStringSTEP(ReleaseVersion release)
{
return "(#" + string.Join(",#", ShapeRepresentations.Select(x=>x.StepId)) +
(string.IsNullOrEmpty(mName) ? "),$," : "),'" + ParserIfc.Encode( mName) + "',") + (mDescription == "$" ? "$," : "'" + mDescription + "',") +
(string.IsNullOrEmpty(mName) ? "),$," : "),'" + ParserSTEP.Encode( mName) + "',") + (mDescription == "$" ? "$," : "'" + mDescription + "',") +
ParserIfc.LogicalToString(mProductDefinitional) + "," + ParserSTEP.ObjToLinkString(mPartOfProductDefinitionShape);
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
@ -437,11 +437,11 @@ namespace GeometryGym.Ifc
if (mDatabase.Release < ReleaseVersion.IFC4)
return "";
return base.BuildStringSTEP(release) + (mTemplateType == IfcSimplePropertyTemplateTypeEnum.NOTDEFINED ? ",$," : ",." + mTemplateType.ToString() + ".,") +
(string.IsNullOrEmpty(mPrimaryMeasureType) ? "$," : "'" + ParserIfc.Encode(mPrimaryMeasureType) + "',") +
(string.IsNullOrEmpty(mSecondaryMeasureType) ? "$," : "'" + ParserIfc.Encode(mSecondaryMeasureType) + "',") +
(string.IsNullOrEmpty(mPrimaryMeasureType) ? "$," : "'" + ParserSTEP.Encode(mPrimaryMeasureType) + "',") +
(string.IsNullOrEmpty(mSecondaryMeasureType) ? "$," : "'" + ParserSTEP.Encode(mSecondaryMeasureType) + "',") +
(mEnumerators == null ? "$" : "#" + mEnumerators.StepId) + (mPrimaryUnit == null ? ",$" : ",#" + mPrimaryUnit.StepId) +
(mSecondaryUnit == null ? ",$" : ",#" + mSecondaryUnit.StepId) + "," +
(string.IsNullOrEmpty(mExpression) ? "$," : "'" + ParserIfc.Encode(mExpression) + "',") +
(string.IsNullOrEmpty(mExpression) ? "$," : "'" + ParserSTEP.Encode(mExpression) + "',") +
(mAccessState == IfcStateEnum.NOTDEFINED ? "$" : "." + mAccessState.ToString() + ".");
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
@ -450,12 +450,12 @@ namespace GeometryGym.Ifc
string s = ParserSTEP.StripField(str, ref pos, len);
if (s.StartsWith("."))
Enum.TryParse<IfcSimplePropertyTemplateTypeEnum>(s.Replace(".", ""), true, out mTemplateType);
mPrimaryMeasureType = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mSecondaryMeasureType = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mPrimaryMeasureType = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mSecondaryMeasureType = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mEnumerators = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcPropertyEnumeration;
mPrimaryUnit = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcUnit;
mSecondaryUnit = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcUnit;
mExpression = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mExpression = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
s = ParserSTEP.StripField(str, ref pos, len);
if (s.StartsWith("."))
Enum.TryParse<IfcStateEnum>(s.Replace(".", ""), true, out mAccessState);
@ -480,7 +480,7 @@ namespace GeometryGym.Ifc
{
return base.BuildStringSTEP(release) + (mRefLatitude != null ? "," + mRefLatitude.ToSTEP() + "," : ",$,") +
(mRefLongitude != null ? mRefLongitude.ToSTEP() + "," : "$,") + ParserSTEP.DoubleOptionalToString(mRefElevation) +
(string.IsNullOrEmpty(mLandTitleNumber) ? ",$," : ",'" + ParserIfc.Encode(mLandTitleNumber) + "',") +
(string.IsNullOrEmpty(mLandTitleNumber) ? ",$," : ",'" + ParserSTEP.Encode(mLandTitleNumber) + "',") +
(mSiteAddress == null ? "$" : "#" + mSiteAddress.StepId);
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
@ -489,7 +489,7 @@ namespace GeometryGym.Ifc
mRefLatitude = IfcCompoundPlaneAngleMeasure.Parse(ParserSTEP.StripField(str, ref pos, len));
mRefLongitude = IfcCompoundPlaneAngleMeasure.Parse(ParserSTEP.StripField(str, ref pos, len));
mRefElevation = ParserSTEP.StripDouble(str, ref pos, len);
mLandTitleNumber = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mLandTitleNumber = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mSiteAddress = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcPostalAddress;
}
}
@ -665,7 +665,7 @@ namespace GeometryGym.Ifc
protected override string BuildStringSTEP(ReleaseVersion release)
{
return base.BuildStringSTEP(release) + ",." + mPredefinedType.ToString() +
(release < ReleaseVersion.IFC4 ? "." : (string.IsNullOrEmpty(LongName) ? ".,$" : ".,'" + ParserIfc.Encode(LongName) + "'"));
(release < ReleaseVersion.IFC4 ? "." : (string.IsNullOrEmpty(LongName) ? ".,$" : ".,'" + ParserSTEP.Encode(LongName) + "'"));
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
@ -674,25 +674,25 @@ namespace GeometryGym.Ifc
if (s.StartsWith("."))
Enum.TryParse<IfcSpaceTypeEnum>(s.Replace(".", ""), true, out mPredefinedType);
if(release > ReleaseVersion.IFC2x3)
LongName = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
LongName = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
}
}
public abstract partial class IfcSpatialElement
{
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + (string.IsNullOrEmpty(mLongName) ? ",$" : ",'" + ParserIfc.Encode(mLongName) + "'"); }
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + (string.IsNullOrEmpty(mLongName) ? ",$" : ",'" + ParserSTEP.Encode(mLongName) + "'"); }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
base.parse(str, ref pos, release, len, dictionary);
LongName = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
LongName = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
}
}
public abstract partial class IfcSpatialElementType
{
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + (string.IsNullOrEmpty(mElementType) ? ",$" : ",'" + ParserIfc.Encode(mElementType) + "'"); }
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + (string.IsNullOrEmpty(mElementType) ? ",$" : ",'" + ParserSTEP.Encode(mElementType) + "'"); }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
base.parse(str, ref pos, release, len, dictionary);
mElementType = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mElementType = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
}
}
public abstract partial class IfcSpatialStructureElement
@ -898,8 +898,8 @@ namespace GeometryGym.Ifc
}
public abstract partial class IfcStructuralConnectionCondition
{
protected override string BuildStringSTEP(ReleaseVersion release) { return (string.IsNullOrEmpty(mName) ? "$" : "'" + ParserIfc.Encode(mName) + "'"); }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary) { mName = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len)); }
protected override string BuildStringSTEP(ReleaseVersion release) { return (string.IsNullOrEmpty(mName) ? "$" : "'" + ParserSTEP.Encode(mName) + "'"); }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary) { mName = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len)); }
}
public partial class IfcStructuralCurveAction : IfcStructuralAction // IFC4 SUPERTYPE OF(IfcStructuralLinearAction)
{
@ -954,8 +954,8 @@ namespace GeometryGym.Ifc
}
public abstract partial class IfcStructuralLoad
{
protected override string BuildStringSTEP(ReleaseVersion release) { return (string.IsNullOrEmpty(mName) ? "$" : "'" + ParserIfc.Encode(mName) + "'"); }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary) { mName = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len)); }
protected override string BuildStringSTEP(ReleaseVersion release) { return (string.IsNullOrEmpty(mName) ? "$" : "'" + ParserSTEP.Encode(mName) + "'"); }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary) { mName = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len)); }
}
public partial class IfcStructuralLoadConfiguration : IfcStructuralLoad //IFC4
{
@ -992,7 +992,7 @@ namespace GeometryGym.Ifc
{
return base.BuildStringSTEP(release) + ",." + mPredefinedType.ToString() + ".,." + mActionType.ToString() + ".,." +
mActionSource.ToString() + ".," + ParserSTEP.DoubleOptionalToString(mCoefficient) +
(string.IsNullOrEmpty(mPurpose) ? ",$" : ",'" + ParserIfc.Encode(mPurpose) + "'");
(string.IsNullOrEmpty(mPurpose) ? ",$" : ",'" + ParserSTEP.Encode(mPurpose) + "'");
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
@ -1001,7 +1001,7 @@ namespace GeometryGym.Ifc
Enum.TryParse<IfcActionTypeEnum>(ParserSTEP.StripField(str, ref pos, len).Replace(".", ""), true, out mActionType);
Enum.TryParse<IfcActionSourceTypeEnum>(ParserSTEP.StripField(str, ref pos, len).Replace(".", ""), true, out mActionSource);
mCoefficient = ParserSTEP.StripDouble(str, ref pos, len);
mPurpose = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mPurpose = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
}
}
public partial class IfcStructuralLoadLinearForce
@ -1210,14 +1210,14 @@ namespace GeometryGym.Ifc
protected override string BuildStringSTEP(ReleaseVersion release)
{
return ParserSTEP.ObjToLinkString(mItem) + ",(" +
string.Join(",", mStyles.Select(x => "#" + x.StepId)) + (string.IsNullOrEmpty(mName) ? "),$" : "),'" + ParserIfc.Encode(mName) + "'");
string.Join(",", mStyles.Select(x => "#" + x.StepId)) + (string.IsNullOrEmpty(mName) ? "),$" : "),'" + ParserSTEP.Encode(mName) + "'");
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
Item = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcRepresentationItem;
foreach (IfcStyleAssignmentSelect style in ParserSTEP.StripListLink(str, ref pos, len).ConvertAll(x => dictionary[x] as IfcStyleAssignmentSelect))
addStyle(style);
mName = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mName = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
}
}
public partial class IfcSubContractResource
@ -1436,8 +1436,8 @@ namespace GeometryGym.Ifc
}
else
{
result += (string.IsNullOrEmpty(mMode) ? ",$," : ",'" + ParserIfc.Encode(mMode) + "',") + (mTextureTransform == null ? "$" : "#" + mTextureTransform.StepId);
result += (mParameter.Count == 0 ? ",$" : ",(" + string.Join(",", mParameter.Select(x => "'" + ParserIfc.Encode(x) + "'")) + ")");
result += (string.IsNullOrEmpty(mMode) ? ",$," : ",'" + ParserSTEP.Encode(mMode) + "',") + (mTextureTransform == null ? "$" : "#" + mTextureTransform.StepId);
result += (mParameter.Count == 0 ? ",$" : ",(" + string.Join(",", mParameter.Select(x => "'" + ParserSTEP.Encode(x) + "'")) + ")");
}
return result;
}
@ -1446,11 +1446,11 @@ namespace GeometryGym.Ifc
mRepeatS = ParserSTEP.StripBool(str, ref pos, len);
mRepeatT = ParserSTEP.StripBool(str, ref pos, len);
string s = ParserSTEP.StripField(str, ref pos, len);
mMode = (release < ReleaseVersion.IFC4 ? s.Replace(".", "") : ParserIfc.Decode(s.Replace("'", "")));
mMode = (release < ReleaseVersion.IFC4 ? s.Replace(".", "") : ParserSTEP.Decode(s.Replace("'", "")));
TextureTransform = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcCartesianTransformationOperator2D;
s = ParserSTEP.StripField(str, ref pos, len);
if (s != "$")
mParameter.AddRange(ParserSTEP.SplitListStrings(s.Substring(1, s.Length - 2)).Select(x=>ParserIfc.Decode(x)));
mParameter.AddRange(ParserSTEP.SplitListStrings(s.Substring(1, s.Length - 2)).Select(x=>ParserSTEP.Decode(x)));
}
}
public abstract partial class IfcSweptAreaSolid

Просмотреть файл

@ -33,14 +33,14 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
string s = (string.IsNullOrEmpty(mName) ? "$," : "'" + ParserIfc.Encode(mName) + "',") + (mRows.Count == 0 ? "$" : "(" + string.Join(",", mRows.Select(x => "#" + x.StepId)) + ")");
string s = (string.IsNullOrEmpty(mName) ? "$," : "'" + ParserSTEP.Encode(mName) + "',") + (mRows.Count == 0 ? "$" : "(" + string.Join(",", mRows.Select(x => "#" + x.StepId)) + ")");
if (release != ReleaseVersion.IFC2x3)
s += (mColumns.Count == 0 ? ",$" : "(" + string.Join(",", mColumns.Select(x=>"#" + x.StepId)) + ")");
s += (mColumns.Count == 0 ? ",$" : ",(" + string.Join(",", mColumns.Select(x=>"#" + x.StepId)) + ")");
return s;
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
mName = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mName = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mRows.AddRange(ParserSTEP.StripListLink(str, ref pos, len).Select(x=>dictionary[x] as IfcTableRow));
mColumns.AddRange(ParserSTEP.StripListLink(str, ref pos, len).Select(x=>dictionary[x] as IfcTableColumn));
}
@ -49,16 +49,16 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return (release < ReleaseVersion.IFC4 ? "" : (string.IsNullOrEmpty(mIdentifier) ? "$," : "'" + ParserIfc.Encode(mIdentifier) + "',") +
(string.IsNullOrEmpty(mName) ? "$," : "'" + ParserIfc.Encode(mName) + "',") +
(string.IsNullOrEmpty(mDescription) ? "$," : "'" + ParserIfc.Encode(mDescription) + "',") +
return (release < ReleaseVersion.IFC4 ? "" : (string.IsNullOrEmpty(mIdentifier) ? "$," : "'" + ParserSTEP.Encode(mIdentifier) + "',") +
(string.IsNullOrEmpty(mName) ? "$," : "'" + ParserSTEP.Encode(mName) + "',") +
(string.IsNullOrEmpty(mDescription) ? "$," : "'" + ParserSTEP.Encode(mDescription) + "',") +
(mUnit == null ? "$" : "#" + mUnit.StepId) + (mReferencePath == null ? ",$" : ",#" + mReferencePath.StepId));
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
mIdentifier = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mName = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mDescription = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mIdentifier = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mName = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mDescription = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mUnit = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcUnit;
mReferencePath = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcReference;
}
@ -121,17 +121,17 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return base.BuildStringSTEP(release) + (release < ReleaseVersion.IFC4 ? ",'" + ParserIfc.Encode(mIdentification) + "'" : "") +
(string.IsNullOrEmpty(mStatus) ? ",$," : ",'" + ParserIfc.Encode(mStatus) + "',") + (string.IsNullOrEmpty(mWorkMethod) ? "$," : ",'" +
ParserIfc.Encode(mWorkMethod) + "',") + ParserSTEP.BoolToString(mIsMilestone) + (mPriority == int.MinValue ? ",$" : "," + mPriority) +
return base.BuildStringSTEP(release) + (release < ReleaseVersion.IFC4 ? ",'" + ParserSTEP.Encode(mIdentification) + "'" : "") +
(string.IsNullOrEmpty(mStatus) ? ",$," : ",'" + ParserSTEP.Encode(mStatus) + "',") + (string.IsNullOrEmpty(mWorkMethod) ? "$," : ",'" +
ParserSTEP.Encode(mWorkMethod) + "',") + ParserSTEP.BoolToString(mIsMilestone) + (mPriority == int.MinValue ? ",$" : "," + mPriority) +
(release < ReleaseVersion.IFC4 ? "" : "," + ParserSTEP.ObjToLinkString(mTaskTime) + (mPredefinedType == IfcTaskTypeEnum.NOTDEFINED ? ",$" : ",." + mPredefinedType.ToString() + ".")); }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
base.parse(str, ref pos, release, len, dictionary);
if (release < ReleaseVersion.IFC4)
mIdentification = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mStatus = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mWorkMethod = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mIdentification = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mStatus = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mWorkMethod = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mIsMilestone = ParserSTEP.StripBool(str, ref pos, len);
mPriority = ParserSTEP.StripInt(str, ref pos, len);
if (release > ReleaseVersion.IFC2x3)
@ -204,24 +204,24 @@ namespace GeometryGym.Ifc
}
public partial class IfcTaskType
{
protected override string BuildStringSTEP(ReleaseVersion release) { return (release < ReleaseVersion.IFC4 ? "" : base.BuildStringSTEP(release) + ",." + mPredefinedType.ToString() + (string.IsNullOrEmpty(mWorkMethod) ? ".,$" : (".,'" + ParserIfc.Encode(mWorkMethod) + "'"))); }
protected override string BuildStringSTEP(ReleaseVersion release) { return (release < ReleaseVersion.IFC4 ? "" : base.BuildStringSTEP(release) + ",." + mPredefinedType.ToString() + (string.IsNullOrEmpty(mWorkMethod) ? ".,$" : (".,'" + ParserSTEP.Encode(mWorkMethod) + "'"))); }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
base.parse(str, ref pos, release, len, dictionary);
Enum.TryParse<IfcTaskTypeEnum>(ParserSTEP.StripField(str, ref pos, len).Replace(".", ""), true, out mPredefinedType);
mWorkMethod = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mWorkMethod = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
}
}
public partial class IfcTelecomAddress
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return base.BuildStringSTEP(release) + (mTelephoneNumbers.Count == 0 ? ",$" : ",('" + string.Join("','", mTelephoneNumbers.Select(x => ParserIfc.Encode(x))) + "')") +
(mFacsimileNumbers.Count == 0 ? ",$" : ",('" + string.Join("','", mFacsimileNumbers.Select(x => ParserIfc.Encode(x))) + "')") +
(string.IsNullOrEmpty(mPagerNumber) ? ",$" : ",'" + ParserIfc.Encode(mPagerNumber) + "'") +
(mElectronicMailAddresses.Count == 0 ? ",$" : ",('" + string.Join("','", mElectronicMailAddresses.Select(x => ParserIfc.Encode(x))) + "')") +
(string.IsNullOrEmpty(mWWWHomePageURL) ? ",$" : ",'" + ParserIfc.Encode(mWWWHomePageURL) + "'") +
(release < ReleaseVersion.IFC4 ? "" : (mMessagingIDs.Count == 0 ? ",$" : ",('" + string.Join("','", mMessagingIDs.Select(x => ParserIfc.Encode(x))) + "')"));
return base.BuildStringSTEP(release) + (mTelephoneNumbers.Count == 0 ? ",$" : ",('" + string.Join("','", mTelephoneNumbers.Select(x => ParserSTEP.Encode(x))) + "')") +
(mFacsimileNumbers.Count == 0 ? ",$" : ",('" + string.Join("','", mFacsimileNumbers.Select(x => ParserSTEP.Encode(x))) + "')") +
(string.IsNullOrEmpty(mPagerNumber) ? ",$" : ",'" + ParserSTEP.Encode(mPagerNumber) + "'") +
(mElectronicMailAddresses.Count == 0 ? ",$" : ",('" + string.Join("','", mElectronicMailAddresses.Select(x => ParserSTEP.Encode(x))) + "')") +
(string.IsNullOrEmpty(mWWWHomePageURL) ? ",$" : ",'" + ParserSTEP.Encode(mWWWHomePageURL) + "'") +
(release < ReleaseVersion.IFC4 ? "" : (mMessagingIDs.Count == 0 ? ",$" : ",('" + string.Join("','", mMessagingIDs.Select(x => ParserSTEP.Encode(x))) + "')"));
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
@ -234,7 +234,7 @@ namespace GeometryGym.Ifc
{
string field = lst[icounter];
if (field.Length > 2)
mTelephoneNumbers.Add(ParserIfc.Decode(field.Substring(1, field.Length - 2)));
mTelephoneNumbers.Add(ParserSTEP.Decode(field.Substring(1, field.Length - 2)));
}
}
s = ParserSTEP.StripField(str, ref pos, len);
@ -245,10 +245,10 @@ namespace GeometryGym.Ifc
{
string field = lst[icounter];
if (field.Length > 2)
mFacsimileNumbers.Add(ParserIfc.Decode(field.Substring(1, field.Length - 2)));
mFacsimileNumbers.Add(ParserSTEP.Decode(field.Substring(1, field.Length - 2)));
}
}
mPagerNumber = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mPagerNumber = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
s = ParserSTEP.StripField(str, ref pos, len);
if (s != "$")
{
@ -257,10 +257,10 @@ namespace GeometryGym.Ifc
{
string field = lst[icounter];
if (field.Length > 2)
mElectronicMailAddresses.Add(ParserIfc.Decode(field.Substring(1, field.Length - 2)));
mElectronicMailAddresses.Add(ParserSTEP.Decode(field.Substring(1, field.Length - 2)));
}
}
mWWWHomePageURL = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mWWWHomePageURL = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
if (release > ReleaseVersion.IFC2x3)
{
s = ParserSTEP.StripField(str, ref pos, len);
@ -271,7 +271,7 @@ namespace GeometryGym.Ifc
{
string field = lst[icounter];
if (field.Length > 2)
mMessagingIDs.Add(ParserIfc.Decode(field.Substring(1, field.Length - 2)));
mMessagingIDs.Add(ParserSTEP.Decode(field.Substring(1, field.Length - 2)));
}
}
}
@ -400,11 +400,11 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return "'" + ParserIfc.Encode(mLiteral) + "',#" + mPlacement.StepId + ",." + mPath.ToString() + ".";
return "'" + ParserSTEP.Encode(mLiteral) + "',#" + mPlacement.StepId + ",." + mPath.ToString() + ".";
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
mLiteral = ParserIfc.Decode(ParserSTEP.StripField(str, ref pos, len));
mLiteral = ParserSTEP.Decode(ParserSTEP.StripField(str, ref pos, len));
mPlacement = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcAxis2Placement;
Enum.TryParse<IfcTextPath>(ParserSTEP.StripField(str, ref pos, len).Replace(".", ""), true, out mPath);
}
@ -445,10 +445,10 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return base.BuildStringSTEP(release) + (mFontFamily.Count == 0 ? ",$," : ",(" + string.Join(",", mFontFamily.Select(x=>ParserIfc.Encode(x)) + "),")) +
(string.IsNullOrEmpty(mFontStyle) ? "$," : "'" + ParserIfc.Encode(mFontStyle) + "',") +
(string.IsNullOrEmpty(mFontVariant) ? "$," : "'" + ParserIfc.Encode(mFontVariant) + "',") +
(string.IsNullOrEmpty(mFontWeight) ? "$," : "'" + ParserIfc.Encode(mFontWeight) + "',") + mFontSize;
return base.BuildStringSTEP(release) + (mFontFamily.Count == 0 ? ",$," : ",(" + string.Join(",", mFontFamily.Select(x=>ParserSTEP.Encode(x)) + "),")) +
(string.IsNullOrEmpty(mFontStyle) ? "$," : "'" + ParserSTEP.Encode(mFontStyle) + "',") +
(string.IsNullOrEmpty(mFontVariant) ? "$," : "'" + ParserSTEP.Encode(mFontVariant) + "',") +
(string.IsNullOrEmpty(mFontWeight) ? "$," : "'" + ParserSTEP.Encode(mFontWeight) + "',") + mFontSize;
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
@ -460,9 +460,9 @@ namespace GeometryGym.Ifc
for (int icounter = 0; icounter < lst.Count; icounter++)
mFontFamily.Add(lst[icounter]);
}
mFontStyle = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mFontVariant = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mFontWeight = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mFontStyle = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mFontVariant = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mFontWeight = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mFontSize = ParserSTEP.StripField(str, ref pos, len);
}
}
@ -483,21 +483,21 @@ namespace GeometryGym.Ifc
protected override string BuildStringSTEP(ReleaseVersion release)
{
return (mTextIndent == null ? ",$" : "," + mTextIndent.ToString()) +
(string.IsNullOrEmpty(mTextAlign) ? ",$" : ",'" + ParserIfc.Encode(mTextAlign) + "'") +
(string.IsNullOrEmpty(mTextDecoration) ? ",$" : ",'" + ParserIfc.Encode(mTextDecoration) + "'") +
(string.IsNullOrEmpty(mTextAlign) ? ",$" : ",'" + ParserSTEP.Encode(mTextAlign) + "'") +
(string.IsNullOrEmpty(mTextDecoration) ? ",$" : ",'" + ParserSTEP.Encode(mTextDecoration) + "'") +
(mLetterSpacing == null ? ",$" : "," + mLetterSpacing.ToString()) +
(mWordSpacing == null ? ",$" : ",#" + mWordSpacing.ToString()) +
(string.IsNullOrEmpty(mTextTransform) ? ",$" : ",'" + ParserIfc.Encode(mTextTransform) + "'") +
(string.IsNullOrEmpty(mTextTransform) ? ",$" : ",'" + ParserSTEP.Encode(mTextTransform) + "'") +
(mLineHeight == null ? ",$" : ",#" + mLineHeight.ToString());
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
TextIndent = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcSizeSelect;
TextAlign = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
TextDecoration = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
TextAlign = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
TextDecoration = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
LetterSpacing = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcSizeSelect;
WordSpacing = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcSizeSelect;
TextTransform = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
TextTransform = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
LineHeight = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcSizeSelect;
}
}
@ -558,12 +558,12 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return base.BuildStringSTEP(release) + ",'" + ParserIfc.Encode(mMode) + "'" + ",(" + string.Join(",", mParameter.ConvertAll(x => formatLength(x))) + ")";
return base.BuildStringSTEP(release) + ",'" + ParserSTEP.Encode(mMode) + "'" + ",(" + string.Join(",", mParameter.ConvertAll(x => formatLength(x))) + ")";
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
base.parse(str, ref pos, release, len, dictionary);
Mode = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
Mode = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
Parameter.AddRange(ParserSTEP.StripListDouble(str, ref pos, len));
}
}
@ -644,22 +644,22 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return "'" + ParserIfc.Encode(mName) + (string.IsNullOrEmpty(mDescription) ? "',$," : "','" + ParserIfc.Encode(mDescription) + "',") +
return "'" + ParserSTEP.Encode(mName) + (string.IsNullOrEmpty(mDescription) ? "',$," : "','" + ParserSTEP.Encode(mDescription) + "',") +
(mStartTime == null ? "$" : "#" + mStartTime.StepId) + (mEndTime == null ? ",$" : ",#" + mEndTime.StepId) + ",." +
mTimeSeriesDataType.ToString() + ".,." + mDataOrigin.ToString() + (string.IsNullOrEmpty(mUserDefinedDataOrigin) ? ".,$," : ".,'" + ParserIfc.Encode(mUserDefinedDataOrigin) + "',") +
mTimeSeriesDataType.ToString() + ".,." + mDataOrigin.ToString() + (string.IsNullOrEmpty(mUserDefinedDataOrigin) ? ".,$," : ".,'" + ParserSTEP.Encode(mUserDefinedDataOrigin) + "',") +
(mUnit == null ? "$" : "#" + mUnit.StepId);
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
mName = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mDescription = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mName = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mDescription = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mStartTime = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcDateTimeSelect;
mEndTime = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcDateTimeSelect;
Enum.TryParse<IfcTimeSeriesDataTypeEnum>(ParserSTEP.StripField(str, ref pos, len).Replace(".", ""), true, out mTimeSeriesDataType);
string s = ParserSTEP.StripField(str, ref pos, len);
if (s.StartsWith("."))
Enum.TryParse<IfcDataOriginEnum>(s.Replace(".", ""), true, out mDataOrigin);
mUserDefinedDataOrigin = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mUserDefinedDataOrigin = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mUnit = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcUnit;
}
}
@ -1134,15 +1134,15 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return base.BuildStringSTEP(release) + (string.IsNullOrEmpty(mIdentification) ? ",$," : ",'" + ParserIfc.Encode(mIdentification) + "',") +
(string.IsNullOrEmpty(mLongDescription) ? "$," : "'" + ParserIfc.Encode(mLongDescription) + "',") +
(string.IsNullOrEmpty(mProcessType) ? "$" : "'" + ParserIfc.Encode(mProcessType) + "'"); }
return base.BuildStringSTEP(release) + (string.IsNullOrEmpty(mIdentification) ? ",$," : ",'" + ParserSTEP.Encode(mIdentification) + "',") +
(string.IsNullOrEmpty(mLongDescription) ? "$," : "'" + ParserSTEP.Encode(mLongDescription) + "',") +
(string.IsNullOrEmpty(mProcessType) ? "$" : "'" + ParserSTEP.Encode(mProcessType) + "'"); }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
base.parse(str, ref pos, release, len, dictionary);
mIdentification = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mLongDescription = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mProcessType = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mIdentification = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mLongDescription = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mProcessType = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
}
}
public partial class IfcTypeProduct
@ -1150,28 +1150,28 @@ namespace GeometryGym.Ifc
protected override string BuildStringSTEP(ReleaseVersion release)
{
return base.BuildStringSTEP(release) + (mRepresentationMaps.Count == 0 ? ",$," : ",(" +
string.Join(",", mRepresentationMaps.ConvertAll(x=> "#" + x.StepId)) + "),") + (string.IsNullOrEmpty(mTag) ? "$" : "'" + ParserIfc.Encode(mTag) + "'");
string.Join(",", mRepresentationMaps.ConvertAll(x=> "#" + x.StepId)) + "),") + (string.IsNullOrEmpty(mTag) ? "$" : "'" + ParserSTEP.Encode(mTag) + "'");
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
base.parse(str, ref pos, release, len, dictionary);
RepresentationMaps.AddRange(ParserSTEP.StripListLink(str, ref pos, len).ConvertAll(x=>dictionary[x] as IfcRepresentationMap));
mTag = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mTag = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
}
}
public abstract partial class IfcTypeResource
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return base.BuildStringSTEP(release) + (string.IsNullOrEmpty(mIdentification) ? ",$," : ",'" + ParserIfc.Encode(mIdentification) + "',") +
(string.IsNullOrEmpty(mLongDescription) ? "$," : "'" + ParserIfc.Encode(mLongDescription) + "',") +
(string.IsNullOrEmpty(mResourceType) ? "$" : "'" + ParserIfc.Encode(mResourceType) + "'"); }
return base.BuildStringSTEP(release) + (string.IsNullOrEmpty(mIdentification) ? ",$," : ",'" + ParserSTEP.Encode(mIdentification) + "',") +
(string.IsNullOrEmpty(mLongDescription) ? "$," : "'" + ParserSTEP.Encode(mLongDescription) + "',") +
(string.IsNullOrEmpty(mResourceType) ? "$" : "'" + ParserSTEP.Encode(mResourceType) + "'"); }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
base.parse(str, ref pos, release, len, dictionary);
mIdentification = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mLongDescription = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mResourceType = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mIdentification = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mLongDescription = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mResourceType = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
}
}
}

Просмотреть файл

@ -120,7 +120,7 @@ namespace GeometryGym.Ifc
protected override string BuildStringSTEP(ReleaseVersion release) { return "#" + mVertexGeometry.StepId; }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
mVertexGeometry = dictionary[ParserSTEP.StripLink(str, ref pos, str.Length)] as IfcPoint;
VertexGeometry = dictionary[ParserSTEP.StripLink(str, ref pos, str.Length)] as IfcPoint;
}
}
public partial class IfcVibrationDamper

Просмотреть файл

@ -102,7 +102,7 @@ namespace GeometryGym.Ifc
{
return base.BuildStringSTEP(release) + "," + formatLength(mOverallHeight) + "," + formatLength(mOverallWidth) +
(release < ReleaseVersion.IFC4 ? "" : ",." + mPredefinedType + ".,." + mPartitioningType +
(string.IsNullOrEmpty(mUserDefinedPartitioningType) ? ".,$" : ".,'" + ParserIfc.Encode(mUserDefinedPartitioningType) + "'"));
(string.IsNullOrEmpty(mUserDefinedPartitioningType) ? ".,$" : ".,'" + ParserSTEP.Encode(mUserDefinedPartitioningType) + "'"));
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
@ -117,7 +117,7 @@ namespace GeometryGym.Ifc
s = ParserSTEP.StripField(str, ref pos, len);
if (s.StartsWith("."))
Enum.TryParse<IfcWindowTypePartitioningEnum>(s.Replace(".", ""), true, out mPartitioningType);
mUserDefinedPartitioningType = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mUserDefinedPartitioningType = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
}
}
}
@ -195,7 +195,7 @@ namespace GeometryGym.Ifc
ParserSTEP.BoolToString(mParameterTakesPrecedence) + "," + ParserSTEP.BoolToString(false) :
base.BuildStringSTEP(release) + ",." + mPredefinedType.ToString() + ".,." + mPartitioningType.ToString() + ".," +
ParserSTEP.BoolToString(mParameterTakesPrecedence) +
(string.IsNullOrEmpty(mUserDefinedPartitioningType) ? ",$" : ",'" + ParserIfc.Encode(mUserDefinedPartitioningType) + "'"));
(string.IsNullOrEmpty(mUserDefinedPartitioningType) ? ",$" : ",'" + ParserSTEP.Encode(mUserDefinedPartitioningType) + "'"));
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
@ -203,7 +203,7 @@ namespace GeometryGym.Ifc
Enum.TryParse<IfcWindowTypeEnum>(ParserSTEP.StripField(str,ref pos, len).Replace(".", ""), true, out mPredefinedType);
Enum.TryParse<IfcWindowTypePartitioningEnum>(ParserSTEP.StripField(str, ref pos, len).Replace(".", ""), true, out mPartitioningType);
mParameterTakesPrecedence = ParserSTEP.StripBool(str, ref pos, len);
mUserDefinedPartitioningType = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mUserDefinedPartitioningType = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
}
}
public partial class IfcWorkCalendar
@ -232,10 +232,10 @@ namespace GeometryGym.Ifc
base.parse(str, ref pos, release, len, dictionary);
if (release < ReleaseVersion.IFC4)
{
mIdentification = ParserSTEP.StripString(str, ref pos, len);
mIdentification = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mSSCreationDate = dictionary[ ParserSTEP.StripLink(str, ref pos, len)] as IfcDateTimeSelect;
Creators.AddRange(ParserSTEP.StripListLink(str, ref pos, len).ConvertAll(x=>dictionary[x] as IfcPerson));
mPurpose = ParserSTEP.StripString(str, ref pos, len);
mPurpose = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mSSDuration = ParserSTEP.StripDouble(str, ref pos, len);
mSSTotalFloat = ParserSTEP.StripDouble(str, ref pos, len);
mSSStartTime = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcDateTimeSelect;
@ -243,13 +243,13 @@ namespace GeometryGym.Ifc
string s = ParserSTEP.StripField(str, ref pos, len);
if (s.StartsWith("."))
Enum.TryParse<IfcWorkControlTypeEnum>(s.Replace(".", ""), true, out mWorkControlType);
mUserDefinedControlType = ParserSTEP.StripString(str, ref pos, len);
mUserDefinedControlType = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
}
else
{
mCreationDate = IfcDateTime.ParseSTEP(ParserSTEP.StripField(str, ref pos, len));
Creators.AddRange(ParserSTEP.StripListLink(str, ref pos, len).ConvertAll(x => dictionary[x] as IfcPerson));
mPurpose = ParserSTEP.StripString(str, ref pos, len);
mPurpose = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mDuration = ParserSTEP.StripString(str, ref pos, len);
mTotalFloat = ParserSTEP.StripString(str, ref pos, len);
mStartTime = IfcDateTime.ParseSTEP(ParserSTEP.StripField(str, ref pos, len));
@ -258,11 +258,16 @@ namespace GeometryGym.Ifc
}
protected override string BuildStringSTEP(ReleaseVersion release)
{
return base.BuildStringSTEP(release) + "," + (release < ReleaseVersion.IFC4 ? "'" + mIdentification + "'," + ParserSTEP.ObjToLinkString(mSSCreationDate) : IfcDateTime.STEPAttribute(mCreationDate)) +
return base.BuildStringSTEP(release) + "," + (release < ReleaseVersion.IFC4 ? "'" + ParserSTEP.Encode(mIdentification) + "'," +
ParserSTEP.ObjToLinkString(mSSCreationDate) : IfcDateTime.STEPAttribute(mCreationDate)) +
(mCreators.Count > 0 ? ",(" + string.Join(",", Creators.ConvertAll(x=>"#" + x.StepId)) + ")," : ",$,") +
(release < ReleaseVersion.IFC4 ? (mPurpose == "$" ? "$," : "'" + mPurpose + "',") + ParserSTEP.DoubleOptionalToString(mSSDuration) + "," + ParserSTEP.DoubleOptionalToString(mSSTotalFloat) + "," +
ParserSTEP.ObjToLinkString(mSSStartTime) + "," + ParserSTEP.ObjToLinkString(mSSFinishTime) + ",." + mWorkControlType.ToString() + (mUserDefinedControlType == "$" ? ".,$" : ".,'" + mUserDefinedControlType + "'") :
(mPurpose == "$" ? "$," : "'" + mPurpose + "',") + mDuration + "," + mTotalFloat + "," + IfcDateTime.STEPAttribute(mStartTime) + "," + IfcDateTime.STEPAttribute(mFinishTime));
(release < ReleaseVersion.IFC4 ? (mPurpose == "$" ? "$," : "'" + ParserSTEP.Encode(mPurpose) + "',") +
ParserSTEP.DoubleOptionalToString(mSSDuration) + "," + ParserSTEP.DoubleOptionalToString(mSSTotalFloat) + "," +
ParserSTEP.ObjToLinkString(mSSStartTime) + "," + ParserSTEP.ObjToLinkString(mSSFinishTime) + ",." + mWorkControlType.ToString() +
(mUserDefinedControlType == "$" ? ".,$" : ".,'" + mUserDefinedControlType + "'") :
(string.IsNullOrEmpty(mPurpose) ? "$," : "'" + ParserSTEP.Encode(mPurpose) + "',") +
(string.IsNullOrEmpty(mDuration) ? "$," : mDuration + ",") + (string.IsNullOrEmpty(mTotalFloat) ? "$," : mTotalFloat + ",") +
IfcDateTime.STEPAttribute(mStartTime) + "," + IfcDateTime.STEPAttribute(mFinishTime));
}
}
public partial class IfcWorkPlan

Просмотреть файл

@ -31,12 +31,12 @@ namespace GeometryGym.Ifc
{
public partial class IfcZone
{
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + (release < ReleaseVersion.IFC4 ? "" : (string.IsNullOrEmpty(mLongName) ? ",$" : ",'" + ParserIfc.Encode(mLongName) + "'")); }
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + (release < ReleaseVersion.IFC4 ? "" : (string.IsNullOrEmpty(mLongName) ? ",$" : ",'" + ParserSTEP.Encode(mLongName) + "'")); }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
base.parse(str, ref pos, release, len, dictionary);
if (release > ReleaseVersion.IFC2x3)
mLongName = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mLongName = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
}
}
public partial class IfcZShapeProfileDef

Просмотреть файл

@ -29,16 +29,16 @@ using System.Text;
using System.Threading;
using GeometryGym.STEP;
using System.Collections;
using GeometryGym.Ifc;
namespace GeometryGym.STEP
{
public partial class DatabaseSTEP<T> : IEnumerable<T> where T : STEPEntity//, new()
{
public string FolderPath { get; set; }
public string OriginatingSystem { get; set; }
public DateTime TimeStamp { get; set; } = DateTime.MinValue;
public STEPFileInformation OriginatingFileInformation = null;
public List<string> Comments { get; } = new List<string>();
internal string mFileName = "";
@ -105,7 +105,68 @@ namespace GeometryGym.STEP
internal void logParseError(string str) { string error = "XX Error " + str; if (!mParsingErrors.Contains(error)) mParsingErrors.Add(error); }
internal void logParseWarning(string str) { string warning = "!! Warning " + str; if (!mParsingWarnings.Contains(warning)) mParsingWarnings.Add(warning); }
internal virtual bool processFileHeaderLine(string line)
{
string trimmedLine = ParserSTEP.StripComments(line).Trim();
ParserSTEP.GetKeyWord(trimmedLine, out int stepID, out string keyword, out string def);
int pos = 0, len = def.Length;
if (string.Compare(keyword, "FILE_DESCRIPTION", true) == 0)
{
if (OriginatingFileInformation == null)
OriginatingFileInformation = new STEPFileInformation();
string field = ParserSTEP.StripField(def, ref pos, len);
List<string> fields = ParserSTEP.SplitListStrings(field);
OriginatingFileInformation.FileDescriptions.AddRange(fields.Select(x => ParserSTEP.Decode(x)));
OriginatingFileInformation.FileImplementationLevel = ParserSTEP.StripString(def, ref pos, len);
ProcessFileDescription();
return true;
}
if (string.Compare(keyword, "FILE_NAME", true) == 0)
{
if (OriginatingFileInformation == null)
OriginatingFileInformation = new STEPFileInformation();
try
{
string str = ParserSTEP.StripString(def, ref pos, len);
OriginatingFileInformation.FileName = ParserSTEP.Decode(str);
str = ParserSTEP.StripString(def, ref pos, len);
if (DateTime.TryParse(str, out DateTime dateTime))
OriginatingFileInformation.TimeStamp = dateTime;
str = ParserSTEP.StripField(def, ref pos, len);
OriginatingFileInformation.Author.AddRange(ParserSTEP.SplitListStrings(str).Select(x=>ParserSTEP.Decode(x)));
str = ParserSTEP.StripField(def, ref pos, len);
OriginatingFileInformation.Organization.AddRange(ParserSTEP.SplitListStrings(str).Select(x=>ParserSTEP.Decode(x)));
str = ParserSTEP.StripString(def, ref pos, len);
OriginatingFileInformation.PreProcessorVersion = ParserSTEP.Decode(str);
str = ParserSTEP.StripString(def, ref pos, len);
OriginatingFileInformation.OriginatingSystem = ParserSTEP.Decode(str);
str = ParserSTEP.StripString(def, ref pos, len);
OriginatingFileInformation.Authorization = ParserSTEP.Decode(str);
}
catch { }
return true;
}
return false;
}
internal virtual void ProcessFileDescription() { }
}
public class STEPFileInformation
{
public List<string> FileDescriptionViewDefinition { get; set; } = new List<string>();
public List<string> FileDescriptionExchangeRequirements { get; set; } = new List<string>();
public List<string> FileDescriptions { get; set; } = new List<string>();
public string FileImplementationLevel { get; set; } = "";
public string FileName { get; set; } = "";
public DateTime TimeStamp { get; set; } = DateTime.MinValue;
public List<string> Author { get; set; } = new List<string>();
public List<string> Organization { get; set; } = new List<string>();
public string PreProcessorVersion { get; set; } = "";
public string OriginatingSystem { get; set; } = "";
public string Authorization { get; set; } = "";
}
}

Просмотреть файл

@ -38,9 +38,138 @@ namespace GeometryGym.STEP
NumberFormat = (NumberFormatInfo) ci.NumberFormat.Clone();
}
internal static void GetKeyWord(string line, out int indexID, out string keyword, out string def)
public static string Encode(string str)
{
indexID = 0;
if (string.IsNullOrEmpty(str))
return "";
string result = "";
int length = str.Length;
for (int icounter = 0; icounter < length; icounter++)
{
char c = str[icounter];
if (c == '\r')
{
if (icounter + 1 < length)
{
if (str[icounter + 1] == '\n' && icounter + 2 == length)
return result;
}
continue;
}
if (c == '\n')
{
if (icounter + 1 == length)
return result;
}
if (c == '\'')
result += "\\X\\27"; // Alternative result += "''";
else if (c == '\\')
result += "\\\\";
else
{
int i = (int)c;
if (i < 32 || i > 126)
result += "\\X2\\" + string.Format("{0:x4}", i, CultureInfo.InvariantCulture).ToUpper() + "\\X0\\";
else
result += c;
}
}
return result;
}
public static string Decode(string str)
{
if (string.IsNullOrEmpty(str) || str == "$")
return "";
int ilast = str.Length - 4, icounter = 0, strLength = str.Length;
string result = "";
while (icounter < ilast)
{
char c = str[icounter];
if (c == '\'')
{
if (icounter + 1 < ilast && str[icounter + 1] == '\'')
icounter++;
}
if (c == '\\')
{
if (icounter + 1 < strLength && str[icounter + 1] == '\\')
{
result += c;
icounter++;
}
else if (icounter + 3 < strLength)
{
char c3 = str[icounter + 3], c2 = str[icounter + 2], c1 = str[icounter + 1];
if (c2 == '\\')
{
if (c1 == 'S')
{
result += (char)((int)c3 + 128);
icounter += 3;
}
else if (c1 == 'X' && strLength > icounter + 4)
{
string s = str.Substring(icounter + 3, 2);
Int32 i = Convert.ToInt32(s, 16);
Byte[] bytes = BitConverter.GetBytes(i);
c = Encoding.Unicode.GetChars(bytes)[0];
result += c;
icounter += 4;
}
else
result += str[icounter];
}
else if (c3 == '\\' && c2 == '2' && c1 == 'X')
{
icounter += 4;
while (str[icounter] != '\\')
{
string s = str.Substring(icounter, 4);
Int32 i = Convert.ToInt32(s, 16);
Byte[] bytes = BitConverter.GetBytes(i);
c = Encoding.Unicode.GetChars(bytes)[0];
result += c;
icounter += 4;
}
icounter += 3;
}
else if (c1 == '\\' && c2 == 'X')
{
if (c3 == '2')
{
icounter += 6;
while (str[icounter] != '\\')
{
string s = str.Substring(icounter, 4);
c = System.Text.Encoding.Unicode.GetChars(BitConverter.GetBytes(Convert.ToInt32(s, 16)))[0];
//result += (char)();
result += c;
icounter += 4;
}
icounter += 5;
}
else
result += str[icounter];
}
else
result += str[icounter];
}
else
result += str[icounter];
}
else
result += str[icounter];
icounter++;
}
while (icounter < str.Length)
result += str[icounter++];
return result;
}
internal static void GetKeyWord(string line, out int stepID, out string keyword, out string def)
{
stepID = 0;
keyword = "";
def = "";
if (string.IsNullOrEmpty(line))
@ -59,7 +188,7 @@ namespace GeometryGym.STEP
break;
}
if (!string.IsNullOrEmpty(def))
indexID = int.Parse(def);
stepID = int.Parse(def);
c = strLine[jcounter];
while (c == ' ')
c = strLine[++jcounter];

Просмотреть файл

@ -21,7 +21,7 @@
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<DefineConstants>TRACE;DEBUG;NOIFCJSON</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
@ -29,7 +29,7 @@
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\x64\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<DefineConstants>TRACE;NOIFCJSON</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>

Просмотреть файл

@ -1,9 +1,9 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<PackageId>GeometryGymIFC_Core</PackageId>
<Version>0.2.06</Version>
<Version>0.2.07</Version>
<Authors>Geometry Gym</Authors>
<Product>GeometryGymIFC_Core</Product>
<Description>.Net Standard 2.0 C# classes to generate and parse buildingSMART IFC (Industry Foundation Class) files
@ -14,15 +14,19 @@ License https://github.com/GeometryGym/GeometryGymIFC/blob/master/LICENSE</Descr
<PackageProjectUrl></PackageProjectUrl>
<RepositoryUrl>https://github.com/GeometryGym/GeometryGymIFC</RepositoryUrl>
<PackageTags>BIM, IFC, openBIM</PackageTags>
<AssemblyVersion>0.2.06.0</AssemblyVersion>
<FileVersion>0.2.06.0</FileVersion>
<AssemblyVersion>0.2.07.0</AssemblyVersion>
<FileVersion>0.2.07.0</FileVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<DefineConstants>TRACE;NETSTANDARD2_0 NOIFCJSON</DefineConstants>
<DefineConstants>TRACE;NETSTANDARD2_0;NOIFCJSON</DefineConstants>
<OutputPath>bin\</OutputPath>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
<DefineConstants>$(DefineConstants)TRACE;NOIFCJSON</DefineConstants>
</PropertyGroup>
<ItemGroup>
<Compile Include="..\..\Core\IFC\BaseClassIFC.cs" Link="IFC\BaseClassIFC.cs" />
<Compile Include="..\..\Core\IFC\DatabaseIFC.cs" Link="IFC\DatabaseIFC.cs" />