This commit is contained in:
Jon Mirtschin 2023-02-17 13:22:43 +11:00
Родитель d864c40974
Коммит 2a3082e760
55 изменённых файлов: 635 добавлений и 295 удалений

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

@ -836,20 +836,23 @@ namespace GeometryGym.Ifc
private BaseClassIfc duplicateWorker(BaseClassIfc entity, DuplicateOptions options)
{
BaseClassIfc result = null;
if (mDatabase.Release < ReleaseVersion.IFC4X3_RC1)
if (mDatabase.Release != entity.mDatabase.Release)
{
if (mDatabase.Release < ReleaseVersion.IFC4X2)
if (mDatabase.Release < ReleaseVersion.IFC4X3_RC1)
{
if (mDatabase.Release < ReleaseVersion.IFC4X1)
if (mDatabase.Release < ReleaseVersion.IFC4X2)
{
if (mDatabase.Release < ReleaseVersion.IFC4)
if (mDatabase.Release < ReleaseVersion.IFC4X1)
{
IfcSpatialZone spatialZone = entity as IfcSpatialZone;
if (spatialZone != null)
if (mDatabase.Release < ReleaseVersion.IFC4)
{
IfcSite site = new IfcSite(mDatabase, spatialZone, options);
NominateDuplicate(entity, site);
return site;
IfcSpatialZone spatialZone = entity as IfcSpatialZone;
if (spatialZone != null)
{
IfcSite site = new IfcSite(mDatabase, spatialZone, options);
NominateDuplicate(entity, site);
return site;
}
}
}
}
@ -1671,8 +1674,15 @@ namespace GeometryGym.Ifc
if (result != null)
return result;
}
if(nature == IfcGeometricRepresentationContext.GeometricContextIdentifier.Plan)
{
dimension = 2;
}
result = new IfcGeometricRepresentationContext(mDatabase, dimension, mDatabase.Tolerance) { ContextType = type };
result = new IfcGeometricRepresentationContext(mDatabase, dimension, mDatabase.Tolerance);
result.ContextType = type;
result.ContextIdentifier = dimension + "D";
if (context != null && !context.RepresentationContexts.Contains(result))
context.RepresentationContexts.Add(result);
mContexts.Add(nature, result);
@ -2808,6 +2818,8 @@ namespace GeometryGym.Ifc
string version = release.ToString().ToUpper();
if (release == ReleaseVersion.IFC4A1 || release == ReleaseVersion.IFC4A2)
version = "IFC4";
else if (release == ReleaseVersion.IFC4X4_DRAFT)
version = "IFC4X4_17239AAA";
lines.Add("FILE_SCHEMA (('" + version + "'));");
lines.Add("ENDSEC;");
lines.Add("");

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

@ -51,6 +51,7 @@ namespace GeometryGym.Ifc
public enum IfcAnalysisModelTypeEnum { NOTDEFINED, USERDEFINED, IN_PLANE_LOADING_2D, OUT_PLANE_LOADING_2D, LOADING_3D };
public enum IfcAnalysisTheoryTypeEnum { NOTDEFINED, USERDEFINED, FIRST_ORDER_THEORY, SECOND_ORDER_THEORY, THIRD_ORDER_THEORY, FULL_NONLINEAR_THEORY };
public enum IfcAnnotationTypeEnum { NOTDEFINED, USERDEFINED, ASSUMEDPOINT, ASBUILTAREA, ASBUILTLINE, NON_PHYSICAL_SIGNAL, ASSUMEDLINE, WIDTHEVENT, ASSUMEDAREA, SUPERELEVATIONEVENT, ASBUILTPOINT };
public enum IfcArchElementTypeEnum { NOTDEFINED, USERDEFINED };
public enum IfcArithmeticOperatorEnum { NONE, ADD, DIVIDE, MULTIPLY, SUBTRACT }; //GG ADDED NONE
public enum IfcAssemblyPlaceEnum { NOTDEFINED, SITE, FACTORY };
public enum IfcAudioVisualApplianceTypeEnum { NOTDEFINED, USERDEFINED, AMPLIFIER, CAMERA, DISPLAY, MICROPHONE, PLAYER, PROJECTOR, RECEIVER,
@ -58,7 +59,6 @@ namespace GeometryGym.Ifc
[VersionAdded(ReleaseVersion.IFC4X3)] RECORDINGEQUIPMENT, [VersionAdded(ReleaseVersion.IFC4X4_DRAFT)] SIREN,
[VersionAdded(ReleaseVersion.IFC4X4_DRAFT)] BEACON };
public enum IfcBeamTypeEnum { NOTDEFINED, USERDEFINED, BEAM, HOLLOWCORE, JOIST, LINTEL, SPANDREL, T_BEAM, [VersionAdded(ReleaseVersion.IFC4X2)] GIRDER_SEGMENT, [VersionAdded(ReleaseVersion.IFC4X2)] DIAPHRAGM, [VersionAdded(ReleaseVersion.IFC4X2)] PIERCAP, [VersionAdded(ReleaseVersion.IFC4X2)] HATSTONE, [VersionAdded(ReleaseVersion.IFC4X2)] CORNICE, [VersionAdded(ReleaseVersion.IFC4X2)] EDGEBEAM };
public enum IfcBearingTypeDisplacementEnum { NOTDEFINED, FIXED_MOVEMENT, GUIDED_LONGITUDINAL, GUIDED_TRANSVERSAL, FREE_MOVEMENT };
public enum IfcBearingTypeEnum { NOTDEFINED, USERDEFINED, CYLINDRICAL, SPHERICAL, ELASTOMERIC, POT, GUIDE, ROCKER, ROLLER, [VersionAdded(ReleaseVersion.IFC4X2)] DISK };
public enum IfcBenchmarkEnum { GREATERTHAN, GREATERTHANOREQUALTO, LESSTHAN, LESSTHANOREQUALTO, EQUALTO, NOTEQUALTO, INCLUDES, NOTINCLUDES, INCLUDEDIN, NOTINCLUDEDIN };
public enum IfcBoilerTypeEnum { NOTDEFINED, USERDEFINED, WATER, STEAM };
@ -233,6 +233,7 @@ namespace GeometryGym.Ifc
public enum IfcInventoryTypeEnum { NOTDEFINED, USERDEFINED, ASSETINVENTORY, SPACEINVENTORY, FURNITUREINVENTORY };
public enum IfcInterceptorTypeEnum { NOTDEFINED, USERDEFINED, CYCLONIC, GREASE, OIL, PETROL };
public enum IfcJunctionBoxTypeEnum { NOTDEFINED, USERDEFINED, DATA, POWER };
public enum IfcKerbTypeEnum { NOTDEFINED, USERDEFINED };
public enum IfcKnotType { UNSPECIFIED, UNIFORM_KNOTS, QUASI_UNIFORM_KNOTS, PIECEWISE_BEZIER_KNOTS };
public enum IfcLaborResourceTypeEnum { NOTDEFINED, USERDEFINED, ADMINISTRATION, CARPENTRY, CLEANING, CONCRETE, DRYWALL, ELECTRIC, FINISHING, FLOORING, GENERAL, HVAC, LANDSCAPING, MASONRY, PAINTING, PAVING, PLUMBING, ROOFING, SITEGRADING, STEELWORK, SURVEYING };
public enum IfcLampTypeEnum { NOTDEFINED, USERDEFINED, COMPACTFLUORESCENT, FLUORESCENT, HIGHPRESSUREMERCURY, HIGHPRESSURESODIUM, METALHALIDE, TUNGSTENFILAMENT, HALOGEN, LED, OLED };

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

@ -1809,6 +1809,27 @@ namespace GeometryGym.Ifc
public IfcArbitraryProfileDefWithVoids(string name, IfcCurve perim, IfcCurve inner) : base(name, perim) { mInnerCurves.Add(inner); }
public IfcArbitraryProfileDefWithVoids(string name, IfcCurve perim, IEnumerable<IfcCurve> inner) : base(name, perim) { mInnerCurves.AddRange(inner); }
}
[Serializable, VersionAdded(ReleaseVersion.IFC4X4_DRAFT)]
public partial class IfcArchElement : IfcBuiltElement
{
private IfcArchElementTypeEnum mPredefinedType = IfcArchElementTypeEnum.NOTDEFINED;// OPTIONAL IfcArchElementTypeEnum;
public IfcArchElementTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcArchElementTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X4_DRAFT : mDatabase.Release); } }
internal IfcArchElement() : base() { }
internal IfcArchElement(DatabaseIfc db) : base(db) { }
internal IfcArchElement(DatabaseIfc db, IfcArchElement e, DuplicateOptions options) : base(db, e, options) { PredefinedType = e.PredefinedType; }
public IfcArchElement(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape representation) : base(host, placement, representation) { }
}
[Serializable, VersionAdded(ReleaseVersion.IFC4X4_DRAFT)]
public partial class IfcArchElementType : IfcBuiltElementType
{
private IfcArchElementTypeEnum mPredefinedType = IfcArchElementTypeEnum.NOTDEFINED;// IfcArchElementTypeEnum;
public IfcArchElementTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcArchElementTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X4_DRAFT : mDatabase.Release); } }
internal IfcArchElementType() : base() { }
internal IfcArchElementType(DatabaseIfc db, IfcArchElementType t, DuplicateOptions options) : base(db, t, options) { PredefinedType = t.PredefinedType; }
public IfcArchElementType(DatabaseIfc db, string name, IfcArchElementTypeEnum type) : base(db) { Name = name; PredefinedType = type; }
}
[Serializable]
public partial class IfcArcIndex : List<int>, IfcSegmentIndexSelect
{

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

@ -509,6 +509,8 @@ namespace GeometryGym.Ifc
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; } }
[Obsolete("RENAMED IFC4X3 to Specification", false)]
public string Location { get { return mSpecification; } set { mSpecification = value; } }
internal IfcClassification() : base() { }
internal IfcClassification(DatabaseIfc db, IfcClassification c)
@ -813,7 +815,7 @@ namespace GeometryGym.Ifc
public double Blue { get { return mBlue; } set { mBlue = value; } }
internal IfcColourRgb() : base() { }
internal IfcColourRgb(DatabaseIfc db, IfcColourRgb c) : base(db, c) { mRed = c.mRed; mGreen = c.mGreen; mBlue = c.mBlue; }
internal IfcColourRgb(DatabaseIfc db, IfcColourRgb c, DuplicateOptions options) : base(db, c, options) { mRed = c.mRed; mGreen = c.mGreen; mBlue = c.mBlue; }
public IfcColourRgb(DatabaseIfc db, double red, double green, double blue) : base(db) { mRed = red; mGreen = green; mBlue = blue; }
}
[Serializable]
@ -821,7 +823,7 @@ namespace GeometryGym.Ifc
{
internal List<Tuple<double, double, double>> mColourList = new List<Tuple<double, double, double>>();// : LIST [1:?] OF LIST [3:3] OF IfcNormalisedRatioMeasure;
internal IfcColourRgbList() : base() { }
internal IfcColourRgbList(DatabaseIfc db,IfcColourRgbList l) : base(db,l) { mColourList.AddRange(l.mColourList); }
internal IfcColourRgbList(DatabaseIfc db, IfcColourRgbList l, DuplicateOptions options) : base(db,l, options) { mColourList.AddRange(l.mColourList); }
}
[Serializable]
public abstract partial class IfcColourSpecification : IfcPresentationItem, IfcColour, NamedObjectIfc // ABSTRACT SUPERTYPE OF(IfcColourRgb)
@ -830,7 +832,7 @@ namespace GeometryGym.Ifc
public string Name { get { return mName; } set { mName = value; } }
protected IfcColourSpecification() : base() { }
protected IfcColourSpecification(DatabaseIfc db, IfcColourSpecification s) : base(db, s) { mName = s.mName; }
protected IfcColourSpecification(DatabaseIfc db, IfcColourSpecification s, DuplicateOptions options) : base(db, s, options) { mName = s.mName; }
protected IfcColourSpecification(DatabaseIfc db) : base(db) { }
}
[Serializable]
@ -1814,20 +1816,23 @@ namespace GeometryGym.Ifc
internal string mName;// : OPTIONAL IfcLabel;
internal string mDescription = "";// : OPTIONAL IfcText;
internal string mGeodeticDatum = ""; // : OPTIONAL IfcIdentifier;
internal string mVerticalDatum = ""; //: OPTIONAL IfcIdentifier;
//INVERSE
private IfcCoordinateOperation mHasCoordinateOperation = null;
private IfcWellKnownText mWellKnownText = null;
public string Name { get { return mName; } set { mName = string.IsNullOrEmpty(value) ? "Unknown" : value; } }
public string Description { get { return mDescription; } set { mDescription = value; } }
public string GeodeticDatum { get { return mGeodeticDatum; } set { mGeodeticDatum = value; } }
public string VerticalDatum { get { return mVerticalDatum; } set { mVerticalDatum = value; } }
public string GeodeticDatum { get { return mGeodeticDatum; } set { mGeodeticDatum = value; } }
public IfcCoordinateOperation HasCoordinateOperation { get { return mHasCoordinateOperation; } set { mHasCoordinateOperation = value; value.SourceCRS = this; } }
public IfcWellKnownText WellKnownText { get { return mWellKnownText; } set { mWellKnownText = value; } }
protected IfcCoordinateReferenceSystem() : base() { }
protected IfcCoordinateReferenceSystem(DatabaseIfc db, IfcCoordinateReferenceSystem p) : base(db,p) { mName = p.mName; mDescription = p.mDescription; mGeodeticDatum = p.mGeodeticDatum; mVerticalDatum = p.mVerticalDatum; }
protected IfcCoordinateReferenceSystem(DatabaseIfc db, IfcCoordinateReferenceSystem p) : base(db,p)
{
mName = p.mName;
mDescription = p.mDescription;
mGeodeticDatum = p.mGeodeticDatum;
}
protected IfcCoordinateReferenceSystem(DatabaseIfc db) : base(db) { }
}
@ -2289,7 +2294,7 @@ namespace GeometryGym.Ifc
public string Name { get { return mName; } set { mName = value; } }
internal IfcCurveStyleFont() : base() { }
internal IfcCurveStyleFont(DatabaseIfc db, IfcCurveStyleFont f) : base(db, f)
internal IfcCurveStyleFont(DatabaseIfc db, IfcCurveStyleFont f, DuplicateOptions options) : base(db, f, options)
{
mName = f.mName;
mPatternList.AddRange(f.mPatternList.Select(x => db.Factory.Duplicate(x) as IfcCurveStyleFontPattern));
@ -2302,7 +2307,7 @@ namespace GeometryGym.Ifc
internal IfcCurveStyleFontSelect mCurveStyleFont;// : IfcCurveStyleFontSelect;
internal double mCurveFontScaling;//: IfcPositiveRatioMeasure;
internal IfcCurveStyleFontAndScaling() : base() { }
internal IfcCurveStyleFontAndScaling(DatabaseIfc db, IfcCurveStyleFontAndScaling f) : base(db, f)
internal IfcCurveStyleFontAndScaling(DatabaseIfc db, IfcCurveStyleFontAndScaling f, DuplicateOptions options) : base(db, f, options)
{
mName = f.mName;
mCurveStyleFont = db.Factory.Duplicate(f.mCurveStyleFont);
@ -2321,7 +2326,7 @@ namespace GeometryGym.Ifc
internal double mVisibleSegmentLength;// : IfcLengthMeasure;
internal double mInvisibleSegmentLength;//: IfcPositiveLengthMeasure;
internal IfcCurveStyleFontPattern() : base() { }
internal IfcCurveStyleFontPattern(DatabaseIfc db, IfcCurveStyleFontPattern p) : base(db, p)
internal IfcCurveStyleFontPattern(DatabaseIfc db, IfcCurveStyleFontPattern p, DuplicateOptions options) : base(db, p, options)
{
mVisibleSegmentLength = p.mVisibleSegmentLength;
mInvisibleSegmentLength = p.mInvisibleSegmentLength;

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

@ -79,13 +79,22 @@ namespace GeometryGym.Ifc
public partial class IfcGeographicCRS : IfcCoordinateReferenceSystem //IFC4
{
internal string mPrimeMeridian = "";// : OPTIONAL IfcIdentifier
internal IfcNamedUnit mMapUnit = null;// : OPTIONAL IfcNamedUnit;
internal IfcNamedUnit mAngleUnit = null;// : OPTIONAL IfcNamedUnit;
internal IfcNamedUnit mHeightUnit = null;// : OPTIONAL IfcNamedUnit;
public string PrimeMeridian { get { return mPrimeMeridian; } set { mPrimeMeridian = value; } }
public IfcNamedUnit MapUnit { get { return mMapUnit; } set { mMapUnit = value; } }
public IfcNamedUnit AngleUnit { get { return mAngleUnit; } set { mAngleUnit = value; } }
public IfcNamedUnit HeightUnit { get { return mHeightUnit; } set { mHeightUnit = value; } }
internal IfcGeographicCRS() : base() { }
internal IfcGeographicCRS(DatabaseIfc db, IfcGeographicCRS p) : base(db, p) { mPrimeMeridian = p.mPrimeMeridian; if (p.MapUnit != null) MapUnit = db.Factory.Duplicate(p.MapUnit); }
internal IfcGeographicCRS(DatabaseIfc db, IfcGeographicCRS p) : base(db, p)
{
mPrimeMeridian = p.mPrimeMeridian;
if (p.AngleUnit != null)
AngleUnit = db.Factory.Duplicate(p.AngleUnit);
if (p.HeightUnit != null)
AngleUnit = db.Factory.Duplicate(p.HeightUnit);
}
public IfcGeographicCRS(DatabaseIfc db, string name) : base(db) { Name = name; }
}
[Serializable, VersionAdded(ReleaseVersion.IFC4)]
@ -643,7 +652,7 @@ namespace GeometryGym.Ifc
}
}
public interface IfcGridPlacementDirectionSelect : IBaseClassIfc { } // SELECT(IfcVirtualGridIntersection, IfcDirection);
[Serializable]
[Serializable, VersionAdded(ReleaseVersion.IFC4X4_DRAFT)]
public partial class IfcGroundReinforcementElement : IfcBuiltElement
{
private IfcGroundReinforcementElementTypeEnum mPredefinedType = IfcGroundReinforcementElementTypeEnum.NOTDEFINED;//: IfcGroundReinforcementElementTypeEnum;
@ -653,6 +662,16 @@ namespace GeometryGym.Ifc
internal IfcGroundReinforcementElement(DatabaseIfc db, IfcGroundReinforcementElement e, DuplicateOptions options) : base(db, e, options) { PredefinedType = e.PredefinedType; }
public IfcGroundReinforcementElement(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape representation) : base(host, placement, representation) { }
}
[Serializable, VersionAdded(ReleaseVersion.IFC4X4_DRAFT)]
public partial class IfcGroundReinforcementElementType : IfcBuiltElementType
{
private IfcGroundReinforcementElementTypeEnum mPredefinedType = IfcGroundReinforcementElementTypeEnum.NOTDEFINED;// IfcGroundReinforcementElementTypeEnum;
public IfcGroundReinforcementElementTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcGroundReinforcementElementTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X4_DRAFT : mDatabase.Release); } }
internal IfcGroundReinforcementElementType() : base() { }
internal IfcGroundReinforcementElementType(DatabaseIfc db, IfcGroundReinforcementElementType t, DuplicateOptions options) : base(db, t, options) { PredefinedType = t.PredefinedType; }
public IfcGroundReinforcementElementType(DatabaseIfc db, string name, IfcGroundReinforcementElementTypeEnum type) : base(db) { Name = name; PredefinedType = type; }
}
[Serializable]
public partial class IfcGroup : IfcObject, IfcSpatialReferenceSelect //SUPERTYPE OF (ONEOF (IfcAsset ,IfcCondition ,IfcInventory ,IfcStructuralLoadGroup ,IfcStructuralResultGroup ,IfcSystem ,IfcZone))
{

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

@ -35,7 +35,7 @@ namespace GeometryGym.Ifc
public string UrlReference { get { return mUrlReference; } set { mUrlReference = value; } }
internal IfcImageTexture() : base() { }
internal IfcImageTexture(DatabaseIfc db, IfcImageTexture t) : base(db, t) { mUrlReference = t.mUrlReference; }
internal IfcImageTexture(DatabaseIfc db, IfcImageTexture t, DuplicateOptions options) : base(db, t, options) { mUrlReference = t.mUrlReference; }
public IfcImageTexture(DatabaseIfc db, bool repeatS, bool repeatT, string urlReference) : base(db, repeatS, repeatT) { UrlReference = urlReference; }
}
[Serializable]
@ -84,7 +84,7 @@ namespace GeometryGym.Ifc
public IfcColourRgbList Colours { get { return mColours; } set { mColours = value; } }
internal IfcIndexedColourMap() : base() { }
internal IfcIndexedColourMap(DatabaseIfc db, IfcIndexedColourMap m) : base(db, m) { MappedTo = db.Factory.Duplicate(m.MappedTo) as IfcTessellatedFaceSet; Colours = db.Factory.Duplicate(m.Colours) as IfcColourRgbList; mColourIndex.AddRange(m.mColourIndex); }
internal IfcIndexedColourMap(DatabaseIfc db, IfcIndexedColourMap m, DuplicateOptions options) : base(db, m, options) { MappedTo = db.Factory.Duplicate(m.MappedTo) as IfcTessellatedFaceSet; Colours = db.Factory.Duplicate(m.Colours) as IfcColourRgbList; mColourIndex.AddRange(m.mColourIndex); }
public IfcIndexedColourMap(IfcTessellatedFaceSet fs, IfcColourRgbList colours, IEnumerable<int> colourindex)
: base(fs.mDatabase) { MappedTo = fs; mColours = colours; mColourIndex.AddRange(colourindex); }
}
@ -146,7 +146,7 @@ namespace GeometryGym.Ifc
internal IfcIndexedPolygonalTextureMap() : base() { }
internal IfcIndexedPolygonalTextureMap(DatabaseIfc db) : base(db) { }
internal IfcIndexedPolygonalTextureMap(DatabaseIfc db, IfcIndexedPolygonalTextureMap m) : base(db, m)
internal IfcIndexedPolygonalTextureMap(DatabaseIfc db, IfcIndexedPolygonalTextureMap m, DuplicateOptions options) : base(db, m, options)
{
foreach (IfcTextureCoordinateIndices i in m.mTexCoordIndices)
TexCoordIndices.Add(db.Factory.Duplicate(i) as IfcTextureCoordinateIndices);
@ -163,7 +163,7 @@ namespace GeometryGym.Ifc
protected IfcIndexedTextureMap() : base() { }
protected IfcIndexedTextureMap(DatabaseIfc db) : base(db) { }
protected IfcIndexedTextureMap(DatabaseIfc db, IfcIndexedTextureMap m) : base(db, m) { MappedTo = db.Factory.Duplicate(m.MappedTo) as IfcTessellatedFaceSet; TexCoords = db.Factory.Duplicate(m.TexCoords) as IfcTextureVertexList; }
protected IfcIndexedTextureMap(DatabaseIfc db, IfcIndexedTextureMap m, DuplicateOptions options) : base(db, m, options) { MappedTo = db.Factory.Duplicate(m.MappedTo) as IfcTessellatedFaceSet; TexCoords = db.Factory.Duplicate(m.TexCoords) as IfcTextureVertexList; }
}
[Serializable]
public partial class IfcIndexedTriangleTextureMap : IfcIndexedTextureMap
@ -172,7 +172,7 @@ namespace GeometryGym.Ifc
internal IfcIndexedTriangleTextureMap() : base() { }
internal IfcIndexedTriangleTextureMap(DatabaseIfc db) : base(db) { }
internal IfcIndexedTriangleTextureMap(DatabaseIfc db, IfcIndexedTriangleTextureMap m) : base(db, m) { mTexCoordList = m.mTexCoordList; }
internal IfcIndexedTriangleTextureMap(DatabaseIfc db, IfcIndexedTriangleTextureMap m, DuplicateOptions options) : base(db, m, options) { mTexCoordList = m.mTexCoordList; }
}
[Serializable, VersionAdded(ReleaseVersion.IFC4X4_DRAFT)]
public partial class IfcIntegerVoxelData : IfcVoxelData

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

@ -30,23 +30,23 @@ namespace GeometryGym.Ifc
[Serializable, VersionAdded(ReleaseVersion.IFC4X3)]
public partial class IfcKerb : IfcBuiltElement
{
private bool mMountable = false; //: IfcBoolean;
public bool Mountable { get { return mMountable; } set { mMountable = value; } }
private IfcKerbTypeEnum mPredefinedType = IfcKerbTypeEnum.NOTDEFINED;// OPTIONAL : IfcKerbTypeEnum;
public IfcKerbTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcKerbTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
public IfcKerb() : base() { }
public IfcKerb(DatabaseIfc db, bool mountable) : base(db) { Mountable = mountable; }
public IfcKerb(DatabaseIfc db, IfcKerb kerb, DuplicateOptions options) : base(db, kerb, options) { Mountable = kerb.Mountable; }
public IfcKerb(DatabaseIfc db) : base(db) { ; }
public IfcKerb(DatabaseIfc db, IfcKerb kerb, DuplicateOptions options) : base(db, kerb, options) { PredefinedType = kerb.PredefinedType; }
public IfcKerb(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape representation) : base(host, placement, representation) { }
}
[Serializable, VersionAdded(ReleaseVersion.IFC4X3)]
public partial class IfcKerbType : IfcBuiltElementType
{
private bool mMountable = false; //: IfcBoolean;
public bool Mountable { get { return mMountable; } set { mMountable = value; } }
private IfcKerbTypeEnum mPredefinedType = IfcKerbTypeEnum.NOTDEFINED;// : IfcKerbTypeEnum;
public IfcKerbTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcKerbTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
public IfcKerbType() : base() { }
public IfcKerbType(DatabaseIfc db, IfcKerbType kerbType, DuplicateOptions options) : base(db, kerbType, options) { Mountable = kerbType.Mountable; }
public IfcKerbType(DatabaseIfc db, string name, bool mountable)
: base(db, name) { Mountable = mountable; }
public IfcKerbType(DatabaseIfc db, IfcKerbType kerbType, DuplicateOptions options) : base(db, kerbType, options) { PredefinedType = kerbType.PredefinedType; }
public IfcKerbType(DatabaseIfc db, string name, IfcKerbTypeEnum type)
: base(db, name) { PredefinedType = type; }
}
}

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

@ -436,7 +436,7 @@ namespace GeometryGym.Ifc
public int ColourComponents { get { return mColourComponents; } set { mColourComponents = value; } }
internal IfcPixelTexture() : base() { }
internal IfcPixelTexture(DatabaseIfc db, IfcPixelTexture t) : base(db, t) { mWidth = t.mWidth; mHeight = t.mHeight; mColourComponents = t.mColourComponents; mPixel.AddRange(t.mPixel); }
internal IfcPixelTexture(DatabaseIfc db, IfcPixelTexture t, DuplicateOptions options) : base(db, t, options) { mWidth = t.mWidth; mHeight = t.mHeight; mColourComponents = t.mColourComponents; mPixel.AddRange(t.mPixel); }
public IfcPixelTexture(DatabaseIfc db, bool repeatS, bool repeatT, int width, int height, int colourComponents, List<string> pixel) : base(db, repeatS, repeatT) { mWidth = width; mHeight = height; mColourComponents = colourComponents; mPixel = pixel; }
}
[Serializable]
@ -801,20 +801,20 @@ namespace GeometryGym.Ifc
public abstract partial class IfcPreDefinedColour : IfcPreDefinedItem, IfcColour // ABSTRACT SUPERTYPE OF(IfcDraughtingPreDefinedColour)
{
protected IfcPreDefinedColour() : base() { }
protected IfcPreDefinedColour(DatabaseIfc db, IfcPreDefinedColour c) : base(db, c) { }
protected IfcPreDefinedColour(DatabaseIfc db, IfcPreDefinedColour c, DuplicateOptions options) : base(db, c, options) { }
}
[Serializable]
public abstract partial class IfcPreDefinedCurveFont : IfcPreDefinedItem, IfcCurveStyleFontSelect
{
protected IfcPreDefinedCurveFont() : base() { }
protected IfcPreDefinedCurveFont(DatabaseIfc db, IfcPreDefinedCurveFont f) : base(db, f) { }
protected IfcPreDefinedCurveFont(DatabaseIfc db, IfcPreDefinedCurveFont f, DuplicateOptions options) : base(db, f, options) { }
}
[Obsolete("DEPRECATED IFC4", false)]
[Serializable]
public partial class IfcPreDefinedDimensionSymbol : IfcPreDefinedSymbol // DEPRECATED IFC4
{
internal IfcPreDefinedDimensionSymbol() : base() { }
internal IfcPreDefinedDimensionSymbol(DatabaseIfc db, IfcPreDefinedDimensionSymbol s) : base(db, s) { }
internal IfcPreDefinedDimensionSymbol(DatabaseIfc db, IfcPreDefinedDimensionSymbol s, DuplicateOptions options) : base(db, s, options) { }
}
[Serializable]
public abstract partial class IfcPreDefinedItem : IfcPresentationItem, NamedObjectIfc
@ -824,14 +824,14 @@ namespace GeometryGym.Ifc
protected IfcPreDefinedItem() : base() { }
protected IfcPreDefinedItem(DatabaseIfc db, string name) : base(db) { Name = name; }
protected IfcPreDefinedItem(DatabaseIfc db, IfcPreDefinedItem i) : base(db, i) { mName = i.mName; }
protected IfcPreDefinedItem(DatabaseIfc db, IfcPreDefinedItem i, DuplicateOptions options) : base(db, i, options) { mName = i.mName; }
}
[Obsolete("DEPRECATED IFC4", false)]
[Serializable]
public partial class IfcPreDefinedPointMarkerSymbol : IfcPreDefinedSymbol // DEPRECATED IFC4
{
internal IfcPreDefinedPointMarkerSymbol() : base() { }
internal IfcPreDefinedPointMarkerSymbol(DatabaseIfc db, IfcPreDefinedPointMarkerSymbol s) : base(db, s) { }
internal IfcPreDefinedPointMarkerSymbol(DatabaseIfc db, IfcPreDefinedPointMarkerSymbol s, DuplicateOptions options) : base(db, s, options) { }
}
[Serializable]
public abstract partial class IfcPreDefinedProperties : IfcPropertyAbstraction // IFC4 ABSTRACT SUPERTYPE OF(ONEOF(IfcReinforcementBarProperties, IfcSectionProperties, IfcSectionReinforcementProperties))
@ -852,28 +852,28 @@ namespace GeometryGym.Ifc
public abstract partial class IfcPreDefinedSymbol : IfcPreDefinedItem // DEPRECATED IFC4
{
protected IfcPreDefinedSymbol() : base() { }
protected IfcPreDefinedSymbol(DatabaseIfc db, IfcPreDefinedSymbol s) : base(db, s) { }
protected IfcPreDefinedSymbol(DatabaseIfc db, IfcPreDefinedSymbol s, DuplicateOptions options) : base(db, s, options) { }
}
[Obsolete("DEPRECATED IFC4", false)]
[Serializable]
public partial class IfcPreDefinedTerminatorSymbol : IfcPreDefinedSymbol // DEPRECATED IFC4
{
internal IfcPreDefinedTerminatorSymbol() : base() { }
internal IfcPreDefinedTerminatorSymbol(DatabaseIfc db, IfcPreDefinedTerminatorSymbol s) : base(db, s) { }
internal IfcPreDefinedTerminatorSymbol(DatabaseIfc db, IfcPreDefinedTerminatorSymbol s, DuplicateOptions options) : base(db, s, options) { }
}
[Serializable]
public abstract partial class IfcPreDefinedTextFont : IfcPreDefinedItem, IfcTextFontSelect
{
protected IfcPreDefinedTextFont() : base() { }
protected IfcPreDefinedTextFont(DatabaseIfc db, string name) : base(db, name) { }
protected IfcPreDefinedTextFont(DatabaseIfc db, IfcPreDefinedTextFont f) : base(db, f) { }
protected IfcPreDefinedTextFont(DatabaseIfc db, IfcPreDefinedTextFont f, DuplicateOptions options) : base(db, f, options) { }
}
[Serializable]
public abstract partial class IfcPresentationItem : BaseClassIfc // ABSTRACT SUPERTYPE OF(ONEOF(IfcColourRgbList, IfcColourSpecification,
{ // IfcCurveStyleFont, IfcCurveStyleFontAndScaling, IfcCurveStyleFontPattern, IfcIndexedColourMap, IfcPreDefinedItem, IfcSurfaceStyleLighting, IfcSurfaceStyleRefraction, IfcSurfaceStyleShading, IfcSurfaceStyleWithTextures, IfcSurfaceTexture, IfcTextStyleForDefinedFont, IfcTextStyleTextModel, IfcTextureCoordinate, IfcTextureVertex, IfcTextureVertexList));
protected IfcPresentationItem() : base() { }
protected IfcPresentationItem(DatabaseIfc db) : base(db) { }
protected IfcPresentationItem(DatabaseIfc db, IfcPresentationItem i) : base(db, i) { }
protected IfcPresentationItem(DatabaseIfc db, IfcPresentationItem i, DuplicateOptions options) : base(db, i) { }
}
[Serializable]
public partial class IfcPresentationLayerAssignment : BaseClassIfc, NamedObjectIfc //SUPERTYPE OF (IfcPresentationLayerWithStyle);
@ -1021,7 +1021,10 @@ namespace GeometryGym.Ifc
public SET<IfcStyledItem> StyledItems { get { return mStyledItems; } }
internal IfcPresentationStyleAssignment() : base() { }
internal IfcPresentationStyleAssignment(DatabaseIfc db, IfcPresentationStyleAssignment s) : base(db, s) { Styles.AddRange(s.mStyles.Select(x=> db.Factory.Duplicate(x) as IfcPresentationStyleSelect)); }
internal IfcPresentationStyleAssignment(DatabaseIfc db, IfcPresentationStyleAssignment s, DuplicateOptions options) : base(db, s)
{
Styles.AddRange(s.mStyles.Select(x=> db.Factory.Duplicate(x, options)));
}
public IfcPresentationStyleAssignment(IfcPresentationStyleSelect style) : base(style.Database) { Styles.Add(style); }
public IfcPresentationStyleAssignment(IEnumerable<IfcPresentationStyleSelect> styles) : base(styles.First().Database) { Styles.AddRange(styles); }
}
@ -1664,16 +1667,26 @@ namespace GeometryGym.Ifc
[Serializable]
public partial class IfcProjectedCRS : IfcCoordinateReferenceSystem //IFC4
{
internal string mVerticalDatum = ""; //: OPTIONAL IfcIdentifier;
internal string mMapProjection = "";// : OPTIONAL IfcIdentifier;
internal string mMapZone = "";// : OPTIONAL IfcIdentifier
internal IfcNamedUnit mMapUnit = null;// : OPTIONAL IfcNamedUnit;
public string GeodeticDatum { get { return mGeodeticDatum; } set { mGeodeticDatum = value; } }
public string VerticalDatum { get { return mVerticalDatum; } set { mVerticalDatum = 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; } }
internal IfcProjectedCRS() : base() { }
internal IfcProjectedCRS(DatabaseIfc db, IfcProjectedCRS p) : base(db, p) { mName = p.mName; mMapZone = p.mMapZone; if (p.MapUnit != null) MapUnit = db.Factory.Duplicate(p.MapUnit); }
internal IfcProjectedCRS(DatabaseIfc db, IfcProjectedCRS p) : base(db, p)
{
mVerticalDatum = p.mVerticalDatum;
mName = p.mName;
mMapZone = p.mMapZone;
if (p.MapUnit != null)
MapUnit = db.Factory.Duplicate(p.MapUnit);
}
public IfcProjectedCRS(DatabaseIfc db, string name) : base(db) { Name = name; }
}
//[Obsolete("DEPRECATED IFC4", false)]
@ -2004,38 +2017,38 @@ namespace GeometryGym.Ifc
[Serializable]
public partial class IfcPropertyListValue : IfcSimpleProperty
{
private LIST<IfcValue> mNominalValue = new LIST<IfcValue>();// : OPTIONAL LIST [1:?] OF IfcValue;
private LIST<IfcValue> mListValues = new LIST<IfcValue>();// : OPTIONAL LIST [1:?] OF IfcValue;
private IfcUnit mUnit;// : OPTIONAL IfcUnit;
public LIST<IfcValue> NominalValue { get { return mNominalValue; } }
public LIST<IfcValue> ListValues { get { return mListValues; } }
public IfcUnit Unit { get { return mUnit; } set { mUnit = value; } }
internal IfcPropertyListValue() : base() { }
internal IfcPropertyListValue(DatabaseIfc db, IfcPropertyListValue p, DuplicateOptions options) : base(db, p, options)
{
mNominalValue.AddRange(p.mNominalValue);
mListValues.AddRange(p.mListValues);
if (p.mUnit != null)
Unit = db.Factory.Duplicate(p.mUnit as BaseClassIfc, options) as IfcUnit;
}
public IfcPropertyListValue(DatabaseIfc db, string name, IEnumerable<IfcValue> values)
: base(db, name) { mNominalValue.AddRange(values); }
: base(db, name) { mListValues.AddRange(values); }
}
[Serializable]
public partial class IfcPropertyListValue<T> : IfcSimpleProperty where T : IfcValue
{
private List<T> mNominalValue = new List<T>();// : OPTIONAL LIST [1:?] OF IfcValue;
private List<T> mListValues = new List<T>();// : OPTIONAL LIST [1:?] OF IfcValue;
private IfcUnit mUnit;// : OPTIONAL IfcUnit;
public List<T> NominalValue { get { return mNominalValue; } }
public List<T> ListValues { get { return mListValues; } }
public IfcUnit Unit { get { return mUnit; } set { mUnit = value; } }
internal IfcPropertyListValue() : base() { }
public IfcPropertyListValue(DatabaseIfc db, string name, IEnumerable<T> values)
: base(db, name) { mNominalValue.AddRange(values); }
: base(db, name) { mListValues.AddRange(values); }
internal IfcPropertyListValue(DatabaseIfc db, IfcPropertyListValue<T> p, DuplicateOptions options) : base(db, p, options)
{
mNominalValue.AddRange(p.mNominalValue);
mListValues.AddRange(p.mListValues);
if (p.mUnit != null)
Unit = db.Factory.Duplicate(p.mUnit as BaseClassIfc, options) as IfcUnit;
}

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

@ -2481,7 +2481,7 @@ namespace GeometryGym.Ifc
}
if (options.DuplicatePresentationStyling && i.mStyledByItem != null)
{
IfcStyledItem si = db.Factory.Duplicate(i.mStyledByItem) as IfcStyledItem;
IfcStyledItem si = db.Factory.Duplicate(i.mStyledByItem, options) as IfcStyledItem;
si.Item = this;
}
}

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

@ -2234,7 +2234,7 @@ additional types some additional representation types are given:
internal IfcStyledItem(DatabaseIfc db, IfcStyledItem i, DuplicateOptions options) : base(db, i, options)
{
foreach(IfcStyleAssignmentSelect style in i.Styles)
addStyle(db.Factory.Duplicate(style) as IfcStyleAssignmentSelect);
addStyle(db.Factory.Duplicate(style, options) as IfcStyleAssignmentSelect);
mName = i.mName;
}
public IfcStyledItem(IfcStyleAssignmentSelect style) : base(style.Database) { addStyle(style); }
@ -2480,7 +2480,11 @@ additional types some additional representation types are given:
public SET<IfcSurfaceStyleElementSelect> Styles { get { return mStyles; } }
internal IfcSurfaceStyle() : base() { }
internal IfcSurfaceStyle(DatabaseIfc db, IfcSurfaceStyle s) : base(db,s) { mSide = s.mSide; mStyles.AddRange(s.mStyles.Select(x=> db.Factory.Duplicate(x) as IfcSurfaceStyleElementSelect)); }
internal IfcSurfaceStyle(DatabaseIfc db, IfcSurfaceStyle s, DuplicateOptions options) : base(db, s)
{
mSide = s.mSide;
mStyles.AddRange(s.mStyles.Select(x=> db.Factory.Duplicate(x, options) as IfcSurfaceStyleElementSelect));
}
internal IfcSurfaceStyle(DatabaseIfc db) : base(db) { }
public IfcSurfaceStyle(IfcSurfaceStyleShading shading) : base(shading.mDatabase) { mStyles.Add(shading); }
public IfcSurfaceStyle(IfcSurfaceStyleLighting lighting) : base(lighting.mDatabase) { mStyles.Add(lighting); }
@ -2521,7 +2525,7 @@ additional types some additional representation types are given:
public IfcColourRgb TransmissionColour { get { return mTransmissionColour; } set { mTransmissionColour = value; } }
public IfcColourRgb ReflectanceColour { get { return mReflectanceColour; } set { mReflectanceColour = value; } }
internal IfcSurfaceStyleLighting() : base() { }
internal IfcSurfaceStyleLighting(DatabaseIfc db, IfcSurfaceStyleLighting i) : base(db,i)
internal IfcSurfaceStyleLighting(DatabaseIfc db, IfcSurfaceStyleLighting i, DuplicateOptions options) : base(db, i, options)
{
mDiffuseTransmissionColour = db.Factory.Duplicate(i.mDiffuseTransmissionColour);
mDiffuseReflectionColour = db.Factory.Duplicate(i.mDiffuseReflectionColour);
@ -2546,7 +2550,7 @@ additional types some additional representation types are given:
internal IfcSurfaceStyleRefraction() : base() { }
public IfcSurfaceStyleRefraction(DatabaseIfc db) : base(db) { }
internal IfcSurfaceStyleRefraction(DatabaseIfc db, IfcSurfaceStyleRefraction s) : base(db, s)
internal IfcSurfaceStyleRefraction(DatabaseIfc db, IfcSurfaceStyleRefraction s, DuplicateOptions options) : base(db, s, options)
{
mRefractionIndex = s.mRefractionIndex;
mDispersionFactor = s.mDispersionFactor;
@ -2568,35 +2572,35 @@ additional types some additional representation types are given:
public IfcReflectanceMethodEnum ReflectanceMethod { get { return mReflectanceMethod; } set { mReflectanceMethod = value; } }
internal IfcSurfaceStyleRendering() : base() { }
internal IfcSurfaceStyleRendering(DatabaseIfc db, IfcSurfaceStyleRendering r) : base(db, r)
internal IfcSurfaceStyleRendering(DatabaseIfc db, IfcSurfaceStyleRendering r, DuplicateOptions options) : base(db, r, options)
{
IfcColourRgb colourRgb = r.mDiffuseColour as IfcColourRgb;
if (colourRgb != null)
mDiffuseColour = db.Factory.Duplicate(colourRgb) as IfcColourRgb;
mDiffuseColour = db.Factory.Duplicate(colourRgb, options);
else
mDiffuseColour = r.mDiffuseColour;
colourRgb = r.mTransmissionColour as IfcColourRgb;
if (colourRgb != null)
mTransmissionColour = db.Factory.Duplicate(colourRgb) as IfcColourRgb;
mTransmissionColour = db.Factory.Duplicate(colourRgb, options);
else
mTransmissionColour = r.mTransmissionColour;
colourRgb = r.mDiffuseTransmissionColour as IfcColourRgb;
if (colourRgb != null)
mDiffuseTransmissionColour = db.Factory.Duplicate(colourRgb) as IfcColourRgb;
mDiffuseTransmissionColour = db.Factory.Duplicate(colourRgb, options);
else
mDiffuseTransmissionColour = r.mDiffuseTransmissionColour;
colourRgb = r.mReflectionColour as IfcColourRgb;
if (colourRgb != null)
mReflectionColour = db.Factory.Duplicate(colourRgb) as IfcColourRgb;
mReflectionColour = db.Factory.Duplicate(colourRgb, options);
else
mReflectionColour = r.mReflectionColour;
colourRgb = r.mSpecularColour as IfcColourRgb;
if (colourRgb != null)
mSpecularColour = db.Factory.Duplicate(colourRgb) as IfcColourRgb;
mSpecularColour = db.Factory.Duplicate(colourRgb);
else
mSpecularColour = r.mSpecularColour;
@ -2615,9 +2619,9 @@ additional types some additional representation types are given:
public double Transparency { get { return mTransparency; } set { mTransparency = value; } }
internal IfcSurfaceStyleShading() : base() { }
internal IfcSurfaceStyleShading(DatabaseIfc db, IfcSurfaceStyleShading s) : base(db,s)
internal IfcSurfaceStyleShading(DatabaseIfc db, IfcSurfaceStyleShading s, DuplicateOptions options) : base(db,s, options)
{
SurfaceColour = db.Factory.Duplicate( s.SurfaceColour) as IfcColourRgb;
SurfaceColour = db.Factory.Duplicate(s.SurfaceColour, options) as IfcColourRgb;
mTransparency = s.mTransparency;
}
public IfcSurfaceStyleShading(IfcColourRgb surfaceColour) : base(surfaceColour.mDatabase) { SurfaceColour = surfaceColour; }
@ -2647,10 +2651,9 @@ additional types some additional representation types are given:
public List<string> Parameter { get { return mParameter; } }
protected IfcSurfaceTexture() : base() { }
protected IfcSurfaceTexture(DatabaseIfc db, IfcSurfaceTexture t) : base(db,t) { mRepeatS = t.mRepeatS; mRepeatT = t.mRepeatT; mMode = t.mMode; mTextureTransform = t.mTextureTransform; }
protected IfcSurfaceTexture(DatabaseIfc db,bool repeatS, bool repeatT) : base(db) { mRepeatS = repeatS; mRepeatT = repeatT; }
protected IfcSurfaceTexture(DatabaseIfc db, IfcSurfaceTexture t, DuplicateOptions options)
: base(db, t)
: base(db, t, options)
{
mRepeatS = t.mRepeatS;
mRepeatT = t.mRepeatT;

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

@ -473,7 +473,7 @@ namespace GeometryGym.Ifc
internal string mFontWeight = "";// : OPTIONAL IfcFontWeight; // ['normal','small-caps','100','200','300','400','500','600','700','800','900'];
internal IfcSizeSelect mFontSize = null;// : IfcSizeSelect; IfcSizeSelect = SELECT (IfcRatioMeasure ,IfcLengthMeasure ,IfcDescriptiveMeasure ,IfcPositiveLengthMeasure ,IfcNormalisedRatioMeasure ,IfcPositiveRatioMeasure);
internal IfcTextStyleFontModel() : base() { }
internal IfcTextStyleFontModel(DatabaseIfc db, IfcTextStyleFontModel m) : base(db, m)
internal IfcTextStyleFontModel(DatabaseIfc db, IfcTextStyleFontModel m, DuplicateOptions options) : base(db, m, options)
{
mFontFamily.AddRange(m.mFontFamily);
mFontStyle = m.mFontStyle;
@ -545,7 +545,7 @@ namespace GeometryGym.Ifc
protected IfcTextureCoordinate() : base() { }
protected IfcTextureCoordinate(DatabaseIfc db) : base(db) { }
protected IfcTextureCoordinate(DatabaseIfc db, IfcTextureCoordinate c) : base(db, c) { Maps.AddRange(c.Maps.Select(x=> db.Factory.Duplicate(x) as IfcSurfaceTexture)); }
protected IfcTextureCoordinate(DatabaseIfc db, IfcTextureCoordinate c, DuplicateOptions options) : base(db, c, options) { Maps.AddRange(c.Maps.Select(x=> db.Factory.Duplicate(x) as IfcSurfaceTexture)); }
protected IfcTextureCoordinate(IEnumerable<IfcSurfaceTexture> maps) : base(maps.First().Database) { mMaps.AddRange(maps); }
}
[Serializable]
@ -631,7 +631,7 @@ namespace GeometryGym.Ifc
public List<Tuple<double, double>> TexCoordsList { get { return mTexCoordsList; } }
internal IfcTextureVertexList() : base() { }
internal IfcTextureVertexList(DatabaseIfc db, IfcTextureVertexList l) : base(db, l) { mTexCoordsList = l.mTexCoordsList; }
internal IfcTextureVertexList(DatabaseIfc db, IfcTextureVertexList l, DuplicateOptions options) : base(db, l, options) { mTexCoordsList = l.mTexCoordsList; }
public IfcTextureVertexList(DatabaseIfc db, IEnumerable<Tuple<double, double>> coords) : base(db) { mTexCoordsList.AddRange(coords); }
}
[Obsolete("DEPRECATED IFC4", false)]

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

@ -374,7 +374,8 @@ namespace GeometryGym.Ifc
}
public double Angle()
{
double compound = Math.Abs(mMinutes) / 60.0 + Math.Abs(mSeconds) / 3600.0 + Math.Abs(mMicroSeconds) / 3600 * 1e-6;
double minutes = Math.Abs(mMinutes) / 60.0, seconds = Math.Abs(mSeconds) / 3600.0, microSeconds = Math.Abs(mMicroSeconds) / 3600000000.0;
double compound = minutes + seconds + microSeconds;
double multiplier = (mDegrees == 0 ? (mMinutes == 0 ? (mSeconds == 0 ? (mMicroSeconds > 0 ? 1 : -1) : (mSeconds > 0 ? 1 : -1)) : (mMinutes > 0 ? 1 : -1)) : (mDegrees > 0 ? 1 : -1));
return mDegrees + multiplier * compound;
}

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

@ -114,7 +114,7 @@ namespace GeometryGym.Ifc
obj["CurveGeometry"] = CurveGeometry.getJson(this, options);
}
}
public abstract partial class IfcAlignment2DSegment
public partial class IfcAlignment2DSegment
{
internal override void parseJsonObject(JsonObject obj)
{
@ -164,7 +164,7 @@ namespace GeometryGym.Ifc
createArray(obj, "Segments", Segments, this, options);
}
}
public abstract partial class IfcAlignment2DVerticalSegment
public partial class IfcAlignment2DVerticalSegment
{
protected override void setJSON(JsonObject obj, BaseClassIfc host, SetJsonOptions options)
{
@ -291,7 +291,7 @@ namespace GeometryGym.Ifc
Enum.TryParse<IfcAlignmentHorizontalSegmentTypeEnum>(node.GetValue<string>(), true, out mPredefinedType);
}
}
public abstract partial class IfcAlignmentParameterSegment
public partial class IfcAlignmentParameterSegment
{
internal override void parseJsonObject(JsonObject obj)
{
@ -482,6 +482,37 @@ namespace GeometryGym.Ifc
obj["OuterCurve"] = OuterCurve.getJson(this, options);
}
}
public partial class IfcArchElement
{
internal override void parseJsonObject(JsonObject obj)
{
base.parseJsonObject(obj);
var node = obj["PredefinedType"];
if (node != null)
Enum.TryParse<IfcArchElementTypeEnum>(node.GetValue<string>(), true, out mPredefinedType);
}
protected override void setJSON(JsonObject obj, BaseClassIfc host, SetJsonOptions options)
{
base.setJSON(obj, host, options);
if (mPredefinedType != IfcArchElementTypeEnum.NOTDEFINED)
obj["PredefinedType"] = mPredefinedType.ToString();
}
}
public partial class IfcArchElementType
{
internal override void parseJsonObject(JsonObject obj)
{
base.parseJsonObject(obj);
var node = obj["PredefinedType"];
if (node != null)
Enum.TryParse<IfcArchElementTypeEnum>(node.GetValue<string>(), true, out mPredefinedType);
}
protected override void setJSON(JsonObject obj, BaseClassIfc host, SetJsonOptions options)
{
base.setJSON(obj, host, options);
obj["PredefinedType"] = mPredefinedType.ToString();
}
}
public partial class IfcAsymmetricIShapeProfileDef
{
internal override void parseJsonObject(JsonObject obj)

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

@ -129,7 +129,7 @@ namespace GeometryGym.Ifc
obj["SecondOperand"] = mSecondOperand.getJson(this, options);
}
}
public abstract partial class IfcBoundaryCondition
public partial class IfcBoundaryCondition
{
internal override void parseJsonObject(JsonObject obj)
{
@ -220,7 +220,7 @@ namespace GeometryGym.Ifc
}
}
}
public abstract partial class IfcBSplineCurve
public partial class IfcBSplineCurve
{
protected override void setJSON(JsonObject obj, BaseClassIfc host, SetJsonOptions options)
{
@ -253,7 +253,7 @@ namespace GeometryGym.Ifc
obj["KnotSpec"] = mKnotSpec.ToString();
}
}
public abstract partial class IfcBSplineSurface
public partial class IfcBSplineSurface
{
protected override void setJSON(JsonObject obj, BaseClassIfc host, SetJsonOptions options)
{

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

@ -122,7 +122,7 @@ namespace GeometryGym.Ifc
obj["CoordList"] = string.Join(" ", mCoordList.Select(x => x.Item1 + " " + x.Item2 + " " + x.Item3));
}
}
public abstract partial class IfcCartesianTransformationOperator
public partial class IfcCartesianTransformationOperator
{
internal override void parseJsonObject(JsonObject obj)
{
@ -310,7 +310,7 @@ namespace GeometryGym.Ifc
obj["Blue"] = mBlue;
}
}
public abstract partial class IfcColourSpecification
public partial class IfcColourSpecification
{
internal override void parseJsonObject(JsonObject obj)
{
@ -391,7 +391,7 @@ namespace GeometryGym.Ifc
createArray(obj, "CfsFaces", CfsFaces, this, options);
}
}
public abstract partial class IfcConstraint
public partial class IfcConstraint
{
internal override void parseJsonObject(JsonObject obj)
{
@ -454,7 +454,7 @@ namespace GeometryGym.Ifc
setAttribute(obj, "UserDefinedGrade", UserDefinedGrade);
}
}
public abstract partial class IfcContext
public partial class IfcContext
{
public string Json
{
@ -578,7 +578,7 @@ namespace GeometryGym.Ifc
Enum.TryParse<IfcConveyorSegmentTypeEnum>(node.GetValue<string>(), true, out mPredefinedType);
}
}
public abstract partial class IfcCoordinateOperation
public partial class IfcCoordinateOperation
{
protected override void setJSON(JsonObject obj, BaseClassIfc host, SetJsonOptions options)
{
@ -586,8 +586,15 @@ namespace GeometryGym.Ifc
obj["TargetCRS"] = TargetCRS.getJson(this, options);
}
}
public abstract partial class IfcCoordinateReferenceSystem
public partial class IfcCoordinateReferenceSystem
{
internal override void parseJsonObject(JsonObject obj)
{
base.parseJsonObject(obj);
Name = extractString(obj["Name"]);
Description = extractString(obj["Description"]);
GeodeticDatum = extractString(obj["GeodeticDatum"]);
}
protected override void setJSON(JsonObject obj, BaseClassIfc host, SetJsonOptions options)
{
base.setJSON(obj, host, options);
@ -597,10 +604,9 @@ namespace GeometryGym.Ifc
str = Description;
if (!string.IsNullOrEmpty(str))
obj["Description"] = str;
obj["GeodeticDatum"] = GeodeticDatum;
str = VerticalDatum;
if (!string.IsNullOrEmpty(str))
obj["VerticalDatum"] = str;
str = GeodeticDatum;
if (str != null)
obj["GeodeticDatum"] = str;
}
}
public partial class IfcCosineSpiral
@ -682,7 +688,7 @@ namespace GeometryGym.Ifc
obj["PredefinedType"] = mPredefinedType.ToString();
}
}
public abstract partial class IfcCsgPrimitive3D
public partial class IfcCsgPrimitive3D
{
internal override void parseJsonObject(JsonObject obj)
{
@ -782,7 +788,7 @@ namespace GeometryGym.Ifc
ParentCurve = mDatabase.ParseJsonObject<IfcCurve>(jobj);
}
}
public abstract partial class IfcCurveSegment2D
public partial class IfcCurveSegment2D
{
internal override void parseJsonObject(JsonObject obj)
{

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

@ -155,7 +155,7 @@ namespace GeometryGym.Ifc
obj["DirectionRatios"] = mDirectionRatioX + (double.IsNaN(mDirectionRatioY) ? "" : (" " + RoundRatio(mDirectionRatioY) + (double.IsNaN(mDirectionRatioZ) ? "" : " " + RoundRatio(mDirectionRatioZ))));
}
}
public abstract partial class IfcDirectrixCurveSweptAreaSolid
public partial class IfcDirectrixCurveSweptAreaSolid
{
protected override void setJSON(JsonObject obj, BaseClassIfc host, SetJsonOptions options)
{

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

@ -120,7 +120,7 @@ namespace GeometryGym.Ifc
Enum.TryParse<IfcElectricFlowTreatmentDeviceTypeEnum>(node.GetValue<string>(), true, out mPredefinedType);
}
}
public abstract partial class IfcElement
public partial class IfcElement
{
internal override void parseJsonObject(JsonObject obj)
{
@ -183,7 +183,7 @@ namespace GeometryGym.Ifc
obj["PredefinedType"] = mPredefinedType.ToString();
}
}
public abstract partial class IfcElementarySurface
public partial class IfcElementarySurface
{
internal override void parseJsonObject(JsonObject obj)
{
@ -196,7 +196,7 @@ namespace GeometryGym.Ifc
obj["Position"] = Position.getJson(this, options);
}
}
public abstract partial class IfcElementType
public partial class IfcElementType
{
internal override void parseJsonObject(JsonObject obj)
{
@ -226,7 +226,7 @@ namespace GeometryGym.Ifc
obj["SemiAxis2"] = SemiAxis2;
}
}
public abstract partial class IfcExtendedProperties
public partial class IfcExtendedProperties
{
internal override void parseJsonObject(JsonObject obj)
{
@ -251,7 +251,7 @@ namespace GeometryGym.Ifc
}
}
}
public abstract partial class IfcExternalReference
public partial class IfcExternalReference
{
internal override void parseJsonObject(JsonObject obj)
{

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

@ -62,6 +62,34 @@ namespace GeometryGym.Ifc
obj["CrossSectionArea"] = mCrossSectionArea;
}
}
public partial class IfcGeographicCRS
{
internal override void parseJsonObject(JsonObject obj)
{
base.parseJsonObject(obj);
PrimeMeridian = extractString(obj["PrimeMeridian"]);
JsonObject jobj = obj["AngleUnit"] as JsonObject;
if (jobj != null)
AngleUnit = mDatabase.ParseJsonObject<IfcNamedUnit>(jobj);
jobj = obj["HeightUnit"] as JsonObject;
if (jobj != null)
HeightUnit = mDatabase.ParseJsonObject<IfcNamedUnit>(jobj);
}
protected override void setJSON(JsonObject obj, BaseClassIfc host, SetJsonOptions options)
{
base.setJSON(obj, host, options);
string str = PrimeMeridian;
if (!string.IsNullOrEmpty(str))
obj["PrimeMeridian"] = str;
IfcNamedUnit unit = AngleUnit;
if (unit != null)
obj["AngleUnit"] = unit.getJson(this, options);
unit = HeightUnit;
if (unit != null)
obj["HeightUnit"] = unit.getJson(this, options);
}
}
public partial class IfcGeographicElement
{
protected override void setJSON(JsonObject obj, BaseClassIfc host, SetJsonOptions options)
@ -237,6 +265,37 @@ namespace GeometryGym.Ifc
obj["SameSense"] = SameSense;
}
}
public partial class IfcGroundReinforcementElement
{
internal override void parseJsonObject(JsonObject obj)
{
base.parseJsonObject(obj);
var node = obj["PredefinedType"];
if (node != null)
Enum.TryParse<IfcGroundReinforcementElementTypeEnum>(node.GetValue<string>(), true, out mPredefinedType);
}
protected override void setJSON(JsonObject obj, BaseClassIfc host, SetJsonOptions options)
{
base.setJSON(obj, host, options);
if (mPredefinedType != IfcGroundReinforcementElementTypeEnum.NOTDEFINED)
obj["PredefinedType"] = mPredefinedType.ToString();
}
}
public partial class IfcGroundReinforcementElementType
{
internal override void parseJsonObject(JsonObject obj)
{
base.parseJsonObject(obj);
var node = obj["PredefinedType"];
if (node != null)
Enum.TryParse<IfcGroundReinforcementElementTypeEnum>(node.GetValue<string>(), true, out mPredefinedType);
}
protected override void setJSON(JsonObject obj, BaseClassIfc host, SetJsonOptions options)
{
base.setJSON(obj, host, options);
obj["PredefinedType"] = mPredefinedType.ToString();
}
}
public partial class IfcGroup
{
internal override void parseJsonObject(JsonObject obj)

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

@ -39,32 +39,33 @@ namespace GeometryGym.Ifc
{
public partial class IfcKerb
{
protected override void setJSON(JsonObject obj, BaseClassIfc host, SetJsonOptions options)
{
base.setJSON(obj, host, options);
obj["Mountable"] = mMountable;
}
internal override void parseJsonObject(JsonObject obj)
{
base.parseJsonObject(obj);
var node = obj["Mountable"];
var node = obj["PredefinedType"];
if (node != null)
mMountable = node.GetValue<bool>();
Enum.TryParse<IfcKerbTypeEnum>(node.GetValue<string>(), true, out mPredefinedType);
}
protected override void setJSON(JsonObject obj, BaseClassIfc host, SetJsonOptions options)
{
base.setJSON(obj, host, options);
if (mPredefinedType != IfcKerbTypeEnum.NOTDEFINED)
obj["PredefinedType"] = mPredefinedType.ToString();
}
}
public partial class IfcKerbType
{
protected override void setJSON(JsonObject obj, BaseClassIfc host, SetJsonOptions options)
{
base.setJSON(obj, host, options);
obj["Mountable"] = mMountable;
}
internal override void parseJsonObject(JsonObject obj)
{
base.parseJsonObject(obj);
var node = obj["Mountable"];
var node = obj["PredefinedType"];
if (node != null)
mMountable = node.GetValue<bool>();
Enum.TryParse<IfcKerbTypeEnum>(node.GetValue<string>(), true, out mPredefinedType);
}
protected override void setJSON(JsonObject obj, BaseClassIfc host, SetJsonOptions options)
{
base.setJSON(obj, host, options);
obj["PredefinedType"] = mPredefinedType.ToString();
}
}
}

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

@ -37,7 +37,7 @@ using System.Text.Json.Nodes;
namespace GeometryGym.Ifc
{
public abstract partial class IfcManifoldSolidBrep
public partial class IfcManifoldSolidBrep
{
internal override void parseJsonObject(JsonObject obj)
{
@ -181,7 +181,7 @@ namespace GeometryGym.Ifc
setAttribute(obj, "Description", Description);
}
}
public abstract partial class IfcMaterialDefinition
public partial class IfcMaterialDefinition
{
internal override void parseJsonObject(JsonObject obj)
{

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

@ -36,7 +36,7 @@ using System.Text.Json.Nodes;
namespace GeometryGym.Ifc
{
public abstract partial class IfcNamedUnit
public partial class IfcNamedUnit
{
internal override void parseJsonObject(JsonObject obj)
{

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

@ -38,7 +38,7 @@ using System.Text.Json.Nodes;
namespace GeometryGym.Ifc
{
public abstract partial class IfcObject
public partial class IfcObject
{
internal override void parseJsonObject(JsonObject obj)
{
@ -63,7 +63,7 @@ namespace GeometryGym.Ifc
//private IfcRelDefinesByType mIsTypedBy = null;
//internal List<IfcRelDefinesByProperties> mIsDefinedBy = new List<IfcRelDefinesByProperties>();
}
public abstract partial class IfcObjectDefinition
public partial class IfcObjectDefinition
{
internal override void parseJsonObject(JsonObject obj)
{
@ -169,7 +169,7 @@ namespace GeometryGym.Ifc
setAttribute(obj, "UserDefinedQualifier", UserDefinedQualifier);
}
}
public abstract partial class IfcObjectPlacement
public partial class IfcObjectPlacement
{
internal override void parseJsonObject(JsonObject obj)
{

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

@ -38,7 +38,7 @@ using System.Text.Json.Nodes;
namespace GeometryGym.Ifc
{
public abstract partial class IfcParameterizedProfileDef
public partial class IfcParameterizedProfileDef
{
internal override void parseJsonObject(JsonObject obj)
{
@ -185,7 +185,7 @@ namespace GeometryGym.Ifc
}
}
}
public abstract partial class IfcPhysicalQuantity
public partial class IfcPhysicalQuantity
{
internal override void parseJsonObject(JsonObject obj)
{
@ -220,7 +220,7 @@ namespace GeometryGym.Ifc
obj["PredefinedType"] = mPredefinedType.ToString();
}
}
public abstract partial class IfcPlacement
public partial class IfcPlacement
{
internal override void parseJsonObject(JsonObject obj)
{
@ -324,7 +324,7 @@ namespace GeometryGym.Ifc
createArray(obj, "LayerStyles", LayerStyles, this, options);
}
}
public abstract partial class IfcPresentationStyle
public partial class IfcPresentationStyle
{
internal override void parseJsonObject(JsonObject obj)
{
@ -355,7 +355,7 @@ namespace GeometryGym.Ifc
obj["Styles"] = array;
}
}
public abstract partial class IfcProduct
public partial class IfcProduct
{
internal override void parseJsonObject(JsonObject obj)
{
@ -513,10 +513,23 @@ namespace GeometryGym.Ifc
}
public partial class IfcProjectedCRS
{
internal override void parseJsonObject(JsonObject obj)
{
base.parseJsonObject(obj);
VerticalDatum = extractString(obj["VerticalDatum"]);
MapProjection = extractString(obj["MapProjection"]);
MapZone = extractString(obj["MapZone"]);
JsonObject jobj = obj["MapUnit"] as JsonObject;
if (jobj != null)
MapUnit = mDatabase.ParseJsonObject<IfcNamedUnit>(jobj);
}
protected override void setJSON(JsonObject obj, BaseClassIfc host, SetJsonOptions options)
{
base.setJSON(obj, host, options);
string str = MapProjection;
string str = VerticalDatum;
if (!string.IsNullOrEmpty(str))
obj["VerticalDatum"] = str;
str = MapProjection;
if (!string.IsNullOrEmpty(str))
obj["MapProjection"] = str;
str = MapZone;
@ -527,7 +540,7 @@ namespace GeometryGym.Ifc
obj["MapUnit"] = unit.getJson(this, options);
}
}
public abstract partial class IfcProperty
public partial class IfcProperty
{
internal override void parseJsonObject(JsonObject obj)
{
@ -556,7 +569,7 @@ namespace GeometryGym.Ifc
}
}
}
public abstract partial class IfcPropertyAbstraction
public partial class IfcPropertyAbstraction
{
internal override void parseJsonObject(JsonObject obj)
{
@ -604,7 +617,7 @@ namespace GeometryGym.Ifc
obj["SetPointValue"] = DatabaseIfc.extract(SetPointValue);
}
}
public abstract partial class IfcPropertyDefinition
public partial class IfcPropertyDefinition
{
internal override void parseJsonObject(JsonObject obj)
{

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

@ -680,7 +680,7 @@ namespace GeometryGym.Ifc
obj["LayerAssignment"] = new JsonArray(mLayerAssignment.getJson(this, options));
}
}
public abstract partial class IfcRepresentationContext
public partial class IfcRepresentationContext
{
internal override void parseJsonObject(JsonObject obj)
{
@ -707,7 +707,7 @@ namespace GeometryGym.Ifc
obj["ContextType"] = contextType;
}
}
public abstract partial class IfcRepresentationItem
public partial class IfcRepresentationItem
{
internal override void parseJsonObject(JsonObject obj)
{
@ -800,7 +800,7 @@ namespace GeometryGym.Ifc
obj["Angle"] = mAngle;
}
}
public abstract partial class IfcRoot
public partial class IfcRoot
{
internal override void parseJsonObject(JsonObject obj)
{

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

@ -79,7 +79,7 @@ namespace GeometryGym.Ifc
mFixedAxisVertical = node.GetValue<bool>();
}
}
public abstract partial class IfcSegment
public partial class IfcSegment
{
protected override void setJSON(JsonObject obj, BaseClassIfc host, SetJsonOptions options)
{
@ -145,7 +145,7 @@ namespace GeometryGym.Ifc
obj["PartOfProductDefinitionShape"] = mPartOfProductDefinitionShape.getJson(this, options);
}
}
public abstract partial class IfcShapeModel
public partial class IfcShapeModel
{
protected override void setJSON(JsonObject obj, BaseClassIfc host, SetJsonOptions options)
{
@ -378,7 +378,7 @@ namespace GeometryGym.Ifc
obj["PredefinedType"] = mPredefinedType.ToString();
}
}
public abstract partial class IfcSpatialElement
public partial class IfcSpatialElement
{
internal override void parseJsonObject(JsonObject obj)
{
@ -416,7 +416,7 @@ namespace GeometryGym.Ifc
}
}
}
public abstract partial class IfcSpatialStructureElement
public partial class IfcSpatialStructureElement
{
internal override void parseJsonObject(JsonObject obj)
{
@ -447,7 +447,7 @@ namespace GeometryGym.Ifc
Position = mDatabase.ParseJsonObject<IfcAxis2Placement>(jobj);
}
}
public abstract partial class IfcStructuralAction
public partial class IfcStructuralAction
{
internal override void parseJsonObject(JsonObject obj)
{
@ -473,7 +473,7 @@ namespace GeometryGym.Ifc
obj["CausedBy"] = CausedBy.getJson(this, options);
}
}
public abstract partial class IfcStructuralActivity
public partial class IfcStructuralActivity
{
internal override void parseJsonObject(JsonObject obj)
{
@ -525,7 +525,7 @@ namespace GeometryGym.Ifc
obj["SharedPlacement"] = SharedPlacement.getJson(this, options);
}
}
public abstract partial class IfcStructuralConnection
public partial class IfcStructuralConnection
{
internal override void parseJsonObject(JsonObject obj)
{
@ -553,7 +553,7 @@ namespace GeometryGym.Ifc
obj["ConnectsStructuralMembers"] = array;
}
}
public abstract partial class IfcStructuralConnectionCondition
public partial class IfcStructuralConnectionCondition
{
internal override void parseJsonObject(JsonObject obj)
{
@ -625,7 +625,7 @@ namespace GeometryGym.Ifc
obj["PredefinedType"] = mPredefinedType.ToString();
}
}
public abstract partial class IfcStructuralItem
public partial class IfcStructuralItem
{
internal override void parseJsonObject(JsonObject obj)
{
@ -692,7 +692,7 @@ namespace GeometryGym.Ifc
obj["MomentZ"] = mMomentZ;
}
}
public abstract partial class IfcStructuralMember
public partial class IfcStructuralMember
{
internal override void parseJsonObject(JsonObject obj)
{
@ -889,7 +889,7 @@ namespace GeometryGym.Ifc
obj["Transparency"] = Transparency;
}
}
public abstract partial class IfcSweptAreaSolid
public partial class IfcSweptAreaSolid
{
internal override void parseJsonObject(JsonObject obj)
{

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

@ -36,7 +36,7 @@ using System.Text.Json.Nodes;
namespace GeometryGym.Ifc
{
public abstract partial class IfcTessellatedFaceSet
public partial class IfcTessellatedFaceSet
{
protected override void setJSON(JsonObject obj, BaseClassIfc host, SetJsonOptions options)
{

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

@ -36,7 +36,7 @@ using System.Text.Json.Nodes;
namespace GeometryGym.Ifc
{
public abstract partial class IfcValue
public partial class IfcValue
{
public JsonObject getJson(BaseClassIfc host, BaseClassIfc.SetJsonOptions options)
{

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

@ -796,6 +796,31 @@ namespace GeometryGym.Ifc
mInnerCurves.AddRange(ParserSTEP.StripListLink(str, ref pos, len).Select(x=>dictionary[x] as IfcCurve));
}
}
public partial class IfcArchElement
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return (release < ReleaseVersion.IFC4X4_DRAFT ? "" : base.BuildStringSTEP(release) + (mPredefinedType == IfcArchElementTypeEnum.NOTDEFINED ? ",$" : ",." + mPredefinedType + "."));
}
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);
string s = ParserSTEP.StripField(str, ref pos, len);
if (s.StartsWith("."))
Enum.TryParse<IfcArchElementTypeEnum>(s.Replace(".", ""), true, out mPredefinedType);
}
}
public partial class IfcArchElementType
{
protected override string BuildStringSTEP(ReleaseVersion release) { return (release < ReleaseVersion.IFC4X4_DRAFT ? "" : base.BuildStringSTEP(release) + ",." + 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);
string s = ParserSTEP.StripField(str, ref pos, len);
if (s.StartsWith("."))
Enum.TryParse<IfcArchElementTypeEnum>(s.Replace(".", ""), true, out mPredefinedType);
}
}
public partial class IfcAsset
{
protected override string BuildStringSTEP(ReleaseVersion release)

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

@ -1237,18 +1237,14 @@ namespace GeometryGym.Ifc
protected override string BuildStringSTEP(ReleaseVersion release)
{
return (string.IsNullOrEmpty(mName) ? "$," : "'" + ParserSTEP.Encode(mName) + "',") +
(string.IsNullOrEmpty(mDescription) ? "$," : "'" + ParserSTEP.Encode(mDescription) + "',") +
(release < ReleaseVersion.IFC4X3_ADD1 ? (string.IsNullOrEmpty(mGeodeticDatum) ? "$" : "'" + ParserSTEP.Encode(mGeodeticDatum) + "'") + (string.IsNullOrEmpty(mVerticalDatum) ? ",$" : ",'" + ParserSTEP.Encode(mVerticalDatum) + "'") : "");
(string.IsNullOrEmpty(mDescription) ? "$" : "'" + ParserSTEP.Encode(mDescription) + "'") +
(string.IsNullOrEmpty(mGeodeticDatum) ? ",$" : ",'" + ParserSTEP.Encode(mGeodeticDatum) + "'");
}
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));
mDescription = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
if (release < ReleaseVersion.IFC4X3_ADD1)
{
mGeodeticDatum = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mVerticalDatum = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
}
mGeodeticDatum = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
}
}
public partial class IfcCosineSpiral

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

@ -79,15 +79,17 @@ namespace GeometryGym.Ifc
{
if (release < ReleaseVersion.IFC4X3_ADD1)
return "";
return base.BuildStringSTEP(release) + (string.IsNullOrEmpty(mGeodeticDatum) ? ",$," : ",'" + ParserSTEP.Encode(mGeodeticDatum) + "',") +
(string.IsNullOrEmpty(mPrimeMeridian) ? "$," : "'" + ParserSTEP.Encode(mPrimeMeridian) + "',") + (mMapUnit == null ? "$" : "#" + mMapUnit.StepId);
return base.BuildStringSTEP(release) +
(string.IsNullOrEmpty(mPrimeMeridian) ? "$," : "'" + ParserSTEP.Encode(mPrimeMeridian) + "',") +
(mAngleUnit == null ? "$" : "#" + mAngleUnit.StepId) + (mHeightUnit == null ? "$" : "#" + mHeightUnit.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);
mGeodeticDatum = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mPrimeMeridian = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mMapUnit = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcNamedUnit;
mAngleUnit = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcNamedUnit;
if(release >= ReleaseVersion.IFC4X4_DRAFT)
mHeightUnit = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcNamedUnit;
}
}
public partial class IfcGeographicElement
@ -299,4 +301,15 @@ namespace GeometryGym.Ifc
Enum.TryParse<IfcGroundReinforcementElementTypeEnum>(s.Replace(".", ""), true, out mPredefinedType);
}
}
public partial class IfcGroundReinforcementElementType
{
protected override string BuildStringSTEP(ReleaseVersion release) { return (release < ReleaseVersion.IFC4X4_DRAFT ? "" : base.BuildStringSTEP(release) + ",." + 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);
string s = ParserSTEP.StripField(str, ref pos, len);
if (s.StartsWith("."))
Enum.TryParse<IfcGroundReinforcementElementTypeEnum>(s.Replace(".", ""), true, out mPredefinedType);
}
}
}

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

@ -32,24 +32,28 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return base.BuildStringSTEP(release) + "," + (mMountable ? ".T." : ".F.");
return base.BuildStringSTEP(release) + (mPredefinedType == IfcKerbTypeEnum.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);
Mountable = ParserSTEP.StripBool(str, ref pos, len);
string s = ParserSTEP.StripField(str, ref pos, len);
if (s.StartsWith("."))
Enum.TryParse<IfcKerbTypeEnum>(s.Replace(".", ""), true, out mPredefinedType);
}
}
public partial class IfcKerbType
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return base.BuildStringSTEP(release) + "," + (mMountable ? ".T." : ".F");
return base.BuildStringSTEP(release) + ",." + 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);
Mountable = ParserSTEP.StripBool(str, ref pos, len);
string s = ParserSTEP.StripField(str, ref pos, len);
if (s.StartsWith("."))
Enum.TryParse<IfcKerbTypeEnum>(s.Replace(".", ""), true, out mPredefinedType);
}
}
}

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

@ -419,7 +419,11 @@ namespace GeometryGym.Ifc
base.parse(str, ref pos, release, len, dictionary);
if(release < ReleaseVersion.IFC4X3)
mClosed = ParserIfc.StripLogical(str, ref pos, len);
mFaces.AddRange(ParserSTEP.StripListLink(str, ref pos, len).Select(x=> dictionary[x] as IfcIndexedPolygonalFace));
foreach(IfcIndexedPolygonalFace face in ParserSTEP.StripListLink(str, ref pos, len).Select(x => dictionary[x] as IfcIndexedPolygonalFace))
{
mFaces.Add(face);
face.ToFaceSet.Add(this);
}
mPnIndex.AddRange(ParserSTEP.StripListInt(str, ref pos, len));
}
}
@ -643,18 +647,15 @@ namespace GeometryGym.Ifc
{
if (release < ReleaseVersion.IFC4)
return "";
return base.BuildStringSTEP(release) + (release < ReleaseVersion.IFC4X3_ADD1 ? "" : (string.IsNullOrEmpty(mGeodeticDatum) ? "$" : "'" + ParserSTEP.Encode(mGeodeticDatum) + "'") + (string.IsNullOrEmpty(mVerticalDatum) ? ",$" : ",'" + ParserSTEP.Encode(mVerticalDatum) + "'")) +
return base.BuildStringSTEP(release) +
(string.IsNullOrEmpty(mVerticalDatum) ? ",$" : ",'" + ParserSTEP.Encode(mVerticalDatum) + "'") +
(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);
if(release >= ReleaseVersion.IFC4X3_ADD1)
{
mGeodeticDatum = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
mVerticalDatum = ParserSTEP.Decode(ParserSTEP.StripString(str, ref pos, len));
}
mVerticalDatum = ParserSTEP.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;
@ -832,7 +833,7 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return base.BuildStringSTEP(release) + (mNominalValue == null || mNominalValue.Count == 0 ? ",$," : ",(" + string.Join(",", mNominalValue.Select(x=>x.ToString())) + "),") + (mUnit == null ? "$" : "#" + mUnit.StepId);
return base.BuildStringSTEP(release) + (mListValues == null || mListValues.Count == 0 ? ",$," : ",(" + string.Join(",", mListValues.Select(x=>x.ToString())) + "),") + (mUnit == null ? "$" : "#" + mUnit.StepId);
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
@ -843,7 +844,7 @@ namespace GeometryGym.Ifc
{
IfcValue value = ParserIfc.parseValue(values[icounter]);
if (value != null)
mNominalValue.Add(value);
mListValues.Add(value);
}
mUnit = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcUnit;
}
@ -852,7 +853,7 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return base.BuildStringSTEP(release) + (mNominalValue == null || mNominalValue.Count == 0 ? ",$," : ",(" + string.Join(",", mNominalValue.Select(x => x.ToString())) + "),") + (mUnit == null ? "$" : "#" + mUnit.StepId);
return base.BuildStringSTEP(release) + (mListValues == null || mListValues.Count == 0 ? ",$," : ",(" + string.Join(",", mListValues.Select(x => x.ToString())) + "),") + (mUnit == null ? "$" : "#" + mUnit.StepId);
}
}
public partial class IfcPropertyReferenceValue

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

@ -812,7 +812,7 @@ namespace GeometryGym.Ifc
base.parse(str, ref pos, release, len, dictionary);
ConnectionGeometry = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcConnectionGeometry;
RelatingElement = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcElement;
mRelatedElement = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcElement;
RelatedElement = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcElement;
}
}
public partial class IfcRelConnectsPathElements
@ -1225,11 +1225,13 @@ namespace GeometryGym.Ifc
public partial class IfcRelSpaceBoundary
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return ((release > ReleaseVersion.IFC2x3 && mRelatedBuildingElement == null) || mRelatingSpace == null ? "" :
base.BuildStringSTEP(release) + ",#" + mRelatingSpace.StepId + ",#" + mRelatedBuildingElement.StepId +
(mConnectionGeometry == null ? ",$" : ",#" + mConnectionGeometry.StepId) + ",." + mPhysicalOrVirtualBoundary.ToString() + ".,." +
mInternalOrExternalBoundary.ToString() + ".");
{
if ((release > ReleaseVersion.IFC2x3 && mRelatedBuildingElement == null) || mRelatingSpace == null)
return "";
return base.BuildStringSTEP(release) + ",#" + mRelatingSpace.StepId +
(mRelatedBuildingElement == null ? ",$" : ",#" + mRelatedBuildingElement.StepId) +
(mConnectionGeometry == null ? ",$" : ",#" + mConnectionGeometry.StepId) + ",." +
mPhysicalOrVirtualBoundary.ToString() + ".,." + mInternalOrExternalBoundary.ToString() + ".";
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{

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

@ -73,7 +73,7 @@ namespace GeometryGym.Ifc
setAttribute(xml, "Description", Description);
}
}
public abstract partial class IfcAddress
public partial class IfcAddress
{
internal override void ParseXml(XmlElement xml)
{
@ -240,7 +240,7 @@ namespace GeometryGym.Ifc
xml.AppendChild(CurveGeometry.GetXML(xml.OwnerDocument, "CurveGeometry", this, processed));
}
}
public abstract partial class IfcAlignment2DSegment
public partial class IfcAlignment2DSegment
{
internal override void ParseXml(XmlElement xml)
{
@ -298,7 +298,7 @@ namespace GeometryGym.Ifc
setAttribute(xml, "IsConvex", IsConvex.ToString());
}
}
public abstract partial class IfcAlignment2DVerticalSegment
public partial class IfcAlignment2DVerticalSegment
{
internal override void ParseXml(XmlElement xml)
{
@ -517,7 +517,7 @@ namespace GeometryGym.Ifc
}
}
}
public abstract partial class IfcAlignmentParameterSegment
public partial class IfcAlignmentParameterSegment
{
internal override void SetXML(XmlElement xml, BaseClassIfc host, Dictionary<string, XmlElement> processed)
{
@ -879,6 +879,48 @@ namespace GeometryGym.Ifc
element.AppendChild(c.GetXML(xml.OwnerDocument, "", this, processed));
}
}
public partial class IfcArchElement
{
internal override void ParseXml(XmlElement xml)
{
base.ParseXml(xml);
if (xml.HasAttribute("PredefinedType"))
Enum.TryParse<IfcArchElementTypeEnum>(xml.Attributes["PredefinedType"].Value, true, out mPredefinedType);
foreach (XmlNode child in xml.ChildNodes)
{
string name = child.Name;
if (string.Compare(name, "PredefinedType", true) == 0)
Enum.TryParse<IfcArchElementTypeEnum>(child.InnerText, true, out mPredefinedType);
}
}
internal override void SetXML(XmlElement xml, BaseClassIfc host, Dictionary<string, XmlElement> processed)
{
base.SetXML(xml, host, processed);
if (mPredefinedType != IfcArchElementTypeEnum.NOTDEFINED)
xml.SetAttribute("PredefinedType", mPredefinedType.ToString().ToLower());
}
}
public partial class IfcArchElementType
{
internal override void ParseXml(XmlElement xml)
{
base.ParseXml(xml);
if (xml.HasAttribute("PredefinedType"))
Enum.TryParse<IfcArchElementTypeEnum>(xml.Attributes["PredefinedType"].Value, true, out mPredefinedType);
foreach (XmlNode child in xml.ChildNodes)
{
string name = child.Name;
if (string.Compare(name, "PredefinedType", true) == 0)
Enum.TryParse<IfcArchElementTypeEnum>(child.InnerText, true, out mPredefinedType);
}
}
internal override void SetXML(XmlElement xml, BaseClassIfc host, Dictionary<string, XmlElement> processed)
{
base.SetXML(xml, host, processed);
if (mPredefinedType != IfcArchElementTypeEnum.NOTDEFINED)
xml.SetAttribute("PredefinedType", mPredefinedType.ToString().ToLower());
}
}
public partial class IfcAsymmetricIShapeProfileDef
{
internal override void ParseXml(XmlElement xml)

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

@ -124,7 +124,7 @@ namespace GeometryGym.Ifc
xml.SetAttribute("ZDim", mZDim.ToString());
}
}
public abstract partial class IfcBSplineSurface
public partial class IfcBSplineSurface
{
//internal override void SetXML(XmlElement xml, BaseClassIfc host, Dictionary<string, XmlElement> processed)
//{

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

@ -126,7 +126,7 @@ namespace GeometryGym.Ifc
xml.SetAttribute("CoordList", string.Join(" ", mCoordList.Select(x => x.Item1 + " " + x.Item2 + " " + x.Item3)));
}
}
public abstract partial class IfcCartesianTransformationOperator
public partial class IfcCartesianTransformationOperator
{
internal override void ParseXml(XmlElement xml)
{
@ -459,7 +459,7 @@ namespace GeometryGym.Ifc
xml.SetAttribute("Blue", mBlue.ToString());
}
}
public abstract partial class IfcColourSpecification
public partial class IfcColourSpecification
{
internal override void ParseXml(XmlElement xml)
{
@ -612,7 +612,7 @@ namespace GeometryGym.Ifc
setAttribute(xml, "Label", Label);
}
}
public abstract partial class IfcConic
public partial class IfcConic
{
internal override void ParseXml(XmlElement xml)
{
@ -658,7 +658,7 @@ namespace GeometryGym.Ifc
element.AppendChild(face.GetXML(xml.OwnerDocument, "", host, processed));
}
}
public abstract partial class IfcContext
public partial class IfcContext
{
internal override void ParseXml(XmlElement xml)
{
@ -781,7 +781,7 @@ namespace GeometryGym.Ifc
xml.AppendChild((CurveOnRelatedElement as BaseClassIfc).GetXML(xml.OwnerDocument, "CurveOnRelatedElement", this, processed));
}
}
public abstract partial class IfcConstraint
public partial class IfcConstraint
{
internal override void ParseXml(XmlElement xml)
{
@ -904,7 +904,7 @@ namespace GeometryGym.Ifc
Enum.TryParse<IfcConveyorSegmentTypeEnum>(predefinedType.Value, out mPredefinedType);
}
}
public abstract partial class IfcCoordinateOperation
public partial class IfcCoordinateOperation
{
internal override void ParseXml(XmlElement xml)
{
@ -923,7 +923,7 @@ namespace GeometryGym.Ifc
xml.AppendChild(TargetCRS.GetXML(xml.OwnerDocument, "TargetCRS", this, processed));
}
}
public abstract partial class IfcCoordinateReferenceSystem
public partial class IfcCoordinateReferenceSystem
{
internal override void ParseXml(XmlElement xml)
{
@ -934,16 +934,13 @@ namespace GeometryGym.Ifc
Description = xml.Attributes["Description"].Value;
if (xml.HasAttribute("GeodeticDatum"))
GeodeticDatum = xml.Attributes["GeodeticDatum"].Value;
if (xml.HasAttribute("VerticalDatum"))
VerticalDatum = xml.Attributes["VerticalDatum"].Value;
}
internal override void SetXML(XmlElement xml, BaseClassIfc host, Dictionary<string, XmlElement> processed)
{
base.SetXML(xml, host, processed);
setAttribute(xml, "Name", Name);
setAttribute(xml, "Description", Description);
xml.SetAttribute("GeodeticDatum", GeodeticDatum);
setAttribute(xml, "VerticalDatum", VerticalDatum);
setAttribute(xml, "GeodeticDatum", GeodeticDatum);
}
}
public partial class IfcCosineSpiral
@ -1027,7 +1024,7 @@ namespace GeometryGym.Ifc
xml.SetAttribute("PredefinedType", mPredefinedType.ToString().ToLower());
}
}
public abstract partial class IfcCsgPrimitive3D
public partial class IfcCsgPrimitive3D
{
internal override void ParseXml(XmlElement xml)
{
@ -1186,7 +1183,7 @@ namespace GeometryGym.Ifc
}
}
}
public abstract partial class IfcCurveSegment2D
public partial class IfcCurveSegment2D
{
internal override void ParseXml(XmlElement xml)
{

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

@ -173,7 +173,7 @@ namespace GeometryGym.Ifc
xml.SetAttribute("DirectionRatios", RoundRatio(mDirectionRatioX) + " " + RoundRatio(mDirectionRatioY) + (double.IsNaN(mDirectionRatioZ) ? "" : " " + RoundRatio(mDirectionRatioZ)));
}
}
public abstract partial class IfcDirectrixCurveSweptAreaSolid
public partial class IfcDirectrixCurveSweptAreaSolid
{
internal override void SetXML(XmlElement xml, BaseClassIfc host, Dictionary<string, XmlElement> processed)
{

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

@ -110,7 +110,7 @@ namespace GeometryGym.Ifc
Enum.TryParse<IfcElectricFlowTreatmentDeviceTypeEnum>(predefinedType.Value, out mPredefinedType);
}
}
public abstract partial class IfcElement
public partial class IfcElement
{
internal override void ParseXml(XmlElement xml)
{
@ -180,7 +180,7 @@ namespace GeometryGym.Ifc
setChild(xml, "Quantities", Quantities.Values, processed);
}
}
public abstract partial class IfcElementarySurface
public partial class IfcElementarySurface
{
internal override void ParseXml(XmlElement xml)
{
@ -199,7 +199,7 @@ namespace GeometryGym.Ifc
xml.AppendChild(Position.GetXML(xml.OwnerDocument, "Position", this, processed));
}
}
public abstract partial class IfcElementType
public partial class IfcElementType
{
internal override void ParseXml(XmlElement xml)
{
@ -230,7 +230,7 @@ namespace GeometryGym.Ifc
xml.SetAttribute("SemiAxis2", mSemiAxis2.ToString());
}
}
public abstract partial class IfcExtendedProperties
public partial class IfcExtendedProperties
{
internal override void ParseXml(XmlElement xml)
{
@ -264,7 +264,7 @@ namespace GeometryGym.Ifc
element.AppendChild(p.GetXML(xml.OwnerDocument, "", this, processed));
}
}
public abstract partial class IfcExternalReference
public partial class IfcExternalReference
{
internal override void ParseXml(XmlElement xml)
{

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

@ -24,6 +24,33 @@ using System.Xml;
namespace GeometryGym.Ifc
{
public partial class IfcGeographicCRS
{
internal override void ParseXml(XmlElement xml)
{
base.ParseXml(xml);
if (xml.HasAttribute("PrimeMeridian"))
PrimeMeridian = xml.Attributes["PrimeMeridian"].Value;
foreach (XmlNode child in xml.ChildNodes)
{
string name = child.Name;
if (string.Compare(name, "AngleUnit") == 0)
AngleUnit = mDatabase.ParseXml<IfcNamedUnit>(child as XmlElement);
else if (string.Compare(name, "HeightUnit") == 0)
HeightUnit = mDatabase.ParseXml<IfcNamedUnit>(child as XmlElement);
}
}
internal override void SetXML(XmlElement xml, BaseClassIfc host, Dictionary<string, XmlElement> processed)
{
base.SetXML(xml, host, processed);
setAttribute(xml, "PrimeMeridian", PrimeMeridian);
if (mAngleUnit != null)
xml.AppendChild(AngleUnit.GetXML(xml.OwnerDocument, "AngleUnit", this, processed));
if (mHeightUnit != null)
xml.AppendChild(AngleUnit.GetXML(xml.OwnerDocument, "HeightUnit", this, processed));
}
}
public partial class IfcGeometricRepresentationContext
{
internal override void ParseXml(XmlElement xml)
@ -247,6 +274,48 @@ namespace GeometryGym.Ifc
xml.AppendChild(AxisCurve.GetXML(xml.OwnerDocument, "AxisCurve", this, processed));
}
}
public partial class IfcGroundReinforcementElement
{
internal override void ParseXml(XmlElement xml)
{
base.ParseXml(xml);
if (xml.HasAttribute("PredefinedType"))
Enum.TryParse<IfcGroundReinforcementElementTypeEnum>(xml.Attributes["PredefinedType"].Value, true, out mPredefinedType);
foreach (XmlNode child in xml.ChildNodes)
{
string name = child.Name;
if (string.Compare(name, "PredefinedType", true) == 0)
Enum.TryParse<IfcGroundReinforcementElementTypeEnum>(child.InnerText, true, out mPredefinedType);
}
}
internal override void SetXML(XmlElement xml, BaseClassIfc host, Dictionary<string, XmlElement> processed)
{
base.SetXML(xml, host, processed);
if (mPredefinedType != IfcGroundReinforcementElementTypeEnum.NOTDEFINED)
xml.SetAttribute("PredefinedType", mPredefinedType.ToString().ToLower());
}
}
public partial class IfcGroundReinforcementElementType
{
internal override void ParseXml(XmlElement xml)
{
base.ParseXml(xml);
if (xml.HasAttribute("PredefinedType"))
Enum.TryParse<IfcGroundReinforcementElementTypeEnum>(xml.Attributes["PredefinedType"].Value, true, out mPredefinedType);
foreach (XmlNode child in xml.ChildNodes)
{
string name = child.Name;
if (string.Compare(name, "PredefinedType", true) == 0)
Enum.TryParse<IfcGroundReinforcementElementTypeEnum>(child.InnerText, true, out mPredefinedType);
}
}
internal override void SetXML(XmlElement xml, BaseClassIfc host, Dictionary<string, XmlElement> processed)
{
base.SetXML(xml, host, processed);
if (mPredefinedType != IfcGroundReinforcementElementTypeEnum.NOTDEFINED)
xml.SetAttribute("PredefinedType", mPredefinedType.ToString().ToLower());
}
}
public partial class IfcGroup
{
internal override void ParseXml(XmlElement xml)

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

@ -25,32 +25,31 @@ namespace GeometryGym.Ifc
{
public partial class IfcKerb
{
internal override void SetXML(XmlElement xml, BaseClassIfc host, Dictionary<string, XmlElement> processed)
{
base.SetXML(xml, host, processed);
xml.SetAttribute("Mountable", (mMountable ? "true" : "false"));
}
internal override void ParseXml(XmlElement xml)
{
base.ParseXml(xml);
string mountable = xml.GetAttribute("Mountable");
if (!string.IsNullOrEmpty(mountable))
bool.TryParse(mountable, out mMountable);
if (xml.HasAttribute("PredefinedType"))
Enum.TryParse<IfcKerbTypeEnum>(xml.Attributes["PredefinedType"].Value, true, out mPredefinedType);
}
internal override void SetXML(XmlElement xml, BaseClassIfc host, Dictionary<string, XmlElement> processed)
{
base.SetXML(xml, host, processed);
if (mPredefinedType != IfcKerbTypeEnum.NOTDEFINED)
xml.SetAttribute("PredefinedType", mPredefinedType.ToString().ToLower());
}
}
public partial class IfcKerbType
{
internal override void SetXML(XmlElement xml, BaseClassIfc host, Dictionary<string, XmlElement> processed)
{
base.SetXML(xml, host, processed);
xml.SetAttribute("Mountable", (mMountable ? "true" : "false"));
}
internal override void ParseXml(XmlElement xml)
{
base.ParseXml(xml);
string mountable = xml.GetAttribute("Mountable");
if (!string.IsNullOrEmpty(mountable))
bool.TryParse(mountable, out mMountable);
if (xml.HasAttribute("PredefinedType"))
Enum.TryParse<IfcKerbTypeEnum>(xml.Attributes["PredefinedType"].Value, true, out mPredefinedType);
}
internal override void SetXML(XmlElement xml, BaseClassIfc host, Dictionary<string, XmlElement> processed)
{
base.SetXML(xml, host, processed);
xml.SetAttribute("PredefinedType", mPredefinedType.ToString().ToLower());
}
}
}

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

@ -56,7 +56,7 @@ namespace GeometryGym.Ifc
setAttribute(xml, "Description", Description);
}
}
public partial class IfcLibraryReference : IfcExternalReference, IfcLibrarySelect
public partial class IfcLibraryReference
{
internal override void ParseXml(XmlElement xml)
{
@ -83,7 +83,7 @@ namespace GeometryGym.Ifc
xml.AppendChild(ReferencedLibrary.GetXML(xml.OwnerDocument, "ReferencedLibrary", this, processed));
}
}
public partial class IfcLine : IfcCurve
public partial class IfcLine
{
internal override void ParseXml(XmlElement xml)
{
@ -105,7 +105,7 @@ namespace GeometryGym.Ifc
xml.AppendChild(Dir.GetXML(xml.OwnerDocument, "Dir", this, processed));
}
}
public partial class IfcLinearAxisWithInclination : IfcGeometricRepresentationItem
public partial class IfcLinearAxisWithInclination
{
internal override void SetXML(XmlElement xml, BaseClassIfc host, Dictionary<string, XmlElement> processed)
{
@ -126,7 +126,7 @@ namespace GeometryGym.Ifc
}
}
}
public partial class IfcLinearPositioningElement : IfcPositioningElement //IFC4.1
public partial class IfcLinearPositioningElement
{
internal override void ParseXml(XmlElement xml)
{
@ -145,7 +145,7 @@ namespace GeometryGym.Ifc
xml.AppendChild((Axis as BaseClassIfc).GetXML(xml.OwnerDocument, "Axis", this, processed));
}
}
public partial class IfcLinearPlacement : IfcObjectPlacement
public partial class IfcLinearPlacement
{
internal override void ParseXml(XmlElement xml)
{
@ -183,7 +183,7 @@ namespace GeometryGym.Ifc
double.TryParse(span, out mSpan);
}
}
public partial class IfcLiquidTerminal : IfcFlowTerminal
public partial class IfcLiquidTerminal
{
internal override void SetXML(XmlElement xml, BaseClassIfc host, Dictionary<string, XmlElement> processed)
{
@ -199,7 +199,7 @@ namespace GeometryGym.Ifc
Enum.TryParse<IfcLiquidTerminalTypeEnum>(predefinedType.Value, out mPredefinedType);
}
}
public partial class IfcLiquidTerminalType : IfcFlowTerminalType
public partial class IfcLiquidTerminalType
{
internal override void SetXML(XmlElement xml, BaseClassIfc host, Dictionary<string, XmlElement> processed)
{
@ -214,7 +214,7 @@ namespace GeometryGym.Ifc
Enum.TryParse<IfcLiquidTerminalTypeEnum>(predefinedType.Value, out mPredefinedType);
}
}
public partial class IfcLocalPlacement : IfcObjectPlacement
public partial class IfcLocalPlacement
{
internal override void ParseXml(XmlElement xml)
{
@ -233,7 +233,7 @@ namespace GeometryGym.Ifc
xml.AppendChild((mRelativePlacement as BaseClassIfc).GetXML(xml.OwnerDocument, "RelativePlacement", this, processed));
}
}
public partial class IfcLShapeProfileDef : IfcParameterizedProfileDef
public partial class IfcLShapeProfileDef
{
internal override void ParseXml(XmlElement xml)
{

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

@ -23,7 +23,7 @@ using System.Xml;
namespace GeometryGym.Ifc
{
public abstract partial class IfcManifoldSolidBrep : IfcSolidModel //ABSTRACT SUPERTYPE OF(ONEOF(IfcAdvancedBrep, IfcFacetedBrep))
public partial class IfcManifoldSolidBrep
{
internal override void ParseXml(XmlElement xml)
{
@ -41,7 +41,7 @@ namespace GeometryGym.Ifc
xml.AppendChild(Outer.GetXML(xml.OwnerDocument, "Outer", this, processed));
}
}
public partial class IfcMapConversion : IfcCoordinateOperation //IFC4
public partial class IfcMapConversion
{
internal override void ParseXml(XmlElement xml)
{
@ -76,7 +76,7 @@ namespace GeometryGym.Ifc
setAttribute(xml, "ScaleZ", mScaleZ);
}
}
public partial class IfcMarineFacility : IfcFacility
public partial class IfcMarineFacility
{
internal override void SetXML(XmlElement xml, BaseClassIfc host, Dictionary<string, XmlElement> processed)
{
@ -91,7 +91,7 @@ namespace GeometryGym.Ifc
Enum.TryParse<IfcMarineFacilityTypeEnum>(predefinedType.Value, out mPredefinedType);
}
}
public partial class IfcMaterial : IfcMaterialDefinition
public partial class IfcMaterial
{
internal override void ParseXml(XmlElement xml)
{
@ -122,7 +122,7 @@ namespace GeometryGym.Ifc
xml.AppendChild(mHasRepresentation.GetXML(xml.OwnerDocument, "HasRepresentation", this, processed));
}
}
public abstract partial class IfcMaterialDefinition
public partial class IfcMaterialDefinition
{
internal override void ParseXml(XmlElement xml)
{
@ -152,7 +152,7 @@ namespace GeometryGym.Ifc
}
}
}
public partial class IfcMaterialDefinitionRepresentation : IfcProductRepresentation<IfcStyledRepresentation, IfcStyledItem>
public partial class IfcMaterialDefinitionRepresentation
{
internal override void ParseXml(XmlElement xml)
{
@ -170,7 +170,7 @@ namespace GeometryGym.Ifc
//xml.AppendChild(RepresentedMaterial.GetXML(xml.OwnerDocument, "RepresentedMaterial", this, processed));
}
}
public partial class IfcMaterialLayer : IfcMaterialDefinition
public partial class IfcMaterialLayer
{
internal override void ParseXml(XmlElement xml)
{
@ -212,7 +212,7 @@ namespace GeometryGym.Ifc
}
}
}
public partial class IfcMaterialLayerSet : IfcMaterialDefinition
public partial class IfcMaterialLayerSet
{
internal override void ParseXml(XmlElement xml)
{
@ -246,7 +246,7 @@ namespace GeometryGym.Ifc
setAttribute(xml, "Description", Description);
}
}
public partial class IfcMaterialLayerSetUsage : IfcMaterialUsageDefinition
public partial class IfcMaterialLayerSetUsage
{
internal override void ParseXml(XmlElement xml)
{
@ -277,7 +277,7 @@ namespace GeometryGym.Ifc
xml.SetAttribute("ReferenceExtent", mReferenceExtent.ToString());
}
}
public partial class IfcMaterialProfile : IfcMaterialDefinition // IFC4
public partial class IfcMaterialProfile
{
internal override void ParseXml(XmlElement xml)
{
@ -313,7 +313,7 @@ namespace GeometryGym.Ifc
setAttribute(xml, "Category", Category);
}
}
public partial class IfcMaterialProfileSet : IfcMaterialDefinition //IFC4
public partial class IfcMaterialProfileSet
{
internal override void SetXML(XmlElement xml, BaseClassIfc host, Dictionary<string, XmlElement> processed)
{
@ -328,7 +328,7 @@ namespace GeometryGym.Ifc
xml.AppendChild(CompositeProfile.GetXML(xml.OwnerDocument, "CompositeProfile", this, processed));
}
}
public partial class IfcMaterialProfileSetUsage : IfcMaterialUsageDefinition //IFC4
public partial class IfcMaterialProfileSetUsage
{
internal override void SetXML(XmlElement xml, BaseClassIfc host, Dictionary<string, XmlElement> processed)
{
@ -340,7 +340,7 @@ namespace GeometryGym.Ifc
setAttribute(xml, "ReferenceExtent", ReferenceExtent);
}
}
public partial class IfcMeasureWithUnit : BaseClassIfc, IfcAppliedValueSelect
public partial class IfcMeasureWithUnit
{
internal override void ParseXml(XmlElement xml)
{
@ -361,7 +361,7 @@ namespace GeometryGym.Ifc
xml.AppendChild((mUnitComponent as BaseClassIfc).GetXML(xml.OwnerDocument, "UnitComponent", this, processed));
}
}
public partial class IfcMetric : IfcConstraint
public partial class IfcMetric
{
internal override void ParseXml(XmlElement xml)
{
@ -404,7 +404,7 @@ namespace GeometryGym.Ifc
xml.AppendChild(ReferencePath.GetXML(xml.OwnerDocument, "ReferencePath", this, processed));
}
}
public partial class IfcMobileTelecommunicationsAppliance : IfcFlowTerminal
public partial class IfcMobileTelecommunicationsAppliance
{
internal override void SetXML(XmlElement xml, BaseClassIfc host, Dictionary<string, XmlElement> processed)
{
@ -420,7 +420,7 @@ namespace GeometryGym.Ifc
Enum.TryParse<IfcMobileTelecommunicationsApplianceTypeEnum>(predefinedType.Value, out mPredefinedType);
}
}
public partial class IfcMobileTelecommunicationsApplianceType : IfcFlowTerminalType
public partial class IfcMobileTelecommunicationsApplianceType
{
internal override void SetXML(XmlElement xml, BaseClassIfc host, Dictionary<string, XmlElement> processed)
{
@ -435,7 +435,7 @@ namespace GeometryGym.Ifc
Enum.TryParse<IfcMobileTelecommunicationsApplianceTypeEnum>(predefinedType.Value, out mPredefinedType);
}
}
public partial class IfcMooringDevice : IfcBuiltElement
public partial class IfcMooringDevice
{
internal override void SetXML(XmlElement xml, BaseClassIfc host, Dictionary<string, XmlElement> processed)
{
@ -451,7 +451,7 @@ namespace GeometryGym.Ifc
Enum.TryParse<IfcMooringDeviceTypeEnum>(predefinedType.Value, out mPredefinedType);
}
}
public partial class IfcMooringDeviceType : IfcBuiltElementType
public partial class IfcMooringDeviceType
{
internal override void SetXML(XmlElement xml, BaseClassIfc host, Dictionary<string, XmlElement> processed)
{

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

@ -23,7 +23,7 @@ using System.Xml;
namespace GeometryGym.Ifc
{
public abstract partial class IfcObject
public partial class IfcObject
{
internal override void ParseXml(XmlElement xml)
{
@ -46,7 +46,7 @@ namespace GeometryGym.Ifc
xml.AppendChild(mIsTypedBy.GetXML(xml.OwnerDocument, "IsTypedBy", this, processed));
}
}
public abstract partial class IfcObjectDefinition
public partial class IfcObjectDefinition
{
internal override void ParseXml(XmlElement xml)
{
@ -189,7 +189,7 @@ namespace GeometryGym.Ifc
}
}
public abstract partial class IfcObjectPlacement
public partial class IfcObjectPlacement
{
internal override void ParseXml(XmlElement xml)
{

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

@ -23,7 +23,7 @@ using System.Xml;
namespace GeometryGym.Ifc
{
public abstract partial class IfcParameterizedProfileDef
public partial class IfcParameterizedProfileDef
{
internal override void ParseXml(XmlElement xml)
{
@ -164,7 +164,7 @@ namespace GeometryGym.Ifc
xml.AppendChild(TheOrganization.GetXML(xml.OwnerDocument, "TheOrganization", this, processed));
}
}
public abstract partial class IfcPhysicalQuantity
public partial class IfcPhysicalQuantity
{
internal override void ParseXml(XmlElement xml)
{
@ -196,7 +196,7 @@ namespace GeometryGym.Ifc
xml.SetAttribute("PredefinedType", mPredefinedType.ToString().ToLower());
}
}
public abstract partial class IfcPlacement
public partial class IfcPlacement
{
internal override void ParseXml(XmlElement xml)
{
@ -557,7 +557,7 @@ namespace GeometryGym.Ifc
}
}
}
public abstract partial class IfcPresentationStyle
public partial class IfcPresentationStyle
{
internal override void ParseXml(XmlElement xml)
{
@ -600,7 +600,7 @@ namespace GeometryGym.Ifc
element.AppendChild((item as BaseClassIfc).GetXML(xml.OwnerDocument, "", this, processed));
}
}
public abstract partial class IfcProduct
public partial class IfcProduct
{
internal override void ParseXml(XmlElement xml)
{
@ -765,6 +765,8 @@ namespace GeometryGym.Ifc
internal override void ParseXml(XmlElement xml)
{
base.ParseXml(xml);
if (xml.HasAttribute("VerticalDatum"))
VerticalDatum = xml.Attributes["VerticalDatum"].Value;
if (xml.HasAttribute("MapProjection"))
MapProjection = xml.Attributes["MapProjection"].Value;
if (xml.HasAttribute("MapZone"))
@ -780,13 +782,14 @@ namespace GeometryGym.Ifc
internal override void SetXML(XmlElement xml, BaseClassIfc host, Dictionary<string, XmlElement> processed)
{
base.SetXML(xml, host, processed);
setAttribute(xml, "VerticalDatum", VerticalDatum);
setAttribute(xml, "MapProjection", MapProjection);
setAttribute(xml, "MapZone", MapZone);
if (mMapUnit != null)
xml.AppendChild(MapUnit.GetXML(xml.OwnerDocument, "MapUnit", this, processed));
}
}
public abstract partial class IfcProperty
public partial class IfcProperty
{
internal override void ParseXml(XmlElement xml)
{
@ -848,7 +851,7 @@ namespace GeometryGym.Ifc
xml.AppendChild(convert(xml.OwnerDocument, mSetPointValue, "SetPointValue", mDatabase.mXmlNamespace));
}
}
public abstract partial class IfcPropertyDefinition
public partial class IfcPropertyDefinition
{
internal override void ParseXml(XmlElement xml)
{
@ -884,7 +887,7 @@ namespace GeometryGym.Ifc
//}
}
public abstract partial class IfcPropertyAbstraction
public partial class IfcPropertyAbstraction
{
internal override void ParseXml(XmlElement xml)
{

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

@ -254,7 +254,7 @@ namespace GeometryGym.Ifc
element.AppendChild(od.GetXML(xml.OwnerDocument, "", this, processed));
}
}
public abstract partial class IfcRelAssigns
public partial class IfcRelAssigns
{
internal override void ParseXml(XmlElement xml)
{
@ -333,7 +333,7 @@ namespace GeometryGym.Ifc
}
}
public abstract partial class IfcRelAssociates
public partial class IfcRelAssociates
{
internal override void ParseXml(XmlElement xml)
{
@ -810,7 +810,7 @@ namespace GeometryGym.Ifc
}
}
}
public abstract partial class IfcRepresentationContext
public partial class IfcRepresentationContext
{
internal override void ParseXml(XmlElement xml)
{
@ -835,7 +835,7 @@ namespace GeometryGym.Ifc
setAttribute(xml, "ContextType", ContextType);
}
}
public abstract partial class IfcRepresentationItem
public partial class IfcRepresentationItem
{
internal override void ParseXml(XmlElement xml)
{
@ -944,7 +944,7 @@ namespace GeometryGym.Ifc
xml.AppendChild(element);
}
}
public abstract partial class IfcResourceLevelRelationship
public partial class IfcResourceLevelRelationship
{
internal override void ParseXml(XmlElement xml)
{
@ -1016,7 +1016,11 @@ namespace GeometryGym.Ifc
xml.SetAttribute("Radius", mRadius.ToString());
}
}
public abstract partial class IfcRoot
public partial class IfcRigidOperation
{
}
public partial class IfcRoot
{
internal override void ParseXml(XmlElement xml)
{

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

@ -125,7 +125,7 @@ namespace GeometryGym.Ifc
element.AppendChild(p.GetXML(xml.OwnerDocument, "", this, processed));
}
}
public abstract partial class IfcSegment
public partial class IfcSegment
{
internal override void SetXML(XmlElement xml, BaseClassIfc host, Dictionary<string, XmlElement> processed)
{
@ -479,7 +479,7 @@ namespace GeometryGym.Ifc
}
}
public abstract partial class IfcSpatialElement
public partial class IfcSpatialElement
{
internal override void ParseXml(XmlElement xml)
{
@ -529,7 +529,7 @@ namespace GeometryGym.Ifc
}
}
}
public abstract partial class IfcSpatialStructureElement
public partial class IfcSpatialStructureElement
{
internal override void ParseXml(XmlElement xml)
{
@ -576,7 +576,7 @@ namespace GeometryGym.Ifc
}
}
}
public abstract partial class IfcStructuralAction
public partial class IfcStructuralAction
{
internal override void ParseXml(XmlElement xml)
{
@ -604,7 +604,7 @@ namespace GeometryGym.Ifc
xml.AppendChild(mCausedBy.GetXML(xml.OwnerDocument, "CausedBy", this, processed));
}
}
public abstract partial class IfcStructuralActivity
public partial class IfcStructuralActivity
{
internal override void ParseXml(XmlElement xml)
{
@ -689,7 +689,7 @@ namespace GeometryGym.Ifc
xml.AppendChild(SharedPlacement.GetXML(xml.OwnerDocument, "SharedPlacement", this, processed));
}
}
public abstract partial class IfcStructuralConnection
public partial class IfcStructuralConnection
{
internal override void ParseXml(XmlElement xml)
{
@ -708,7 +708,7 @@ namespace GeometryGym.Ifc
xml.AppendChild((mAppliedCondition as BaseClassIfc).GetXML(xml.OwnerDocument, "AppliedCondition", this, processed));
}
}
public abstract partial class IfcStructuralConnectionCondition
public partial class IfcStructuralConnectionCondition
{
internal override void ParseXml(XmlElement xml)
{
@ -779,7 +779,7 @@ namespace GeometryGym.Ifc
xml.SetAttribute("PredefinedType", mPredefinedType.ToString().ToLower());
}
}
public abstract partial class IfcStructuralItem
public partial class IfcStructuralItem
{
internal override void ParseXml(XmlElement xml)
{
@ -971,7 +971,7 @@ namespace GeometryGym.Ifc
xml.AppendChild(SurfaceColour.GetXML(xml.OwnerDocument, "SurfaceColour", this, processed));
}
}
public abstract partial class IfcSweptAreaSolid
public partial class IfcSweptAreaSolid
{
internal override void ParseXml(XmlElement xml)
{
@ -1027,7 +1027,7 @@ namespace GeometryGym.Ifc
xml.SetAttribute("EndParam", mEndParam.ToString());
}
}
public abstract partial class IfcSweptSurface
public partial class IfcSweptSurface
{
internal override void ParseXml(XmlElement xml)
{

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

@ -228,7 +228,7 @@ namespace GeometryGym.Ifc
setAttribute(xml, "WWWHomePageURL", WWWHomePageURL);
}
}
public abstract partial class IfcTessellatedFaceSet
public partial class IfcTessellatedFaceSet
{
internal override void SetXML(XmlElement xml, BaseClassIfc host, Dictionary<string, XmlElement> processed)
{

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

@ -20,8 +20,8 @@ using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
[assembly: AssemblyVersion("0.2.08.0")]
[assembly: AssemblyFileVersion("0.2.08.0")]
[assembly: AssemblyVersion("0.2.09.0")]
[assembly: AssemblyFileVersion("0.2.09.0")]
[assembly: AssemblyTitle("GeometryGymIFC")]
[assembly: AssemblyDescription("C# classes to generate and parse buildingSMART IFC (Industry Foundation Class) files")]

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

@ -20,8 +20,8 @@ using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
[assembly: AssemblyVersion("0.2.08.0")]
[assembly: AssemblyFileVersion("0.2.08.0")]
[assembly: AssemblyVersion("0.2.09.0")]
[assembly: AssemblyFileVersion("0.2.09.0")]
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.

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

@ -3,7 +3,7 @@
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<PackageId>GeometryGymIFC_Core</PackageId>
<Version>0.2.08</Version>
<Version>0.2.09</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,8 +14,8 @@ 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.08.0</AssemblyVersion>
<FileVersion>0.2.08.0</FileVersion>
<AssemblyVersion>0.2.09.0</AssemblyVersion>
<FileVersion>0.2.09.0</FileVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">

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

@ -50,7 +50,7 @@ namespace GeometryGym.Ifc
return Plane.Unset;
}
}
public partial class IfcAlignmentHorizontalSegment : IfcAlignmentParameterSegment
public partial class IfcAlignmentHorizontalSegment
{
public Vector2d StartTangent2d()
{
@ -98,11 +98,11 @@ namespace GeometryGym.Ifc
throw new NotImplementedException("Plane at length for " + PredefinedType + " not implemented yet!");
}
}
public partial class IfcAxis1Placement : IfcPlacement
public partial class IfcAxis1Placement
{
internal Vector3d AxisVector { get { return (mAxis != null ? Axis.Vector3d : Vector3d.XAxis); } }
}
public partial class IfcAxis2Placement2D : IfcPlacement, IfcAxis2Placement
public partial class IfcAxis2Placement2D
{
internal Vector3d DirectionVector { get { return (mRefDirection != null ? RefDirection.Vector3d : Vector3d.XAxis); } }

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

@ -28,7 +28,7 @@ using Rhino.Geometry;
namespace GeometryGym.Ifc
{
public partial class IfcCartesianPoint : IfcPoint
public partial class IfcCartesianPoint
{
public override Point3d Location { get { return new Point3d(mCoordinateX, double.IsNaN( mCoordinateY) ? 0 : mCoordinateY, double.IsNaN(mCoordinateZ) ? 0 : mCoordinateZ); } }
public Point2d Location2d() { return new Point2d(mCoordinateX, double.IsNaN( mCoordinateY) ? 0 : mCoordinateY); }
@ -44,11 +44,11 @@ namespace GeometryGym.Ifc
}
internal IfcCartesianPoint(DatabaseIfc m, Point2d pt) : base(m) { Coordinates2d = pt; }
}
public abstract partial class IfcCartesianPointList : IfcGeometricRepresentationItem //IFC4
public partial class IfcCartesianPointList
{
public abstract List<Point3d> Points();
}
public partial class IfcCartesianPointList2D : IfcCartesianPointList //IFC4
public partial class IfcCartesianPointList2D
{
public IfcCartesianPointList2D(DatabaseIfc db, IEnumerable<Point2d> coordList) : base(db)
{
@ -56,14 +56,14 @@ namespace GeometryGym.Ifc
}
public override List<Point3d> Points() { return mCoordList.Select(x => new Point3d(x.Item1, x.Item2, 0)).ToList(); }
}
public partial class IfcCartesianPointList3D : IfcCartesianPointList //IFC4
public partial class IfcCartesianPointList3D
{
public IfcCartesianPointList3D(DatabaseIfc db, IEnumerable<Point3d> coordList) : base(db)
{
mCoordList.AddRange(coordList.Select(x=> new Tuple<double, double, double>(x.X, x.Y, x.Z))); }
public override List<Point3d> Points() { return mCoordList.Select(x => new Point3d(x.Item1, x.Item2, x.Item3)).ToList(); }
}
public abstract partial class IfcCartesianTransformationOperator
public partial class IfcCartesianTransformationOperator
{
public Transform Transform()
{

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

@ -27,7 +27,7 @@ using Rhino.Geometry;
namespace GeometryGym.Ifc
{
public partial class IfcDirection : IfcGeometricRepresentationItem
public partial class IfcDirection
{
public Vector3d Vector3d { get { return new Vector3d(mDirectionRatioX, mDirectionRatioY, double.IsNaN(mDirectionRatioZ) ? 0 : mDirectionRatioZ); } }
public IfcDirection(DatabaseIfc db, Vector3d v) : base(db)

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

@ -27,11 +27,11 @@ using Rhino.Geometry;
namespace GeometryGym.Ifc
{
public partial class IfcPlacement : IfcGeometricRepresentationItem /*ABSTRACT SUPERTYPE OF (ONEOF (IfcAxis1Placement ,IfcAxis2Placement2D ,IfcAxis2Placement3D))*/
public partial class IfcPlacement
{
internal Point3d LocationPoint { get { return mLocation.Location; } }
}
public abstract partial class IfcPoint : IfcGeometricRepresentationItem, IfcGeometricSetSelect, IfcPointOrVertexPoint /*ABSTRACT SUPERTYPE OF (ONEOF (IfcCartesianPoint ,IfcPointOnCurve ,IfcPointOnSurface))*/
public partial class IfcPoint
{
public virtual Point3d Location { get { return Point3d.Unset; } }
}
@ -53,8 +53,8 @@ namespace GeometryGym.Ifc
Points = new STEP.LIST<IfcCartesianPoint>(pl.ConvertAll(x => new IfcCartesianPoint(db, x)));
}
}
public partial class IfcProfileDef : BaseClassIfc, IfcResourceObjectSelect // SUPERTYPE OF (ONEOF (IfcArbitraryClosedProfileDef ,IfcArbitraryOpenProfileDef
{ //,IfcCompositeProfileDef ,IfcDerivedProfileDef ,IfcParameterizedProfileDef)); IFC2x3 abstract
public partial class IfcProfileDef
{
internal virtual Transform Transform() { return Rhino.Geometry.Transform.Identity; }
}
}

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

@ -28,14 +28,14 @@ using Rhino.Geometry.Intersect;
namespace GeometryGym.Ifc
{
public partial class IfcVector : IfcGeometricRepresentationItem
public partial class IfcVector
{
internal Vector3d Vector { get { return Orientation.Vector3d * mMagnitude; } }
public IfcVector(DatabaseIfc db, Vector2d v) : base(db) { Orientation = new IfcDirection(db, v); mMagnitude = v.Length; }
public IfcVector(DatabaseIfc db, Vector3d v) : base(db) { Orientation = new IfcDirection(db, v); mMagnitude = v.Length; }
}
public partial class IfcVirtualGridIntersection : BaseClassIfc
public partial class IfcVirtualGridIntersection
{
internal Vector3d OffsetVector { get { return new Vector3d(mOffsetDistances.Item1, mOffsetDistances.Item2, double.IsNaN(mOffsetDistances.Item3) ? 0 : mOffsetDistances.Item3); } }
}