This commit is contained in:
Jon Mirtschin 2022-07-18 14:47:47 +10:00
Родитель 27b0c3b962
Коммит 8b6a02b3d0
82 изменённых файлов: 3366 добавлений и 3191 удалений

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

@ -53,24 +53,17 @@ namespace GeometryGym.Ifc
public DatabaseIfc Database { get { return mDatabase; } private set { mDatabase = value; } }
#if (NOIFCJSON)
public BaseClassIfc() : base() { }// this(new DatabaseIfc(false, ModelView.Ifc4NotAssigned)) { }
public BaseClassIfc() : base() { }
#else
public BaseClassIfc() : base() { } // this(new DatabaseIfc(false, ModelView.Ifc4NotAssigned) { Format = FormatIfcSerialization.JSON }) { }
public BaseClassIfc() : base() { }
#endif
protected BaseClassIfc(BaseClassIfc basis, bool replace) : base()
{
if (replace)
basis.ReplaceDatabase(this);
else
basis.Database.appendObject(this);
}
protected BaseClassIfc(DatabaseIfc db, BaseClassIfc e) : base()
{
mGlobalId = e.mGlobalId;
if (db != null)
{
db.appendObject(this);
db.Factory.mDuplicateMapping.AddObject(e, mIndex);
db.Factory.mDuplicateMapping.AddObject(e, mStepId);
}
}
protected BaseClassIfc(DatabaseIfc db) : base()
@ -315,9 +308,9 @@ namespace GeometryGym.Ifc
}
}
}
mDatabase[revised.mIndex] = null;
revised.mIndex = mIndex;
mDatabase[mIndex] = revised;
mDatabase[revised.mStepId] = null;
revised.mStepId = StepId;
mDatabase[StepId] = revised;
}
public bool Dispose(bool children)
@ -330,7 +323,7 @@ namespace GeometryGym.Ifc
}
protected virtual bool DisposeWorker(bool children)
{
mDatabase[mIndex] = null;
mDatabase[mStepId] = null;
return true;
}
internal virtual List<IBaseClassIfc> retrieveReference(IfcReference reference) { return (reference.InnerReference != null ? null : new List<IBaseClassIfc>() { }); }
@ -350,7 +343,9 @@ namespace GeometryGym.Ifc
else if (string.Compare(className, "IfcOpeningStandardCase", true) == 0)
className = "IfcOpeningElement";
else
{
return null;
}
return STEPEntity.GetType(className, "Ifc");
}
public static BaseClassIfc Construct(string ifcClassName)
@ -410,10 +405,9 @@ namespace GeometryGym.Ifc
return constructor.Invoke(new object[] { }) as BaseClassIfc;
}
internal static string identifyIfcClass(string className, out string predefinedConstant, out string enumName)
internal static string identifyIfcClass(string className, out string predefinedConstant)
{
predefinedConstant = "";
enumName = "";
if (string.IsNullOrEmpty(className))
return "";
int index = className.IndexOf('.');
@ -423,7 +417,6 @@ namespace GeometryGym.Ifc
index = className.IndexOf('/');
string result = className;
enumName = className;
if (index > 0)
{
result = className.Substring(0, index);
@ -431,7 +424,6 @@ namespace GeometryGym.Ifc
index = remainder.IndexOf('(');
if (index > 0)
{
enumName = remainder.Substring(0, index).Trim();
int startIndex = remainder.IndexOf('.'), endIndex = remainder.IndexOf(')');
if (startIndex < index)
startIndex = index;
@ -440,8 +432,6 @@ namespace GeometryGym.Ifc
predefinedConstant = remainder.Substring(startIndex + 1, endIndex - startIndex - 1).Trim();
}
else
enumName = result;
}
if (result.EndsWith("Type"))
@ -449,11 +439,6 @@ namespace GeometryGym.Ifc
else if (result.EndsWith("TypeEnum"))
result = result.Substring(0, result.Length - 8);
string lowerEnumName = enumName.ToLower();
if (lowerEnumName.EndsWith("type"))
enumName = enumName + "Enum";
else if (!lowerEnumName.EndsWith("typeenum"))
enumName = enumName + "TypeEnum";
return result;
}
@ -476,7 +461,7 @@ namespace GeometryGym.Ifc
return result;
}
internal virtual bool isDuplicate(BaseClassIfc e) { return isDuplicate(e, mDatabase == null ? 1e-5 : mDatabase.Tolerance); }
internal bool isDuplicate(BaseClassIfc e) { return isDuplicate(e, mDatabase == null ? 1e-5 : mDatabase.Tolerance); }
// This method has only partial implementation within opensource project and
// any use of it should be carefully checked.
internal virtual bool isDuplicate(BaseClassIfc e, double tol) { return true; }

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

@ -37,7 +37,7 @@ using System.Diagnostics;
using System.Runtime.InteropServices;
namespace GeometryGym.Ifc
{
{
public enum ReleaseVersion
{
[Obsolete("Retired", false)] IFC2X,
@ -125,19 +125,29 @@ namespace GeometryGym.Ifc
{
set
{
IfcRoot root = this[index] as IfcRoot;
if (root != null)
BaseClassIfc existing = this[index];
if (existing != null)
{
BaseClassIfc obj = null;
mDictionary.TryRemove(root.GlobalId, out obj);
if (existing is IfcRoot existingRoot)
{
BaseClassIfc obj = null;
mDictionary.TryRemove(existingRoot.GlobalId, out obj);
}
else if (existing is IfcClassificationReference existingClassificationReference)
mClassificationReferences.Remove(existingClassificationReference);
else if (existing is IfcClassification existingClassification)
mClassifications.Add(existingClassification);
}
root = value as IfcRoot;
if(root != null && !string.IsNullOrEmpty(root.GlobalId))
if (value is IfcRoot root)
{
if (mDictionary.ContainsKey(root.GlobalId))
root.Guid = Guid.NewGuid();
mDictionary[root.GlobalId] = value;
}
else if (value is IfcClassificationReference classificationReference)
mClassificationReferences.Add(classificationReference);
else if (value is IfcClassification classification)
mClassifications.Add(classification);
base[index] = value;
if(value != null)
value.mDatabase = this;
@ -239,6 +249,8 @@ namespace GeometryGym.Ifc
internal IfcContext mContext = null;
internal ConcurrentDictionary<string, BaseClassIfc> mDictionary = new ConcurrentDictionary<string, BaseClassIfc>();
internal HashSet<IfcClassificationReference> mClassificationReferences = new HashSet<IfcClassificationReference>();
internal HashSet<IfcClassification> mClassifications = new HashSet<IfcClassification>();
private string viewDefinition { get { return (mModelView == ModelView.Ifc2x3Coordination ? "CoordinationView_V2" : (mModelView == ModelView.Ifc4Reference ? "ReferenceView_V1" : (mModelView == ModelView.Ifc4DesignTransfer ? "DesignTransferView_V1" : "notYetAssigned"))); } }
@ -456,7 +468,7 @@ namespace GeometryGym.Ifc
private string key(BaseClassIfc obj)
{
return (obj.mDatabase == null ? "" : obj.mDatabase.id + "|") + obj.mIndex;
return (obj.mDatabase == null ? "" : obj.mDatabase.id + "|") + obj.mStepId;
}
internal bool Remove(BaseClassIfc obj)
{
@ -499,42 +511,31 @@ namespace GeometryGym.Ifc
internal IfcProduct ConstructProduct(string className, IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape representation, IfcDistributionSystem system)
{
string str = className, predefinedTypeConstant = "", enumName = "";
string str = className, predefinedTypeConstant = "";
ReleaseVersion release = mDatabase.Release;
if (string.IsNullOrEmpty(str))
return null;
str = BaseClassIfc.identifyIfcClass(str, out predefinedTypeConstant, out enumName);
str = BaseClassIfc.identifyIfcClass(str, out predefinedTypeConstant);
Type type = BaseClassIfc.GetType(str);
if (type == null)
throw new Exception("XXX Unrecognized Ifc Type for " + className);
if (release < ReleaseVersion.IFC4X3_RC1)
VersionAddedAttribute versionAdded = type.GetCustomAttribute(typeof(VersionAddedAttribute)) as VersionAddedAttribute;
if(versionAdded != null && (versionAdded.Release > release) && release != ReleaseVersion.IFC4X3_RC4)
type = typeof(IfcBuildingElementProxy);
else if (release < ReleaseVersion.IFC4X3_RC1)
{
if (string.Compare(str, "IfcBuiltElement", true) == 0)
type = typeof(IfcBuildingElementProxy);
else if (typeof(IfcCourse).IsAssignableFrom(type) || typeof(IfcEarthworksElement).IsAssignableFrom(type))
type = typeof(IfcBuildingElementProxy);
else if (typeof(IfcEarthworksCut).IsAssignableFrom(type) || typeof(IfcGeotechnicalStratum).IsAssignableFrom(type))
type = typeof(IfcBuildingElementProxy);
else if (typeof(IfcPavement).IsAssignableFrom(type))
type = typeof(IfcBuildingElementProxy);
else if (release < ReleaseVersion.IFC4X2)
{
if(typeof(IfcFacility).IsAssignableFrom(type) && !typeof(IfcBuilding).IsAssignableFrom(type))
type = typeof(IfcSite);
if (typeof(IfcFacilityPart).IsAssignableFrom(type))
type = typeof(IfcSpace);
else if (typeof(IfcBearing).IsAssignableFrom(type))
type = typeof(IfcBuildingElementProxy);
else if (typeof(IfcFacilityPart).IsAssignableFrom(type))
type = host is IfcBuilding ? typeof(IfcSpace) : typeof(IfcSite);
else if (release < ReleaseVersion.IFC4X1)
{
if (type != typeof(IfcBuilding) && typeof(IfcFacility).IsAssignableFrom(type))
type = host is IfcBuilding ? typeof(IfcBuilding) : typeof(IfcSite);
else if (release < ReleaseVersion.IFC4)
{
if (typeof(IfcShadingDevice).IsAssignableFrom(type) || typeof(IfcGeographicElement).IsAssignableFrom(type) ||
typeof(IfcCivilElement).IsAssignableFrom(type))
type = typeof(IfcBuildingElementProxy);
}
}
}
}
@ -551,17 +552,17 @@ namespace GeometryGym.Ifc
product.ObjectType = className;
else if (!string.IsNullOrEmpty(predefinedTypeConstant))
{
product.SetPredefinedType(predefinedTypeConstant, enumName);
product.SetPredefinedType(predefinedTypeConstant);
}
return product;
}
internal IfcConstructionResource ConstructResource(string className)
{
string str = className, predefinedTypeConstant = "", enumName = "";
string str = className, predefinedTypeConstant = "";
ReleaseVersion release = mDatabase.Release;
if (string.IsNullOrEmpty(str))
return null;
str = BaseClassIfc.identifyIfcClass(str, out predefinedTypeConstant, out enumName);
str = BaseClassIfc.identifyIfcClass(str, out predefinedTypeConstant);
Type type = BaseClassIfc.GetType(str);
if (type == null)
throw new Exception("XXX Unrecognized Ifc Type for " + className);
@ -571,7 +572,7 @@ namespace GeometryGym.Ifc
throw new Exception("XXX Unrecognized Ifc Constructor for " + className);
if (!string.IsNullOrEmpty(predefinedTypeConstant))
{
resource.SetPredefinedType(predefinedTypeConstant, enumName);
resource.SetPredefinedType(predefinedTypeConstant);
}
return resource;
}
@ -581,16 +582,16 @@ namespace GeometryGym.Ifc
{
IfcProduct product = null;
ConstructorInfo constructor = getConstructor(type, new[] { typeof(DatabaseIfc) });
if(constructor == null)
{
if(constructor != null)
product = constructor.Invoke(new object[] { mDatabase }) as IfcProduct;
else
{
constructor = getConstructor(type, new Type[] { });
if (constructor == null)
return null;
product = constructor.Invoke(new object[] { }) as IfcProduct;
mDatabase.appendObject(product);
}
else
product = constructor.Invoke(new object[] { mDatabase }) as IfcProduct;
product.ObjectPlacement = placement;
product.Representation = representation;
@ -646,7 +647,7 @@ namespace GeometryGym.Ifc
{
return Duplicate<T>(entity, new DuplicateOptions(mDatabase.Tolerance) { DuplicateDownstream = true });
}
public void NominateDuplicate(IBaseClassIfc entity, IBaseClassIfc existingDuplicate) { mDuplicateMapping.AddObject(entity as BaseClassIfc, existingDuplicate.Index); }
public void NominateDuplicate(IBaseClassIfc entity, IBaseClassIfc existingDuplicate) { mDuplicateMapping.AddObject(entity as BaseClassIfc, existingDuplicate.StepId); }
public IfcAxis2Placement3D DuplicateAxis(IfcAxis2Placement3D placement, DuplicateOptions options)
{
if (placement == null)
@ -662,21 +663,12 @@ namespace GeometryGym.Ifc
{
if (entity == null)
return null;
BaseClassIfc obj = entity as BaseClassIfc;
if (obj.Database != null && obj.Database.id == mDatabase.id)
return entity;
T result = null;
IfcClassification classification = entity as IfcClassification;
if(classification != null)
result = findExisting<IfcClassification>(classification) as T;
else
{
IfcClassificationReference classificationReference = entity as IfcClassificationReference;
if (classificationReference != null)
result = findExisting<IfcClassificationReference>(classificationReference) as T;
}
if (result != null)
return result;
int index = mDuplicateMapping.FindExisting(obj);
if (index > 0)
{
@ -684,6 +676,52 @@ namespace GeometryGym.Ifc
if (result != null)
return result;
}
if(entity is IfcClassification classification)
result = findExistingClassification(classification) as T;
else if(entity is IfcClassificationReference classificationReference)
result = findExistingClassificationReference(classificationReference) as T;
else if (entity is IfcRelAssociatesClassification associatesClassification)
{
if(associatesClassification.RelatingClassification is IfcClassification ifcClassification)
{
IfcClassification existing = findExistingClassification(ifcClassification);
if(existing != null)
{
result = existing.HasReferences.OfType<T>().FirstOrDefault();
if (result != null)
return result;
}
}
else if (associatesClassification.RelatingClassification is IfcClassificationReference ifcClassificationReference)
{
IfcClassificationReference existing = findExistingClassificationReference(ifcClassificationReference);
if(existing != null)
{
result = existing.HasReferences.OfType<T>().FirstOrDefault();
if (result != null)
return result;
}
}
}
else if (entity is IfcRelAssignsToGroup assignsToGroup && assignsToGroup as IfcRelAssignsToGroupByFactor == null)
{
IfcGroup group = assignsToGroup.RelatingGroup;
if(group != null)
{
IfcGroup existing = mDatabase[group.GlobalId] as IfcGroup;
if(existing != null)
{
result = existing.IsGroupedBy.OfType<T>().FirstOrDefault();
if (result != null)
return result;
}
}
}
if (result != null)
return result;
if (!string.IsNullOrEmpty(obj.mGlobalId))
{
if (mDatabase.mDictionary.TryGetValue(obj.mGlobalId, out BaseClassIfc existing))
@ -703,11 +741,29 @@ namespace GeometryGym.Ifc
NominateDuplicate(entity, result);
return result;
}
private IfcClassification findExistingClassification(IfcClassification classification)
{
foreach (IfcClassification c in mDatabase.mClassifications)
{
if (c.isDuplicate(classification, 1e-5))
return c;
}
return null;
}
private IfcClassificationReference findExistingClassificationReference(IfcClassificationReference classificationReference)
{
foreach(IfcClassificationReference r in mDatabase.mClassificationReferences)
{
if (r.isDuplicate(classificationReference, 1e-5))
return r;
}
return null;
}
private T findExisting<T>(T obj) where T : BaseClassIfc
{
foreach (T existing in mDatabase.OfType<T>())
{
if (existing.isDuplicate(obj, 1e-3))
if (existing.isDuplicate(obj, 1e-5))
{
NominateDuplicate(obj, existing);
return existing;
@ -1390,7 +1446,7 @@ namespace GeometryGym.Ifc
{
if (mPerson == null)
{
mPerson = new IfcPerson(mDatabase, PersonName(), "", "");
mPerson = new IfcPerson(mDatabase) { Identification = PersonName() };
#if (IFCMODEL && !IFCIMPORTONLY && (RHINO || GH))
string str = ggAssembly.mOptions.OwnerRole;
if (!string.IsNullOrEmpty(str))
@ -1488,14 +1544,28 @@ namespace GeometryGym.Ifc
{
if (revised.OwningUser.mDatabase == mDatabase)
modifier = revised.OwningUser;
else if (ownerHistory != null)
{
if (revised.OwningUser.isDuplicate(ownerHistory.OwningUser))
modifier = Duplicate(ownerHistory.OwningUser);
else
modifier = Duplicate(revised.OwningUser);
}
else
modifier = Duplicate(revised.OwningUser) as IfcPersonAndOrganization;
modifier = Duplicate(revised.OwningUser);
}
IfcApplication application = null;
if (revised == null)
application = (action == IfcChangeActionEnum.ADDED ? null : Application);
else if (ownerHistory != null)
{
if (revised.OwningApplication.isDuplicate(ownerHistory.OwningApplication))
application = Duplicate(ownerHistory.OwningApplication);
else
application = Duplicate(revised.OwningApplication);
}
else
application = revised.OwningApplication.mDatabase == mDatabase ? revised.OwningApplication : Duplicate(revised.OwningApplication) as IfcApplication;
application = Duplicate(revised.OwningApplication);
DateTime modified = (revised == null ? (action == IfcChangeActionEnum.ADDED ? DateTime.MinValue : DateTime.Now) : revised.CreationDate);
return OwnerHistory(action, owner, owningApplication, modifier, application, modified, created);
}
@ -2240,7 +2310,7 @@ namespace GeometryGym.Ifc
else
firstPass.Add(obj);
}
catch (Exception x) { mDatabase.logParseError("XXX Error in line #" + obj.Object.Index + " " + obj.Object.StepClassName + " " + x.Message); }
catch (Exception x) { mDatabase.logParseError("XXX Error in line #" + obj.Object.StepId + " " + obj.Object.StepClassName + " " + x.Message); }
}
Debug.WriteLine(DateTime.Now.ToString("HH:mm:ss:ffff") + " - Started Executing Constructors");
Task taskThreadSafe = Task.Run(() =>
@ -2255,7 +2325,7 @@ namespace GeometryGym.Ifc
{
parseDefinition(obj, release);
}
catch (Exception x) { mDatabase.logParseError("XXX Error in line #" + obj.Object.Index + " " + obj.Object.StepClassName + " " + x.Message); }
catch (Exception x) { mDatabase.logParseError("XXX Error in line #" + obj.Object.StepId + " " + obj.Object.StepClassName + " " + x.Message); }
}
Debug.WriteLine(DateTime.Now.ToString("HH:mm:ss:ffff") + " - Completed FirstPass");
firstPass.Clear();
@ -2265,7 +2335,7 @@ namespace GeometryGym.Ifc
{
parseDefinition(obj, release);
}
catch (Exception x) { mDatabase.logParseError("XXX Error in line #" + obj.Object.Index + " " + obj.Object.StepClassName + " " + x.Message); }
catch (Exception x) { mDatabase.logParseError("XXX Error in line #" + obj.Object.StepId + " " + obj.Object.StepClassName + " " + x.Message); }
}
Debug.WriteLine(DateTime.Now.ToString("HH:mm:ss:ffff") + " - Completed SecondPass");
secondPass.Clear();
@ -2291,7 +2361,7 @@ namespace GeometryGym.Ifc
{
if (string.Compare(ea.mApplicationIdentifier, application.mApplicationIdentifier) == 0)
{
mDatabase[ea.mIndex] = null;
mDatabase[ea.StepId] = null;
mDatabase.Factory.mApplication = application;
}
}
@ -2329,7 +2399,7 @@ namespace GeometryGym.Ifc
BaseClassIfc obj = BaseClassIfc.Construct(kw);
if (obj != null)
{
obj.mIndex = stepID;
obj.mStepId = stepID;
mDictionary[stepID] = obj;
ConstructorClass constructorClass = new ConstructorClass(obj, def);
//Todo add more primitive classes

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

@ -43,7 +43,7 @@ namespace GeometryGym.Ifc
public enum IfcAirTerminalBoxTypeEnum { NOTDEFINED, USERDEFINED, CONSTANTFLOW, VARIABLEFLOWPRESSUREDEPENDANT, VARIABLEFLOWPRESSUREINDEPENDANT };
public enum IfcAirTerminalTypeEnum { NOTDEFINED, USERDEFINED, GRILLE, REGISTER, DIFFUSER, LOUVRE, EYEBALL, IRIS, LINEARGRILLE, LINEARDIFFUSER }; //IFC4 DELETED
public enum IfcAirToAirHeatRecoveryTypeEnum { NOTDEFINED, USERDEFINED, FIXEDPLATECOUNTERFLOWEXCHANGER, FIXEDPLATECROSSFLOWEXCHANGER, FIXEDPLATEPARALLELFLOWEXCHANGER, ROTARYWHEEL, RUNAROUNDCOILLOOP, HEATPIPE, TWINTOWERENTHALPYRECOVERYLOOPS, THERMOSIPHONSEALEDTUBEHEATEXCHANGERS, THERMOSIPHONCOILTYPEHEATEXCHANGERS };
public enum IfcAlarmTypeEnum { NOTDEFINED, USERDEFINED, BELL, BREAKGLASSBUTTON, LIGHT, MANUALPULLBOX, SIREN, WHISTLE, RAILWAYCROCODILE, RAILWAYDETONATOR };
public enum IfcAlarmTypeEnum { NOTDEFINED, USERDEFINED, BELL, BREAKGLASSBUTTON, LIGHT, MANUALPULLBOX, SIREN, WHISTLE, [VersionAdded(ReleaseVersion.IFC4X3)] RAILWAYCROCODILE, [VersionAdded(ReleaseVersion.IFC4X3)] RAILWAYDETONATOR };
public enum IfcAlignmentCantSegmentTypeEnum { CONSTANTCANT, LINEARTRANSITION, HELMERTCURVE, BLOSSCURVE, COSINECURVE, SINECURVE, VIENNESEBEND };
public enum IfcAlignmentHorizontalSegmentTypeEnum { LINE, CIRCULARARC, CLOTHOID, CUBIC, HELMERTCURVE, BLOSSCURVE, COSINECURVE, SINECURVE, VIENNESEBEND };
public enum IfcAlignmentTypeEnum { NOTDEFINED, USERDEFINED };
@ -53,10 +53,10 @@ namespace GeometryGym.Ifc
public enum IfcAnnotationTypeEnum { NOTDEFINED, USERDEFINED, ASSUMEDPOINT, ASBUILTAREA, ASBUILTLINE, NON_PHYSICAL_SIGNAL, ASSUMEDLINE, WIDTHEVENT, ASSUMEDAREA, SUPERELEVATIONEVENT, ASBUILTPOINT };
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, SPEAKER, SWITCHER, TELEPHONE, TUNER, COMMUNICATIONTERMINAL, RECORDINGEQUIPMENT };
public enum IfcBeamTypeEnum { NOTDEFINED, USERDEFINED, BEAM, HOLLOWCORE, JOIST, LINTEL, SPANDREL, T_BEAM, GIRDER_SEGMENT, DIAPHRAGM, PIERCAP, HATSTONE, CORNICE, EDGEBEAM };
public enum IfcAudioVisualApplianceTypeEnum { NOTDEFINED, USERDEFINED, AMPLIFIER, CAMERA, DISPLAY, MICROPHONE, PLAYER, PROJECTOR, RECEIVER, SPEAKER, SWITCHER, TELEPHONE, TUNER, [VersionAdded(ReleaseVersion.IFC4X3)] COMMUNICATIONTERMINAL, [VersionAdded(ReleaseVersion.IFC4X3)] RECORDINGEQUIPMENT };
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, DISK };
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 };
public enum IfcBooleanOperator { UNION, INTERSECTION, DIFFERENCE };
@ -64,22 +64,22 @@ namespace GeometryGym.Ifc
public enum IfcBridgeTypeEnum { NOTDEFINED, USERDEFINED, ARCHED, CABLE_STAYED, CANTILEVER, CULVERT, FRAMEWORK, GIRDER, SUSPENSION, TRUSS };
public enum IfcBSplineCurveForm { UNSPECIFIED, POLYLINE_FORM, CIRCULAR_ARC, ELLIPTIC_ARC, PARABOLIC_ARC, HYPERBOLIC_ARC };
public enum IfcBSplineSurfaceForm { UNSPECIFIED, PLANE_SURF, CYLINDRICAL_SURF, CONICAL_SURF, SPHERICAL_SURF, TOROIDAL_SURF, SURF_OF_REVOLUTION, RULED_SURF, GENERALISED_CONE, QUADRIC_SURF, SURF_OF_LINEAR_EXTRUSION };
public enum IfcBuildingElementPartTypeEnum { NOTDEFINED, USERDEFINED, INSULATION, PRECASTPANEL, APRON, ARMOURUNIT, SAFETYCAGE };
public enum IfcBuildingElementPartTypeEnum { NOTDEFINED, USERDEFINED, INSULATION, PRECASTPANEL, [VersionAdded(ReleaseVersion.IFC4X2)] APRON, [VersionAdded(ReleaseVersion.IFC4X3)] ARMOURUNIT, [VersionAdded(ReleaseVersion.IFC4X3)] SAFETYCAGE };
public enum IfcBuildingElementProxyTypeEnum { NOTDEFINED, USERDEFINED, COMPLEX, ELEMENT, PARTIAL, PROVISIONFORVOID, PROVISIONFORSPACE }; // 1st 3 not used
public enum IfcBuiltSystemTypeEnum { NOTDEFINED, USERDEFINED, REINFORCING, MOORING, OUTERSHELL, TRACKCIRCUIT, EROSIONPREVENTION, FOUNDATION, LOADBEARING, SHADING, FENESTRATION, TRANSPORT, PRESTRESSING };
public enum IfcBuiltSystemTypeEnum { NOTDEFINED, USERDEFINED, [VersionAdded(ReleaseVersion.IFC4X2)] REINFORCING, MOORING, OUTERSHELL, TRACKCIRCUIT, [VersionAdded(ReleaseVersion.IFC4X3)] EROSIONPREVENTION, FOUNDATION, LOADBEARING, SHADING, FENESTRATION, TRANSPORT, [VersionAdded(ReleaseVersion.IFC4X2)] PRESTRESSING };
public enum IfcBurnerTypeEnum { NOTDEFINED, USERDEFINED };
public enum IfcCableCarrierFittingTypeEnum { NOTDEFINED, USERDEFINED, BEND, CROSS, REDUCER, TEE };
public enum IfcCableCarrierSegmentTypeEnum { NOTDEFINED, USERDEFINED, CABLELADDERSEGMENT, CABLETRAYSEGMENT, CABLETRUNKINGSEGMENT, CONDUITSEGMENT, CABLEBRACKET, CATENARYWIRE, DROPPER };
public enum IfcCableFittingTypeEnum { NOTDEFINED, USERDEFINED, CONNECTOR, ENTRY, EXIT, JUNCTION, TRANSITION, FANOUT };
public enum IfcCableSegmentTypeEnum { NOTDEFINED, USERDEFINED, CABLESEGMENT, CONDUCTORSEGMENT, BUSBARSEGMENT, CORESEGMENT, CONTACTWIRESEGMENT, FIBERSEGMENT, FIBERTUBE, OPTICALCABLESEGMENT, STITCHWIRE, WIREPAIRSEGMENT };
public enum IfcCableCarrierSegmentTypeEnum { NOTDEFINED, USERDEFINED, CABLELADDERSEGMENT, CABLETRAYSEGMENT, CABLETRUNKINGSEGMENT, CONDUITSEGMENT, [VersionAdded(ReleaseVersion.IFC4X3)] CABLEBRACKET, [VersionAdded(ReleaseVersion.IFC4X3)] CATENARYWIRE, [VersionAdded(ReleaseVersion.IFC4X3)] DROPPER };
public enum IfcCableFittingTypeEnum { NOTDEFINED, USERDEFINED, CONNECTOR, ENTRY, EXIT, JUNCTION, TRANSITION, [VersionAdded(ReleaseVersion.IFC4X3)] FANOUT };
public enum IfcCableSegmentTypeEnum { NOTDEFINED, USERDEFINED, CABLESEGMENT, CONDUCTORSEGMENT, BUSBARSEGMENT, CORESEGMENT, [VersionAdded(ReleaseVersion.IFC4X3)] CONTACTWIRESEGMENT, [VersionAdded(ReleaseVersion.IFC4X3)] FIBERSEGMENT, [VersionAdded(ReleaseVersion.IFC4X3)] FIBERTUBE, [VersionAdded(ReleaseVersion.IFC4X3)] OPTICALCABLESEGMENT, [VersionAdded(ReleaseVersion.IFC4X3)] STITCHWIRE, [VersionAdded(ReleaseVersion.IFC4X3)] WIREPAIRSEGMENT };
public enum IfcCaissonFoundationTypeEnum { NOTDEFINED, USERDEFINED, WELL, CAISSON };
public enum IfcCardinalPointReference { DEFAULT = 0, BOTLEFT = 1, BOTMID = 2, BOTRIGHT = 3, MIDLEFT = 4, MID = 5, MIDRIGHT = 6, TOPLEFT = 7, TOPMID = 8, TOPRIGHT = 9, CENTROID = 10, BOTCENT = 11, LEFTCENT = 12, RIGHTCENT = 13, TOPCENT = 14, SHEARCENT = 15, BOTSHEAR = 16, LEFTSHEAR = 17, RIGHTSHEAR = 18, TOPSHEAR = 19 };
public enum IfcChangeActionEnum { NOCHANGE, MODIFIED, ADDED, DELETED, NOTDEFINED, MODIFIEDADDED, MODIFIEDDELETED }; //IFC4 MODIFIED DELETED
public enum IfcChillerTypeEnum { NOTDEFINED, USERDEFINED, AIRCOOLED, WATERCOOLED, HEATRECOVERY };
public enum IfcChimneyTypeEnum { NOTDEFINED, USERDEFINED };
public enum IfcCoilTypeEnum { NOTDEFINED, USERDEFINED, DXCOOLINGCOIL, WATERCOOLINGCOIL, STEAMHEATINGCOIL, WATERHEATINGCOIL, ELECTRICHEATINGCOIL, GASHEATINGCOIL, HYDRONICCOIL };
public enum IfcColumnTypeEnum { NOTDEFINED, USERDEFINED, COLUMN, PILASTER, PIERSTEM, PIERSTEM_SEGMENT, STANDCOLUMN };
public enum IfcCommunicationsApplianceTypeEnum { NOTDEFINED, USERDEFINED, ANTENNA, COMPUTER, FAX, GATEWAY, MODEM, NETWORKAPPLIANCE, NETWORKBRIDGE, NETWORKHUB, PRINTER, REPEATER, ROUTER, SCANNER, AUTOMATON, INTELLIGENTPERIPHERAL, IPNETWORKEQUIPMENT, OPTICALNETWORKUNIT, TELECOMMAND, TELEPHONYEXCHANGE, TRANSITIONCOMPONENT, TRANSPONDER, TRANSPORTEQUIPMENT, OPTICALLINETERMINAL, LINESIDEELECTRONICUNIT, RADIOBLOCKCENTER };
public enum IfcColumnTypeEnum { NOTDEFINED, USERDEFINED, COLUMN, PILASTER, [VersionAdded(ReleaseVersion.IFC4X2)] PIERSTEM, [VersionAdded(ReleaseVersion.IFC4X2)] PIERSTEM_SEGMENT, [VersionAdded(ReleaseVersion.IFC4X2)] STANDCOLUMN };
public enum IfcCommunicationsApplianceTypeEnum { NOTDEFINED, USERDEFINED, ANTENNA, COMPUTER, FAX, GATEWAY, MODEM, NETWORKAPPLIANCE, NETWORKBRIDGE, NETWORKHUB, PRINTER, REPEATER, ROUTER, SCANNER, [VersionAdded(ReleaseVersion.IFC4X3)] AUTOMATON, [VersionAdded(ReleaseVersion.IFC4X3)] INTELLIGENTPERIPHERAL, [VersionAdded(ReleaseVersion.IFC4X3)] IPNETWORKEQUIPMENT, [VersionAdded(ReleaseVersion.IFC4X3)] OPTICALNETWORKUNIT, [VersionAdded(ReleaseVersion.IFC4X3)] TELECOMMAND, [VersionAdded(ReleaseVersion.IFC4X3)] TELEPHONYEXCHANGE, [VersionAdded(ReleaseVersion.IFC4X3)] TRANSITIONCOMPONENT, [VersionAdded(ReleaseVersion.IFC4X3)] TRANSPONDER, [VersionAdded(ReleaseVersion.IFC4X3)] TRANSPORTEQUIPMENT, [VersionAdded(ReleaseVersion.IFC4X3)] OPTICALLINETERMINAL, [VersionAdded(ReleaseVersion.IFC4X3)] LINESIDEELECTRONICUNIT, [VersionAdded(ReleaseVersion.IFC4X3)] RADIOBLOCKCENTER };
public enum IfcComplexPropertyTemplateTypeEnum { NOTDEFINED, P_COMPLEX, Q_COMPLEX };
public enum IfcCompressorTypeEnum { NOTDEFINED, USERDEFINED, DYNAMIC, RECIPROCATING, ROTARY, SCROLL, TROCHOIDAL, SINGLESTAGE, BOOSTER, OPENTYPE, HERMETIC, SEMIHERMETIC, WELDEDSHELLHERMETIC, ROLLINGPISTON, ROTARYVANE, SINGLESCREW, TWINSCREW };
public enum IfcCondenserTypeEnum { NOTDEFINED, USERDEFINED, WATERCOOLEDSHELLTUBE, WATERCOOLEDSHELLCOIL, WATERCOOLEDTUBEINTUBE, WATERCOOLEDBRAZEDPLATE, AIRCOOLED, EVAPORATIVECOOLED, WATERCOOLED };
@ -95,7 +95,7 @@ namespace GeometryGym.Ifc
public enum IfcCostItemTypeEnum { NOTDEFINED, USERDEFINED, };
public enum IfcCostScheduleTypeEnum { NOTDEFINED, USERDEFINED, BUDGET, COSTPLAN, ESTIMATE, TENDER, PRICEDBILLOFQUANTITIES, UNPRICEDBILLOFQUANTITIES, SCHEDULEOFRATES };
public enum IfcCourseTypeEnum { NOTDEFINED, USERDEFINED, ARMOUR, FILTER, BALLASTBED, CORE, PAVEMENT, PROTECTION };
public enum IfcCoveringTypeEnum { NOTDEFINED, USERDEFINED, CEILING, CLADDING, FLOORING, MOLDING, ROOFING, SKIRTINGBOARD, INSULATION, MEMBRANE, SLEEVING, WRAPPING, COPING }; //IFC4 DELETED
public enum IfcCoveringTypeEnum { NOTDEFINED, USERDEFINED, CEILING, CLADDING, FLOORING, MOLDING, ROOFING, SKIRTINGBOARD, INSULATION, MEMBRANE, SLEEVING, WRAPPING, [VersionAdded(ReleaseVersion.IFC4X2)] COPING };
public enum IfcCrewResourceTypeEnum { NOTDEFINED, USERDEFINED, OFFICE, SITE };
public enum IfcCurrencyEnum { NOTDEFINED, AED, AES, ATS, AUD, BBD, BEG, BGL, BHD, BMD, BND, BRL, BSD, BWP, BZD, CAD, CBD, CHF, CLP, CNY, CYS, CZK, DDP, DEM, DKK, EGL, EST, EUR, FAK, FIM, FJD, FKP, FRF, GBP, GIP, GMD, GRX, HKD, HUF, ICK, IDR, ILS, INR, IRP, ITL, JMD, JOD, JPY, KES, KRW, KWD, KYD, LKR, LUF, MTL, MUR, MXN, MYR, NLG, NZD, OMR, PGK, PHP, PKR, PLN, PTN, QAR, RUR, SAR, SCR, SEK, SGD, SKP, THB, TRL, TTD, TWD, USD, VEB, VND, XEU, ZAR, ZWD, NOK };
public enum IfcCurtainWallTypeEnum { NOTDEFINED, USERDEFINED, };
@ -117,14 +117,26 @@ namespace GeometryGym.Ifc
};
public enum IfcDimensionExtentUsage { ORIGIN, TARGET };
public enum IfcDirectionSenseEnum { POSITIVE, NEGATIVE };
public enum IfcDiscreteAccessoryTypeEnum { NOTDEFINED, USERDEFINED, ANCHORPLATE, BRACKET, SHOE, EXPANSION_JOINT_DEVICE, BIRDPROTECTION, CABLEARRANGER, INSULATOR, LOCK, TENSIONINGEQUIPMENT, RAILPAD, SLIDINGCHAIR, RAIL_LUBRICATION, PANEL_STRENGTHENING, RAILBRACE, ELASTIC_CUSHION, SOUNDABSORPTION,POINTMACHINEMOUNTINGDEVICE, POINT_MACHINE_LOCKING_DEVICE, RAIL_MECHANICAL_EQUIPMENT };
public enum IfcDiscreteAccessoryTypeEnum { NOTDEFINED, USERDEFINED, ANCHORPLATE, BRACKET, SHOE, [VersionAdded(ReleaseVersion.IFC4X2)] EXPANSION_JOINT_DEVICE,
[VersionAdded(ReleaseVersion.IFC4X3)] BIRDPROTECTION, [VersionAdded(ReleaseVersion.IFC4X3)] CABLEARRANGER,
[VersionAdded(ReleaseVersion.IFC4X3)] INSULATOR, [VersionAdded(ReleaseVersion.IFC4X3)] LOCK,
[VersionAdded(ReleaseVersion.IFC4X3)] TENSIONINGEQUIPMENT, [VersionAdded(ReleaseVersion.IFC4X3)] RAILPAD,
[VersionAdded(ReleaseVersion.IFC4X3)] SLIDINGCHAIR, [VersionAdded(ReleaseVersion.IFC4X3)] RAIL_LUBRICATION,
[VersionAdded(ReleaseVersion.IFC4X3)] PANEL_STRENGTHENING, [VersionAdded(ReleaseVersion.IFC4X3)] RAILBRACE,
[VersionAdded(ReleaseVersion.IFC4X3)] ELASTIC_CUSHION, [VersionAdded(ReleaseVersion.IFC4X3)] SOUNDABSORPTION,
[VersionAdded(ReleaseVersion.IFC4X3)] POINTMACHINEMOUNTINGDEVICE, [VersionAdded(ReleaseVersion.IFC4X3)] POINT_MACHINE_LOCKING_DEVICE,
[VersionAdded(ReleaseVersion.IFC4X3)] RAIL_MECHANICAL_EQUIPMENT
};
public enum IfcDistributionBoardTypeEnum { NOTDEFINED, USERDEFINED, SWITCHBOARD, CONSUMERUNIT, MOTORCONTROLCENTRE, DISTRIBUTIONFRAME, DISTRIBUTIONBOARD, DISPATCHINGBOARD };
public enum IfcDistributionChamberElementTypeEnum { NOTDEFINED, USERDEFINED, FORMEDDUCT, INSPECTIONCHAMBER, INSPECTIONPIT, MANHOLE, METERCHAMBER, SUMP, TRENCH, VALVECHAMBER };
public enum IfcDistributionPortTypeEnum { NOTDEFINED, USERDEFINED, CABLE, CABLECARRIER, DUCT, PIPE, WIRELESS }
public enum IfcDistributionSystemEnum { NOTDEFINED, USERDEFINED, AIRCONDITIONING, AUDIOVISUAL, CHEMICAL, CHILLEDWATER, COMMUNICATION, COMPRESSEDAIR, CONDENSERWATER,
CONTROL, CONVEYING, DATA, DISPOSAL, DOMESTICCOLDWATER, DOMESTICHOTWATER, DRAINAGE, EARTHING, ELECTRICAL, ELECTROACOUSTIC, EXHAUST,
FIREPROTECTION, FUEL, GAS, HAZARDOUS, HEATING, LIGHTING, LIGHTNINGPROTECTION, MUNICIPALSOLIDWASTE, OIL, OPERATIONAL, POWERGENERATION,
RAINWATER, REFRIGERATION, SECURITY, SEWAGE, SIGNAL, STORMWATER, TELEPHONE, TV, VACUUM, VENT, VENTILATION, WASTEWATER, WATERSUPPLY, CATENARY_SYSTEM, OVERHEAD_CONTACTLINE_SYSTEM, RETURN_CIRCUIT, FIXEDTRANSMISSIONNETWORK, OPERATIONALTELEPHONYSYSTEM, MOBILENETWORK, MONITORINGSYSTEM };
public enum IfcDistributionSystemEnum { NOTDEFINED, USERDEFINED, AIRCONDITIONING, AUDIOVISUAL, CHEMICAL, CHILLEDWATER, COMMUNICATION,
COMPRESSEDAIR, CONDENSERWATER, CONTROL, CONVEYING, DATA, DISPOSAL, DOMESTICCOLDWATER, DOMESTICHOTWATER, DRAINAGE, EARTHING, ELECTRICAL,
ELECTROACOUSTIC, EXHAUST, FIREPROTECTION, FUEL, GAS, HAZARDOUS, HEATING, LIGHTING, LIGHTNINGPROTECTION, MUNICIPALSOLIDWASTE, OIL,
OPERATIONAL, POWERGENERATION, RAINWATER, REFRIGERATION, SECURITY, SEWAGE, SIGNAL, STORMWATER, TELEPHONE, TV, VACUUM, VENT, VENTILATION,
WASTEWATER, WATERSUPPLY, CATENARY_SYSTEM, OVERHEAD_CONTACTLINE_SYSTEM, RETURN_CIRCUIT,
[VersionAdded(ReleaseVersion.IFC4X3)] FIXEDTRANSMISSIONNETWORK, [VersionAdded(ReleaseVersion.IFC4X3)] OPERATIONALTELEPHONYSYSTEM,
[VersionAdded(ReleaseVersion.IFC4X3)] MOBILENETWORK, [VersionAdded(ReleaseVersion.IFC4X3)] MONITORINGSYSTEM };
public enum IfcDistributionSystemEnumPipe { NOTDEFINED, USERDEFINED, CHEMICAL, CHILLEDWATER, COMPRESSEDAIR, CONDENSERWATER, CONVEYING, DISPOSAL, DOMESTICCOLDWATER,
DOMESTICHOTWATER, DRAINAGE, FIREPROTECTION, FUEL, GAS, HAZARDOUS, HEATING, MUNICIPALSOLIDWASTE, OIL, OPERATIONAL, RAINWATER,
REFRIGERATION, SEWAGE, STORMWATER, VACUUM, VENT, WASTEWATER, WATERSUPPLY };
@ -140,7 +152,7 @@ namespace GeometryGym.Ifc
public enum IfcDoorStyleConstructionEnum { NOTDEFINED, USERDEFINED, ALUMINIUM, HIGH_GRADE_STEEL, STEEL, WOOD, ALUMINIUM_WOOD, ALUMINIUM_PLASTIC, PLASTIC };
public enum IfcDoorStyleOperationEnum { NOTDEFINED, USERDEFINED, SINGLE_SWING_LEFT, SINGLE_SWING_RIGHT, DOUBLE_DOOR_SINGLE_SWING, DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT, DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT, DOUBLE_SWING_LEFT, DOUBLE_SWING_RIGHT, DOUBLE_DOOR_DOUBLE_SWING, SLIDING_TO_LEFT, SLIDING_TO_RIGHT, DOUBLE_DOOR_SLIDING, FOLDING_TO_LEFT, FOLDING_TO_RIGHT, DOUBLE_DOOR_FOLDING, REVOLVING, ROLLINGUP };
public enum IfcDoorTypeOperationEnum { NOTDEFINED, USERDEFINED, SINGLE_SWING_LEFT, SINGLE_SWING_RIGHT, DOUBLE_PANEL_SINGLE_SWING, DOUBLE_PANEL_SINGLE_SWING_OPPOSITE_LEFT, DOUBLE_PANEL_SINGLE_SWING_OPPOSITE_RIGHT, DOUBLE_SWING_LEFT, DOUBLE_SWING_RIGHT, DOUBLE_PANEL_DOUBLE_SWING, SLIDING_TO_LEFT, SLIDING_TO_RIGHT, DOUBLE_PANEL_SLIDING, FOLDING_TO_LEFT, FOLDING_TO_RIGHT, DOUBLE_PANEL_FOLDING, REVOLVING_HORIZONTAL, ROLLINGUP, SWING_FIXED_LEFT, SWING_FIXED_RIGHT, DOUBLE_PANEL_LIFTING_VERTICAL, LIFTING_HORIZONTAL, LIFTING_VERTICAL_LEFT, LIFTING_VERTICAL_RIGHT, REVOLVING_VERTICAL };
public enum IfcDoorTypeEnum { NOTDEFINED, USERDEFINED, DOOR, GATE, TRAPDOOR, BOOM_BARRIER, TURNSTILE };
public enum IfcDoorTypeEnum { NOTDEFINED, USERDEFINED, DOOR, GATE, TRAPDOOR, [VersionAdded(ReleaseVersion.IFC4X3)] BOOM_BARRIER, [VersionAdded(ReleaseVersion.IFC4X3)] TURNSTILE };
public enum IfcDuctFittingTypeEnum { NOTDEFINED, USERDEFINED, BEND, CONNECTOR, ENTRY, EXIT, JUNCTION, OBSTRUCTION, TRANSITION };
public enum IfcDuctSegmentTypeEnum { NOTDEFINED, USERDEFINED, RIGIDSEGMENT, FLEXIBLESEGMENT };
public enum IfcDuctSilencerTypeEnum { NOTDEFINED, USERDEFINED, FLATOVAL, RECTANGULAR, ROUND };
@ -150,13 +162,13 @@ namespace GeometryGym.Ifc
public enum IfcElectricCurrentEnum { NOTDEFINED, ALTERNATING, DIRECT };
public enum IfcElectricDistributionBoardTypeEnum { NOTDEFINED, USERDEFINED, CONSUMERUNIT, DISTRIBUTIONBOARD, MOTORCONTROLCENTRE, SWITCHBOARD };
public enum IfcElectricDistributionPointFunctionEnum { NOTDEFINED, USERDEFINED, ALARMPANEL, CONSUMERUNIT, CONTROLPANEL, DISTRIBUTIONBOARD, GASDETECTORPANEL, INDICATORPANEL, MIMICPANEL, MOTORCONTROLCENTRE, SWITCHBOARD };
public enum IfcElectricFlowStorageDeviceTypeEnum { NOTDEFINED, USERDEFINED, BATTERY, CAPACITORBANK, HARMONICFILTER, INDUCTORBANK, UPS, CAPACITOR, COMPENSATOR, INDUCTOR, RECHARGER };
public enum IfcElectricFlowStorageDeviceTypeEnum { NOTDEFINED, USERDEFINED, BATTERY, CAPACITORBANK, HARMONICFILTER, INDUCTORBANK, UPS, [VersionAdded(ReleaseVersion.IFC4X3)] CAPACITOR, [VersionAdded(ReleaseVersion.IFC4X3)] COMPENSATOR, [VersionAdded(ReleaseVersion.IFC4X3)] INDUCTOR, [VersionAdded(ReleaseVersion.IFC4X3)] RECHARGER };
public enum IfcElectricFlowTreatmentDeviceTypeEnum { NOTDEFINED, USERDEFINED, ELECTRONICFILTER };
public enum IfcElectricGeneratorTypeEnum { NOTDEFINED, USERDEFINED, CHP, ENGINEGENERATOR, STANDALONE };
public enum IfcElectricHeaterTypeEnum { NOTDEFINED, USERDEFINED, ELECTRICPOINTHEATER, ELECTRICCABLEHEATER };
public enum IfcElectricMotorTypeEnum { NOTDEFINED, USERDEFINED, DC, INDUCTION, POLYPHASE, RELUCTANCESYNCHRONOUS, SYNCHRONOUS };
public enum IfcElectricTimeControlTypeEnum { NOTDEFINED, USERDEFINED, TIMECLOCK, TIMEDELAY, RELAY };
public enum IfcElementAssemblyTypeEnum { NOTDEFINED, USERDEFINED, ACCESSORY_ASSEMBLY, ARCH, BEAM_GRID, BRACED_FRAME, GIRDER, REINFORCEMENT_UNIT, RIGID_FRAME, SLAB_FIELD, TRUSS, ABUTMENT, PIER, PYLON, CROSS_BRACING, DECK, MAST, SIGNALASSEMBLY, GRID, SHELTER, SUPPORTINGASSEMBLY, SUSPENSIONASSEMBLY, TRACTION_SWITCHING_ASSEMBLY, TRACKPANEL, TURNOUTPANEL, DILATATIONPANEL, RAIL_MECHANICAL_EQUIPMENT_ASSEMBLY, ENTRANCEWORKS, SUMPBUSTER, TRAFFIC_CALMING_DEVICE };
public enum IfcElementAssemblyTypeEnum { NOTDEFINED, USERDEFINED, ACCESSORY_ASSEMBLY, ARCH, BEAM_GRID, BRACED_FRAME, GIRDER, REINFORCEMENT_UNIT, RIGID_FRAME, SLAB_FIELD, TRUSS, [VersionAdded(ReleaseVersion.IFC4X2)] ABUTMENT, [VersionAdded(ReleaseVersion.IFC4X2)] PIER, [VersionAdded(ReleaseVersion.IFC4X2)] PYLON, [VersionAdded(ReleaseVersion.IFC4X2)] CROSS_BRACING, [VersionAdded(ReleaseVersion.IFC4X2)] DECK, [VersionAdded(ReleaseVersion.IFC4X3)] MAST, [VersionAdded(ReleaseVersion.IFC4X3)] SIGNALASSEMBLY, [VersionAdded(ReleaseVersion.IFC4X3)] GRID, [VersionAdded(ReleaseVersion.IFC4X3)] SHELTER, [VersionAdded(ReleaseVersion.IFC4X3)] SUPPORTINGASSEMBLY, [VersionAdded(ReleaseVersion.IFC4X3)] SUSPENSIONASSEMBLY, [VersionAdded(ReleaseVersion.IFC4X3)] TRACTION_SWITCHING_ASSEMBLY, [VersionAdded(ReleaseVersion.IFC4X3)] TRACKPANEL, [VersionAdded(ReleaseVersion.IFC4X3)] TURNOUTPANEL, [VersionAdded(ReleaseVersion.IFC4X3)] DILATATIONPANEL, [VersionAdded(ReleaseVersion.IFC4X3)] RAIL_MECHANICAL_EQUIPMENT_ASSEMBLY, [VersionAdded(ReleaseVersion.IFC4X3)] ENTRANCEWORKS, [VersionAdded(ReleaseVersion.IFC4X3)] SUMPBUSTER, [VersionAdded(ReleaseVersion.IFC4X3)] TRAFFIC_CALMING_DEVICE };
public enum IfcElementCompositionEnum { NOTDEFINED, COMPLEX, ELEMENT, PARTIAL };
public enum IfcEnergySequenceEnum { NOTDEFINED, USERDEFINED, PRIMARY, SECONDARY, TERTIARY, AUXILIARY };
public enum IfcEngineTypeEnum { NOTDEFINED, USERDEFINED, EXTERNALCOMBUSTION, INTERNALCOMBUSTION };
@ -173,17 +185,17 @@ namespace GeometryGym.Ifc
public enum IfcFilterTypeEnum { NOTDEFINED, USERDEFINED, AIRPARTICLEFILTER, ODORFILTER, OILFILTER, STRAINER, WATERFILTER, COMPRESSEDAIRFILTER };
public enum IfcFireSuppressionTerminalTypeEnum { NOTDEFINED, USERDEFINED, BREECHINGINLET, FIREHYDRANT, HOSEREEL, SPRINKLER, SPRINKLERDEFLECTOR, FIREMONITOR };
public enum IfcFlowDirectionEnum { NOTDEFINED, SOURCE, SINK, SOURCEANDSINK };
public enum IfcFlowInstrumentTypeEnum { NOTDEFINED, USERDEFINED, PRESSUREGAUGE, THERMOMETER, AMMETER, FREQUENCYMETER, POWERFACTORMETER, PHASEANGLEMETER, VOLTMETER_PEAK, VOLTMETER_RMS, COMBINED, VOLTMETER };
public enum IfcFlowInstrumentTypeEnum { NOTDEFINED, USERDEFINED, PRESSUREGAUGE, THERMOMETER, AMMETER, FREQUENCYMETER, POWERFACTORMETER, PHASEANGLEMETER, VOLTMETER_PEAK, VOLTMETER_RMS, [VersionAdded(ReleaseVersion.IFC4X3)] COMBINED, [VersionAdded(ReleaseVersion.IFC4X3)] VOLTMETER };
public enum IfcFlowMeterTypeEnum { NOTDEFINED, USERDEFINED, ENERGYMETER, GASMETER, OILMETER, WATERMETER, ELECTRICMETER, FLOWMETER }; // IFC4 DELETED
public enum IfcFootingTypeEnum { NOTDEFINED, USERDEFINED, CAISSON_FOUNDATION, FOOTING_BEAM, PAD_FOOTING, PILE_CAP, STRIP_FOOTING };
public enum IfcFurnitureTypeEnum { NOTDEFINED, USERDEFINED, CHAIR, TABLE, DESK, BED, FILECABINET, SHELF, SOFA, TECHNICALCABINET };
public enum IfcFurnitureTypeEnum { NOTDEFINED, USERDEFINED, CHAIR, TABLE, DESK, BED, FILECABINET, SHELF, SOFA, [VersionAdded(ReleaseVersion.IFC4X3)] TECHNICALCABINET };
public enum IfcGasTerminalTypeEnum { NOTDEFINED, USERDEFINED, GASAPPLIANCE, GASBOOSTER, GASBURNER };
public enum IfcGeographicElementTypeEnum { NOTDEFINED, USERDEFINED, TERRAIN, SOIL_BORING_POINT };
public enum IfcGeographicElementTypeEnum { NOTDEFINED, USERDEFINED, [VersionAdded(ReleaseVersion.IFC4X2)] SOIL_BORING_POINT, TERRAIN, [VersionAdded(ReleaseVersion.IFC4X3)] VEGETATION };
public enum IfcGeometricProjectionEnum { NOTDEFINED, USERDEFINED, GRAPH_VIEW, SKETCH_VIEW, MODEL_VIEW, PLAN_VIEW, REFLECTED_PLAN_VIEW, SECTION_VIEW, ELEVATION_VIEW };
public enum IfcGeotechnicalStratumTypeEnum { NOTDEFINED, USERDEFINED, SOLID, VOID, WATER };
public enum IfcGlobalOrLocalEnum { GLOBAL_COORDS, LOCAL_COORDS };
public enum IfcGridTypeEnum { NOTDEFINED, USERDEFINED, RECTANGULAR, RADIAL, TRIANGULAR, IRREGULAR };
public enum IfcHeatExchangerTypeEnum { NOTDEFINED, USERDEFINED, PLATE, SHELLANDTUBE, TURNOUTHEATING };
public enum IfcHeatExchangerTypeEnum { NOTDEFINED, USERDEFINED, PLATE, SHELLANDTUBE, [VersionAdded(ReleaseVersion.IFC4X3)] TURNOUTHEATING };
public enum IfcHumidifierTypeEnum { NOTDEFINED, USERDEFINED, STEAMINJECTION, ADIABATICAIRWASHER, ADIABATICPAN, ADIABATICWETTEDELEMENT, ADIABATICATOMIZING, ADIABATICULTRASONIC, ADIABATICRIGIDMEDIA, ADIABATICCOMPRESSEDAIRNOZZLE, ASSISTEDELECTRIC, ASSISTEDNATURALGAS, ASSISTEDPROPANE, ASSISTEDBUTANE, ASSISTEDSTEAM };
public enum IfcImpactProtectionDeviceTypeEnum { NOTDEFINED, USERDEFINED, CRASHCUSHION, DAMPINGSYSTEM, FENDER, BUMPER };
public enum IfcInternalOrExternalEnum { NOTDEFINED, INTERNAL, EXTERNAL, EXTERNAL_EARTH, EXTERNAL_WATER, EXTERNAL_FIRE };
@ -203,9 +215,9 @@ namespace GeometryGym.Ifc
public enum IfcLogicalOperatorEnum { NONE, LOGICALAND, LOGICALOR, LOGICALXOR, LOGICALNOTAND, LOGICALNOTOR };
public enum IfcMarineFacilityTypeEnum { NOTDEFINED, USERDEFINED, CANAL, WATERWAYSHIPLIFT, REVETMENT, LAUNCHRECOVERY, MARINEDEFENCE, HYDROLIFT, SHIPYARD, SHIPLIFT, PORT, QUAY, FLOATINGDOCK, NAVIGATIONALCHANNEL, BREAKWATER, DRYDOCK, JETTY, SHIPLOCK, BARRIERBEACH, SLIPWAY, WATERWAY };
public enum IfcMarinePartTypeEnum { NOTDEFINED, USERDEFINED, CREST, MANUFACTURING, LOWWATERLINE, CORE, WATERFIELD, CILL_LEVEL, BERTHINGSTRUCTURE, COPELEVEL, CHAMBER, STORAGEAREA, APPROACHCHANNEL, VEHICLESERVICING, SHIPTRANSFER, GATEHEAD, GUDINGSTRUCTURE, BELOWWATERLINE, WEATHERSIDE, LANDFIELD, PROTECTION, LEEWARDSIDE, ABOVEWATERLINE, ANCHORAGE, NAVIGATIONALAREA, HIGHWATERLINE };
public enum IfcMechanicalFastenerTypeEnum { NOTDEFINED, USERDEFINED, ANCHORBOLT, BOLT, DOWEL, NAIL, NAILPLATE, RIVET, SCREW, SHEARCONNECTOR, STAPLE, STUDSHEARCONNECTOR, COUPLER, RAILJOINT, RAILFASTENING, CHAIN, ROPE }
public enum IfcMechanicalFastenerTypeEnum { NOTDEFINED, USERDEFINED, ANCHORBOLT, BOLT, DOWEL, NAIL, NAILPLATE, RIVET, SCREW, SHEARCONNECTOR, STAPLE, STUDSHEARCONNECTOR, [VersionAdded(ReleaseVersion.IFC4X2)] COUPLER, [VersionAdded(ReleaseVersion.IFC4X3)] RAILJOINT, [VersionAdded(ReleaseVersion.IFC4X3)] RAILFASTENING, [VersionAdded(ReleaseVersion.IFC4X3)] CHAIN, [VersionAdded(ReleaseVersion.IFC4X3)] ROPE }
public enum IfcMedicalDeviceTypeEnum { NOTDEFINED, USERDEFINED, AIRSTATION, FEEDAIRUNIT, OXYGENGENERATOR, OXYGENPLANT, VACUUMSTATION };
public enum IfcMemberTypeEnum { NOTDEFINED, USERDEFINED, BRACE, CHORD, COLLAR, MEMBER, MULLION, PLATE, POST, PURLIN, RAFTER, STRINGER, STRUT, STUD, STIFFENING_RIB, ARCH_SEGMENT, SUSPENSION_CABLE, SUSPENDER, STAY_CABLE, STRUCTURALCABLE, TIEBAR };
public enum IfcMemberTypeEnum { NOTDEFINED, USERDEFINED, BRACE, CHORD, COLLAR, MEMBER, MULLION, PLATE, POST, PURLIN, RAFTER, STRINGER, STRUT, STUD, [VersionAdded(ReleaseVersion.IFC4X2)] STIFFENING_RIB, [VersionAdded(ReleaseVersion.IFC4X2)] ARCH_SEGMENT, [VersionAdded(ReleaseVersion.IFC4X2)] SUSPENSION_CABLE, [VersionAdded(ReleaseVersion.IFC4X2)] SUSPENDER, [VersionAdded(ReleaseVersion.IFC4X2)] STAY_CABLE, [VersionAdded(ReleaseVersion.IFC4X3)] STRUCTURALCABLE, [VersionAdded(ReleaseVersion.IFC4X3)] TIEBAR };
public enum IfcMobileTelecommunicationsApplianceTypeEnum { NOTDEFINED, USERDEFINED, E_UTRAN_NODE_B, REMOTERADIOUNIT, ACCESSPOINT, BASETRANSCEIVERSTATION, REMOTEUNIT, BASEBANDUNIT, MASTERUNIT, GATEWAY_GPRS_SUPPORT_NODE, SUBSCRIBERSERVER, MOBILESWITCHINGCENTER, MSCSERVER, PACKETCONTROLUNIT, SERVICE_GPRS_SUPPORT_NODE };
public enum IfcMooringDeviceTypeEnum { NOTDEFINED, USERDEFINED, LINETENSIONER, MAGNETICDEVICE, MOORINGHOOKS, VACUUMDEVICE, BOLLARD };
public enum IfcMotorConnectionTypeEnum { NOTDEFINED, USERDEFINED, BELTDRIVE, COUPLING, DIRECTDRIVE };
@ -226,32 +238,32 @@ namespace GeometryGym.Ifc
public enum IfcPileTypeEnum { NOTDEFINED, USERDEFINED, COHESION, FRICTION, SUPPORT, BORED, DRIVEN, JETGROUTING };
public enum IfcPipeFittingTypeEnum { NOTDEFINED, USERDEFINED, BEND, CONNECTOR, ENTRY, EXIT, JUNCTION, OBSTRUCTION, TRANSITION };
public enum IfcPipeSegmentTypeEnum { NOTDEFINED, USERDEFINED, FLEXIBLESEGMENT, RIGIDSEGMENT, GUTTER, SPOOL, CULVERT };
public enum IfcPlateTypeEnum { NOTDEFINED, USERDEFINED, CURTAIN_PANEL, SHEET, FLANGE_PLATE, WEB_PLATE, STIFFENER_PLATE, GUSSET_PLATE, COVER_PLATE, SPLICE_PLATE, BASE_PLATE };
public enum IfcPlateTypeEnum { NOTDEFINED, USERDEFINED, CURTAIN_PANEL, SHEET, [VersionAdded(ReleaseVersion.IFC4X2)] FLANGE_PLATE, [VersionAdded(ReleaseVersion.IFC4X2)] WEB_PLATE, [VersionAdded(ReleaseVersion.IFC4X2)] STIFFENER_PLATE, [VersionAdded(ReleaseVersion.IFC4X2)] GUSSET_PLATE, [VersionAdded(ReleaseVersion.IFC4X2)] COVER_PLATE, [VersionAdded(ReleaseVersion.IFC4X2)] SPLICE_PLATE, [VersionAdded(ReleaseVersion.IFC4X2)] BASE_PLATE };
public enum IfcPreferredSurfaceCurveRepresentation { CURVE3D, PCURVE_S1, PCURVE_S2 };
public enum IfcProcedureTypeEnum { NOTDEFINED, USERDEFINED, ADVICE_CAUTION, ADVICE_NOTE, ADVICE_WARNING, CALIBRATION, DIAGNOSTIC, SHUTDOWN, STARTUP };
public enum IfcProfileTypeEnum { CURVE, AREA };
public enum IfcProjectedOrTrueLengthEnum { PROJECTED_LENGTH, TRUE_LENGTH };
public enum IfcProjectOrderRecordTypeEnum { NOTDEFINED, USERDEFINED, CHANGE, MAINTENANCE, MOVE, PURCHASE, WORK };
public enum IfcProjectOrderTypeEnum { NOTDEFINED, USERDEFINED, CHANGEORDER, MAINTENANCEWORKORDER, MOVEORDER, PURCHASEORDER, WORKORDER };
public enum IfcProjectionElementTypeEnum { NOTDEFINED, USERDEFINED, BLISTER, DEVIATOR }
public enum IfcProjectionElementTypeEnum { NOTDEFINED, USERDEFINED, [VersionAdded(ReleaseVersion.IFC4X2)] BLISTER, [VersionAdded(ReleaseVersion.IFC4X2)] DEVIATOR }
public enum IfcPropertySetTemplateTypeEnum { NOTDEFINED, PSET_TYPEDRIVENONLY, PSET_TYPEDRIVENOVERRIDE, PSET_OCCURRENCEDRIVEN, PSET_PERFORMANCEDRIVEN, QTO_TYPEDRIVENONLY, QTO_TYPEDRIVENOVERRIDE, QTO_OCCURRENCEDRIVEN };
public enum IfcPropertySourceEnum { NOTDEFINED, USERDEFINED, DESIGN, DESIGNMAXIMUM, DESIGNMINIMUM, SIMULATED, ASBUILT, COMMISSIONING, MEASURED };
public enum IfcProtectiveDeviceTrippingUnitTypeEnum { NOTDEFINED, USERDEFINED, ELECTRONIC, ELECTROMAGNETIC, RESIDUALCURRENT, THERMAL };
public enum IfcProtectiveDeviceTypeEnum { NOTDEFINED, USERDEFINED, FUSEDISCONNECTOR, CIRCUITBREAKER, EARTHFAILUREDEVICE, RESIDUALCURRENTCIRCUITBREAKER, RESIDUALCURRENTSWITCH, VARISTOR, EARTHLEAKAGECIRCUITBREAKER, EARTHINGSWITCH, ANTI_ARCING_DEVICE, SPARKGAP, VOLTAGELIMITER };
public enum IfcProtectiveDeviceTypeEnum { NOTDEFINED, USERDEFINED, FUSEDISCONNECTOR, CIRCUITBREAKER, EARTHFAILUREDEVICE, RESIDUALCURRENTCIRCUITBREAKER, RESIDUALCURRENTSWITCH, VARISTOR, EARTHLEAKAGECIRCUITBREAKER, EARTHINGSWITCH, [VersionAdded(ReleaseVersion.IFC4X3)] ANTI_ARCING_DEVICE, [VersionAdded(ReleaseVersion.IFC4X3)] SPARKGAP, [VersionAdded(ReleaseVersion.IFC4X3)] VOLTAGELIMITER };
public enum IfcPumpTypeEnum { NOTDEFINED, USERDEFINED, CIRCULATOR, ENDSUCTION, SPLITCASE, VERTICALINLINE, VERTICALTURBINE, SUBMERSIBLEPUMP, SUMPPUMP };
public enum IfcRailingTypeEnum { NOTDEFINED, USERDEFINED, HANDRAIL, GUARDRAIL, BALUSTRADE, [VersionAdded(ReleaseVersion.IFC4X3)] FENCE };
public enum IfcRailTypeEnum { NOTDEFINED, USERDEFINED, RACKRAIL, BLADE, GUARDRAIL, STOCKRAIL, CHECKRAIL, RAIL };
public enum IfcRailwayTypeEnum { NOTDEFINED, USERDEFINED };
public enum IfcRailwayPartTypeEnum { NOTDEFINED, USERDEFINED, TRACKSTRUCTURE, TRACKSTRUCTUREPART, LINESIDESTRUCTUREPART, DILATATIONSUPERSTRUCTURE, PLAINTRACKSUPESTRUCTURE, LINESIDESTRUCTURE, SUPERSTRUCTURE, TURNOUTSUPERSTRUCTURE };
public enum IfcRailingTypeEnum { NOTDEFINED, USERDEFINED, HANDRAIL, GUARDRAIL, BALUSTRADE, FENCE };
public enum IfcRailwayPartTypeEnum { NOTDEFINED, USERDEFINED, TRACKSTRUCTURE, TRACKSTRUCTUREPART, LINESIDESTRUCTUREPART, DILATATIONSUPERSTRUCTURE, PLAINTRACKSUPERSTRUCTURE, LINESIDESTRUCTURE, SUPERSTRUCTURE, TURNOUTSUPERSTRUCTURE };
public enum IfcRampFlightTypeEnum { NOTDEFINED, USERDEFINED, STRAIGHT, SPIRAL };
public enum IfcRampTypeEnum { NOTDEFINED, USERDEFINED, STRAIGHT_RUN_RAMP, TWO_STRAIGHT_RUN_RAMP, QUARTER_TURN_RAMP, TWO_QUARTER_TURN_RAMP, HALF_TURN_RAMP, SPIRAL_RAMP };
public enum IfcRecurrenceTypeEnum { DAILY, WEEKLY, MONTHLY_BY_DAY_OF_MONTH, MONTHLY_BY_POSITION, BY_DAY_COUNT, BY_WEEKDAY_COUNT, YEARLY_BY_DAY_OF_MONTH, YEARLY_BY_POSITION };
public enum IfcReferentTypeEnum { NOTDEFINED, USERDEFINED, KILOPOINT, MILEPOINT, STATION, REFERENCEMARKER, LANDMARK, BOUNDARY, INTERSECTION, POSITION };
public enum IfcReferentTypeEnum { NOTDEFINED, USERDEFINED, KILOPOINT, MILEPOINT, STATION, [VersionAdded(ReleaseVersion.IFC4X3)] REFERENCEMARKER, [VersionAdded(ReleaseVersion.IFC4X3)] LANDMARK, [VersionAdded(ReleaseVersion.IFC4X3)] BOUNDARY, [VersionAdded(ReleaseVersion.IFC4X3)] INTERSECTION, [VersionAdded(ReleaseVersion.IFC4X3)] POSITION };
public enum IfcReflectanceMethodEnum { NOTDEFINED, BLINN, FLAT, GLASS, MATT, METAL, MIRROR, PHONG, PLASTIC, STRAUSS };
public enum IfcReinforcedSoilTypeEnum { NOTDEFINED, USERDEFINED, SURCHARGEPRELOADED, VERTICALLYDRAINED, DYNAMICALLYCOMPACTED, REPLACED, ROLLERCOMPACTED, GROUTED };
public enum IfcReinforcingBarSurfaceEnum { NOTDEFINED, PLAIN, TEXTURED };
public enum IfcReinforcingBarRoleEnum { NOTDEFINED, USERDEFINED, MAIN, SHEAR, LIGATURE, STUD, PUNCHING, EDGE, RING, ANCHORING };
public enum IfcReinforcingBarTypeEnum { NOTDEFINED, USERDEFINED, MAIN, SHEAR, LIGATURE, STUD, PUNCHING, EDGE, RING, ANCHORING, SPACEBAR };
public enum IfcReinforcingBarTypeEnum { NOTDEFINED, USERDEFINED, MAIN, SHEAR, LIGATURE, STUD, PUNCHING, EDGE, RING, ANCHORING, [VersionAdded(ReleaseVersion.IFC4X2)] SPACEBAR };
public enum IfcReinforcingMeshTypeEnum { NOTDEFINED, USERDEFINED };
public enum IfcResourceConsumptionEnum { NOTDEFINED, USERDEFINED, CONSUMED, PARTIALLYCONSUMED, NOTCONSUMED, OCCUPIED, PARTIALLYOCCUPIED, NOTOCCUPIED };
public enum IfcRibPlateDirectionEnum { DIRECTION_X, DIRECTION_Y };
@ -261,7 +273,7 @@ namespace GeometryGym.Ifc
public enum IfcRoofTypeEnum { NOTDEFINED, USERDEFINED, FLAT_ROOF, SHED_ROOF, GABLE_ROOF, HIP_ROOF, HIPPED_GABLE_ROOF, GAMBREL_ROOF, MANSARD_ROOF, BARREL_ROOF, RAINBOW_ROOF, BUTTERFLY_ROOF, PAVILION_ROOF, DOME_ROOF, FREEFORM };
public enum IfcSanitaryTerminalTypeEnum { NOTDEFINED, USERDEFINED, BATH, BIDET, CISTERN, SHOWER, SINK, SANITARYFOUNTAIN, TOILETPAN, URINAL, WASHHANDBASIN, WCSEAT };
public enum IfcSectionTypeEnum { UNIFORM, TAPERED };
public enum IfcSensorTypeEnum { NOTDEFINED, USERDEFINED, COSENSOR, CO2SENSOR, FIRESENSOR, FLOWSENSOR, GASSENSOR, HEATSENSOR, HUMIDITYSENSOR, LIGHTSENSOR, MOISTURESENSOR, MOVEMENTSENSOR, PRESSURESENSOR, SMOKESENSOR, SOUNDSENSOR, TEMPERATURESENSOR, CONDUCTANCESENSOR, CONTACTSENSOR, FROSTSENSOR, IDENTIFIERSENSOR, IONCONCENTRATIONSENSOR, LEVELSENSOR, PHSENSOR, RADIATIONSENSOR, RADIOACTIVITYSENSOR, WINDSENSOR, EARTHQUAKESENSOR, FOREIGNOBJECTDETECTIONSENSOR, OBSTACLESENSOR, RAINSENSOR, SNOWDEPTHSENSOR, TRAINSENSOR, TURNOUTCLOSURESENSOR, WHEELSENSOR };
public enum IfcSensorTypeEnum { NOTDEFINED, USERDEFINED, COSENSOR, CO2SENSOR, FIRESENSOR, FLOWSENSOR, GASSENSOR, HEATSENSOR, HUMIDITYSENSOR, LIGHTSENSOR, MOISTURESENSOR, MOVEMENTSENSOR, PRESSURESENSOR, SMOKESENSOR, SOUNDSENSOR, TEMPERATURESENSOR, CONDUCTANCESENSOR, CONTACTSENSOR, FROSTSENSOR, IDENTIFIERSENSOR, IONCONCENTRATIONSENSOR, LEVELSENSOR, PHSENSOR, RADIATIONSENSOR, RADIOACTIVITYSENSOR, WINDSENSOR, [VersionAdded(ReleaseVersion.IFC4X3)] EARTHQUAKESENSOR, [VersionAdded(ReleaseVersion.IFC4X3)] FOREIGNOBJECTDETECTIONSENSOR, [VersionAdded(ReleaseVersion.IFC4X3)] OBSTACLESENSOR, [VersionAdded(ReleaseVersion.IFC4X3)] RAINSENSOR, [VersionAdded(ReleaseVersion.IFC4X3)] SNOWDEPTHSENSOR, [VersionAdded(ReleaseVersion.IFC4X3)] TRAINSENSOR, [VersionAdded(ReleaseVersion.IFC4X3)] TURNOUTCLOSURESENSOR, [VersionAdded(ReleaseVersion.IFC4X3)] WHEELSENSOR };
public enum IfcSequenceEnum { NOTDEFINED, USERDEFINED, START_START, START_FINISH, FINISH_START, FINISH_FINISH };
public enum IfcServiceLifeTypeEnum { ACTUALSERVICELIFE, EXPECTEDSERVICELIFE, OPTIMISTICREFERENCESERVICELIFE, PESSIMISTICREFERENCESERVICELIFE, REFERENCESERVICELIFE };
public enum IfcServiceLifeFactorTypeEnum { NOTDEFINED, USERDEFINED, A_QUALITYOFCOMPONENTS, B_DESIGNLEVEL, C_WORKEXECUTIONLEVEL, D_INDOORENVIRONMENT, E_OUTDOORENVIRONMENT, F_INUSECONDITIONS, G_MAINTENANCELEVEL };
@ -271,13 +283,13 @@ namespace GeometryGym.Ifc
public enum IfcSimplePropertyTemplateTypeEnum { NOTDEFINED, P_SINGLEVALUE, P_ENUMERATEDVALUE, P_BOUNDEDVALUE, P_LISTVALUE, P_TABLEVALUE, P_REFERENCEVALUE, Q_LENGTH, Q_AREA, Q_VOLUME, Q_COUNT, Q_WEIGHT, Q_TIME };
public enum IfcSIPrefix { NONE, EXA, PETA, TERA, GIGA, MEGA, KILO, HECTO, DECA, DECI, CENTI, MILLI, MICRO, NANO, PICO, FEMTO, ATTO };
public enum IfcSIUnitName { AMPERE, BECQUEREL, CANDELA, COULOMB, CUBIC_METRE, DEGREE_CELSIUS, FARAD, GRAM, GRAY, HENRY, HERTZ, JOULE, KELVIN, LUMEN, LUX, METRE, MOLE, NEWTON, OHM, PASCAL, RADIAN, SECOND, SIEMENS, SIEVERT, SQUARE_METRE, STERADIAN, TESLA, VOLT, WATT, WEBER };
public enum IfcSlabTypeEnum { NOTDEFINED, USERDEFINED, FLOOR, ROOF, LANDING, BASESLAB, APPROACH_SLAB, PAVING, WEARING, SIDEWALK, TRACKSLAB };
public enum IfcSlabTypeEnum { NOTDEFINED, USERDEFINED, FLOOR, ROOF, LANDING, BASESLAB, [VersionAdded(ReleaseVersion.IFC4X2)] APPROACH_SLAB, [VersionAdded(ReleaseVersion.IFC4X2)] PAVING, [VersionAdded(ReleaseVersion.IFC4X2)] WEARING, [VersionAdded(ReleaseVersion.IFC4X2)] SIDEWALK, [VersionAdded(ReleaseVersion.IFC4X3)] TRACKSLAB };
public enum IfcSolarDeviceTypeEnum { NOTDEFINED, USERDEFINED, SOLARCOLLECTOR, SOLARPANEL };
public enum IfcSoundScaleEnum { NOTDEFINED, USERDEFINED, DBA, DBB, DBC, NC, NR };
public enum IfcSpaceHeaterTypeEnum { NOTDEFINED, USERDEFINED, SECTIONALRADIATOR, PANELRADIATOR, TUBULARRADIATOR, CONVECTOR, BASEBOARDHEATER, FINNEDTUBEUNIT, UNITHEATER, RADIATOR };
public enum IfcSpaceTypeEnum { NOTDEFINED, USERDEFINED, SPACE, PARKING, GFA, INTERNAL, EXTERNAL, BERTH };
public enum IfcSpatialZoneTypeEnum { NOTDEFINED, USERDEFINED, CONSTRUCTION, FIRESAFETY, LIGHTING, OCCUPANCY, SECURITY, THERMAL, VENTILATION, TRANSPORT, RESERVATION, INTERFERENCE };
public enum IfcStairTypeEnum { NOTDEFINED, USERDEFINED, STRAIGHT_RUN_STAIR, TWO_STRAIGHT_RUN_STAIR, QUARTER_WINDING_STAIR, QUARTER_TURN_STAIR, HALF_WINDING_STAIR, HALF_TURN_STAIR, TWO_QUARTER_WINDING_STAIR, TWO_QUARTER_TURN_STAIR, THREE_QUARTER_WINDING_STAIR, THREE_QUARTER_TURN_STAIR, SPIRAL_STAIR, DOUBLE_RETURN_STAIR, CURVED_RUN_STAIR, TWO_CURVED_RUN_STAIR, LADDER };
public enum IfcSpaceTypeEnum { NOTDEFINED, USERDEFINED, [VersionAdded(ReleaseVersion.IFC4)] SPACE, [VersionAdded(ReleaseVersion.IFC4)] PARKING, [VersionAdded(ReleaseVersion.IFC4)] GFA, INTERNAL, EXTERNAL, [VersionAdded(ReleaseVersion.IFC4X2)] BERTH };
public enum IfcSpatialZoneTypeEnum { NOTDEFINED, USERDEFINED, CONSTRUCTION, FIRESAFETY, LIGHTING, OCCUPANCY, SECURITY, THERMAL, VENTILATION, TRANSPORT, [VersionAdded(ReleaseVersion.IFC4X3)] RESERVATION, [VersionAdded(ReleaseVersion.IFC4X3)] INTERFERENCE };
public enum IfcStairTypeEnum { NOTDEFINED, USERDEFINED, STRAIGHT_RUN_STAIR, TWO_STRAIGHT_RUN_STAIR, QUARTER_WINDING_STAIR, QUARTER_TURN_STAIR, HALF_WINDING_STAIR, HALF_TURN_STAIR, TWO_QUARTER_WINDING_STAIR, TWO_QUARTER_TURN_STAIR, THREE_QUARTER_WINDING_STAIR, THREE_QUARTER_TURN_STAIR, SPIRAL_STAIR, DOUBLE_RETURN_STAIR, CURVED_RUN_STAIR, TWO_CURVED_RUN_STAIR, [VersionAdded(ReleaseVersion.IFC4X3)] LADDER };
public enum IfcStackTerminalTypeEnum { NOTDEFINED, USERDEFINED, BIRDCAGE, COWL, RAINWATERHOPPER };
public enum IfcStairFlightTypeEnum { NOTDEFINED, USERDEFINED, STRAIGHT, WINDER, SPIRAL, CURVED, FREEFORM };
public enum IfcStateEnum { NOTDEFINED, READWRITE, READONLY, LOCKED, READWRITELOCKED, READONLYLOCKED };
@ -286,12 +298,12 @@ namespace GeometryGym.Ifc
public enum IfcStructuralSurfaceActivityTypeEnum { NOTDEFINED, USERDEFINED, CONST, BILINEAR, DISCRETE, ISOCONTOUR }
public enum IfcStructuralSurfaceMemberTypeEnum { NOTDEFINED, USERDEFINED, BENDING_ELEMENT, MEMBRANE_ELEMENT, SHELL };
public enum IfcSubContractResourceTypeEnum { NOTDEFINED, USERDEFINED, PURCHASE, WORK };
public enum IfcSurfaceFeatureTypeEnum { NOTDEFINED, USERDEFINED, MARK, TAG, TREATMENT, DEFECT, HATCHMARKING, LINEMARKING, PAVEMENTSURFACEMARKING, SYMBOLMARKING, NONSKIDSURFACING, RUMBLESTRIP, TRANSVERSERUMBLESTRIP };
public enum IfcSurfaceFeatureTypeEnum { NOTDEFINED, USERDEFINED, MARK, TAG, TREATMENT, [VersionAdded(ReleaseVersion.IFC4X2)] DEFECT, [VersionAdded(ReleaseVersion.IFC4X3)] HATCHMARKING, [VersionAdded(ReleaseVersion.IFC4X3)] LINEMARKING, [VersionAdded(ReleaseVersion.IFC4X3)] PAVEMENTSURFACEMARKING, [VersionAdded(ReleaseVersion.IFC4X3)] SYMBOLMARKING, [VersionAdded(ReleaseVersion.IFC4X3)] NONSKIDSURFACING, [VersionAdded(ReleaseVersion.IFC4X3)] RUMBLESTRIP, [VersionAdded(ReleaseVersion.IFC4X3)] TRANSVERSERUMBLESTRIP };
public enum IfcSurfaceSide { POSITIVE, NEGATIVE, BOTH };
public enum IfcSurfaceTextureEnum { NOTDEFINED, BUMP, OPACITY, REFLECTION, SELFILLUMINATION, SHININESS, SPECULAR, TEXTURE, TRANSPARENCYMAP };
public enum IfcSwitchingDeviceTypeEnum { NOTDEFINED, USERDEFINED, CONTACTOR, EMERGENCYSTOP, STARTER, SWITCHDISCONNECTOR, TOGGLESWITCH, DIMMERSWITCH, KEYPAD, MOMENTARYSWITCH, SELECTORSWITCH, RELAY, START_AND_STOP_EQUIPMENT };
public enum IfcSystemFurnitureElementTypeEnum { NOTDEFINED, USERDEFINED, PANEL, WORKSURFACE, SUBRACK };
public enum IfcTankTypeEnum { NOTDEFINED, USERDEFINED, EXPANSION, PRESSUREVESSEL, PREFORMED, SECTIONAL, BASIN, BREAKPRESSURE, FEEDANDEXPANSION, STORAGE, VESSEL, OILRETENTIONTRAY }; //IFC4 DELETED
public enum IfcSwitchingDeviceTypeEnum { NOTDEFINED, USERDEFINED, CONTACTOR, EMERGENCYSTOP, STARTER, SWITCHDISCONNECTOR, TOGGLESWITCH, DIMMERSWITCH, KEYPAD, MOMENTARYSWITCH, SELECTORSWITCH, [VersionAdded(ReleaseVersion.IFC4X3)] RELAY, [VersionAdded(ReleaseVersion.IFC4X3)] START_AND_STOP_EQUIPMENT };
public enum IfcSystemFurnitureElementTypeEnum { NOTDEFINED, USERDEFINED, PANEL, WORKSURFACE, [VersionAdded(ReleaseVersion.IFC4X3)] SUBRACK };
public enum IfcTankTypeEnum { NOTDEFINED, USERDEFINED, EXPANSION, PRESSUREVESSEL, PREFORMED, SECTIONAL, BASIN, BREAKPRESSURE, FEEDANDEXPANSION, STORAGE, VESSEL, [VersionAdded(ReleaseVersion.IFC4X3)] OILRETENTIONTRAY };
public enum IfcTaskTypeEnum { NOTDEFINED, USERDEFINED, ATTENDANCE, CONSTRUCTION, DEMOLITION, DISMANTLE, DISPOSAL, INSTALLATION, LOGISTIC, MAINTENANCE, MOVE, OPERATION, REMOVAL, RENOVATION }; //IFC4
public enum IfcTaskDurationEnum { NOTDEFINED, ELAPSEDTIME, WORKTIME };
public enum IfcTendonTypeEnum { NOTDEFINED, USERDEFINED, STRAND, WIRE, BAR, COATED };
@ -303,22 +315,22 @@ namespace GeometryGym.Ifc
public enum IfcTimeSeriesDataTypeEnum { NOTDEFINED, CONTINUOUS, DISCRETE, DISCRETEBINARY, PIECEWISEBINARY, PIECEWISECONSTANT, PIECEWISECONTINUOUS };
public enum IfcTimeSeriesScheduleTypeEnum { NOTDEFINED, USERDEFINED, ANNUAL, MONTHLY, WEEKLY, DAILY };
public enum IfcTrackElementTypeEnum { NOTDEFINED, USERDEFINED, TRACKENDOFALIGNMENT, BLOCKINGDEVICE, VEHICLESTOP, SLEEPER, HALF_SET_OF_BLADES, SPEEDREGULATOR, DERAILER, FROG };
public enum IfcTransformerTypeEnum { NOTDEFINED, USERDEFINED, CURRENT, FREQUENCY, VOLTAGE, INVERTER, RECTIFIER, CHOPPER, COMBINED };
public enum IfcTransformerTypeEnum { NOTDEFINED, USERDEFINED, CURRENT, FREQUENCY, VOLTAGE, INVERTER, RECTIFIER, [VersionAdded(ReleaseVersion.IFC4X3)] CHOPPER, [VersionAdded(ReleaseVersion.IFC4X3)] COMBINED };
public enum IfcTransitionCode { DISCONTINUOUS, CONTINUOUS, CONTSAMEGRADIENT, CONTSAMEGRADIENTSAMECURVATURE };
public enum IfcTransitionCurveType { BIQUADRATICPARABOLA, BLOSSCURVE, CLOTHOIDCURVE, COSINECURVE, CUBICPARABOLA, SINECURVE };
public enum IfcTransportElementTypeEnum { NOTDEFINED, USERDEFINED, ELEVATOR, ESCALATOR, MOVINGWALKWAY, CRANEWAY, LIFTINGGEAR, HAULINGGEAR };
public enum IfcTrimmingPreference { UNSPECIFIED, CARTESIAN, PARAMETER };
public enum IfcTubeBundleTypeEnum { NOTDEFINED, USERDEFINED, FINNED };
public enum IfcUnitaryControlElementTypeEnum { NOTDEFINED, USERDEFINED, ALARMPANEL, CONTROLPANEL, GASDETECTIONPANEL, INDICATORPANEL, MIMICPANEL, HUMIDISTAT, THERMOSTAT, WEATHERSTATION, COMBINED, BASESTATIONCONTROLLER };
public enum IfcUnitaryControlElementTypeEnum { NOTDEFINED, USERDEFINED, ALARMPANEL, CONTROLPANEL, GASDETECTIONPANEL, INDICATORPANEL, MIMICPANEL, HUMIDISTAT, THERMOSTAT, WEATHERSTATION, [VersionAdded(ReleaseVersion.IFC4X3)] COMBINED, [VersionAdded(ReleaseVersion.IFC4X3)] BASESTATIONCONTROLLER };
public enum IfcUnitaryEquipmentTypeEnum { NOTDEFINED, USERDEFINED, AIRHANDLER, AIRCONDITIONINGUNIT, SPLITSYSTEM, ROOFTOPUNIT, DEHUMIDIFIER };
public enum IfcUnitEnum { USERDEFINED, ABSORBEDDOSEUNIT, AMOUNTOFSUBSTANCEUNIT, AREAUNIT, DOSEEQUIVALENTUNIT, ELECTRICCAPACITANCEUNIT, ELECTRICCHARGEUNIT, ELECTRICCONDUCTANCEUNIT, ELECTRICCURRENTUNIT, ELECTRICRESISTANCEUNIT, ELECTRICVOLTAGEUNIT, ENERGYUNIT, FORCEUNIT, FREQUENCYUNIT, ILLUMINANCEUNIT, INDUCTANCEUNIT, LENGTHUNIT, LUMINOUSFLUXUNIT, LUMINOUSINTENSITYUNIT, MAGNETICFLUXDENSITYUNIT, MAGNETICFLUXUNIT, MASSUNIT, PLANEANGLEUNIT, POWERUNIT, PRESSUREUNIT, RADIOACTIVITYUNIT, SOLIDANGLEUNIT, THERMODYNAMICTEMPERATUREUNIT, TIMEUNIT, VOLUMEUNIT };
public enum IfcValveTypeEnum { NOTDEFINED, USERDEFINED, AIRRELEASE, ANTIVACUUM, CHANGEOVER, CHECK, COMMISSIONING, DIVERTING, DRAWOFFCOCK, DOUBLECHECK, DOUBLEREGULATING, FAUCET, FLUSHING, GASCOCK, GASTAP, ISOLATING, MIXING, PRESSUREREDUCING, PRESSURERELIEF, REGULATING, SAFETYCUTOFF, STEAMTRAP, STOPCOCK };
public enum IfcVehicleTypeEnum { NOTDEFINED, USERDEFINED, CARGO, ROLLINGSTOCK, VEHICLE, VEHICLEAIR, VEHICLEMARINE, VEHICLETRACKED, VEHICLEWHEELED };
public enum IfcVibrationDamperTypeEnum { NOTDEFINED, USERDEFINED, BENDING_YIELD, SHEAR_YIELD, AXIAL_YIELD, FRICTION, VISCOUS, RUBBER };
public enum IfcVibrationIsolatorTypeEnum { NOTDEFINED, USERDEFINED, COMPRESSION, SPRING, BASE };
public enum IfcVibrationIsolatorTypeEnum { NOTDEFINED, USERDEFINED, COMPRESSION, SPRING, [VersionAdded(ReleaseVersion.IFC4X2)] BASE };
public enum IfcVirtualElementTypeEnum { NOTDEFINED, USERDEFINED, BOUNDARY, CLEARANCE, PROVISIONFORVOID };
public enum IfcVoidingFeatureTypeEnum { NOTDEFINED, USERDEFINED, CUTOUT, NOTCH, HOLE, MITER, CHAMFER, EDGE };
public enum IfcWallTypeEnum { NOTDEFINED, USERDEFINED, STANDARD, ELEMENTEDWALL, MOVABLE, PARAPET, PARTITIONING, PLUMBINGWALL, POLYGONAL, SHEAR, SOLIDWALL, RETAININGWALL, WAVEWALL }; //IFC4 change STANDARD, POLYGONAL, ELEMENTEDWALL
public enum IfcWallTypeEnum { NOTDEFINED, USERDEFINED, [VersionAdded(ReleaseVersion.IFC4)] STANDARD, [VersionAdded(ReleaseVersion.IFC4)] ELEMENTEDWALL, MOVABLE, PARAPET, PARTITIONING, PLUMBINGWALL, [VersionAdded(ReleaseVersion.IFC4)] POLYGONAL, SHEAR, SOLIDWALL, [VersionAdded(ReleaseVersion.IFC4X2)] RETAININGWALL, [VersionAdded(ReleaseVersion.IFC4X3)] WAVEWALL }; //IFC4 change STANDARD, POLYGONAL, ELEMENTEDWALL
public enum IfcWasteTerminalTypeEnum { NOTDEFINED, USERDEFINED, FLOORTRAP, FLOORWASTE, GULLYSUMP, GULLYTRAP, GREASEINTERCEPTOR, OILINTERCEPTOR, PETROLINTERCEPTOR, ROOFDRAIN, WASTEDISPOSALUNIT, WASTETRAP }; // IFC4
public enum IfcWindowPanelOperationEnum { NOTDEFINED, SIDEHUNGRIGHTHAND, SIDEHUNGLEFTHAND, TILTANDTURNRIGHTHAND, TILTANDTURNLEFTHAND, TOPHUNG, BOTTOMHUNG, PIVOTHORIZONTAL, PIVOTVERTICAL, SLIDINGHORIZONTAL, SLIDINGVERTICAL, REMOVABLECASEMENT, FIXEDCASEMENT, OTHEROPERATION };
public enum IfcWindowPanelPositionEnum { NOTDEFINED, LEFT, MIDDLE, RIGHT, BOTTOM, TOP };

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

@ -101,22 +101,22 @@ namespace GeometryGym.Ifc
[Serializable]
public partial class IfcActuator : IfcDistributionControlElement //IFC4
{
internal IfcActuatorTypeEnum mPredefinedType = IfcActuatorTypeEnum.NOTDEFINED;
public IfcActuatorTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcActuatorTypeEnum mPredefinedType = IfcActuatorTypeEnum.NOTDEFINED;
public IfcActuatorTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcActuatorTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcActuator() : base() { }
internal IfcActuator(DatabaseIfc db, IfcActuator a, DuplicateOptions options) : base(db,a, options) { mPredefinedType = a.mPredefinedType; }
internal IfcActuator(DatabaseIfc db, IfcActuator a, DuplicateOptions options) : base(db,a, options) { PredefinedType = a.mPredefinedType; }
public IfcActuator(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape representation, IfcDistributionSystem system) : base(host, placement,representation, system) { }
}
[Serializable]
public partial class IfcActuatorType : IfcDistributionControlElementType
{
internal IfcActuatorTypeEnum mPredefinedType = IfcActuatorTypeEnum.NOTDEFINED;// : IfcActuatorTypeEnum;
public IfcActuatorTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcActuatorTypeEnum mPredefinedType = IfcActuatorTypeEnum.NOTDEFINED;// : IfcActuatorTypeEnum;
public IfcActuatorTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcActuatorTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcActuatorType() : base() { }
internal IfcActuatorType(DatabaseIfc db, IfcActuatorType t, DuplicateOptions options) : base(db, t, options) { mPredefinedType = t.mPredefinedType; }
public IfcActuatorType(DatabaseIfc m, string name, IfcActuatorTypeEnum t) : base(m) { Name = name; mPredefinedType = t; }
internal IfcActuatorType(DatabaseIfc db, IfcActuatorType t, DuplicateOptions options) : base(db, t, options) { PredefinedType = t.mPredefinedType; }
public IfcActuatorType(DatabaseIfc db, string name, IfcActuatorTypeEnum t) : base(db) { Name = name; PredefinedType = t; }
}
[Serializable]
public abstract partial class IfcAddress : BaseClassIfc, IfcObjectReferenceSelect //ABSTRACT SUPERTYPE OF(ONEOF(IfcPostalAddress, IfcTelecomAddress));
@ -168,88 +168,88 @@ namespace GeometryGym.Ifc
[Serializable]
public partial class IfcAirTerminal : IfcFlowTerminal //IFC4
{
internal IfcAirTerminalTypeEnum mPredefinedType = IfcAirTerminalTypeEnum.NOTDEFINED;// OPTIONAL : IfcAirTerminalTypeEnum;
public IfcAirTerminalTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcAirTerminalTypeEnum mPredefinedType = IfcAirTerminalTypeEnum.NOTDEFINED;// OPTIONAL : IfcAirTerminalTypeEnum;
public IfcAirTerminalTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcAirTerminalTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcAirTerminal() : base() { }
internal IfcAirTerminal(DatabaseIfc db, IfcAirTerminal t, DuplicateOptions options) : base(db, t, options) { mPredefinedType = t.mPredefinedType; }
internal IfcAirTerminal(DatabaseIfc db, IfcAirTerminal t, DuplicateOptions options) : base(db, t, options) { PredefinedType = t.PredefinedType; }
public IfcAirTerminal(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape representation, IfcDistributionSystem system) : base(host, placement, representation, system) { }
}
[Serializable]
public partial class IfcAirTerminalBox : IfcFlowController //IFC4
{
internal IfcAirTerminalBoxTypeEnum mPredefinedType = IfcAirTerminalBoxTypeEnum.NOTDEFINED;// OPTIONAL : IfcAirTerminalBoxTypeEnum;
public IfcAirTerminalBoxTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcAirTerminalBoxTypeEnum mPredefinedType = IfcAirTerminalBoxTypeEnum.NOTDEFINED;// OPTIONAL : IfcAirTerminalBoxTypeEnum;
public IfcAirTerminalBoxTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcAirTerminalBoxTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcAirTerminalBox() : base() { }
internal IfcAirTerminalBox(DatabaseIfc db, IfcAirTerminalBox b, DuplicateOptions options) : base(db, b, options) { mPredefinedType = b.mPredefinedType; }
internal IfcAirTerminalBox(DatabaseIfc db, IfcAirTerminalBox b, DuplicateOptions options) : base(db, b, options) { PredefinedType = b.PredefinedType; }
public IfcAirTerminalBox(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape representation, IfcDistributionSystem system) : base(host, placement, representation, system) { }
}
[Serializable]
public partial class IfcAirTerminalBoxType : IfcFlowControllerType
{
internal IfcAirTerminalBoxTypeEnum mPredefinedType = IfcAirTerminalBoxTypeEnum.NOTDEFINED;// : IfcAirTerminalBoxTypeEnum;
public IfcAirTerminalBoxTypeEnum PredefinedType { get { return mPredefinedType;} set { mPredefinedType = value; } }
private IfcAirTerminalBoxTypeEnum mPredefinedType = IfcAirTerminalBoxTypeEnum.NOTDEFINED;// : IfcAirTerminalBoxTypeEnum;
public IfcAirTerminalBoxTypeEnum PredefinedType { get { return mPredefinedType;} set { mPredefinedType = validPredefinedType<IfcAirTerminalBoxTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcAirTerminalBoxType() : base() { }
internal IfcAirTerminalBoxType(DatabaseIfc db, IfcAirTerminalBoxType t, DuplicateOptions options) : base(db, t, options) { mPredefinedType = t.mPredefinedType; }
public IfcAirTerminalBoxType(DatabaseIfc m, string name, IfcAirTerminalBoxTypeEnum type) : base(m) { Name = name; mPredefinedType = type; }
internal IfcAirTerminalBoxType(DatabaseIfc db, IfcAirTerminalBoxType t, DuplicateOptions options) : base(db, t, options) { PredefinedType = t.mPredefinedType; }
public IfcAirTerminalBoxType(DatabaseIfc db, string name, IfcAirTerminalBoxTypeEnum type) : base(db) { Name = name; PredefinedType = type; }
}
[Serializable]
public partial class IfcAirTerminalType : IfcFlowTerminalType
{
internal IfcAirTerminalTypeEnum mPredefinedType = IfcAirTerminalTypeEnum.NOTDEFINED;// : IfcAirTerminalBoxTypeEnum;
public IfcAirTerminalTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcAirTerminalTypeEnum mPredefinedType = IfcAirTerminalTypeEnum.NOTDEFINED;// : IfcAirTerminalBoxTypeEnum;
public IfcAirTerminalTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcAirTerminalTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcAirTerminalType() : base() { }
internal IfcAirTerminalType(DatabaseIfc db, IfcAirTerminalType t, DuplicateOptions options) : base(db, t, options) { mPredefinedType = t.mPredefinedType; }
public IfcAirTerminalType(DatabaseIfc m, string name, IfcAirTerminalTypeEnum type) : base(m) { Name = name; mPredefinedType = type; }
internal IfcAirTerminalType(DatabaseIfc db, IfcAirTerminalType t, DuplicateOptions options) : base(db, t, options) { PredefinedType = t.mPredefinedType; }
public IfcAirTerminalType(DatabaseIfc db, string name, IfcAirTerminalTypeEnum type) : base(db) { Name = name; PredefinedType = type; }
}
[Serializable]
public partial class IfcAirToAirHeatRecovery : IfcEnergyConversionDevice //IFC4
{
internal IfcAirToAirHeatRecoveryTypeEnum mPredefinedType = IfcAirToAirHeatRecoveryTypeEnum.NOTDEFINED;
public IfcAirToAirHeatRecoveryTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcAirToAirHeatRecoveryTypeEnum mPredefinedType = IfcAirToAirHeatRecoveryTypeEnum.NOTDEFINED;
public IfcAirToAirHeatRecoveryTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcAirToAirHeatRecoveryTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcAirToAirHeatRecovery() : base() { }
internal IfcAirToAirHeatRecovery(DatabaseIfc db, IfcAirToAirHeatRecovery a, DuplicateOptions options) : base(db, a, options) { mPredefinedType = a.mPredefinedType; }
internal IfcAirToAirHeatRecovery(DatabaseIfc db, IfcAirToAirHeatRecovery a, DuplicateOptions options) : base(db, a, options) { PredefinedType = a.mPredefinedType; }
public IfcAirToAirHeatRecovery(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape representation, IfcDistributionSystem system) : base(host, placement, representation, system) { }
}
[Serializable]
public partial class IfcAirToAirHeatRecoveryType : IfcEnergyConversionDeviceType
{
internal IfcAirToAirHeatRecoveryTypeEnum mPredefinedType = IfcAirToAirHeatRecoveryTypeEnum.NOTDEFINED;// : IfcAirToAirHeatRecoveryTypeEnum;
public IfcAirToAirHeatRecoveryTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcAirToAirHeatRecoveryTypeEnum mPredefinedType = IfcAirToAirHeatRecoveryTypeEnum.NOTDEFINED;// : IfcAirToAirHeatRecoveryTypeEnum;
public IfcAirToAirHeatRecoveryTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcAirToAirHeatRecoveryTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcAirToAirHeatRecoveryType() : base() { }
internal IfcAirToAirHeatRecoveryType(DatabaseIfc db, IfcAirToAirHeatRecoveryType t, DuplicateOptions options) : base(db, t, options) { mPredefinedType = t.mPredefinedType; }
public IfcAirToAirHeatRecoveryType(DatabaseIfc m, string name, IfcAirToAirHeatRecoveryTypeEnum type) : base(m) { Name = name; mPredefinedType = type; }
internal IfcAirToAirHeatRecoveryType(DatabaseIfc db, IfcAirToAirHeatRecoveryType t, DuplicateOptions options) : base(db, t, options) { PredefinedType = t.mPredefinedType; }
public IfcAirToAirHeatRecoveryType(DatabaseIfc db, string name, IfcAirToAirHeatRecoveryTypeEnum type) : base(db) { Name = name; PredefinedType = type; }
}
[Serializable]
public partial class IfcAlarm : IfcDistributionControlElement //IFC4
{
internal IfcAlarmTypeEnum mPredefinedType = IfcAlarmTypeEnum.NOTDEFINED;
public IfcAlarmTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcAlarmTypeEnum mPredefinedType = IfcAlarmTypeEnum.NOTDEFINED;
public IfcAlarmTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcAlarmTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcAlarm() : base() { }
internal IfcAlarm(DatabaseIfc db, IfcAlarm a, DuplicateOptions options) : base(db, a, options) { mPredefinedType = a.mPredefinedType; }
internal IfcAlarm(DatabaseIfc db, IfcAlarm a, DuplicateOptions options) : base(db, a, options) { PredefinedType = a.PredefinedType; }
public IfcAlarm(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape representation, IfcDistributionSystem system) : base(host, placement, representation, system) { }
}
[Serializable]
public partial class IfcAlarmType : IfcDistributionControlElementType
{
internal IfcAlarmTypeEnum mPredefinedType = IfcAlarmTypeEnum.NOTDEFINED;// : IfcAlarmTypeEnum;
public IfcAlarmTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcAlarmTypeEnum mPredefinedType = IfcAlarmTypeEnum.NOTDEFINED;// : IfcAlarmTypeEnum;
public IfcAlarmTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcAlarmTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcAlarmType() : base() { }
internal IfcAlarmType(DatabaseIfc db, IfcAlarmType t, DuplicateOptions options) : base(db, t, options) { mPredefinedType = t.mPredefinedType; }
public IfcAlarmType(DatabaseIfc db, string name, IfcAlarmTypeEnum t) : base(db) { Name = name; mPredefinedType = t; }
internal IfcAlarmType(DatabaseIfc db, IfcAlarmType t, DuplicateOptions options) : base(db, t, options) { PredefinedType = t.PredefinedType; }
public IfcAlarmType(DatabaseIfc db, string name, IfcAlarmTypeEnum t) : base(db) { Name = name; PredefinedType = t; }
}
[Serializable]
public partial class IfcAlignment : IfcLinearPositioningElement //IFC4.1
{
internal IfcAlignmentTypeEnum mPredefinedType = IfcAlignmentTypeEnum.NOTDEFINED;// : OPTIONAL IfcAlignmentTypeEnum;
public IfcAlignmentTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcAlignmentTypeEnum mPredefinedType = IfcAlignmentTypeEnum.NOTDEFINED;// : OPTIONAL IfcAlignmentTypeEnum;
public IfcAlignmentTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcAlignmentTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcAlignment() : base() { }
internal IfcAlignment(DatabaseIfc db, IfcAlignment alignment, DuplicateOptions options)
@ -283,14 +283,14 @@ namespace GeometryGym.Ifc
public IfcAlignment(IfcSite host, IfcObjectPlacement placement, IfcAlignmentHorizontal horizontal, IfcAlignmentVertical vertical, IfcAlignmentCant cant, IfcCurve axis)
: this(placement, horizontal, vertical, cant, host, axis) { }
internal override bool isDuplicate(BaseClassIfc e, bool includeAggregated, double tol)
internal override bool isDuplicate(BaseClassIfc e, OptionsTestDuplicate options)
{
IfcAlignment alignment = e as IfcAlignment;
if (alignment == null)
return false;
if (PredefinedType != alignment.PredefinedType)
return false;
return base.isDuplicate(e, includeAggregated, tol);
return base.isDuplicate(e, options);
}
}
[Obsolete("DEPRECATED IFC4X3", false)]
@ -875,7 +875,7 @@ namespace GeometryGym.Ifc
{
return isDuplicate(horizontal, tol);
}
internal override bool isDuplicate(BaseClassIfc e, bool includeAggregated, double tol)
internal override bool isDuplicate(BaseClassIfc e, OptionsTestDuplicate options)
{
IfcAlignmentHorizontal horizontal = e as IfcAlignmentHorizontal;
if (horizontal == null)
@ -887,7 +887,7 @@ namespace GeometryGym.Ifc
}
else if (double.IsNaN(horizontal.mStartDistAlong))
return false;
else if (Math.Abs(mStartDistAlong - horizontal.mStartDistAlong) > tol)
else if (Math.Abs(mStartDistAlong - horizontal.mStartDistAlong) > options.Tolerance)
return false;
if (mHorizontalSegments.Count != horizontal.mHorizontalSegments.Count)
@ -897,11 +897,11 @@ namespace GeometryGym.Ifc
{
IfcAlignmentHorizontalSegment segment1 = mHorizontalSegments[icounter];
IfcAlignmentHorizontalSegment segment2 = horizontal.mHorizontalSegments[icounter];
if (!segment1.isDuplicate(segment2, tol))
if (!segment1.isDuplicate(segment2, options.Tolerance))
return false;
}
return base.isDuplicate(e, includeAggregated, tol);
return base.isDuplicate(e, options);
}
}
[Serializable]
@ -1173,14 +1173,14 @@ namespace GeometryGym.Ifc
DesignParameters = design;
}
internal override bool isDuplicate(BaseClassIfc e, bool includeAggregated, double tol)
internal override bool isDuplicate(BaseClassIfc e, OptionsTestDuplicate options)
{
IfcAlignmentSegment segment = e as IfcAlignmentSegment;
if (segment == null)
return false;
if (!mDesignParameters.isDuplicate(segment.mDesignParameters, tol))
if (!mDesignParameters.isDuplicate(segment.mDesignParameters, options.Tolerance))
return false;
return base.isDuplicate(e, includeAggregated, tol);
return base.isDuplicate(e, options);
}
}
[Serializable]
@ -1358,19 +1358,31 @@ namespace GeometryGym.Ifc
[Serializable]
public partial class IfcAnnotation : IfcProduct
{
internal IfcAnnotationTypeEnum mPredefinedType = IfcAnnotationTypeEnum.NOTDEFINED;//: OPTIONAL IfcBeamTypeEnum; IFC4
public IfcAnnotationTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcAnnotationTypeEnum mPredefinedType = IfcAnnotationTypeEnum.NOTDEFINED;//: OPTIONAL IfcBeamTypeEnum; IFC4
public IfcAnnotationTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcAnnotationTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcAnnotation() : base() { }
public IfcAnnotation(DatabaseIfc db) : base(db) { }
internal IfcAnnotation(DatabaseIfc db, IfcAnnotation a, DuplicateOptions options) : base(db, a, options) { }
public IfcAnnotation(IfcProduct host) : base(host.mDatabase) { host.AddElement(this); }
public IfcAnnotation(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape representation)
: base(host.Database)
{
if (host is IfcSpatialElement spatialElement)
spatialElement.AddElement(this);
else
host.AddAggregated(this);
ObjectPlacement = placement;
Representation = representation;
}
}
[Obsolete("DEPRECATED IFC4", false)]
[Serializable]
public abstract partial class IfcAnnotationCurveOccurrence : IfcAnnotationOccurrence //IFC4 DEPRECATED
{
protected IfcAnnotationCurveOccurrence() : base() { }
protected IfcAnnotationCurveOccurrence(DatabaseIfc db) : base(db) { }
}
[Serializable]
public partial class IfcAnnotationFillArea : IfcGeometricRepresentationItem
@ -1402,6 +1414,7 @@ namespace GeometryGym.Ifc
{
protected IfcAnnotationOccurrence(DatabaseIfc db, IfcAnnotationOccurrence o, DuplicateOptions options) : base(db, o, options) { }
protected IfcAnnotationOccurrence() : base() { }
protected IfcAnnotationOccurrence(DatabaseIfc db) : base(db) { }
}
[Obsolete("DEPRECATED IFC4", false)]
[Serializable]
@ -1428,6 +1441,8 @@ namespace GeometryGym.Ifc
public partial class IfcAnnotationSymbolOccurrence : IfcAnnotationOccurrence //IFC4 DEPRECATED
{
internal IfcAnnotationSymbolOccurrence() : base() { }
internal IfcAnnotationSymbolOccurrence(DatabaseIfc db) : base(db) { }
internal IfcAnnotationSymbolOccurrence(DatabaseIfc db, IfcAnnotationSymbolOccurrence o, DuplicateOptions options) : base(db, o, options) { }
}
[Obsolete("DEPRECATED IFC4", false)]
[Serializable]
@ -1519,7 +1534,7 @@ namespace GeometryGym.Ifc
internal string mName = "";// : OPTIONAL IfcLabel;
internal string mDescription = "";// : OPTIONAL IfcText;
internal IfcAppliedValueSelect mAppliedValue = null;// : OPTIONAL IfcAppliedValueSelect;
internal int mUnitBasis;// : OPTIONAL IfcMeasureWithUnit;
internal IfcMeasureWithUnit mUnitBasis = null;// : OPTIONAL IfcMeasureWithUnit;
internal DateTime mApplicableDate = DateTime.MinValue;// : OPTIONAL IfcDateTimeSelect; 4 IfcDate
internal DateTime mFixedUntilDate = DateTime.MinValue;// : OPTIONAL IfcDateTimeSelect; 4 IfcDate
private IfcDateTimeSelect mSSApplicableDate = null;
@ -1536,7 +1551,7 @@ namespace GeometryGym.Ifc
public string Name { get { return mName; } set { mName = value; } }
public string Description { get { return mDescription; } set { mDescription = value; } }
public IfcAppliedValueSelect AppliedValue { get { return mAppliedValue; } set { mAppliedValue = value; } }
public IfcMeasureWithUnit UnitBasis { get { return mDatabase[mUnitBasis] as IfcMeasureWithUnit; } set { mUnitBasis = (value == null ? 0 : value.mIndex); } }
public IfcMeasureWithUnit UnitBasis { get { return mUnitBasis; } set { mUnitBasis = value; } }
public DateTime ApplicableDate { get { return mApplicableDate; } set { mApplicableDate = value; } }
public DateTime FixedUntilDate { get { return mFixedUntilDate; } set { mFixedUntilDate = value; } }
public string Category { get { return mCategory; } set { mCategory = value; } }
@ -1725,53 +1740,61 @@ namespace GeometryGym.Ifc
}
public void AddConstraintRelationShip(IfcResourceConstraintRelationship constraintRelationship) { mHasConstraintRelationships.Add(constraintRelationship); }
}
[Obsolete("DEPRECATED IFC4", false)]
[Obsolete("DELETED IFC4", false)]
[Serializable]
public partial class IfcApprovalActorRelationship : BaseClassIfc //DEPRECATED IFC4
{
internal int mActor;// : IfcActorSelect;
internal int mApproval;// : IfcApproval;
internal int mRole;// : IfcActorRole;
internal IfcActorSelect mActor;// : IfcActorSelect;
internal IfcApproval mApproval;// : IfcApproval;
internal IfcActorRole mRole;// : IfcActorRole;
internal IfcApprovalActorRelationship() : base() { }
//internal IfcApprovalActorRelationship(IfcApprovalActorRelationship o) : base() { mActor = o.mActor; mApproval = o.mApproval; mRole = o.mRole; }
internal IfcApprovalActorRelationship(DatabaseIfc db) : base(db) { }
internal IfcApprovalActorRelationship(IfcActorSelect actor, IfcApproval approval, IfcActorRole role)
: base(actor.Database) { mActor = actor; mApproval = approval; mRole = role; }
}
[Obsolete("DEPRECATED IFC4", false)]
[Obsolete("DELETED IFC4", false)]
[Serializable]
public partial class IfcApprovalPropertyRelationship : BaseClassIfc //DEPRECATED IFC4
{
internal List<int> mApprovedProperties = new List<int>();// : SET [1:?] OF IfcProperty;
internal int mApproval;// : IfcApproval;
internal SET<IfcProperty> mApprovedProperties = new SET<IfcProperty>();// : SET [1:?] OF IfcProperty;
internal IfcApproval mApproval;// : IfcApproval;
internal IfcApprovalPropertyRelationship() : base() { }
//internal IfcApprovalPropertyRelationship(IfcApprovalPropertyRelationship o) : base() { mApprovedProperties = new List<int>(o.mApprovedProperties.ToArray()); mApproval = o.mApproval; }
internal IfcApprovalPropertyRelationship(DatabaseIfc db) : base(db) { }
internal IfcApprovalPropertyRelationship(IEnumerable<IfcProperty> properties, IfcApproval approval)
: base(approval.Database) { mApprovedProperties.AddRange(properties); mApproval = approval; }
}
[Serializable]
public partial class IfcApprovalRelationship : IfcResourceLevelRelationship //IFC4Change
{
internal int mRelatedApproval;// : IfcApproval;
internal int mRelatingApproval;// : IfcApproval;
internal IfcApproval mRelatedApproval;// : IfcApproval;
internal IfcApproval mRelatingApproval;// : IfcApproval;
internal IfcApprovalRelationship() : base() { }
// internal IfcApprovalRelationship(IfcApprovalRelationship o) : base(o) { mRelatedApproval = o.mRelatedApproval; mRelatingApproval = o.mRelatingApproval; }
internal IfcApprovalRelationship(DatabaseIfc db) : base(db) { }
internal IfcApprovalRelationship(IfcApproval related, IfcApproval relating)
: base(related.Database) { mRelatedApproval = related; mRelatingApproval = relating; }
}
[Serializable]
public partial class IfcArbitraryClosedProfileDef : IfcProfileDef //SUPERTYPE OF(IfcArbitraryProfileDefWithVoids)
{
private int mOuterCurve;//: IfcCurve;
public IfcCurve OuterCurve { get { return mDatabase[mOuterCurve] as IfcCurve; } set { mOuterCurve = value.mIndex; } }
private IfcCurve mOuterCurve;//: IfcCurve;
public IfcCurve OuterCurve { get { return mOuterCurve; } set { mOuterCurve = value; } }
internal IfcArbitraryClosedProfileDef() : base() { }
internal IfcArbitraryClosedProfileDef(DatabaseIfc db, IfcArbitraryClosedProfileDef p, DuplicateOptions options)
: base(db, p, options) { OuterCurve = p.OuterCurve.Duplicate(db, options) as IfcCurve; }
public IfcArbitraryClosedProfileDef(string name, IfcCurve boundedCurve) : base(boundedCurve.mDatabase,name) { mOuterCurve = boundedCurve.mIndex; }//if (string.Compare(getKW, mKW) == 0) mModel.mArbProfiles.Add(this); }
public IfcArbitraryClosedProfileDef(string name, IfcCurve boundedCurve)
: base(boundedCurve.mDatabase,name) { mOuterCurve = boundedCurve; }
}
[Serializable]
public partial class IfcArbitraryOpenProfileDef : IfcProfileDef // SUPERTYPE OF(IfcCenterLineProfileDef)
{
private int mCurve;// : IfcBoundedCurve
public IfcBoundedCurve Curve { get { return mDatabase[mCurve] as IfcBoundedCurve; } set { mCurve = value.mIndex; } }
private IfcBoundedCurve mCurve;// : IfcBoundedCurve
public IfcBoundedCurve Curve { get { return mCurve; } set { mCurve = value; } }
internal IfcArbitraryOpenProfileDef() : base() { }
internal IfcArbitraryOpenProfileDef(DatabaseIfc db, IfcArbitraryOpenProfileDef p, DuplicateOptions options) : base(db, p, options) { Curve = p.Curve.Duplicate(db, options) as IfcBoundedCurve; }
public IfcArbitraryOpenProfileDef(string name, IfcBoundedCurve boundedCurve) : base(boundedCurve.mDatabase,name) { mCurve = boundedCurve.mIndex; mProfileType = IfcProfileTypeEnum.CURVE; }
public IfcArbitraryOpenProfileDef(string name, IfcBoundedCurve boundedCurve)
: base(boundedCurve.mDatabase,name) { mCurve = boundedCurve; mProfileType = IfcProfileTypeEnum.CURVE; }
}
[Serializable]
public partial class IfcArbitraryProfileDefWithVoids : IfcArbitraryClosedProfileDef
@ -1797,44 +1820,44 @@ namespace GeometryGym.Ifc
public partial class IfcAsset : IfcGroup
{
internal string mIdentification = "";// ifc2x3 AssetID; : OPTIONAL IfcIdentifier;
internal int mOriginalValue;// : OPTIONAL IfcCostValue;
internal int mCurrentValue;// : OPTIONAL IfcCostValue;
internal int mTotalReplacementCost;// : OPTIONAL IfcCostValue;
internal int mOwner;// : IfcActorSelect;
internal int mUser;// : IfcActorSelect;
internal int mResponsiblePerson;// : IfcPerson;
internal IfcCostValue mOriginalValue = null;// : OPTIONAL IfcCostValue;
internal IfcCostValue mCurrentValue = null;// : OPTIONAL IfcCostValue;
internal IfcCostValue mTotalReplacementCost = null;// : OPTIONAL IfcCostValue;
internal IfcActorSelect mOwner;// : IfcActorSelect;
internal IfcActorSelect mUser;// : IfcActorSelect;
internal IfcPerson mResponsiblePerson;// : IfcPerson;
internal DateTime mIncorporationDate = DateTime.MinValue; // : IfcDate
internal int mIncorporationDateSS;// : IfcDate Ifc2x3 IfcCalendarDate;
internal int mDepreciatedValue;// : IfcCostValue;
internal IfcCalendarDate mIncorporationDateSS;// : IfcDate Ifc2x3 IfcCalendarDate;
internal IfcCostValue mDepreciatedValue;// : IfcCostValue;
public string Identification { get { return mIdentification; } set { mIdentification = value; } }
public IfcCostValue OriginalValue { get { return mDatabase[mOriginalValue] as IfcCostValue; } set { mOriginalValue = value.mIndex; } }
public IfcCostValue CurrentValue { get { return mDatabase[mCurrentValue] as IfcCostValue; } set { mCurrentValue = value.mIndex; } }
public IfcCostValue TotalReplacementCost { get { return mDatabase[mTotalReplacementCost] as IfcCostValue; } set { mTotalReplacementCost = value.mIndex; } }
public IfcActorSelect Owner { get { return mDatabase[mOwner] as IfcActorSelect; } set { mOwner = value.Index; } }
public IfcActorSelect User { get { return mDatabase[mUser] as IfcActorSelect; } set { mUser = value.Index; } }
public IfcPerson ResponsiblePerson { get { return mDatabase[mResponsiblePerson] as IfcPerson; } set { mResponsiblePerson = value.mIndex; } }
public IfcCostValue OriginalValue { get { return mOriginalValue; } set { mOriginalValue = value; } }
public IfcCostValue CurrentValue { get { return mCurrentValue; } set { mCurrentValue = value; } }
public IfcCostValue TotalReplacementCost { get { return mTotalReplacementCost; } set { mTotalReplacementCost = value; } }
public IfcActorSelect Owner { get { return mOwner; } set { mOwner = value; } }
public IfcActorSelect User { get { return mUser; } set { mUser = value; } }
public IfcPerson ResponsiblePerson { get { return mResponsiblePerson; } set { mResponsiblePerson = value; } }
//public IncorporationDate
public IfcCostValue DepreciatedValue { get { return mDatabase[mDepreciatedValue] as IfcCostValue; } set { mDepreciatedValue = value.mIndex; } }
public IfcCostValue DepreciatedValue { get { return mDepreciatedValue; } set { mDepreciatedValue = value; } }
internal IfcAsset() : base() { }
internal IfcAsset(DatabaseIfc db, IfcAsset a, DuplicateOptions options) : base(db, a, options)
{
mIdentification = a.mIdentification;
OriginalValue = db.Factory.Duplicate(a.OriginalValue) as IfcCostValue;
CurrentValue = db.Factory.Duplicate(a.CurrentValue) as IfcCostValue;
TotalReplacementCost = db.Factory.Duplicate(a.TotalReplacementCost) as IfcCostValue;
Owner = db.Factory.Duplicate(a.mDatabase[a.mOwner]) as IfcActorSelect;
User = db.Factory.Duplicate(a.mDatabase[a.mUser]) as IfcActorSelect;
ResponsiblePerson = db.Factory.Duplicate(a.ResponsiblePerson) as IfcPerson;
OriginalValue = db.Factory.Duplicate(a.OriginalValue);
CurrentValue = db.Factory.Duplicate(a.CurrentValue);
TotalReplacementCost = db.Factory.Duplicate(a.TotalReplacementCost);
Owner = db.Factory.Duplicate(a.mOwner);
User = db.Factory.Duplicate(a.mUser);
ResponsiblePerson = db.Factory.Duplicate(a.ResponsiblePerson);
mIncorporationDate = a.mIncorporationDate;
if(a.mIncorporationDateSS > 0)
mIncorporationDateSS = db.Factory.Duplicate(a.mDatabase[ a.mIncorporationDateSS]).mIndex;
if(a.mIncorporationDateSS != null)
mIncorporationDateSS = db.Factory.Duplicate(a.mIncorporationDateSS);
DepreciatedValue = db.Factory.Duplicate(a.DepreciatedValue) as IfcCostValue;
}
public IfcAsset(DatabaseIfc m, string name) : base(m,name) { }
public IfcAsset(DatabaseIfc db, string name) : base(db, name) { }
}
[Serializable]
public partial class IfcAsymmetricIShapeProfileDef : IfcParameterizedProfileDef // Ifc2x3 IfcIShapeProfileDef
@ -1893,33 +1916,34 @@ namespace GeometryGym.Ifc
[Serializable]
public partial class IfcAudioVisualAppliance : IfcFlowTerminal //IFC4
{
internal IfcAudioVisualApplianceTypeEnum mPredefinedType = IfcAudioVisualApplianceTypeEnum.NOTDEFINED;// OPTIONAL : IfcAudioVisualApplianceTypeEnum;
public IfcAudioVisualApplianceTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcAudioVisualApplianceTypeEnum mPredefinedType = IfcAudioVisualApplianceTypeEnum.NOTDEFINED;// OPTIONAL : IfcAudioVisualApplianceTypeEnum;
public IfcAudioVisualApplianceTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcAudioVisualApplianceTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcAudioVisualAppliance() : base() { }
internal IfcAudioVisualAppliance(DatabaseIfc db, IfcAudioVisualAppliance a, DuplicateOptions options) : base(db,a, options) { mPredefinedType = a.mPredefinedType; }
internal IfcAudioVisualAppliance(DatabaseIfc db, IfcAudioVisualAppliance a, DuplicateOptions options) : base(db,a, options) { PredefinedType = a.PredefinedType; }
public IfcAudioVisualAppliance(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape representation, IfcDistributionSystem system) : base(host, placement, representation, system) { }
}
[Serializable]
public partial class IfcAudioVisualApplianceType : IfcFlowTerminalType
{
internal IfcAudioVisualApplianceTypeEnum mPredefinedType = IfcAudioVisualApplianceTypeEnum.NOTDEFINED;// : IfcAudioVisualApplianceBoxTypeEnum;
public IfcAudioVisualApplianceTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcAudioVisualApplianceTypeEnum mPredefinedType = IfcAudioVisualApplianceTypeEnum.NOTDEFINED;// : IfcAudioVisualApplianceBoxTypeEnum;
public IfcAudioVisualApplianceTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcAudioVisualApplianceTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcAudioVisualApplianceType() : base() { }
internal IfcAudioVisualApplianceType(DatabaseIfc db, IfcAudioVisualApplianceType t, DuplicateOptions options) : base(db, t, options) { mPredefinedType = t.mPredefinedType; }
public IfcAudioVisualApplianceType(DatabaseIfc m, string name, IfcAudioVisualApplianceTypeEnum t) : base(m) { Name = name; mPredefinedType = t; }
internal IfcAudioVisualApplianceType(DatabaseIfc db, IfcAudioVisualApplianceType t, DuplicateOptions options) : base(db, t, options) { PredefinedType = t.PredefinedType; }
public IfcAudioVisualApplianceType(DatabaseIfc db, string name, IfcAudioVisualApplianceTypeEnum t) : base(db) { Name = name; PredefinedType = t; }
}
[Serializable]
public partial class IfcAxis1Placement : IfcPlacement
{
private int mAxis;// : OPTIONAL IfcDirection
private IfcDirection mAxis;// : OPTIONAL IfcDirection
public IfcCartesianPoint Location { get { return mLocation as IfcCartesianPoint; } set { mLocation = value; } }
public IfcDirection Axis { get { return (mAxis > 0 ? mDatabase[mAxis] as IfcDirection : null); } set { mAxis = (value == null ? 0 : value.mIndex); } }
public IfcDirection Axis { get { return mAxis; } set { mAxis = value; } }
internal IfcAxis1Placement() : base() { }
internal IfcAxis1Placement(DatabaseIfc db, IfcAxis1Placement p, DuplicateOptions options) : base(db, p, options) { if(p.mAxis > 0) Axis = db.Factory.Duplicate( p.Axis) as IfcDirection; }
internal IfcAxis1Placement(DatabaseIfc db, IfcAxis1Placement p, DuplicateOptions options)
: base(db, p, options) { if(p.mAxis != null) Axis = db.Factory.Duplicate( p.Axis) as IfcDirection; }
public IfcAxis1Placement(DatabaseIfc db) : base(db) { }
public IfcAxis1Placement(IfcCartesianPoint location) : base(location) { }
public IfcAxis1Placement(IfcDirection axis) : base(axis.mDatabase) { Axis = axis; }

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

@ -32,11 +32,11 @@ namespace GeometryGym.Ifc
[Serializable]
public partial class IfcBeam : IfcBuiltElement
{
internal IfcBeamTypeEnum mPredefinedType = IfcBeamTypeEnum.NOTDEFINED;//: OPTIONAL IfcBeamTypeEnum; IFC4
public IfcBeamTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcBeamTypeEnum mPredefinedType = IfcBeamTypeEnum.NOTDEFINED;//: OPTIONAL IfcBeamTypeEnum; IFC4
public IfcBeamTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcBeamTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcBeam() : base() { }
internal IfcBeam(DatabaseIfc db, IfcBeam b, DuplicateOptions options) : base(db, b, options) { mPredefinedType = b.mPredefinedType; }
internal IfcBeam(DatabaseIfc db, IfcBeam b, DuplicateOptions options) : base(db, b, options) { PredefinedType = b.PredefinedType; }
public IfcBeam(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape shape) : base(host, placement, shape) { }
public IfcBeam(IfcProduct host, IfcMaterialProfileSetUsage profile, IfcAxis2Placement3D placement, double length) : base(host, profile, placement,length) { }
public IfcBeam(IfcProduct host, IfcMaterialProfileSetUsage profile, IfcAxis2Placement3D placement, Tuple<double, double> arcOrigin, double arcAngle) : base(host, profile, placement, arcOrigin,arcAngle) { }
@ -54,38 +54,38 @@ namespace GeometryGym.Ifc
[Serializable]
public partial class IfcBeamType : IfcBuiltElementType
{
internal IfcBeamTypeEnum mPredefinedType = IfcBeamTypeEnum.NOTDEFINED;
public IfcBeamTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcBeamTypeEnum mPredefinedType = IfcBeamTypeEnum.NOTDEFINED;
public IfcBeamTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcBeamTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcBeamType() : base() { }
internal IfcBeamType(DatabaseIfc db, IfcBeamType t, DuplicateOptions options) : base(db, t, options) { mPredefinedType = t.mPredefinedType; }
public IfcBeamType(DatabaseIfc db, string name, IfcBeamTypeEnum type) : base(db) { Name = name; mPredefinedType = type; }
internal IfcBeamType(DatabaseIfc db, IfcBeamType t, DuplicateOptions options) : base(db, t, options) { PredefinedType = t.PredefinedType; }
public IfcBeamType(DatabaseIfc db, string name, IfcBeamTypeEnum type) : base(db) { Name = name; PredefinedType = type; }
public IfcBeamType(string name, IfcMaterialProfile mp, IfcBeamTypeEnum type) : this(name, new IfcMaterialProfileSet(name, mp), type) { }
public IfcBeamType(string name, IfcMaterialProfileSet ps, IfcBeamTypeEnum type) : base(ps.mDatabase)
{
Name = name;
mPredefinedType = type;
PredefinedType = type;
if(ps.mTaperEnd != null)
mTapering = ps;
else
MaterialSelect = ps;
}
}
[Serializable]
[Serializable, VersionAdded(ReleaseVersion.IFC4X2)]
public partial class IfcBearing : IfcBuiltElement
{
private IfcBearingTypeEnum mPredefinedType = IfcBearingTypeEnum.NOTDEFINED; //: OPTIONAL IfcBearingTypeEnum;
public IfcBearingTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
public IfcBearingTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcBearingTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
public IfcBearing() : base() { }
public IfcBearing(DatabaseIfc db) : base(db) { }
public IfcBearing(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape representation) : base(host, placement, representation) { }
}
[Serializable]
[Serializable, VersionAdded(ReleaseVersion.IFC4X2)]
public partial class IfcBearingType : IfcBuiltElementType
{
private IfcBearingTypeEnum mPredefinedType = IfcBearingTypeEnum.NOTDEFINED; //: IfcBearingTypeEnum;
public IfcBearingTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
public IfcBearingTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcBearingTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
public IfcBearingType() : base() { }
public IfcBearingType(DatabaseIfc db, string name, IfcBearingTypeEnum predefinedType)
@ -127,21 +127,21 @@ namespace GeometryGym.Ifc
[Serializable]
public partial class IfcBoiler : IfcEnergyConversionDevice //IFC4
{
internal IfcBoilerTypeEnum mPredefinedType = IfcBoilerTypeEnum.NOTDEFINED;
public IfcBoilerTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcBoilerTypeEnum mPredefinedType = IfcBoilerTypeEnum.NOTDEFINED;
public IfcBoilerTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcBoilerTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcBoiler() : base() { }
internal IfcBoiler(DatabaseIfc db, IfcBoiler b, DuplicateOptions options) : base(db, b, options) { mPredefinedType = b.mPredefinedType; }
internal IfcBoiler(DatabaseIfc db, IfcBoiler b, DuplicateOptions options) : base(db, b, options) { PredefinedType = b.PredefinedType; }
public IfcBoiler(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape representation, IfcDistributionSystem system) : base(host, placement, representation, system) { }
}
[Serializable]
public partial class IfcBoilerType : IfcEnergyConversionDeviceType
{
internal IfcBoilerTypeEnum mPredefinedType = IfcBoilerTypeEnum.NOTDEFINED;// : IfcBoilerypeEnum;
public IfcBoilerTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcBoilerTypeEnum mPredefinedType = IfcBoilerTypeEnum.NOTDEFINED;// : IfcBoilerypeEnum;
public IfcBoilerTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcBoilerTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcBoilerType() : base() { }
internal IfcBoilerType(DatabaseIfc db, IfcBoilerType t, DuplicateOptions options) : base(db, t, options) { mPredefinedType = t.mPredefinedType; }
public IfcBoilerType(DatabaseIfc db, string name, IfcBoilerTypeEnum type) : base(db) { Name = name; mPredefinedType = type; }
internal IfcBoilerType(DatabaseIfc db, IfcBoilerType t, DuplicateOptions options) : base(db, t, options) { PredefinedType = t.PredefinedType; }
public IfcBoilerType(DatabaseIfc db, string name, IfcBoilerTypeEnum type) : base(db) { Name = name; PredefinedType = type; }
}
[Serializable]
public partial class IfcBooleanClippingResult : IfcBooleanResult
@ -192,7 +192,7 @@ namespace GeometryGym.Ifc
return null;
}
}
[Serializable]
[Serializable, VersionAdded(ReleaseVersion.IFC4X3)]
public partial class IfcBorehole : IfcGeotechnicalAssembly
{
public IfcBorehole() : base() { }
@ -316,8 +316,8 @@ namespace GeometryGym.Ifc
internal IfcWarpingStiffnessSelect mWarpingStiffness;// : OPTIONAL IfcWarpingStiffnessSelect;
internal IfcBoundaryNodeConditionWarping() : base() { }
internal IfcBoundaryNodeConditionWarping(DatabaseIfc db, IfcBoundaryNodeConditionWarping b) : base(db, b) { mWarpingStiffness = b.mWarpingStiffness; }
public IfcBoundaryNodeConditionWarping(DatabaseIfc m, string name, IfcTranslationalStiffnessSelect x, IfcTranslationalStiffnessSelect y, IfcTranslationalStiffnessSelect z, IfcRotationalStiffnessSelect xx, IfcRotationalStiffnessSelect yy, IfcRotationalStiffnessSelect zz, IfcWarpingStiffnessSelect w)
: base(m, name, x, y, z, xx, yy, zz) { mWarpingStiffness = w; }
public IfcBoundaryNodeConditionWarping(DatabaseIfc db, string name, IfcTranslationalStiffnessSelect x, IfcTranslationalStiffnessSelect y, IfcTranslationalStiffnessSelect z, IfcRotationalStiffnessSelect xx, IfcRotationalStiffnessSelect yy, IfcRotationalStiffnessSelect zz, IfcWarpingStiffnessSelect w)
: base(db, name, x, y, z, xx, yy, zz) { mWarpingStiffness = w; }
}
[Serializable]
public abstract partial class IfcBoundedCurve : IfcCurve, IfcCurveOrEdgeCurve //ABSTRACT SUPERTYPE OF (ONEOF (IfcBSplineCurve ,IfcCompositeCurve ,IfcPolyline ,IfcTrimmedCurve)) IFC4 IfcIndexedPolyCurve IFC4x1 IfcCurveSegment2D IfcAlignment2DHorizontal
@ -364,10 +364,10 @@ namespace GeometryGym.Ifc
[Serializable]
public partial class IfcBoundingBox : IfcGeometricRepresentationItem
{
private int mCorner;// : IfcCartesianPoint;
private IfcCartesianPoint mCorner;// : IfcCartesianPoint;
private double mXDim, mYDim, mZDim;// : IfcPositiveLengthMeasure
public IfcCartesianPoint Corner { get { return mDatabase[mCorner] as IfcCartesianPoint; } set { mCorner = value.mIndex; } }
public IfcCartesianPoint Corner { get { return mCorner; } set { mCorner = value; } }
public double XDim { get { return mXDim; } set { mXDim = value; } }
public double YDim { get { return mYDim; } set { mYDim = value; } }
public double ZDim { get { return mZDim; } set { mZDim = value; } }
@ -376,9 +376,7 @@ namespace GeometryGym.Ifc
internal IfcBoundingBox(DatabaseIfc db, IfcBoundingBox b, DuplicateOptions options) : base(db, b, options) { Corner = db.Factory.Duplicate(b.Corner) as IfcCartesianPoint; mXDim = b.mXDim; mYDim = b.mYDim; mZDim = b.mZDim; }
public IfcBoundingBox(IfcCartesianPoint pt, double xdim, double ydim, double zdim) : base(pt.mDatabase)
{
//if (mModel.mModelView != ModelView.NotAssigned && mModel.mModelView != ModelView.IFC2x3Coordination)
// throw new Exception("Invalid Model View for IfcBoundingBox : " + m.ModelView.ToString());
mCorner = pt.mIndex;
mCorner = pt;
mXDim = xdim;
mYDim = ydim;
mZDim = zdim;
@ -387,8 +385,8 @@ namespace GeometryGym.Ifc
[Serializable]
public partial class IfcBoxedHalfSpace : IfcHalfSpaceSolid
{
private int mEnclosure;// : IfcBoundingBox;
public IfcBoundingBox Enclosure { get { return mDatabase[mEnclosure] as IfcBoundingBox; } set { mEnclosure = value.mIndex; } }
private IfcBoundingBox mEnclosure;// : IfcBoundingBox;
public IfcBoundingBox Enclosure { get { return mEnclosure; } set { mEnclosure = value; } }
internal IfcBoxedHalfSpace() : base() { }
internal IfcBoxedHalfSpace(DatabaseIfc db, IfcBoxedHalfSpace s, DuplicateOptions options) : base(db, s, options) { Enclosure = db.Factory.Duplicate(s.Enclosure) as IfcBoundingBox; }
@ -397,19 +395,20 @@ namespace GeometryGym.Ifc
public partial class IfcBridge : IfcFacility
{
private IfcBridgeTypeEnum mPredefinedType = IfcBridgeTypeEnum.NOTDEFINED; //: OPTIONAL IfcBridgeTypeEnum;
public IfcBridgeTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
public IfcBridgeTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcBridgeTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
public IfcBridge() : base() { }
public IfcBridge(DatabaseIfc db) : base(db) { }
public IfcBridge(DatabaseIfc db, IfcBridge bridge, DuplicateOptions options) : base(db, bridge, options) { }
public IfcBridge(DatabaseIfc db, string name) : base(db, name) { }
public IfcBridge(IfcFacility host, string name, IfcObjectPlacement placement, IfcProductDefinitionShape representation) : base(host, placement, representation) { Name = name; }
public IfcBridge(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape representation) : base(host, placement, representation) { }
internal IfcBridge(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape representation) : base(host, placement, representation) { }
}
[Serializable]
public partial class IfcBridgePart : IfcFacilityPart
{
private IfcBridgePartTypeEnum mPredefinedType = IfcBridgePartTypeEnum.NOTDEFINED; //: OPTIONAL IfcBridgeTypeEnum;
public IfcBridgePartTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
public IfcBridgePartTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcBridgePartTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
public override string StepClassName { get { if (mDatabase != null && mDatabase.Release > ReleaseVersion.IFC4X2 && mDatabase.Release < ReleaseVersion.IFC4X3) return "IfcFacilityPart"; return base.StepClassName; } }
public IfcBridgePart() : base() { }
public IfcBridgePart(DatabaseIfc db) : base(db) { }
@ -523,10 +522,10 @@ namespace GeometryGym.Ifc
internal List<double> mVKnots = new List<double>();// : LIST [2:?] OF IfcParameterValue;
internal IfcKnotType mKnotSpec = IfcKnotType.UNSPECIFIED;//: IfcKnotType;
public ReadOnlyCollection<int> UMultiplicities { get { return new ReadOnlyCollection<int>(mUMultiplicities); } }
public ReadOnlyCollection<int> VMultiplicities { get { return new ReadOnlyCollection<int>(mVMultiplicities); } }
public ReadOnlyCollection<double> UKnots { get { return new ReadOnlyCollection<double>(mUKnots); } }
public ReadOnlyCollection<double> VKnots { get { return new ReadOnlyCollection<double>(mVKnots); } }
public List<int> UMultiplicities { get { return mUMultiplicities; } }
public List<int> VMultiplicities { get { return mVMultiplicities; } }
public List<double> UKnots { get { return mUKnots; } }
public List<double> VKnots { get { return mVKnots; } }
public IfcKnotType KnotSpec { get { return mKnotSpec; } }
internal IfcBSplineSurfaceWithKnots() : base() { }
@ -602,59 +601,47 @@ namespace GeometryGym.Ifc
[Serializable]
public partial class IfcBuildingElementPart : IfcElementComponent
{
internal IfcBuildingElementPartTypeEnum mPredefinedType = IfcBuildingElementPartTypeEnum.NOTDEFINED;//: OPTIONAL IfcBuildingElementPartTypeEnum; IFC4 added
public IfcBuildingElementPartTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcBuildingElementPartTypeEnum mPredefinedType = IfcBuildingElementPartTypeEnum.NOTDEFINED;//: OPTIONAL IfcBuildingElementPartTypeEnum; IFC4 added
public IfcBuildingElementPartTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcBuildingElementPartTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcBuildingElementPart() : base() { }
internal IfcBuildingElementPart(DatabaseIfc db, IfcBuildingElementPart p, DuplicateOptions options) : base(db, p, options) { mPredefinedType = p.mPredefinedType; }
internal IfcBuildingElementPart(DatabaseIfc db, IfcBuildingElementPart p, DuplicateOptions options) : base(db, p, options) { PredefinedType = p.PredefinedType; }
public IfcBuildingElementPart(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape representation) : base(host, placement, representation) { }
}
[Serializable]
public partial class IfcBuildingElementPartType : IfcElementComponentType
{
internal IfcBuildingElementPartTypeEnum mPredefinedType = IfcBuildingElementPartTypeEnum.NOTDEFINED;// : IfcBuildingElementPartTypeEnum;
public IfcBuildingElementPartTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcBuildingElementPartTypeEnum mPredefinedType = IfcBuildingElementPartTypeEnum.NOTDEFINED;// : IfcBuildingElementPartTypeEnum;
public IfcBuildingElementPartTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcBuildingElementPartTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcBuildingElementPartType() : base() { }
internal IfcBuildingElementPartType(DatabaseIfc db, IfcBuildingElementPartType t, DuplicateOptions options) : base(db, t, options) { mPredefinedType = t.mPredefinedType; }
public IfcBuildingElementPartType(DatabaseIfc m, string name, IfcBuildingElementPartTypeEnum type) : base(m) { Name = name; if (mDatabase.mRelease < ReleaseVersion.IFC4) throw new Exception("XXX Only valid in IFC4 or newer!"); mPredefinedType = type; }
internal IfcBuildingElementPartType(DatabaseIfc db, IfcBuildingElementPartType t, DuplicateOptions options) : base(db, t, options) { PredefinedType = t.PredefinedType; }
public IfcBuildingElementPartType(DatabaseIfc db, string name, IfcBuildingElementPartTypeEnum type) : base(db) { Name = name; PredefinedType = type; }
}
[Serializable]
public partial class IfcBuildingElementProxy : IfcBuiltElement
{
internal IfcBuildingElementProxyTypeEnum mPredefinedType = IfcBuildingElementProxyTypeEnum.NOTDEFINED; // : OPTIONAL IfcBuildingElementProxyTypeEnum;
private IfcBuildingElementProxyTypeEnum mPredefinedType = IfcBuildingElementProxyTypeEnum.NOTDEFINED; // : OPTIONAL IfcBuildingElementProxyTypeEnum;
//Ifc2x3 internal IfcElementCompositionEnum mCompositionType = IfcElementCompositionEnum.NA;// : OPTIONAL IfcElementCompositionEnum;
public IfcBuildingElementProxyTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
public IfcBuildingElementProxyTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcBuildingElementProxyTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
public override string Name { get { return base.Name; } set { base.Name = (string.IsNullOrEmpty(value) ? "NOTDEFINED" : value); } }
internal IfcBuildingElementProxy() : base() { }
internal IfcBuildingElementProxy(DatabaseIfc db, IfcBuildingElementProxy p, DuplicateOptions options) : base(db, p, options) { mPredefinedType = p.mPredefinedType; }
internal IfcBuildingElementProxy(DatabaseIfc db, IfcBuildingElementProxy p, DuplicateOptions options) : base(db, p, options) { PredefinedType = p.PredefinedType; }
public IfcBuildingElementProxy(IfcObjectDefinition host, IfcObjectPlacement p, IfcProductDefinitionShape r) : base(host, p, r) { Name = "NOTDEFINED"; }
public IfcBuildingElementProxy(IfcProduct host, IfcMaterialProfileSetUsage profile, IfcAxis2Placement3D placement, double length) : base(host, profile, placement,length) { }
}
[Serializable]
public partial class IfcBuildingElementProxyType : IfcBuiltElementType
{
internal IfcBuildingElementProxyTypeEnum mPredefinedType = IfcBuildingElementProxyTypeEnum.NOTDEFINED;// : IfcBuildingElementProxyTypeEnum;
public IfcBuildingElementProxyTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcBuildingElementProxyTypeEnum mPredefinedType = IfcBuildingElementProxyTypeEnum.NOTDEFINED;// : IfcBuildingElementProxyTypeEnum;
public IfcBuildingElementProxyTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcBuildingElementProxyTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcBuildingElementProxyType() : base() { }
internal IfcBuildingElementProxyType(DatabaseIfc db, IfcBuildingElementProxyType t, DuplicateOptions options) : base(db, t, options) { mPredefinedType = t.mPredefinedType; }
public IfcBuildingElementProxyType(DatabaseIfc m, string name, IfcBuildingElementProxyTypeEnum type) : base(m)
{
Name = name;
mPredefinedType = type;
if (m.mRelease < ReleaseVersion.IFC4)
{
if (type != IfcBuildingElementProxyTypeEnum.USERDEFINED && type != IfcBuildingElementProxyTypeEnum.NOTDEFINED)
{
if (string.IsNullOrEmpty(ElementType))
ElementType = type.ToString();
mPredefinedType = IfcBuildingElementProxyTypeEnum.USERDEFINED;
}
}
}
internal IfcBuildingElementProxyType(DatabaseIfc db, IfcBuildingElementProxyType t, DuplicateOptions options) : base(db, t, options) { PredefinedType = t.PredefinedType; }
public IfcBuildingElementProxyType(DatabaseIfc db, string name, IfcBuildingElementProxyTypeEnum type)
: base(db) { Name = name; PredefinedType = type; }
}
[Serializable]
public partial class IfcBuiltElementType : IfcElementType //ABSTRACT SUPERTYPE OF (ONEOF (IfcBeamType, IfcBuildingElementProxyType, IfcChimneyType, IfcColumnType,
@ -662,7 +649,7 @@ namespace GeometryGym.Ifc
//IfcRoofType, IfcShadingDeviceType, IfcSlabType, IfcStairFlightType, IfcStairType, IfcWallType, IfcWindowType))
protected IfcBuiltElementType() : base() { }
protected IfcBuiltElementType(DatabaseIfc db) : base(db) { }
protected IfcBuiltElementType(DatabaseIfc db, string name) : base(db) { Name = name; }
public IfcBuiltElementType(DatabaseIfc db, string name) : base(db) { Name = name; }
protected IfcBuiltElementType(DatabaseIfc db, IfcBuiltElementType t, DuplicateOptions options) : base(db, t, options) { }
}
[Serializable]
@ -700,34 +687,34 @@ namespace GeometryGym.Ifc
return base.StepClassName;
}
}
internal IfcBuiltSystemTypeEnum mPredefinedType = IfcBuiltSystemTypeEnum.NOTDEFINED;// : OPTIONAL IfcBuildingSystemTypeEnum;
private IfcBuiltSystemTypeEnum mPredefinedType = IfcBuiltSystemTypeEnum.NOTDEFINED;// : OPTIONAL IfcBuildingSystemTypeEnum;
internal string mLongName = ""; // OPTIONAL IfcLabel IFC4ADD1
public IfcBuiltSystemTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
public IfcBuiltSystemTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcBuiltSystemTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
public string LongName { get { return mLongName; } set { mLongName = value; } }
internal IfcBuiltSystem() : base() { }
internal IfcBuiltSystem(DatabaseIfc db, IfcBuiltSystem s, DuplicateOptions options) : base(db, s, options) { mLongName = s.mLongName; mPredefinedType = s.mPredefinedType; }
public IfcBuiltSystem(IfcSpatialElement bldg, string name, IfcBuiltSystemTypeEnum type) : base(bldg, name) { mPredefinedType = type; }
internal IfcBuiltSystem(DatabaseIfc db, IfcBuiltSystem s, DuplicateOptions options) : base(db, s, options) { mLongName = s.mLongName; PredefinedType = s.mPredefinedType; }
public IfcBuiltSystem(IfcSpatialElement bldg, string name, IfcBuiltSystemTypeEnum type) : base(bldg, name) { PredefinedType = type; }
}
[Serializable]
public partial class IfcBurner : IfcEnergyConversionDevice //IFC4
{
internal IfcBurnerTypeEnum mPredefinedType = IfcBurnerTypeEnum.NOTDEFINED;// OPTIONAL : IfctypeEnum;
public IfcBurnerTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcBurnerTypeEnum mPredefinedType = IfcBurnerTypeEnum.NOTDEFINED;// OPTIONAL : IfctypeEnum;
public IfcBurnerTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcBurnerTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcBurner() : base() { }
internal IfcBurner(DatabaseIfc db, IfcBurner b, DuplicateOptions options) : base(db, b, options) { mPredefinedType = b.mPredefinedType; }
internal IfcBurner(DatabaseIfc db, IfcBurner b, DuplicateOptions options) : base(db, b, options) { PredefinedType = b.mPredefinedType; }
public IfcBurner(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape representation, IfcDistributionSystem system) : base(host, placement, representation, system) { }
}
[Serializable]
public partial class IfcBurnerType : IfcEnergyConversionDeviceType
{
internal IfcBurnerTypeEnum mPredefinedType = IfcBurnerTypeEnum.NOTDEFINED;// : IfcBurnerTypeEnum
public IfcBurnerTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcBurnerTypeEnum mPredefinedType = IfcBurnerTypeEnum.NOTDEFINED;// : IfcBurnerTypeEnum
public IfcBurnerTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcBurnerTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcBurnerType() : base() { }
internal IfcBurnerType(DatabaseIfc db, IfcBurnerType t, DuplicateOptions options) : base(db, t, options) { mPredefinedType = t.mPredefinedType; }
public IfcBurnerType(DatabaseIfc m, string name, IfcBurnerTypeEnum type) : base(m) { Name = name; mPredefinedType = type; }
internal IfcBurnerType(DatabaseIfc db, IfcBurnerType t, DuplicateOptions options) : base(db, t, options) { PredefinedType = t.PredefinedType; }
public IfcBurnerType(DatabaseIfc db, string name, IfcBurnerTypeEnum type) : base(db) { Name = name; PredefinedType = type; }
}
}

Разница между файлами не показана из-за своего большого размера Загрузить разницу

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

@ -31,22 +31,22 @@ namespace GeometryGym.Ifc
[Serializable]
public partial class IfcDamper : IfcFlowController //IFC4
{
internal IfcDamperTypeEnum mPredefinedType = IfcDamperTypeEnum.NOTDEFINED;// OPTIONAL : IfcDamperTypeEnum;
public IfcDamperTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcDamperTypeEnum mPredefinedType = IfcDamperTypeEnum.NOTDEFINED;// OPTIONAL : IfcDamperTypeEnum;
public IfcDamperTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcDamperTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcDamper() : base() { }
internal IfcDamper(DatabaseIfc db, IfcDamper d, DuplicateOptions options) : base(db, d, options) { mPredefinedType = d.mPredefinedType; }
internal IfcDamper(DatabaseIfc db, IfcDamper d, DuplicateOptions options) : base(db, d, options) { PredefinedType = d.PredefinedType; }
public IfcDamper(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape representation, IfcDistributionSystem system) : base(host, placement, representation, system) { }
}
[Serializable]
public partial class IfcDamperType : IfcFlowControllerType
{
internal IfcDamperTypeEnum mPredefinedType = IfcDamperTypeEnum.NOTDEFINED;// : IfcDamperTypeEnum;
public IfcDamperTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcDamperTypeEnum mPredefinedType = IfcDamperTypeEnum.NOTDEFINED;// : IfcDamperTypeEnum;
public IfcDamperTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcDamperTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcDamperType() : base() { }
internal IfcDamperType(DatabaseIfc db, IfcDamperType t, DuplicateOptions options) : base(db, t, options) { mPredefinedType = t.mPredefinedType; }
public IfcDamperType(DatabaseIfc m, string name, IfcDamperTypeEnum t) : base(m) { Name = name; mPredefinedType = t; }
internal IfcDamperType(DatabaseIfc db, IfcDamperType t, DuplicateOptions options) : base(db, t, options) { PredefinedType = t.PredefinedType; }
public IfcDamperType(DatabaseIfc db, string name, IfcDamperTypeEnum t) : base(db) { Name = name; PredefinedType = t; }
}
[Obsolete("DELETED IFC4", false)]
[Serializable]
@ -82,7 +82,7 @@ namespace GeometryGym.Ifc
}
}
public interface IfcDateTimeSelect : IBaseClassIfc { DateTime DateTime { get; } } // IFC2x3 IfcCalenderDate, IfcDateAndTime, IfcLocalTime
[Serializable]
[Serializable, VersionAdded(ReleaseVersion.IFC4X2)]
public partial class IfcDeepFoundation : IfcBuiltElement
{
public IfcDeepFoundation() : base() { }
@ -90,7 +90,7 @@ namespace GeometryGym.Ifc
public IfcDeepFoundation(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape representation) : base(host, placement, representation) { }
internal IfcDeepFoundation(DatabaseIfc db, IfcDeepFoundation f, DuplicateOptions options) : base(db, f, options) { }
}
[Serializable]
[Serializable, VersionAdded(ReleaseVersion.IFC4X2)]
public partial class IfcDeepFoundationType : IfcBuiltElementType
{
public IfcDeepFoundationType() : base() { }
@ -230,16 +230,19 @@ namespace GeometryGym.Ifc
[Serializable]
public partial class IfcDimensionCurve : IfcAnnotationCurveOccurrence // DEPRECATED IFC4
{
internal List<int> mAnnotatedBySymbols = new List<int>();// SET [0:2] OF IfcTerminatorSymbol FOR AnnotatedCurve;
internal SET<IfcTerminatorSymbol> mAnnotatedBySymbols = new SET<IfcTerminatorSymbol>();// SET [0:2] OF IfcTerminatorSymbol FOR AnnotatedCurve;
public SET<IfcTerminatorSymbol> AnnotatedBySymbols { get { return mAnnotatedBySymbols; } }
internal IfcDimensionCurve() : base() { }
//internal IfcDimensionCurve(DatabaseIfc db, IfcDimensionCurve p) : base(p) { mAnnotatedBySymbols = new List<int>(p.mAnnotatedBySymbols.ToArray()); }
public IfcDimensionCurve(DatabaseIfc db) : base(db) { }
public IfcDimensionCurve(IfcTerminatorSymbol symbol) : base(symbol.Database) { mAnnotatedBySymbols.Add(symbol); }
public IfcDimensionCurve(IfcTerminatorSymbol symbol1, IfcTerminatorSymbol symbol2) : this(symbol1) { mAnnotatedBySymbols.Add(symbol2); }
}
[Obsolete("DEPRECATED IFC4", false)]
[Serializable]
public partial class IfcDimensionCurveDirectedCallout : IfcDraughtingCallout // DEPRECATED IFC4 SUPERTYPE OF (ONEOF (IfcAngularDimension ,IfcDiameterDimension ,IfcLinearDimension ,IfcRadiusDimension))
{
internal IfcDimensionCurveDirectedCallout() : base() { }
// internal IfcDimensionCurveDirectedCallout(DatabaseIfc db, IfcDimensionCurveDirectedCallout c) : base(db,c) { }
internal IfcDimensionCurveDirectedCallout(DatabaseIfc db, IfcDimensionCurveDirectedCallout c, DuplicateOptions options) : base(db, c, options) { }
}
[Obsolete("DEPRECATED IFC4", false)]
[Serializable]
@ -257,7 +260,7 @@ namespace GeometryGym.Ifc
//internal IfcDimensionPair(IfcDimensionPair i) : base((IfcDraughtingCalloutRelationship)i) { }
}
[Serializable]
public partial class IfcDirection : IfcGeometricRepresentationItem, IfcGridPlacementDirectionSelect, IfcVectorOrDirection
public partial class IfcDirection : IfcGeometricRepresentationItem, IfcGridPlacementDirectionSelect, IfcOrientationSelect, IfcVectorOrDirection
{
[NonSerialized] private double mDirectionRatioX = 0, mDirectionRatioY = 0, mDirectionRatioZ = double.NaN; // DirectionRatios : LIST [2:3] OF IfcReal;
@ -319,50 +322,40 @@ namespace GeometryGym.Ifc
[Serializable]
public partial class IfcDiscreteAccessory : IfcElementComponent
{
internal IfcDiscreteAccessoryTypeEnum mPredefinedType = IfcDiscreteAccessoryTypeEnum.NOTDEFINED;// : OPTIONAL IfcDiscreteAccessoryTypeEnum;
public IfcDiscreteAccessoryTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcDiscreteAccessoryTypeEnum mPredefinedType = IfcDiscreteAccessoryTypeEnum.NOTDEFINED;// : OPTIONAL IfcDiscreteAccessoryTypeEnum;
public IfcDiscreteAccessoryTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcDiscreteAccessoryTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcDiscreteAccessory() : base() { }
internal IfcDiscreteAccessory(DatabaseIfc db, IfcDiscreteAccessory a, DuplicateOptions options) : base(db, a, options) { mPredefinedType = a.mPredefinedType; }
internal IfcDiscreteAccessory(DatabaseIfc db, IfcDiscreteAccessory a, DuplicateOptions options) : base(db, a, options) { PredefinedType = a.PredefinedType; }
public IfcDiscreteAccessory(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape representation) : base(host, placement, representation) { }
public IfcDiscreteAccessory(IfcProduct host, IfcMaterialProfileSetUsage profile, IfcAxis2Placement3D placement, double length) : base(host, profile, placement,length) { }
}
[Serializable]
public partial class IfcDiscreteAccessoryType : IfcElementComponentType
{
internal IfcDiscreteAccessoryTypeEnum mPredefinedType = IfcDiscreteAccessoryTypeEnum.NOTDEFINED;//: OPTIONAL IfcDiscreteAccessoryTypeEnum; IFC4
public IfcDiscreteAccessoryTypeEnum PredefinedType
{
get { return mPredefinedType; }
set
{
mPredefinedType = value;
if (mDatabase.Release < ReleaseVersion.IFC4 && string.IsNullOrEmpty(ElementType))
ElementType = value.ToString();
}
}
private IfcDiscreteAccessoryTypeEnum mPredefinedType = IfcDiscreteAccessoryTypeEnum.NOTDEFINED;//: OPTIONAL IfcDiscreteAccessoryTypeEnum; IFC4
public IfcDiscreteAccessoryTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcDiscreteAccessoryTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcDiscreteAccessoryType() : base() { }
internal IfcDiscreteAccessoryType(DatabaseIfc db, IfcDiscreteAccessoryType t, DuplicateOptions options) : base(db, t, options) { mPredefinedType = t.mPredefinedType; }
public IfcDiscreteAccessoryType(DatabaseIfc db, string name, IfcDiscreteAccessoryTypeEnum type) : base(db) { Name = name; mPredefinedType = type; }
internal IfcDiscreteAccessoryType(DatabaseIfc db, IfcDiscreteAccessoryType t, DuplicateOptions options) : base(db, t, options) { PredefinedType = t.PredefinedType; }
public IfcDiscreteAccessoryType(DatabaseIfc db, string name, IfcDiscreteAccessoryTypeEnum type) : base(db) { Name = name; PredefinedType = type; }
}
[Serializable]
[Serializable, VersionAdded(ReleaseVersion.IFC4X3)]
public partial class IfcDistributionBoard : IfcFlowController
{
private IfcDistributionBoardTypeEnum mPredefinedType = IfcDistributionBoardTypeEnum.NOTDEFINED; //: OPTIONAL IfcDistributionBoardTypeEnum;
public IfcDistributionBoardTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
public IfcDistributionBoardTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcDistributionBoardTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
public IfcDistributionBoard() : base() { }
public IfcDistributionBoard(DatabaseIfc db) : base(db) { }
public IfcDistributionBoard(DatabaseIfc db, IfcDistributionBoard distributionBoard, DuplicateOptions options) : base(db, distributionBoard, options) { PredefinedType = distributionBoard.PredefinedType; }
public IfcDistributionBoard(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape representation, IfcDistributionSystem system) : base(host, placement, representation, system) { }
}
[Serializable]
[Serializable, VersionAdded(ReleaseVersion.IFC4X3)]
public partial class IfcDistributionBoardType : IfcFlowControllerType
{
private IfcDistributionBoardTypeEnum mPredefinedType = IfcDistributionBoardTypeEnum.NOTDEFINED; //: IfcDistributionBoardTypeEnum;
public IfcDistributionBoardTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
public IfcDistributionBoardTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcDistributionBoardTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
public IfcDistributionBoardType() : base() { }
public IfcDistributionBoardType(DatabaseIfc db, IfcDistributionBoardType distributionBoardType, DuplicateOptions options) : base(db, distributionBoardType, options) { PredefinedType = distributionBoardType.PredefinedType; }
@ -372,22 +365,22 @@ namespace GeometryGym.Ifc
[Serializable]
public partial class IfcDistributionChamberElement : IfcDistributionFlowElement
{
internal IfcDistributionChamberElementTypeEnum mPredefinedType = IfcDistributionChamberElementTypeEnum.NOTDEFINED;// : OPTIONAL IfcDistributionChamberElementTypeEnum;
public IfcDistributionChamberElementTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcDistributionChamberElementTypeEnum mPredefinedType = IfcDistributionChamberElementTypeEnum.NOTDEFINED;// : OPTIONAL IfcDistributionChamberElementTypeEnum;
public IfcDistributionChamberElementTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcDistributionChamberElementTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcDistributionChamberElement() : base() { }
internal IfcDistributionChamberElement(DatabaseIfc db, IfcDistributionChamberElement e, DuplicateOptions options) : base(db, e, options) { mPredefinedType = e.mPredefinedType; }
internal IfcDistributionChamberElement(DatabaseIfc db, IfcDistributionChamberElement e, DuplicateOptions options) : base(db, e, options) { PredefinedType = e.PredefinedType; }
public IfcDistributionChamberElement(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape representation, IfcDistributionSystem system) : base(host, placement, representation, system) { }
}
[Serializable]
public partial class IfcDistributionChamberElementType : IfcDistributionFlowElementType
{
internal IfcDistributionChamberElementTypeEnum mPredefinedType = IfcDistributionChamberElementTypeEnum.NOTDEFINED;
public IfcDistributionChamberElementTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcDistributionChamberElementTypeEnum mPredefinedType = IfcDistributionChamberElementTypeEnum.NOTDEFINED;
public IfcDistributionChamberElementTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcDistributionChamberElementTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcDistributionChamberElementType() : base() { }
internal IfcDistributionChamberElementType(DatabaseIfc db, IfcDistributionChamberElementType t, DuplicateOptions options) : base(db, t, options) { mPredefinedType = t.mPredefinedType; }
public IfcDistributionChamberElementType(DatabaseIfc db, string name, IfcDistributionChamberElementTypeEnum type) : base(db) { Name = name; mPredefinedType = type; }
internal IfcDistributionChamberElementType(DatabaseIfc db, IfcDistributionChamberElementType t, DuplicateOptions options) : base(db, t, options) { PredefinedType = t.PredefinedType; }
public IfcDistributionChamberElementType(DatabaseIfc db, string name, IfcDistributionChamberElementTypeEnum type) : base(db) { Name = name; PredefinedType = type; }
}
[Serializable]
public partial class IfcDistributionCircuit : IfcDistributionSystem
@ -423,7 +416,6 @@ namespace GeometryGym.Ifc
internal IfcDistributionElement() : base() { }
internal IfcDistributionElement(DatabaseIfc db) : base(db) { }
protected IfcDistributionElement(IfcDistributionElement distributionElement, bool replace) : base(distributionElement, replace) { }
protected IfcDistributionElement(DatabaseIfc db, IfcDistributionElement e, DuplicateOptions options) : base(db, e, options) { }
public IfcDistributionElement(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape representation) : base(host, placement, representation) { }
public IfcDistributionElement(IfcObjectDefinition host, IfcObjectPlacement p, IfcProductDefinitionShape r, IfcDistributionSystem system) : this(host,p,r) { if (system != null) system.AddRelated(this); }
@ -432,7 +424,6 @@ namespace GeometryGym.Ifc
public partial class IfcDistributionElementType : IfcElementType //SUPERTYPE OF(ONEOF(IfcDistributionControlElementType, IfcDistributionFlowElementType))
{
internal IfcDistributionElementType() : base() { }
internal IfcDistributionElementType(IfcDistributionElementType basis) : base(basis) { }
public IfcDistributionElementType(DatabaseIfc db) : base(db) { }
protected IfcDistributionElementType(DatabaseIfc db, IfcDistributionElementType t, DuplicateOptions options) : base(db, t, options) { }
}
@ -447,7 +438,6 @@ namespace GeometryGym.Ifc
internal IfcDistributionFlowElement() : base() { }
internal IfcDistributionFlowElement(DatabaseIfc db) : base(db) { }
protected IfcDistributionFlowElement(IfcDistributionFlowElement basis, bool replace) : base(basis, replace) { mSourcePort = basis.mSourcePort; mSinkPort = basis.mSinkPort; }
internal IfcDistributionFlowElement(DatabaseIfc db, IfcDistributionFlowElement e, DuplicateOptions options) : base(db, e, options) { }
public IfcDistributionFlowElement(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape representation, IfcDistributionSystem system) : base(host, placement, representation, system) { }
}
@ -455,7 +445,6 @@ namespace GeometryGym.Ifc
public abstract partial class IfcDistributionFlowElementType : IfcDistributionElementType //IfcDistributionChamberElementType, IfcEnergyConversionDeviceType, IfcFlowControllerType,
{ // IfcFlowFittingType, IfcFlowMovingDeviceType, IfcFlowSegmentType, IfcFlowStorageDeviceType, IfcFlowTerminalType, IfcFlowTreatmentDeviceType))
protected IfcDistributionFlowElementType() : base() { }
protected IfcDistributionFlowElementType(IfcDistributionFlowElementType basis) : base(basis) { }
protected IfcDistributionFlowElementType(DatabaseIfc db) : base(db) { }
protected IfcDistributionFlowElementType(DatabaseIfc db, IfcDistributionFlowElementType t, DuplicateOptions options) : base(db, t, options) { }
}
@ -463,15 +452,15 @@ namespace GeometryGym.Ifc
public partial class IfcDistributionPort : IfcPort
{
internal IfcFlowDirectionEnum mFlowDirection = IfcFlowDirectionEnum.NOTDEFINED; //: OPTIONAL IfcFlowDirectionEnum;
internal IfcDistributionPortTypeEnum mPredefinedType = IfcDistributionPortTypeEnum.NOTDEFINED; // IFC4 : OPTIONAL IfcDistributionPortTypeEnum;
private IfcDistributionPortTypeEnum mPredefinedType = IfcDistributionPortTypeEnum.NOTDEFINED; // IFC4 : OPTIONAL IfcDistributionPortTypeEnum;
internal IfcDistributionSystemEnum mSystemType = IfcDistributionSystemEnum.NOTDEFINED;// IFC4 : OPTIONAL IfcDistributionSystemEnum;
public IfcFlowDirectionEnum FlowDirection { get { return mFlowDirection; } set { mFlowDirection = value; } }
public IfcDistributionPortTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
public IfcDistributionPortTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcDistributionPortTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
public IfcDistributionSystemEnum SystemType { get { return mSystemType; } set { mSystemType = value; } }
internal IfcDistributionPort() : base() { }
internal IfcDistributionPort(DatabaseIfc db, IfcDistributionPort p, DuplicateOptions options) : base(db, p, options) { mFlowDirection = p.mFlowDirection; mPredefinedType = p.mPredefinedType; mSystemType = p.mSystemType; }
internal IfcDistributionPort(DatabaseIfc db, IfcDistributionPort p, DuplicateOptions options) : base(db, p, options) { mFlowDirection = p.mFlowDirection; PredefinedType = p.PredefinedType; mSystemType = p.mSystemType; }
public IfcDistributionPort(IfcElement host) : base(host) { }
public IfcDistributionPort(IfcElementType host) : base(host) { }
public IfcDistributionPort(DatabaseIfc db) : base(db) { }
@ -481,14 +470,14 @@ namespace GeometryGym.Ifc
{
public override string StepClassName { get { return (mDatabase != null && mDatabase.Release <= ReleaseVersion.IFC2x3 ? "IfcSystem" : base.StepClassName); } }
internal string mLongName = ""; // OPTIONAL IfcLabel
internal IfcDistributionSystemEnum mPredefinedType = IfcDistributionSystemEnum.NOTDEFINED;// : OPTIONAL IfcDistributionSystemEnum
private IfcDistributionSystemEnum mPredefinedType = IfcDistributionSystemEnum.NOTDEFINED;// : OPTIONAL IfcDistributionSystemEnum
public string LongName { get { return mLongName; } set { mLongName = value; } }
public IfcDistributionSystemEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
public IfcDistributionSystemEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcDistributionSystemEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcDistributionSystem() : base() { }
internal IfcDistributionSystem(DatabaseIfc db, IfcDistributionSystem s, DuplicateOptions options) : base(db, s, options) { mLongName = s.mLongName; mPredefinedType = s.mPredefinedType; }
public IfcDistributionSystem(IfcSpatialElement bldg, string name, IfcDistributionSystemEnum type) : base(bldg, name) { mPredefinedType = type; }
internal IfcDistributionSystem(DatabaseIfc db, IfcDistributionSystem s, DuplicateOptions options) : base(db, s, options) { mLongName = s.mLongName; PredefinedType = s.PredefinedType; }
public IfcDistributionSystem(IfcSpatialElement bldg, string name, IfcDistributionSystemEnum type) : base(bldg, name) { PredefinedType = type; }
}
[Obsolete("DEPRECATED IFC4", false)]
[Serializable]
@ -520,13 +509,13 @@ namespace GeometryGym.Ifc
internal string mLocation = "";// : IFC4 OPTIONAL IfcURIReference;
internal string mPurpose = "", mIntendedUse = "", mScope = "";// : OPTIONAL IfcText;
internal string mRevision = "";// : OPTIONAL IfcLabel;
internal int mDocumentOwner;// : OPTIONAL IfcActorSelect;
internal IfcActorSelect mDocumentOwner;// : OPTIONAL IfcActorSelect;
internal SET<IfcActorSelect> mEditors = new SET<IfcActorSelect>();// : OPTIONAL SET [1:?] OF IfcActorSelect;
internal DateTime mCreationTime = DateTime.MinValue, mLastRevisionTime = DateTime.MinValue;// : OPTIONAL IFC4 IfcDateTime;
internal string mElectronicFormat = "";// IFC4 : OPTIONAL IfcIdentifier; IFC4
internal int mSSElectronicFormat;// IFC2x3 : OPTIONAL IfcDocumentElectronicFormat;
internal IfcDocumentElectronicFormat mSSElectronicFormat;// IFC2x3 : OPTIONAL IfcDocumentElectronicFormat;
internal DateTime mValidFrom = DateTime.MinValue, mValidUntil = DateTime.MinValue;// : OPTIONAL Ifc2x3 IfcCalendarDate; IFC4 IfcDate
internal int mSSValidFrom = 0, mSSVAlidUntil = 0;
internal IfcCalendarDate mSSValidFrom = null, mSSVAlidUntil = null;
internal IfcDocumentConfidentialityEnum mConfidentiality = IfcDocumentConfidentialityEnum.NOTDEFINED;// : OPTIONAL IfcDocumentConfidentialityEnum;
internal IfcDocumentStatusEnum mStatus = IfcDocumentStatusEnum.NOTDEFINED;// : OPTIONAL IfcDocumentStatusEnum;
//INVERSE
@ -545,7 +534,7 @@ namespace GeometryGym.Ifc
public string IntendedUse { get { return mIntendedUse; } set { mIntendedUse = value; } }
public string Scope { get { return mScope; } set { mScope = value; } }
public string Revision { get { return mRevision; } set { mRevision = value; } }
public IfcActorSelect DocumentOwner { get { return mDatabase[mDocumentOwner] as IfcActorSelect; } set { mDocumentOwner = (value == null ? 0 : value.Index); } }
public IfcActorSelect DocumentOwner { get { return mDocumentOwner; } set { mDocumentOwner = value; } }
public SET<IfcActorSelect> Editors { get { return mEditors; } }
public DateTime CreationTime { get { return mCreationTime; } set { mCreationTime = value; } }
public DateTime LastRevisionTime { get { return mLastRevisionTime; } set { mLastRevisionTime = value; } }
@ -568,7 +557,7 @@ namespace GeometryGym.Ifc
mIdentification = i.mIdentification;
mName = i.mName;
mDescription = i.mDescription;
DocumentReferences.AddRange(i.DocumentReferences.Select(x=> db.Factory.Duplicate(x) as IfcDocumentReference));
DocumentReferences.AddRange(i.DocumentReferences.Select(x=> db.Factory.Duplicate(x)));
mPurpose = i.mPurpose;
mIntendedUse = i.mIntendedUse;
mScope = i.mScope;
@ -578,13 +567,10 @@ namespace GeometryGym.Ifc
mCreationTime = i.mCreationTime;
mLastRevisionTime = i.mLastRevisionTime;
mElectronicFormat = i.mElectronicFormat;
if(i.mSSElectronicFormat > 0)
mSSElectronicFormat = db.Factory.Duplicate(i.mDatabase[i.mSSElectronicFormat]).mIndex;
//if(i.mValidFrom > 0)
// ValidFrom = db.Factory.Duplicate( i.ValidFrom) as IfcCalendarDate;
//if(i.mValidUntil > 0)
// ValidUntil = db.Factory.Duplicate( i.ValidUntil) as IfcCalendarDate;
#warning todo
if(i.mSSElectronicFormat != null)
mSSElectronicFormat = db.Factory.Duplicate(i.mSSElectronicFormat);
ValidFrom = i.ValidFrom;
ValidUntil = i.ValidUntil;
mConfidentiality = i.mConfidentiality;
mStatus = i.mStatus;
}
@ -639,18 +625,18 @@ namespace GeometryGym.Ifc
{
internal double mOverallHeight = double.NaN;// : OPTIONAL IfcPositiveLengthMeasure;
internal double mOverallWidth = double.NaN;// : OPTIONAL IfcPositiveLengthMeasure;
internal IfcDoorTypeEnum mPredefinedType = IfcDoorTypeEnum.NOTDEFINED;//: OPTIONAL IfcDoorTypeEnum; //IFC4
private IfcDoorTypeEnum mPredefinedType = IfcDoorTypeEnum.NOTDEFINED;//: OPTIONAL IfcDoorTypeEnum; //IFC4
internal IfcDoorTypeOperationEnum mOperationType = IfcDoorTypeOperationEnum.NOTDEFINED;// : OPTIONAL IfcDoorTypeOperationEnum; //IFC4
internal string mUserDefinedOperationType = "";// : OPTIONAL IfcLabel;
public double OverallHeight { get { return mOverallHeight; } set { mOverallHeight = (value > 0 ? value : double.NaN); } }
public double OverallWidth { get { return mOverallWidth; } set { mOverallWidth = (value > 0 ? value : double.NaN); } }
public IfcDoorTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
public IfcDoorTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcDoorTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
public IfcDoorTypeOperationEnum OperationType { get { return mOperationType; } set { mOperationType = value; } }
public string UserDefinedOperationType { get { return mUserDefinedOperationType; } set { mUserDefinedOperationType = value; } }
internal IfcDoor() : base() { }
internal IfcDoor(DatabaseIfc db, IfcDoor d, DuplicateOptions options) : base(db, d, options) { mOverallHeight = d.mOverallHeight; mOverallWidth = d.mOverallWidth; mPredefinedType = d.mPredefinedType; mOperationType = d.mOperationType; mUserDefinedOperationType = d.mUserDefinedOperationType; }
internal IfcDoor(DatabaseIfc db, IfcDoor d, DuplicateOptions options) : base(db, d, options) { mOverallHeight = d.mOverallHeight; mOverallWidth = d.mOverallWidth; PredefinedType = d.PredefinedType; mOperationType = d.mOperationType; mUserDefinedOperationType = d.mUserDefinedOperationType; }
public IfcDoor(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape representation) : base(host, placement, representation) { }
internal static IfcDoorTypeOperationEnum ParseDoorTypeOperation(string constant)
@ -675,10 +661,10 @@ namespace GeometryGym.Ifc
internal double mLiningDepth, mLiningThickness, mThresholdDepth, mThresholdThickness, mTransomThickness;// : OPTIONAL IfcPositiveLengthMeasure;
internal double mTransomOffset = double.NaN, mLiningOffset = double.NaN, mThresholdOffset = double.NaN;// : OPTIONAL IfcLengthMeasure;
internal double mCasingThickness = double.NaN, mCasingDepth = double.NaN;// : OPTIONAL IfcPositiveLengthMeasure;
private int mShapeAspectStyle;// : OPTIONAL IfcShapeAspect; // DEPRECATED IFC4
private IfcShapeAspect mShapeAspectStyle;// : OPTIONAL IfcShapeAspect; // DEPRECATED IFC4
internal double mLiningToPanelOffsetX = double.NaN, mLiningToPanelOffsetY = double.NaN;// : OPTIONAL IfcLengthMeasure; IFC4
public IfcShapeAspect ShapeAspectStyle { get { return mDatabase[mShapeAspectStyle] as IfcShapeAspect; } set { mShapeAspectStyle = (value == null ? 0 : value.mIndex); } }
public IfcShapeAspect ShapeAspectStyle { get { return mShapeAspectStyle; } set { mShapeAspectStyle = value; } }
internal IfcDoorLiningProperties() : base() { }
internal IfcDoorLiningProperties(DatabaseIfc db, IfcDoorLiningProperties p, DuplicateOptions options) : base(db, p, options)
@ -693,8 +679,8 @@ namespace GeometryGym.Ifc
mThresholdOffset = p.mThresholdOffset;
mCasingThickness = p.mCasingThickness;
mCasingDepth = p.mCasingDepth;
if (p.mShapeAspectStyle > 0)
ShapeAspectStyle = db.Factory.Duplicate(p.ShapeAspectStyle) as IfcShapeAspect;
if (p.mShapeAspectStyle != null)
ShapeAspectStyle = db.Factory.Duplicate(p.ShapeAspectStyle);
mLiningToPanelOffsetX = p.mLiningToPanelOffsetX;
mLiningToPanelOffsetY = p.mLiningToPanelOffsetY;
}
@ -706,7 +692,7 @@ namespace GeometryGym.Ifc
internal IfcDoorPanelOperationEnum mOperationType;// : IfcDoorPanelOperationEnum;
internal double mPanelWidth = double.NaN;// : OPTIONAL IfcNormalisedRatioMeasure;
internal IfcDoorPanelPositionEnum mPanelPosition;// :IfcDoorPanelPositionEnum;
private int mShapeAspectStyle;// : OPTIONAL IfcShapeAspect; // DEPRECATED IFC4
private IfcShapeAspect mShapeAspectStyle;// : OPTIONAL IfcShapeAspect; // DEPRECATED IFC4
public double PanelDepth { get { return mPanelDepth; } set { mPanelDepth = value; } }
public IfcDoorPanelOperationEnum OperationType { get { return mOperationType; } set { mOperationType = value; } }
@ -715,15 +701,15 @@ namespace GeometryGym.Ifc
internal IfcDoorPanelProperties() : base() { }
[Obsolete("DEPRECATED IFC4", false)]
public IfcShapeAspect ShapeAspectStyle { get { return mDatabase[mShapeAspectStyle] as IfcShapeAspect; } set { mShapeAspectStyle = (value == null ? 0 : value.mIndex); } }
public IfcShapeAspect ShapeAspectStyle { get { return mShapeAspectStyle; } set { mShapeAspectStyle = value; } }
internal IfcDoorPanelProperties(DatabaseIfc db, IfcDoorPanelProperties p, DuplicateOptions options) : base(db, p, options)
{
mPanelDepth = p.mPanelDepth;
mOperationType = p.mOperationType;
mPanelWidth = p.mPanelWidth;
mPanelPosition = p.mPanelPosition;
if (p.mShapeAspectStyle > 0)
ShapeAspectStyle = db.Factory.Duplicate(p.ShapeAspectStyle) as IfcShapeAspect;
if (p.mShapeAspectStyle != null)
ShapeAspectStyle = db.Factory.Duplicate(p.ShapeAspectStyle);
}
}
[Serializable]
@ -753,33 +739,33 @@ namespace GeometryGym.Ifc
{
public override string StepClassName { get { return (mDatabase.mRelease < ReleaseVersion.IFC4 ? "IfcDoorStyle" : base.StepClassName); } }
internal IfcDoorTypeEnum mPredefinedType = IfcDoorTypeEnum.NOTDEFINED;
private IfcDoorTypeEnum mPredefinedType = IfcDoorTypeEnum.NOTDEFINED;
internal IfcDoorTypeOperationEnum mOperationType;// : IfcDoorStyleOperationEnum;
internal bool mParameterTakesPrecedence = false;// : BOOLEAN;
internal string mUserDefinedOperationType = "";// : OPTIONAL IfcLabel;
public IfcDoorTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
public IfcDoorTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcDoorTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
public string UserDefinedOperationType { get { return mUserDefinedOperationType; } set { mUserDefinedOperationType = value; } }
internal IfcDoorType() : base() { }
internal IfcDoorType(DatabaseIfc db, IfcDoorType t, DuplicateOptions options) : base(db, t, options) { mPredefinedType = t.mPredefinedType; mOperationType = t.mOperationType; mParameterTakesPrecedence = t.mParameterTakesPrecedence; mUserDefinedOperationType = t.mUserDefinedOperationType; }
public IfcDoorType(DatabaseIfc m, string name, IfcDoorTypeEnum type) : this(m, name, type, IfcDoorTypeOperationEnum.NOTDEFINED, false) { }
internal IfcDoorType(DatabaseIfc m, string name, IfcDoorTypeEnum type, IfcDoorTypeOperationEnum operation, IfcDoorLiningProperties lp, List<IfcDoorPanelProperties> pps)
: base(m)
internal IfcDoorType(DatabaseIfc db, IfcDoorType t, DuplicateOptions options) : base(db, t, options) { PredefinedType = t.PredefinedType; mOperationType = t.mOperationType; mParameterTakesPrecedence = t.mParameterTakesPrecedence; mUserDefinedOperationType = t.mUserDefinedOperationType; }
public IfcDoorType(DatabaseIfc db, string name, IfcDoorTypeEnum type) : this(db, name, type, IfcDoorTypeOperationEnum.NOTDEFINED, false) { }
internal IfcDoorType(DatabaseIfc db, string name, IfcDoorTypeEnum type, IfcDoorTypeOperationEnum operation, IfcDoorLiningProperties lp, List<IfcDoorPanelProperties> pps)
: base(db)
{
Name = name;
if (lp != null) mHasPropertySets.Add(lp);
if (pps != null && pps.Count > 0) mHasPropertySets.AddRange(pps);
mPredefinedType = type;
PredefinedType = type;
mOperationType = operation;
mParameterTakesPrecedence = true;
}
internal IfcDoorType(DatabaseIfc m, string name, IfcDoorTypeEnum type, IfcDoorTypeOperationEnum operation, bool parameterTakesPrecendence)
: base(m)
internal IfcDoorType(DatabaseIfc db, string name, IfcDoorTypeEnum type, IfcDoorTypeOperationEnum operation, bool parameterTakesPrecendence)
: base(db)
{
Name = name;
mPredefinedType = type;
PredefinedType = type;
mOperationType = operation;
mParameterTakesPrecedence = parameterTakesPrecendence;
}
@ -788,9 +774,12 @@ namespace GeometryGym.Ifc
[Serializable]
public partial class IfcDraughtingCallout : IfcGeometricRepresentationItem // DEPRECATED IFC4 SUPERTYPE OF (ONEOF (IfcDimensionCurveDirectedCallout ,IfcStructuredDimensionCallout))
{
internal List<int> mContents = new List<int>(); //: SET [1:?] OF IfcDraughtingCalloutElement
internal SET<IfcDraughtingCalloutElement> mContents = new SET<IfcDraughtingCalloutElement>(); //: SET [1:?] OF IfcDraughtingCalloutElement
internal IfcDraughtingCallout() : base() { }
//internal IfcDraughtingCallout(IfcDraughtingCallout el) : base(el) { mContents = new List<int>(el.mContents.ToArray()); }
internal IfcDraughtingCallout(DatabaseIfc db, IfcDraughtingCallout el, DuplicateOptions options) : base(db, el, options)
{
mContents.AddRange(el.mContents.Select(x => db.Factory.Duplicate(x)));
}
}
public interface IfcDraughtingCalloutElement : IBaseClassIfc { } //SELECT (IfcAnnotationCurveOccurrence ,IfcAnnotationTextOccurrence ,IfcAnnotationSymbolOccurrence);
[Obsolete("DEPRECATED IFC4", false)]
@ -824,61 +813,61 @@ namespace GeometryGym.Ifc
[Serializable]
public partial class IfcDuctFitting : IfcFlowFitting //IFC4
{
internal IfcDuctFittingTypeEnum mPredefinedType = IfcDuctFittingTypeEnum.NOTDEFINED;// OPTIONAL : IfcDuctFittingTypeEnum;
public IfcDuctFittingTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcDuctFittingTypeEnum mPredefinedType = IfcDuctFittingTypeEnum.NOTDEFINED;// OPTIONAL : IfcDuctFittingTypeEnum;
public IfcDuctFittingTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcDuctFittingTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcDuctFitting() : base() { }
internal IfcDuctFitting(DatabaseIfc db, IfcDuctFitting f, DuplicateOptions options) : base(db, f, options) { mPredefinedType = f.mPredefinedType; }
internal IfcDuctFitting(DatabaseIfc db, IfcDuctFitting f, DuplicateOptions options) : base(db, f, options) { PredefinedType = f.PredefinedType; }
public IfcDuctFitting(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape representation, IfcDistributionSystem system) : base(host, placement, representation, system) { }
}
[Serializable]
public partial class IfcDuctFittingType : IfcFlowFittingType
{
internal IfcDuctFittingTypeEnum mPredefinedType = IfcDuctFittingTypeEnum.NOTDEFINED;// : IfcDuctFittingTypeEnum;
public IfcDuctFittingTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcDuctFittingTypeEnum mPredefinedType = IfcDuctFittingTypeEnum.NOTDEFINED;// : IfcDuctFittingTypeEnum;
public IfcDuctFittingTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcDuctFittingTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcDuctFittingType() : base() { }
internal IfcDuctFittingType(DatabaseIfc db, IfcDuctFittingType t, DuplicateOptions options) : base(db, t, options) { mPredefinedType = t.mPredefinedType; }
public IfcDuctFittingType(DatabaseIfc m, string name, IfcDuctFittingTypeEnum t) : base(m) { Name = name; PredefinedType = t; }
internal IfcDuctFittingType(DatabaseIfc db, IfcDuctFittingType t, DuplicateOptions options) : base(db, t, options) { PredefinedType = t.PredefinedType; }
public IfcDuctFittingType(DatabaseIfc db, string name, IfcDuctFittingTypeEnum t) : base(db) { Name = name; PredefinedType = t; }
}
[Serializable]
public partial class IfcDuctSegment : IfcFlowSegment //IFC4
{
internal IfcDuctSegmentTypeEnum mPredefinedType = IfcDuctSegmentTypeEnum.NOTDEFINED;// OPTIONAL : IfcDuctSegmentTypeEnum;
public IfcDuctSegmentTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcDuctSegmentTypeEnum mPredefinedType = IfcDuctSegmentTypeEnum.NOTDEFINED;// OPTIONAL : IfcDuctSegmentTypeEnum;
public IfcDuctSegmentTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcDuctSegmentTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcDuctSegment() : base() { }
internal IfcDuctSegment(DatabaseIfc db, IfcDuctSegment s, DuplicateOptions options) : base(db, s, options) { mPredefinedType = s.mPredefinedType; }
internal IfcDuctSegment(DatabaseIfc db, IfcDuctSegment s, DuplicateOptions options) : base(db, s, options) { PredefinedType = s.PredefinedType; }
public IfcDuctSegment(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape representation, IfcDistributionSystem system) : base(host, placement, representation, system) { }
}
[Serializable]
public partial class IfcDuctSegmentType : IfcFlowSegmentType
{
internal IfcDuctSegmentTypeEnum mPredefinedType = IfcDuctSegmentTypeEnum.NOTDEFINED;// : IfcDuctSegmentTypeEnum;
public IfcDuctSegmentTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcDuctSegmentTypeEnum mPredefinedType = IfcDuctSegmentTypeEnum.NOTDEFINED;// : IfcDuctSegmentTypeEnum;
public IfcDuctSegmentTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcDuctSegmentTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcDuctSegmentType() : base() { }
internal IfcDuctSegmentType(DatabaseIfc db, IfcDuctSegmentType t, DuplicateOptions options) : base(db, t, options) { mPredefinedType = t.mPredefinedType; }
public IfcDuctSegmentType(DatabaseIfc db, string name, IfcDuctSegmentTypeEnum t) : base(db) { Name = name; mPredefinedType = t; }
internal IfcDuctSegmentType(DatabaseIfc db, IfcDuctSegmentType t, DuplicateOptions options) : base(db, t, options) { PredefinedType = t.PredefinedType; }
public IfcDuctSegmentType(DatabaseIfc db, string name, IfcDuctSegmentTypeEnum t) : base(db) { Name = name; PredefinedType = t; }
}
[Serializable]
public partial class IfcDuctSilencer : IfcFlowTreatmentDevice //IFC4
{
internal IfcDuctSilencerTypeEnum mPredefinedType = IfcDuctSilencerTypeEnum.NOTDEFINED;
public IfcDuctSilencerTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcDuctSilencerTypeEnum mPredefinedType = IfcDuctSilencerTypeEnum.NOTDEFINED;
public IfcDuctSilencerTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcDuctSilencerTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcDuctSilencer() : base() { }
internal IfcDuctSilencer(DatabaseIfc db, IfcDuctSilencer s, DuplicateOptions options) : base(db, s, options) { mPredefinedType = s.mPredefinedType; }
internal IfcDuctSilencer(DatabaseIfc db, IfcDuctSilencer s, DuplicateOptions options) : base(db, s, options) { PredefinedType = s.PredefinedType; }
public IfcDuctSilencer(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape representation, IfcDistributionSystem system) : base(host, placement, representation, system) { }
}
[Serializable]
public partial class IfcDuctSilencerType : IfcFlowTreatmentDeviceType
{
internal IfcDuctSilencerTypeEnum mPredefinedType = IfcDuctSilencerTypeEnum.NOTDEFINED;// : IfcDuctSilencerTypeEnum;
public IfcDuctSilencerTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcDuctSilencerTypeEnum mPredefinedType = IfcDuctSilencerTypeEnum.NOTDEFINED;// : IfcDuctSilencerTypeEnum;
public IfcDuctSilencerTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcDuctSilencerTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcDuctSilencerType() : base() { }
internal IfcDuctSilencerType(DatabaseIfc db, IfcDuctSilencerType t, DuplicateOptions options) : base(db, t, options) { mPredefinedType = t.mPredefinedType; }
public IfcDuctSilencerType(DatabaseIfc db, string name, IfcDuctSilencerTypeEnum t) : base(db) { Name = name; mPredefinedType = t; }
internal IfcDuctSilencerType(DatabaseIfc db, IfcDuctSilencerType t, DuplicateOptions options) : base(db, t, options) { PredefinedType = t.PredefinedType; }
public IfcDuctSilencerType(DatabaseIfc db, string name, IfcDuctSilencerTypeEnum t) : base(db) { Name = name; PredefinedType = t; }
}
}

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

@ -29,18 +29,18 @@ using GeometryGym.STEP;
namespace GeometryGym.Ifc
{
[Serializable]
[Serializable, VersionAdded(ReleaseVersion.IFC4X3)]
public partial class IfcEarthworksCut : IfcFeatureElementSubtraction
{
private IfcEarthworksCutTypeEnum mPredefinedType = IfcEarthworksCutTypeEnum.NOTDEFINED; //: OPTIONAL IfcEarthworksCutTypeEnum;
public IfcEarthworksCutTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
public IfcEarthworksCutTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcEarthworksCutTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
public IfcEarthworksCut() : base() { }
public IfcEarthworksCut(DatabaseIfc db) : base(db) { }
public IfcEarthworksCut(DatabaseIfc db, IfcEarthworksCut earthworksCut, DuplicateOptions options) : base(db, earthworksCut, options) { PredefinedType = earthworksCut.PredefinedType; }
public IfcEarthworksCut(IfcElement host, IfcObjectPlacement placement, IfcProductDefinitionShape representation) : base(host, placement, representation) { }
}
[Serializable]
[Serializable, VersionAdded(ReleaseVersion.IFC4X3)]
public partial class IfcEarthworksElement : IfcBuiltElement
{
public IfcEarthworksElement() : base() { }
@ -48,11 +48,11 @@ namespace GeometryGym.Ifc
public IfcEarthworksElement(DatabaseIfc db, IfcEarthworksElement earthworksElement, DuplicateOptions options) : base(db, earthworksElement, options) { }
public IfcEarthworksElement(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape representation) : base(host, placement, representation) { }
}
[Serializable]
[Serializable, VersionAdded(ReleaseVersion.IFC4X3)]
public partial class IfcEarthworksFill : IfcEarthworksElement
{
private IfcEarthworksFillTypeEnum mPredefinedType = IfcEarthworksFillTypeEnum.NOTDEFINED; //: OPTIONAL IfcEarthworksFillTypeEnum;
public IfcEarthworksFillTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
public IfcEarthworksFillTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcEarthworksFillTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
public IfcEarthworksFill() : base() { }
public IfcEarthworksFill(DatabaseIfc db) : base(db) { }
@ -173,47 +173,48 @@ namespace GeometryGym.Ifc
[Serializable]
public partial class IfcElectricAppliance : IfcFlowTerminal //IFC4
{
internal IfcElectricApplianceTypeEnum mPredefinedType = IfcElectricApplianceTypeEnum.NOTDEFINED;// OPTIONAL : IfcElectricApplianceTypeEnum;
public IfcElectricApplianceTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcElectricApplianceTypeEnum mPredefinedType = IfcElectricApplianceTypeEnum.NOTDEFINED;// OPTIONAL : IfcElectricApplianceTypeEnum;
public IfcElectricApplianceTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcElectricApplianceTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcElectricAppliance() : base() { }
internal IfcElectricAppliance(DatabaseIfc db, IfcElectricAppliance a, DuplicateOptions options) : base(db, a, options) { mPredefinedType = a.mPredefinedType; }
internal IfcElectricAppliance(DatabaseIfc db, IfcElectricAppliance a, DuplicateOptions options) : base(db, a, options) { PredefinedType = a.PredefinedType; }
public IfcElectricAppliance(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape representation, IfcDistributionSystem system) : base(host, placement, representation, system) { }
}
[Serializable]
public partial class IfcElectricApplianceType : IfcFlowTerminalType
{
internal IfcElectricApplianceTypeEnum mPredefinedType = IfcElectricApplianceTypeEnum.NOTDEFINED;// : IfcDuctFittingTypeEnum;
public IfcElectricApplianceTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcElectricApplianceTypeEnum mPredefinedType = IfcElectricApplianceTypeEnum.NOTDEFINED;// : IfcDuctFittingTypeEnum;
public IfcElectricApplianceTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcElectricApplianceTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcElectricApplianceType() : base() { }
internal IfcElectricApplianceType(DatabaseIfc db, IfcElectricApplianceType t, DuplicateOptions options) : base(db, t, options) { mPredefinedType = t.mPredefinedType; }
public IfcElectricApplianceType(DatabaseIfc m, string name, IfcElectricApplianceTypeEnum t) : base(m) { Name = name; mPredefinedType = t; }
internal IfcElectricApplianceType(DatabaseIfc db, IfcElectricApplianceType t, DuplicateOptions options) : base(db, t, options) { PredefinedType = t.PredefinedType; }
public IfcElectricApplianceType(DatabaseIfc db, string name, IfcElectricApplianceTypeEnum t) : base(db) { Name = name; PredefinedType = t; }
}
[Serializable]
public partial class IfcElectricDistributionBoard : IfcFlowController //IFC4
{
internal IfcElectricDistributionBoardTypeEnum mPredefinedType = IfcElectricDistributionBoardTypeEnum.NOTDEFINED;// OPTIONAL : IfcDamperTypeEnum;
public IfcElectricDistributionBoardTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcElectricDistributionBoardTypeEnum mPredefinedType = IfcElectricDistributionBoardTypeEnum.NOTDEFINED;// OPTIONAL : IfcDamperTypeEnum;
public IfcElectricDistributionBoardTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcElectricDistributionBoardTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcElectricDistributionBoard() : base() { }
internal IfcElectricDistributionBoard(DatabaseIfc db, IfcElectricDistributionBoard b, DuplicateOptions options) : base(db, b, options) { mPredefinedType = b.mPredefinedType; }
internal IfcElectricDistributionBoard(DatabaseIfc db, IfcElectricDistributionBoard b, DuplicateOptions options) : base(db, b, options) { PredefinedType = b.PredefinedType; }
public IfcElectricDistributionBoard(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape representation, IfcDistributionSystem system) : base(host, placement, representation, system) { }
}
[Serializable]
public partial class IfcElectricDistributionBoardType : IfcFlowControllerType
{
internal IfcElectricDistributionBoardTypeEnum mPredefinedType = IfcElectricDistributionBoardTypeEnum.NOTDEFINED;// : IfcElectricDistributionBoardTypeEnum;
public IfcElectricDistributionBoardTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcElectricDistributionBoardTypeEnum mPredefinedType = IfcElectricDistributionBoardTypeEnum.NOTDEFINED;// : IfcElectricDistributionBoardTypeEnum;
public IfcElectricDistributionBoardTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcElectricDistributionBoardTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcElectricDistributionBoardType() : base() { }
internal IfcElectricDistributionBoardType(DatabaseIfc db, IfcElectricDistributionBoardType t, DuplicateOptions options) : base(db, t, options) { mPredefinedType = t.mPredefinedType; }
public IfcElectricDistributionBoardType(DatabaseIfc m, string name, IfcElectricDistributionBoardTypeEnum t) : base(m) { Name = name; mPredefinedType = t; }
internal IfcElectricDistributionBoardType(DatabaseIfc db, IfcElectricDistributionBoardType t, DuplicateOptions options) : base(db, t, options) { PredefinedType = t.PredefinedType; }
public IfcElectricDistributionBoardType(DatabaseIfc db, string name, IfcElectricDistributionBoardTypeEnum t) : base(db) { Name = name; PredefinedType = t; }
}
[Obsolete("DEPRECATED IFC4", false)]
[Serializable]
public partial class IfcElectricDistributionPoint : IfcFlowController // DEPRECATED IFC4
{
public override string StepClassName { get { return (mDatabase == null || mDatabase.Release < ReleaseVersion.IFC4 ? base.StepClassName : "IfcFlowController"); } }
internal IfcElectricDistributionPointFunctionEnum mDistributionPointFunction;// : IfcElectricDistributionPointFunctionEnum;
internal string mUserDefinedFunction = "";// : OPTIONAL IfcLabel;
@ -227,39 +228,39 @@ namespace GeometryGym.Ifc
[Serializable]
public partial class IfcElectricFlowStorageDevice : IfcFlowStorageDevice //IFC4
{
internal IfcElectricFlowStorageDeviceTypeEnum mPredefinedType = IfcElectricFlowStorageDeviceTypeEnum.NOTDEFINED;// OPTIONAL : IfcElectricFlowStorageDeviceTypeEnum;
public IfcElectricFlowStorageDeviceTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcElectricFlowStorageDeviceTypeEnum mPredefinedType = IfcElectricFlowStorageDeviceTypeEnum.NOTDEFINED;// OPTIONAL : IfcElectricFlowStorageDeviceTypeEnum;
public IfcElectricFlowStorageDeviceTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcElectricFlowStorageDeviceTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcElectricFlowStorageDevice() : base() { }
internal IfcElectricFlowStorageDevice(DatabaseIfc db, IfcElectricFlowStorageDevice d, DuplicateOptions options) : base(db, d, options) { mPredefinedType = d.mPredefinedType; }
internal IfcElectricFlowStorageDevice(DatabaseIfc db, IfcElectricFlowStorageDevice d, DuplicateOptions options) : base(db, d, options) { PredefinedType = d.PredefinedType; }
public IfcElectricFlowStorageDevice(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape representation, IfcDistributionSystem system) : base(host, placement, representation, system) { }
}
[Serializable]
public partial class IfcElectricFlowStorageDeviceType : IfcFlowStorageDeviceType
{
internal IfcElectricFlowStorageDeviceTypeEnum mPredefinedType = IfcElectricFlowStorageDeviceTypeEnum.NOTDEFINED;// : IfcElectricFlowStorageDeviceTypeEnum;
public IfcElectricFlowStorageDeviceTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcElectricFlowStorageDeviceTypeEnum mPredefinedType = IfcElectricFlowStorageDeviceTypeEnum.NOTDEFINED;// : IfcElectricFlowStorageDeviceTypeEnum;
public IfcElectricFlowStorageDeviceTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcElectricFlowStorageDeviceTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcElectricFlowStorageDeviceType() : base() { }
internal IfcElectricFlowStorageDeviceType(DatabaseIfc db, IfcElectricFlowStorageDeviceType t, DuplicateOptions options) : base(db, t, options) { mPredefinedType = t.mPredefinedType; }
public IfcElectricFlowStorageDeviceType(DatabaseIfc db, string name, IfcElectricFlowStorageDeviceTypeEnum t) : base(db) { Name = name; mPredefinedType = t; }
internal IfcElectricFlowStorageDeviceType(DatabaseIfc db, IfcElectricFlowStorageDeviceType t, DuplicateOptions options) : base(db, t, options) { PredefinedType = t.PredefinedType; }
public IfcElectricFlowStorageDeviceType(DatabaseIfc db, string name, IfcElectricFlowStorageDeviceTypeEnum t) : base(db) { Name = name; PredefinedType = t; }
}
[Serializable]
[Serializable, VersionAdded(ReleaseVersion.IFC4X3)]
public partial class IfcElectricFlowTreatmentDevice : IfcFlowTreatmentDevice
{
private IfcElectricFlowTreatmentDeviceTypeEnum mPredefinedType = IfcElectricFlowTreatmentDeviceTypeEnum.NOTDEFINED; //: OPTIONAL IfcElectricFlowTreatmentDeviceTypeEnum;
public IfcElectricFlowTreatmentDeviceTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
public IfcElectricFlowTreatmentDeviceTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcElectricFlowTreatmentDeviceTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
public IfcElectricFlowTreatmentDevice() : base() { }
public IfcElectricFlowTreatmentDevice(DatabaseIfc db) : base(db) { }
public IfcElectricFlowTreatmentDevice(DatabaseIfc db, IfcElectricFlowTreatmentDevice electricFlowTreatmentDevice, DuplicateOptions options) : base(db, electricFlowTreatmentDevice, options) { PredefinedType = electricFlowTreatmentDevice.PredefinedType; }
public IfcElectricFlowTreatmentDevice(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape representation, IfcDistributionSystem system) : base(host, placement, representation, system) { }
}
[Serializable]
[Serializable, VersionAdded(ReleaseVersion.IFC4X3)]
public partial class IfcElectricFlowTreatmentDeviceType : IfcFlowTreatmentDeviceType
{
private IfcElectricFlowTreatmentDeviceTypeEnum mPredefinedType = IfcElectricFlowTreatmentDeviceTypeEnum.NOTDEFINED; //: IfcElectricFlowTreatmentDeviceTypeEnum;
public IfcElectricFlowTreatmentDeviceTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
public IfcElectricFlowTreatmentDeviceTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcElectricFlowTreatmentDeviceTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
public IfcElectricFlowTreatmentDeviceType() : base() { }
public IfcElectricFlowTreatmentDeviceType(DatabaseIfc db, string name, IfcElectricFlowTreatmentDeviceTypeEnum predefinedType)
@ -268,73 +269,74 @@ namespace GeometryGym.Ifc
[Serializable]
public partial class IfcElectricGenerator : IfcEnergyConversionDevice //IFC4
{
internal IfcElectricGeneratorTypeEnum mPredefinedType = IfcElectricGeneratorTypeEnum.NOTDEFINED;// OPTIONAL : IfcElectricGeneratorTypeEnum;
public IfcElectricGeneratorTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcElectricGeneratorTypeEnum mPredefinedType = IfcElectricGeneratorTypeEnum.NOTDEFINED;// OPTIONAL : IfcElectricGeneratorTypeEnum;
public IfcElectricGeneratorTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcElectricGeneratorTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcElectricGenerator() : base() { }
internal IfcElectricGenerator(DatabaseIfc db, IfcElectricGenerator g, DuplicateOptions options) : base(db, g, options) { mPredefinedType = g.mPredefinedType; }
internal IfcElectricGenerator(DatabaseIfc db, IfcElectricGenerator g, DuplicateOptions options) : base(db, g, options) { PredefinedType = g.PredefinedType; }
public IfcElectricGenerator(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape representation, IfcDistributionSystem system) : base(host, placement, representation, system) { }
}
[Serializable]
public partial class IfcElectricGeneratorType : IfcEnergyConversionDeviceType
{
internal IfcElectricGeneratorTypeEnum mPredefinedType = IfcElectricGeneratorTypeEnum.NOTDEFINED;// : IfcElectricGeneratorTypeEnum;
public IfcElectricGeneratorTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcElectricGeneratorTypeEnum mPredefinedType = IfcElectricGeneratorTypeEnum.NOTDEFINED;// : IfcElectricGeneratorTypeEnum;
public IfcElectricGeneratorTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcElectricGeneratorTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcElectricGeneratorType() : base() { }
internal IfcElectricGeneratorType(DatabaseIfc db, IfcElectricGeneratorType t, DuplicateOptions options) : base(db, t, options) { mPredefinedType = t.mPredefinedType; }
public IfcElectricGeneratorType(DatabaseIfc db, string name, IfcElectricGeneratorTypeEnum t) : base(db) { Name = name; mPredefinedType = t; }
internal IfcElectricGeneratorType(DatabaseIfc db, IfcElectricGeneratorType t, DuplicateOptions options) : base(db, t, options) { PredefinedType = t.PredefinedType; }
public IfcElectricGeneratorType(DatabaseIfc db, string name, IfcElectricGeneratorTypeEnum t) : base(db) { Name = name; PredefinedType = t; }
}
[Obsolete("DEPRECATED IFC4", false)]
[Serializable]
public partial class IfcElectricHeaterType : IfcFlowTerminalType // DEPRECATED IFC4
{
internal IfcElectricHeaterTypeEnum mPredefinedType = IfcElectricHeaterTypeEnum.NOTDEFINED;// : IfcElectricHeaterTypeEnum
public IfcElectricHeaterTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
public override string StepClassName { get { return (mDatabase == null || mDatabase.Release < ReleaseVersion.IFC4 ? base.StepClassName : "IfcFlowTerminalType"); } }
private IfcElectricHeaterTypeEnum mPredefinedType = IfcElectricHeaterTypeEnum.NOTDEFINED;// : IfcElectricHeaterTypeEnum
public IfcElectricHeaterTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcElectricHeaterTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcElectricHeaterType() : base() { }
internal IfcElectricHeaterType(DatabaseIfc db, IfcElectricHeaterType t, DuplicateOptions options) : base(db, t, options) { mPredefinedType = t.mPredefinedType; }
public IfcElectricHeaterType(DatabaseIfc db, string name, IfcElectricHeaterTypeEnum t) : base(db) { Name = name; mPredefinedType = t; }
internal IfcElectricHeaterType(DatabaseIfc db, IfcElectricHeaterType t, DuplicateOptions options) : base(db, t, options) { PredefinedType = t.PredefinedType; }
public IfcElectricHeaterType(DatabaseIfc db, string name, IfcElectricHeaterTypeEnum t) : base(db) { Name = name; PredefinedType = t; }
}
[Serializable]
public partial class IfcElectricMotor : IfcEnergyConversionDevice //IFC4
{
internal IfcElectricMotorTypeEnum mPredefinedType = IfcElectricMotorTypeEnum.NOTDEFINED;// OPTIONAL : IfcElectricMotorTypeEnum;
public IfcElectricMotorTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcElectricMotorTypeEnum mPredefinedType = IfcElectricMotorTypeEnum.NOTDEFINED;// OPTIONAL : IfcElectricMotorTypeEnum;
public IfcElectricMotorTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcElectricMotorTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcElectricMotor() : base() { }
internal IfcElectricMotor(DatabaseIfc db, IfcElectricMotor m, DuplicateOptions options) : base(db, m, options) { mPredefinedType = m.mPredefinedType; }
internal IfcElectricMotor(DatabaseIfc db, IfcElectricMotor m, DuplicateOptions options) : base(db, m, options) { PredefinedType = m.PredefinedType; }
public IfcElectricMotor(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape representation, IfcDistributionSystem system) : base(host, placement, representation, system) { }
}
[Serializable]
public partial class IfcElectricMotorType : IfcEnergyConversionDeviceType
{
internal IfcElectricMotorTypeEnum mPredefinedType = IfcElectricMotorTypeEnum.NOTDEFINED;// : IfcElectricMotorTypeEnum;
public IfcElectricMotorTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcElectricMotorTypeEnum mPredefinedType = IfcElectricMotorTypeEnum.NOTDEFINED;// : IfcElectricMotorTypeEnum;
public IfcElectricMotorTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcElectricMotorTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcElectricMotorType() : base() { }
internal IfcElectricMotorType(DatabaseIfc db, IfcElectricMotorType t, DuplicateOptions options) : base(db, t, options) { mPredefinedType = t.mPredefinedType; }
public IfcElectricMotorType(DatabaseIfc db, string name, IfcElectricMotorTypeEnum t) : base(db) { Name = name; mPredefinedType = t; }
internal IfcElectricMotorType(DatabaseIfc db, IfcElectricMotorType t, DuplicateOptions options) : base(db, t, options) { PredefinedType = t.PredefinedType; }
public IfcElectricMotorType(DatabaseIfc db, string name, IfcElectricMotorTypeEnum t) : base(db) { Name = name; PredefinedType = t; }
}
[Serializable]
public partial class IfcElectricTimeControl : IfcFlowController //IFC4
{
internal IfcElectricTimeControlTypeEnum mPredefinedType = IfcElectricTimeControlTypeEnum.NOTDEFINED;// OPTIONAL : IfcElectricTimeControlTypeEnum;
public IfcElectricTimeControlTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcElectricTimeControlTypeEnum mPredefinedType = IfcElectricTimeControlTypeEnum.NOTDEFINED;// OPTIONAL : IfcElectricTimeControlTypeEnum;
public IfcElectricTimeControlTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcElectricTimeControlTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcElectricTimeControl() : base() { }
internal IfcElectricTimeControl(DatabaseIfc db, IfcElectricTimeControl c, DuplicateOptions options) : base(db, c, options) { mPredefinedType = c.mPredefinedType; }
internal IfcElectricTimeControl(DatabaseIfc db, IfcElectricTimeControl c, DuplicateOptions options) : base(db, c, options) { PredefinedType = c.PredefinedType; }
public IfcElectricTimeControl(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape representation, IfcDistributionSystem system) : base(host, placement, representation, system) { }
}
[Serializable]
public partial class IfcElectricTimeControlType : IfcFlowControllerType
{
internal IfcElectricTimeControlTypeEnum mPredefinedType = IfcElectricTimeControlTypeEnum.NOTDEFINED;// : IfcElectricTimeControlTypeEnum;
public IfcElectricTimeControlTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcElectricTimeControlTypeEnum mPredefinedType = IfcElectricTimeControlTypeEnum.NOTDEFINED;// : IfcElectricTimeControlTypeEnum;
public IfcElectricTimeControlTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcElectricTimeControlTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcElectricTimeControlType() : base() { }
internal IfcElectricTimeControlType(DatabaseIfc db, IfcElectricTimeControlType t, DuplicateOptions options) : base(db, t, options) { mPredefinedType = t.mPredefinedType; }
public IfcElectricTimeControlType(DatabaseIfc m, string name, IfcElectricTimeControlTypeEnum type) : base(m) { Name = name; mPredefinedType = type; }
internal IfcElectricTimeControlType(DatabaseIfc db, IfcElectricTimeControlType t, DuplicateOptions options) : base(db, t, options) { PredefinedType = t.PredefinedType; }
public IfcElectricTimeControlType(DatabaseIfc db, string name, IfcElectricTimeControlTypeEnum type) : base(db) { Name = name; PredefinedType = type; }
}
//[Obsolete("DEPRECATED IFC4", false)]
//ENTITY IfcElectricalBaseProperties // DEPRECATED IFC4
@ -342,12 +344,16 @@ namespace GeometryGym.Ifc
[Serializable]
public partial class IfcElectricalCircuit : IfcSystem // DEPRECATED IFC4
{
public override string StepClassName { get { return (mDatabase == null || mDatabase.Release < ReleaseVersion.IFC4 ? base.StepClassName : "IfcSystem"); } }
internal IfcElectricalCircuit() : base() { }
internal IfcElectricalCircuit(DatabaseIfc db, IfcElectricalCircuit c, DuplicateOptions options) : base(db, c, options) { }
}
[Obsolete("DEPRECATED IFC2x2", false)]
[Serializable]
public partial class IfcElectricalElement : IfcElement /* DEPRECATED IFC2x2*/ { }
public partial class IfcElectricalElement : IfcElement /* DEPRECATED IFC2x2*/
{
public IfcElectricalElement(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape shape) : base(host, placement, shape) { }
}
[Serializable]
public abstract partial class IfcElement : IfcProduct, IfcInterferenceSelect, IfcStructuralActivityAssignmentSelect //ABSTRACT SUPERTYPE OF (ONEOF(IfcBuildingElement, IfcCivilElement
{ //,IfcDistributionElement,IfcElementAssembly,IfcElementComponent,IfcFeatureElement,IfcFurnishingElement,IfcGeographicElement,IfcTransportElement ,IfcVirtualElement,IfcElectricalElement SS,IfcEquipmentElement SS))
@ -388,15 +394,8 @@ namespace GeometryGym.Ifc
public SET<IfcRelConnectsStructuralActivity> AssignedStructuralActivity { get { return mAssignedStructuralActivity; } }
public SET<IfcRelCoversBldgElements> HasCoverings { get { return mHasCoverings; } }
//GEOMGYM
//List<IfcRelConnectsStructuralActivity> mAssignedStructuralActivity = new List<IfcRelConnectsStructuralActivity>();//: SET OF IfcRelConnectsStructuralActivity FOR RelatingElement;
protected IfcElement() : base() { }
protected IfcElement(IfcElement element, bool replace) : base(element, replace)
{
mTag = element.mTag;
//todo setInverse
}
protected IfcElement(DatabaseIfc db) : base(db) { }
protected IfcElement(DatabaseIfc db, IfcElement e, DuplicateOptions options) : base(db, e, options)
{
@ -409,13 +408,13 @@ namespace GeometryGym.Ifc
{
IfcElement relating = ce.RelatingElement, related = ce.RelatedElement;
int relatingIndex = db.Factory.mDuplicateMapping.FindExisting(relating), relatedIndex = db.Factory.mDuplicateMapping.FindExisting(related);
if (relating.mIndex != e.mIndex && relatingIndex > 0)
if (relating != e && relatingIndex > 0)
{
IfcRelConnectsElements rce = db.Factory.Duplicate(ce, new DuplicateOptions(options.DeviationTolerance) { DuplicateDownstream = false }) as IfcRelConnectsElements;
rce.RelatedElement = this;
rce.RelatingElement = db[relatingIndex] as IfcElement;
}
else if (related.mIndex != e.mIndex && relatedIndex > 0)
else if (related != e && relatedIndex > 0)
{
IfcRelConnectsElements rce = db.Factory.Duplicate(ce, new DuplicateOptions(options.DeviationTolerance) { DuplicateDownstream = false }) as IfcRelConnectsElements;
rce.RelatingElement = this;
@ -614,34 +613,35 @@ namespace GeometryGym.Ifc
[Serializable]
public abstract partial class IfcElementarySurface : IfcSurface // ABSTRACT SUPERTYPE OF(ONEOF(IfcCylindricalSurface, IfcPlane))
{
private int mPosition;// : IfcAxis2Placement3D;
public IfcAxis2Placement3D Position { get { return mDatabase[mPosition] as IfcAxis2Placement3D; } set { mPosition = value.mIndex; } }
private IfcAxis2Placement3D mPosition;// : IfcAxis2Placement3D;
public IfcAxis2Placement3D Position { get { return mPosition; } set { mPosition = value; } }
protected IfcElementarySurface() : base() { }
protected IfcElementarySurface(DatabaseIfc db, IfcElementarySurface s, DuplicateOptions options) : base(db, s, options) { Position = db.Factory.Duplicate(s.Position) as IfcAxis2Placement3D; }
protected IfcElementarySurface(IfcAxis2Placement3D placement) : base(placement.mDatabase) { mPosition = placement.mIndex; }
protected IfcElementarySurface(IfcAxis2Placement3D position) : base(position.mDatabase) { mPosition = position; }
}
[Serializable]
public partial class IfcElementAssembly : IfcElement
{
internal IfcAssemblyPlaceEnum mAssemblyPlace = IfcAssemblyPlaceEnum.NOTDEFINED;//: OPTIONAL IfcAssemblyPlaceEnum;
internal IfcElementAssemblyTypeEnum mPredefinedType = IfcElementAssemblyTypeEnum.NOTDEFINED;//: OPTIONAL IfcElementAssemblyTypeEnum;
private IfcElementAssemblyTypeEnum mPredefinedType = IfcElementAssemblyTypeEnum.NOTDEFINED;//: OPTIONAL IfcElementAssemblyTypeEnum;
public IfcAssemblyPlaceEnum AssemblyPlace { get { return mAssemblyPlace; } set { mAssemblyPlace = value; } }
public IfcElementAssemblyTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
public IfcElementAssemblyTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcElementAssemblyTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcElementAssembly() : base() { }
internal IfcElementAssembly(DatabaseIfc db, IfcElementAssembly a, DuplicateOptions options) : base(db, a, options) { mPredefinedType = a.mPredefinedType; }
public IfcElementAssembly(IfcObjectDefinition host, IfcAssemblyPlaceEnum place, IfcElementAssemblyTypeEnum type) : base(host, null, null) { AssemblyPlace = place; PredefinedType = type; }
internal IfcElementAssembly(DatabaseIfc db, IfcElementAssembly a, DuplicateOptions options) : base(db, a, options) { PredefinedType = a.PredefinedType; }
public IfcElementAssembly(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape shape) : base(host, placement, shape) { }
public IfcElementAssembly(IfcObjectDefinition host, IfcAssemblyPlaceEnum placement, IfcElementAssemblyTypeEnum type) : base(host, null, null) { AssemblyPlace = placement; PredefinedType = type; }
}
[Serializable]
public partial class IfcElementAssemblyType : IfcElementType //IFC4
[Serializable, VersionAdded(ReleaseVersion.IFC4)]
public partial class IfcElementAssemblyType : IfcElementType
{
internal IfcElementAssemblyTypeEnum mPredefinedType = IfcElementAssemblyTypeEnum.NOTDEFINED;// IfcElementAssemblyTypeEnum;
public IfcElementAssemblyTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcElementAssemblyTypeEnum mPredefinedType = IfcElementAssemblyTypeEnum.NOTDEFINED;// IfcElementAssemblyTypeEnum;
public IfcElementAssemblyTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcElementAssemblyTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcElementAssemblyType() : base() { }
internal IfcElementAssemblyType(DatabaseIfc db, IfcElementAssemblyType t, DuplicateOptions options) : base(db, t, options) { mPredefinedType = t.mPredefinedType; }
public IfcElementAssemblyType(DatabaseIfc m, string name, IfcElementAssemblyTypeEnum type) : base(m) { Name = name; mPredefinedType = type; if (m.mRelease < ReleaseVersion.IFC4) throw new Exception(StepClassName + " only supported in IFC4!"); }
internal IfcElementAssemblyType(DatabaseIfc db, IfcElementAssemblyType t, DuplicateOptions options) : base(db, t, options) { PredefinedType = t.PredefinedType; }
public IfcElementAssemblyType(DatabaseIfc db, string name, IfcElementAssemblyTypeEnum type) : base(db) { Name = name; PredefinedType = type; }
}
[Serializable]
public abstract partial class IfcElementComponent : IfcElement // ABSTRACT SUPERTYPE OF(ONEOF(IfcBuildingElementPart, IfcDiscreteAccessory, IfcFastener, IfcMechanicalFastener, IfcReinforcingElement, IfcVibrationIsolator))
@ -787,7 +787,6 @@ namespace GeometryGym.Ifc
public string ElementType { get { return mElementType; } set { mElementType = value; } }
protected IfcElementType() : base() { }
protected IfcElementType(IfcElementType basis) : base(basis) { mElementType = basis.mElementType; }
protected IfcElementType(DatabaseIfc db, IfcElementType t, DuplicateOptions options) : base(db, t, options) { mElementType = t.mElementType; }
protected IfcElementType(DatabaseIfc db) : base(db) { }
@ -859,22 +858,22 @@ namespace GeometryGym.Ifc
[Serializable]
public partial class IfcEngine : IfcEnergyConversionDevice //IFC4
{
internal IfcEngineTypeEnum mPredefinedType = IfcEngineTypeEnum.NOTDEFINED;// OPTIONAL : IfcEngineTypeEnum;
public IfcEngineTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcEngineTypeEnum mPredefinedType = IfcEngineTypeEnum.NOTDEFINED;// OPTIONAL : IfcEngineTypeEnum;
public IfcEngineTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcEngineTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcEngine() : base() { }
internal IfcEngine(DatabaseIfc db, IfcEngine e, DuplicateOptions options) : base(db, e, options) { mPredefinedType = e.mPredefinedType; }
internal IfcEngine(DatabaseIfc db, IfcEngine e, DuplicateOptions options) : base(db, e, options) { PredefinedType = e.PredefinedType; }
public IfcEngine(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape representation, IfcDistributionSystem system) : base(host, placement, representation, system) { }
}
[Serializable]
public partial class IfcEngineType : IfcEnergyConversionDeviceType
{
internal IfcEngineTypeEnum mPredefinedType = IfcEngineTypeEnum.NOTDEFINED;// : IfcEngineTypeEnum;
public IfcEngineTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcEngineTypeEnum mPredefinedType = IfcEngineTypeEnum.NOTDEFINED;// : IfcEngineTypeEnum;
public IfcEngineTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcEngineTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcEngineType() : base() { }
internal IfcEngineType(DatabaseIfc db, IfcEngineType t, DuplicateOptions options) : base(db, t, options) { mPredefinedType = t.mPredefinedType; }
public IfcEngineType(DatabaseIfc db, string name, IfcEngineTypeEnum t) : base(db) { Name = name; mPredefinedType = t; }
internal IfcEngineType(DatabaseIfc db, IfcEngineType t, DuplicateOptions options) : base(db, t, options) { PredefinedType = t.PredefinedType; }
public IfcEngineType(DatabaseIfc db, string name, IfcEngineTypeEnum t) : base(db) { Name = name; PredefinedType = t; }
}
[Obsolete("DEPRECATED IFC4", false)]
[Serializable]
@ -903,57 +902,57 @@ namespace GeometryGym.Ifc
[Serializable]
public partial class IfcEvaporativeCooler : IfcEnergyConversionDevice //IFC4
{
internal IfcEvaporativeCoolerTypeEnum mPredefinedType = IfcEvaporativeCoolerTypeEnum.NOTDEFINED;// OPTIONAL : IfcEvaporativeCoolerTypeEnum;
public IfcEvaporativeCoolerTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcEvaporativeCoolerTypeEnum mPredefinedType = IfcEvaporativeCoolerTypeEnum.NOTDEFINED;// OPTIONAL : IfcEvaporativeCoolerTypeEnum;
public IfcEvaporativeCoolerTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcEvaporativeCoolerTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcEvaporativeCooler() : base() { }
internal IfcEvaporativeCooler(DatabaseIfc db, IfcEvaporativeCooler c, DuplicateOptions options) : base(db, c, options) { mPredefinedType = c.mPredefinedType; }
internal IfcEvaporativeCooler(DatabaseIfc db, IfcEvaporativeCooler c, DuplicateOptions options) : base(db, c, options) { PredefinedType = c.PredefinedType; }
public IfcEvaporativeCooler(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape representation, IfcDistributionSystem system) : base(host, placement, representation, system) { }
}
[Serializable]
public partial class IfcEvaporativeCoolerType : IfcEnergyConversionDeviceType
{
internal IfcEvaporativeCoolerTypeEnum mPredefinedType = IfcEvaporativeCoolerTypeEnum.NOTDEFINED;// : IfcEvaporativeCoolerTypeEnum;
public IfcEvaporativeCoolerTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcEvaporativeCoolerTypeEnum mPredefinedType = IfcEvaporativeCoolerTypeEnum.NOTDEFINED;// : IfcEvaporativeCoolerTypeEnum;
public IfcEvaporativeCoolerTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcEvaporativeCoolerTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcEvaporativeCoolerType() : base() { }
internal IfcEvaporativeCoolerType(DatabaseIfc db, IfcEvaporativeCoolerType t, DuplicateOptions options) : base(db, t, options) { mPredefinedType = t.mPredefinedType; }
public IfcEvaporativeCoolerType(DatabaseIfc db, string name, IfcEvaporativeCoolerTypeEnum t) : base(db) { Name = name; mPredefinedType = t; }
internal IfcEvaporativeCoolerType(DatabaseIfc db, IfcEvaporativeCoolerType t, DuplicateOptions options) : base(db, t, options) { PredefinedType = t.PredefinedType; }
public IfcEvaporativeCoolerType(DatabaseIfc db, string name, IfcEvaporativeCoolerTypeEnum t) : base(db) { Name = name; PredefinedType = t; }
}
[Serializable]
public partial class IfcEvaporator : IfcEnergyConversionDevice //IFC4
{
internal IfcEvaporatorTypeEnum mPredefinedType = IfcEvaporatorTypeEnum.NOTDEFINED;// OPTIONAL : IfcEvaporatorTypeEnum;
public IfcEvaporatorTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcEvaporatorTypeEnum mPredefinedType = IfcEvaporatorTypeEnum.NOTDEFINED;// OPTIONAL : IfcEvaporatorTypeEnum;
public IfcEvaporatorTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcEvaporatorTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcEvaporator() : base() { }
internal IfcEvaporator(DatabaseIfc db, IfcEvaporator e, DuplicateOptions options) : base(db, e, options) { mPredefinedType = e.mPredefinedType; }
internal IfcEvaporator(DatabaseIfc db, IfcEvaporator e, DuplicateOptions options) : base(db, e, options) { PredefinedType = e.PredefinedType; }
public IfcEvaporator(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape representation, IfcDistributionSystem system) : base(host, placement, representation, system) { }
}
[Serializable]
public partial class IfcEvaporatorType : IfcEnergyConversionDeviceType
{
internal IfcEvaporatorTypeEnum mPredefinedType = IfcEvaporatorTypeEnum.NOTDEFINED;// : IfcEvaporatorTypeEnum;
public IfcEvaporatorTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcEvaporatorTypeEnum mPredefinedType = IfcEvaporatorTypeEnum.NOTDEFINED;// : IfcEvaporatorTypeEnum;
public IfcEvaporatorTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcEvaporatorTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcEvaporatorType() : base() { }
internal IfcEvaporatorType(DatabaseIfc db, IfcEvaporatorType t, DuplicateOptions options) : base(db, t, options) { mPredefinedType = t.mPredefinedType; }
public IfcEvaporatorType(DatabaseIfc db, string name, IfcEvaporatorTypeEnum t) : base(db) { Name = name; mPredefinedType = t; }
internal IfcEvaporatorType(DatabaseIfc db, IfcEvaporatorType t, DuplicateOptions options) : base(db, t, options) { PredefinedType = t.PredefinedType; }
public IfcEvaporatorType(DatabaseIfc db, string name, IfcEvaporatorTypeEnum t) : base(db) { Name = name; PredefinedType = t; }
}
[Serializable]
public partial class IfcEvent : IfcProcess //IFC4
{
internal IfcEventTypeEnum mPredefinedType = IfcEventTypeEnum.NOTDEFINED;// : IfcEventTypeEnum;
private IfcEventTypeEnum mPredefinedType = IfcEventTypeEnum.NOTDEFINED;// : IfcEventTypeEnum;
internal IfcEventTriggerTypeEnum mEventTriggerType = IfcEventTriggerTypeEnum.NOTDEFINED;// : IfcEventTypeEnum;
internal string mUserDefinedEventTriggerType = "";// : OPTIONAL IfcLabel;
internal IfcEventTime mEventOccurrenceTime;// : OPTIONAL IfcEventTime;
public IfcEventTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
public IfcEventTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcEventTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
public IfcEventTriggerTypeEnum EventTriggerType { get { return mEventTriggerType; } set { mEventTriggerType = value; } }
public string UserDefinedEventTriggerType { get { return mUserDefinedEventTriggerType; } set { mUserDefinedEventTriggerType = value; } }
internal IfcEvent() : base() { }
internal IfcEvent(DatabaseIfc db, IfcEvent e, DuplicateOptions options) : base(db, e, options) { mPredefinedType = e.mPredefinedType; mEventTriggerType = e.mEventTriggerType; mUserDefinedEventTriggerType = e.mUserDefinedEventTriggerType; }
internal IfcEvent(DatabaseIfc db, IfcEvent e, DuplicateOptions options) : base(db, e, options) { PredefinedType = e.PredefinedType; mEventTriggerType = e.mEventTriggerType; mUserDefinedEventTriggerType = e.mUserDefinedEventTriggerType; }
}
[Serializable]
public partial class IfcEventTime : IfcSchedulingTime
@ -974,18 +973,18 @@ namespace GeometryGym.Ifc
[Serializable]
public partial class IfcEventType : IfcTypeProcess //IFC4
{
internal IfcEventTypeEnum mPredefinedType = IfcEventTypeEnum.NOTDEFINED;// : IfcEventTypeEnum;
private IfcEventTypeEnum mPredefinedType = IfcEventTypeEnum.NOTDEFINED;// : IfcEventTypeEnum;
internal IfcEventTriggerTypeEnum mEventTriggerType = IfcEventTriggerTypeEnum.NOTDEFINED;// : IfcEventTypeEnum;
internal string mUserDefinedEventTriggerType = "";// : OPTIONAL IfcLabel;
public IfcEventTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
public IfcEventTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcEventTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
public IfcEventTriggerTypeEnum EventTriggerType { get { return mEventTriggerType; } set { mEventTriggerType = value; } }
public string UserDefinedEventTriggerType { get { return mUserDefinedEventTriggerType; } set { mUserDefinedEventTriggerType = value; } }
internal IfcEventType() : base() { }
internal IfcEventType(DatabaseIfc db, IfcEventType t, DuplicateOptions options) : base(db, t, options) { mPredefinedType = t.mPredefinedType; mEventTriggerType = t.mEventTriggerType; mUserDefinedEventTriggerType = t.mUserDefinedEventTriggerType; }
public IfcEventType(DatabaseIfc m, string name, IfcEventTypeEnum t, IfcEventTriggerTypeEnum trigger)
: base(m) { Name = name; mPredefinedType = t; mEventTriggerType = trigger; }
internal IfcEventType(DatabaseIfc db, IfcEventType t, DuplicateOptions options) : base(db, t, options) { PredefinedType = t.PredefinedType; mEventTriggerType = t.mEventTriggerType; mUserDefinedEventTriggerType = t.mUserDefinedEventTriggerType; }
public IfcEventType(DatabaseIfc db, string name, IfcEventTypeEnum t, IfcEventTriggerTypeEnum trigger)
: base(db) { Name = name; PredefinedType = t; mEventTriggerType = trigger; }
}
[Obsolete("DEPRECATED IFC4", false)]
[Serializable]
@ -1053,10 +1052,10 @@ namespace GeometryGym.Ifc
public abstract partial class IfcExternalInformation : BaseClassIfc, IfcResourceObjectSelect // NEW IFC4 ABSTRACT SUPERTYPE OF(ONEOF(IfcClassification, IfcDocumentInformation, IfcLibraryInformation));
{ //INVERSE
private SET<IfcExternalReferenceRelationship> mHasExternalReference = new SET<IfcExternalReferenceRelationship>(); //IFC4 SET [0:?] OF IfcExternalReferenceRelationship FOR RelatedResourceObjects;
internal List<IfcResourceConstraintRelationship> mHasConstraintRelationships = new List<IfcResourceConstraintRelationship>(); //gg
internal SET<IfcResourceConstraintRelationship> mHasConstraintRelationships = new SET<IfcResourceConstraintRelationship>(); //gg
public SET<IfcExternalReferenceRelationship> HasExternalReference { get { return mHasExternalReference; } }
public ReadOnlyCollection<IfcResourceConstraintRelationship> HasConstraintRelationships { get { return new ReadOnlyCollection<IfcResourceConstraintRelationship>(mHasConstraintRelationships); } }
public SET<IfcResourceConstraintRelationship> HasConstraintRelationships { get { return mHasConstraintRelationships; } }
protected IfcExternalInformation() : base() { }
protected IfcExternalInformation(DatabaseIfc db) : base(db) { }
@ -1201,7 +1200,7 @@ namespace GeometryGym.Ifc
internal IfcExternalReferenceRelationship(DatabaseIfc db, IfcExternalReferenceRelationship r, DuplicateOptions options) : base(db, r, options)
{
RelatingReference = db.Factory.Duplicate(r.RelatingReference) as IfcExternalReference;
RelatedResourceObjects.AddRange(r.mRelatedResourceObjects.ConvertAll(x=>db.Factory.Duplicate(x.Database[x.Index]) as IfcResourceObjectSelect));
RelatedResourceObjects.AddRange(r.mRelatedResourceObjects.ConvertAll(x=>db.Factory.Duplicate<IfcResourceObjectSelect>(x)));
}
public IfcExternalReferenceRelationship(IfcExternalReference reference, IfcResourceObjectSelect related) : this(reference, new List<IfcResourceObjectSelect>() { related }) { }
public IfcExternalReferenceRelationship(IfcExternalReference reference, IEnumerable<IfcResourceObjectSelect> related)
@ -1234,18 +1233,17 @@ namespace GeometryGym.Ifc
[Serializable]
public partial class IfcExternalSpatialElement : IfcExternalSpatialStructureElement, IfcSpaceBoundarySelect //NEW IFC4
{
internal IfcExternalSpatialElementTypeEnum mPredefinedType = IfcExternalSpatialElementTypeEnum.NOTDEFINED;
private IfcExternalSpatialElementTypeEnum mPredefinedType = IfcExternalSpatialElementTypeEnum.NOTDEFINED;
//INVERSE
internal List<IfcRelSpaceBoundary> mBoundedBy = new List<IfcRelSpaceBoundary>(); // BoundedBy : SET [0:?] OF IfcRelExternalSpatialElementBoundary FOR RelatingExternalSpatialElement;
internal SET<IfcRelSpaceBoundary> mBoundedBy = new SET<IfcRelSpaceBoundary>(); // BoundedBy : SET [0:?] OF IfcRelExternalSpatialElementBoundary FOR RelatingExternalSpatialElement;
public IfcExternalSpatialElementTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
public ReadOnlyCollection<IfcRelSpaceBoundary> BoundedBy { get { return new ReadOnlyCollection<IfcRelSpaceBoundary>( mBoundedBy); } }
public IfcExternalSpatialElementTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcExternalSpatialElementTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
public SET<IfcRelSpaceBoundary> BoundedBy { get { return mBoundedBy; } }
internal IfcExternalSpatialElement() : base() { }
internal IfcExternalSpatialElement(DatabaseIfc db, IfcExternalSpatialElement e, DuplicateOptions options) : base(db, e, options) { mPredefinedType = e.mPredefinedType; }
public IfcExternalSpatialElement(IfcSite host, string name, IfcExternalSpatialElementTypeEnum te)
: base(host, name) { mPredefinedType = te; }
internal IfcExternalSpatialElement(DatabaseIfc db, IfcExternalSpatialElement e, DuplicateOptions options) : base(db, e, options) { PredefinedType = e.PredefinedType; }
public IfcExternalSpatialElement(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape shape) : base(host, placement, shape) { }
public void AddBoundary(IfcRelSpaceBoundary boundary) { mBoundedBy.Add(boundary); }
}
[Serializable]
@ -1255,6 +1253,7 @@ namespace GeometryGym.Ifc
protected IfcExternalSpatialStructureElement(IfcObjectPlacement pl) : base(pl) { }
protected IfcExternalSpatialStructureElement(IfcSite host, string name) : base(host, name) { }
protected IfcExternalSpatialStructureElement(DatabaseIfc db, IfcExternalSpatialStructureElement e, DuplicateOptions options) : base(db, e, options) { }
protected IfcExternalSpatialStructureElement(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape shape) : base(host, placement, shape) { }
}
[Serializable]
public partial class IfcExtrudedAreaSolid : IfcSweptAreaSolid // SUPERTYPE OF(IfcExtrudedAreaSolidTapered)
@ -1275,8 +1274,8 @@ namespace GeometryGym.Ifc
[Serializable]
public partial class IfcExtrudedAreaSolidTapered : IfcExtrudedAreaSolid
{
private int mEndSweptArea;//: IfcProfileDef
public IfcProfileDef EndSweptArea { get { return mDatabase[mEndSweptArea] as IfcProfileDef; } set { mEndSweptArea = value.mIndex; } }
private IfcProfileDef mEndSweptArea;//: IfcProfileDef
public IfcProfileDef EndSweptArea { get { return mEndSweptArea; } set { mEndSweptArea = value; } }
internal IfcExtrudedAreaSolidTapered() : base() { }
internal IfcExtrudedAreaSolidTapered(DatabaseIfc db, IfcExtrudedAreaSolidTapered e, DuplicateOptions options) : base(db, e, options) { EndSweptArea = db.Factory.Duplicate(e.EndSweptArea, options) as IfcProfileDef; }

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

@ -143,14 +143,15 @@ namespace GeometryGym.Ifc
[Serializable]
public partial class IfcFacetedBrepWithVoids : IfcFacetedBrep
{
internal List<int> mVoids = new List<int>();// : SET [1:?] OF IfcClosedShell
public ReadOnlyCollection<IfcClosedShell> Voids { get { return new ReadOnlyCollection<IfcClosedShell>( mVoids.ConvertAll(x => mDatabase[x] as IfcClosedShell)); } }
internal SET<IfcClosedShell> mVoids = new SET<IfcClosedShell>();// : SET [1:?] OF IfcClosedShell
public SET<IfcClosedShell> Voids { get { return mVoids; } }
internal IfcFacetedBrepWithVoids() : base() { }
internal IfcFacetedBrepWithVoids(DatabaseIfc db, IfcFacetedBrepWithVoids b, DuplicateOptions options) : base(db, b, options) { b.Voids.ToList().ForEach(x=>addVoid( db.Factory.Duplicate(x) as IfcClosedShell)); }
public IfcFacetedBrepWithVoids(IfcClosedShell s, IEnumerable<IfcClosedShell> voids) : base(s) { mVoids.AddRange(voids.Select(x=>x.Index)); }
internal void addVoid(IfcClosedShell shell) { mVoids.Add(shell.mIndex); }
internal IfcFacetedBrepWithVoids(DatabaseIfc db, IfcFacetedBrepWithVoids b, DuplicateOptions options) : base(db, b, options)
{
Voids.AddRange(b.Voids.Select(x => db.Factory.Duplicate(x) as IfcClosedShell));
}
public IfcFacetedBrepWithVoids(IfcClosedShell s, IEnumerable<IfcClosedShell> voids) : base(s) { mVoids.AddRange(voids); }
}
[Serializable]
public partial class IfcFacility : IfcSpatialStructureElement //IFC4x2 //SUPERTYPE OF(IfcBridge, IfcBuilding)
@ -182,7 +183,7 @@ namespace GeometryGym.Ifc
public partial class IfcFacilityPartCommon : IfcFacilityPart // IFC4x3
{
private IfcFacilityPartCommonTypeEnum mPredefinedType = IfcFacilityPartCommonTypeEnum.NOTDEFINED; //: OPTIONAL IfcFacilityPartCommonTypeEnum;
public IfcFacilityPartCommonTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
public IfcFacilityPartCommonTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcFacilityPartCommonTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
public override string StepClassName { get { if (mDatabase != null && mDatabase.Release > ReleaseVersion.IFC4X2 && mDatabase.Release < ReleaseVersion.IFC4X3) return "IfcFacilityPart"; return base.StepClassName; } }
public IfcFacilityPartCommon() : base() { }
public IfcFacilityPartCommon(DatabaseIfc db) : base(db) { }
@ -212,42 +213,42 @@ namespace GeometryGym.Ifc
[Serializable]
public partial class IfcFan : IfcFlowMovingDevice //IFC4
{
internal IfcFanTypeEnum mPredefinedType = IfcFanTypeEnum.NOTDEFINED;// OPTIONAL : IfcFanTypeEnum;
public IfcFanTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcFanTypeEnum mPredefinedType = IfcFanTypeEnum.NOTDEFINED;// OPTIONAL : IfcFanTypeEnum;
public IfcFanTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcFanTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcFan() : base() { }
internal IfcFan(DatabaseIfc db, IfcFan f, DuplicateOptions options) : base(db, f, options) { mPredefinedType = f.mPredefinedType; }
internal IfcFan(DatabaseIfc db, IfcFan f, DuplicateOptions options) : base(db, f, options) { PredefinedType = f.PredefinedType; }
public IfcFan(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape representation, IfcDistributionSystem system) : base(host, placement, representation, system) { }
}
[Serializable]
public partial class IfcFanType : IfcFlowMovingDeviceType
{
internal IfcFanTypeEnum mPredefinedType = IfcFanTypeEnum.NOTDEFINED;// : IfcFanTypeEnum;
public IfcFanTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcFanTypeEnum mPredefinedType = IfcFanTypeEnum.NOTDEFINED;// : IfcFanTypeEnum;
public IfcFanTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcFanTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcFanType() : base() { }
internal IfcFanType(DatabaseIfc db, IfcFanType t, DuplicateOptions options) : base(db, t, options) { mPredefinedType = t.mPredefinedType; }
public IfcFanType(DatabaseIfc db, string name, IfcFanTypeEnum t) : base(db) { Name = name; mPredefinedType = t; }
internal IfcFanType(DatabaseIfc db, IfcFanType t, DuplicateOptions options) : base(db, t, options) { PredefinedType = t.PredefinedType; }
public IfcFanType(DatabaseIfc db, string name, IfcFanTypeEnum t) : base(db) { Name = name; PredefinedType = t; }
}
[Serializable]
public partial class IfcFastener : IfcElementComponent
{
internal IfcFastenerTypeEnum mPredefinedType = IfcFastenerTypeEnum.NOTDEFINED;// : IfcFastenerTypeEnum; //IFC4
public IfcFastenerTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcFastenerTypeEnum mPredefinedType = IfcFastenerTypeEnum.NOTDEFINED;// : IfcFastenerTypeEnum; //IFC4
public IfcFastenerTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcFastenerTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcFastener() : base() { }
internal IfcFastener(DatabaseIfc db, IfcFastener f, DuplicateOptions options) : base(db, f, options) { mPredefinedType = f.mPredefinedType; }
internal IfcFastener(DatabaseIfc db, IfcFastener f, DuplicateOptions options) : base(db, f, options) { PredefinedType = f.PredefinedType; }
public IfcFastener(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape representation) : base(host, placement, representation) { }
}
[Serializable]
public partial class IfcFastenerType : IfcElementComponentType
{
internal IfcFastenerTypeEnum mPredefinedType = IfcFastenerTypeEnum.NOTDEFINED;// : IfcFastenerTypeEnum; //IFC4
public IfcFastenerTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcFastenerTypeEnum mPredefinedType = IfcFastenerTypeEnum.NOTDEFINED;// : IfcFastenerTypeEnum; //IFC4
public IfcFastenerTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcFastenerTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcFastenerType() : base() { }
internal IfcFastenerType(DatabaseIfc db, IfcFastenerType t, DuplicateOptions options) : base(db, t, options) { mPredefinedType = t.mPredefinedType; }
public IfcFastenerType(DatabaseIfc m, string name, IfcFastenerTypeEnum type) : base(m) { Name = name; mPredefinedType = type; }
internal IfcFastenerType(DatabaseIfc db, IfcFastenerType t, DuplicateOptions options) : base(db, t, options) { PredefinedType = t.PredefinedType; }
public IfcFastenerType(DatabaseIfc db, string name, IfcFastenerTypeEnum type) : base(db) { Name = name; PredefinedType = type; }
}
[Serializable]
public abstract partial class IfcFeatureElement : IfcElement // ABSTRACT SUPERTYPE OF(ONEOF(IfcFeatureElementAddition, IfcFeatureElementSubtraction, IfcSurfaceFeature))
@ -260,8 +261,8 @@ namespace GeometryGym.Ifc
[Serializable]
public abstract partial class IfcFeatureElementAddition : IfcFeatureElement //ABSTRACT SUPERTYPE OF(IfcProjectionElement)
{ //INVERSE
internal List<IfcRelProjectsElement> mProjectsElements = new List<IfcRelProjectsElement>();
public ReadOnlyCollection<IfcRelProjectsElement> ProjectsElements { get { return new ReadOnlyCollection<IfcRelProjectsElement>( mProjectsElements); } }
internal SET<IfcRelProjectsElement> mProjectsElements = new SET<IfcRelProjectsElement>();
public SET<IfcRelProjectsElement> ProjectsElements { get { return mProjectsElements; } }
protected IfcFeatureElementAddition() : base() { }
protected IfcFeatureElementAddition(DatabaseIfc db, IfcFeatureElementAddition e, DuplicateOptions options) : base(db, e, options){ }
@ -314,24 +315,26 @@ namespace GeometryGym.Ifc
[Serializable]
public partial class IfcFillAreaStyleHatching : IfcGeometricRepresentationItem, IfcFillStyleSelect
{
internal int mHatchLineAppearance;// : IfcCurveStyle;
internal string mStartOfNextHatchLine;// : IfcHatchLineDistanceSelect; IfcOneDirectionRepeatFactor,IfcPositiveLengthMeasure
internal int mPointOfReferenceHatchLine;// : OPTIONAL IfcCartesianPoint; //DEPRECATED IFC4
internal int mPatternStart;// : OPTIONAL IfcCartesianPoint;
internal IfcCurveStyle mHatchLineAppearance;// : IfcCurveStyle;
internal IfcHatchLineDistanceSelect mStartOfNextHatchLine;// : IfcHatchLineDistanceSelect; IfcOneDirectionRepeatFactor,IfcPositiveLengthMeasure
internal IfcCartesianPoint mPointOfReferenceHatchLine;// : OPTIONAL IfcCartesianPoint; //DEPRECATED IFC4
internal IfcCartesianPoint mPatternStart;// : OPTIONAL IfcCartesianPoint;
internal double mHatchLineAngle;// : IfcPlaneAngleMeasure;
public IfcCurveStyle HatchLineAppearance { get { return mDatabase[mHatchLineAppearance] as IfcCurveStyle; } set { mHatchLineAppearance = value.mIndex; } }
public IfcCartesianPoint PatternStart { get { return mDatabase[mPatternStart] as IfcCartesianPoint; } set { mPatternStart = (value == null ? 0 : value.mIndex); } }
public IfcCurveStyle HatchLineAppearance { get { return mHatchLineAppearance; } set { mHatchLineAppearance = value; } }
public IfcHatchLineDistanceSelect StartOfNextHatchLine { get { return mStartOfNextHatchLine; } set { mStartOfNextHatchLine = value; } }
public IfcCartesianPoint PointOfReferenceHatchLine { get { return mPointOfReferenceHatchLine; } set { mPointOfReferenceHatchLine = value; } }
public IfcCartesianPoint PatternStart { get { return mPatternStart; } set { mPatternStart = value; } }
internal IfcFillAreaStyleHatching() : base() { }
internal IfcFillAreaStyleHatching(DatabaseIfc db, IfcFillAreaStyleHatching h, DuplicateOptions options) : base(db, h, options)
{
mHatchLineAppearance = db.Factory.Duplicate(h.HatchLineAppearance).mIndex;
mHatchLineAppearance = db.Factory.Duplicate(h.HatchLineAppearance);
mStartOfNextHatchLine = h.mStartOfNextHatchLine;
if (h.mPointOfReferenceHatchLine > 0)
mPointOfReferenceHatchLine = db.Factory.Duplicate(h.mDatabase[h.mPointOfReferenceHatchLine]).mIndex;
if (h.mPatternStart > 0)
PatternStart = db.Factory.Duplicate(h.PatternStart) as IfcCartesianPoint;
if (h.mPointOfReferenceHatchLine != null)
mPointOfReferenceHatchLine = db.Factory.Duplicate(h.mPointOfReferenceHatchLine);
if (h.mPatternStart != null)
PatternStart = db.Factory.Duplicate(h.PatternStart);
mHatchLineAngle = h.mHatchLineAngle;
}
}
@ -362,49 +365,49 @@ namespace GeometryGym.Ifc
[Serializable]
public partial class IfcFilter : IfcFlowTreatmentDevice //IFC4
{
internal IfcFilterTypeEnum mPredefinedType = IfcFilterTypeEnum.NOTDEFINED;
public IfcFilterTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcFilterTypeEnum mPredefinedType = IfcFilterTypeEnum.NOTDEFINED;
public IfcFilterTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcFilterTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcFilter() : base() { }
internal IfcFilter(DatabaseIfc db, IfcFilter f, DuplicateOptions options) : base(db, f, options) { mPredefinedType = f.mPredefinedType; }
internal IfcFilter(DatabaseIfc db, IfcFilter f, DuplicateOptions options) : base(db, f, options) { PredefinedType = f.PredefinedType; }
public IfcFilter(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape representation, IfcDistributionSystem system) : base(host, placement, representation, system) { }
}
[Serializable]
public partial class IfcFilterType : IfcFlowTreatmentDeviceType
{
internal IfcFilterTypeEnum mPredefinedType = IfcFilterTypeEnum.NOTDEFINED;// : IfcFilterTypeEnum;
public IfcFilterTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcFilterTypeEnum mPredefinedType = IfcFilterTypeEnum.NOTDEFINED;// : IfcFilterTypeEnum;
public IfcFilterTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcFilterTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcFilterType() : base() { }
internal IfcFilterType(DatabaseIfc db, IfcFilterType t, DuplicateOptions options) : base(db, t, options) { mPredefinedType = t.mPredefinedType; }
public IfcFilterType(DatabaseIfc db, string name, IfcFilterTypeEnum t) : base(db) { Name = name; mPredefinedType = t; }
internal IfcFilterType(DatabaseIfc db, IfcFilterType t, DuplicateOptions options) : base(db, t, options) { PredefinedType = t.PredefinedType; }
public IfcFilterType(DatabaseIfc db, string name, IfcFilterTypeEnum t) : base(db) { Name = name; PredefinedType = t; }
}
[Serializable]
public partial class IfcFireSuppressionTerminal : IfcFlowTerminal //IFC4
{
internal IfcFireSuppressionTerminalTypeEnum mPredefinedType = IfcFireSuppressionTerminalTypeEnum.NOTDEFINED;// OPTIONAL : IfcFireSuppressinTerminalTypeEnum;
public IfcFireSuppressionTerminalTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcFireSuppressionTerminalTypeEnum mPredefinedType = IfcFireSuppressionTerminalTypeEnum.NOTDEFINED;// OPTIONAL : IfcFireSuppressinTerminalTypeEnum;
public IfcFireSuppressionTerminalTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcFireSuppressionTerminalTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcFireSuppressionTerminal() : base() { }
internal IfcFireSuppressionTerminal(DatabaseIfc db, IfcFireSuppressionTerminal t, DuplicateOptions options) : base(db, t, options) { mPredefinedType = t.mPredefinedType; }
internal IfcFireSuppressionTerminal(DatabaseIfc db, IfcFireSuppressionTerminal t, DuplicateOptions options) : base(db, t, options) { PredefinedType = t.PredefinedType; }
public IfcFireSuppressionTerminal(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape representation, IfcDistributionSystem system) : base(host, placement, representation, system) { }
}
[Serializable]
public partial class IfcFireSuppressionTerminalType : IfcFlowTerminalType
{
internal IfcFireSuppressionTerminalTypeEnum mPredefinedType = IfcFireSuppressionTerminalTypeEnum.NOTDEFINED;// : IfcFireSuppressionTerminalTypeEnum;
public IfcFireSuppressionTerminalTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcFireSuppressionTerminalTypeEnum mPredefinedType = IfcFireSuppressionTerminalTypeEnum.NOTDEFINED;// : IfcFireSuppressionTerminalTypeEnum;
public IfcFireSuppressionTerminalTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcFireSuppressionTerminalTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcFireSuppressionTerminalType() : base() { }
internal IfcFireSuppressionTerminalType(DatabaseIfc db, IfcFireSuppressionTerminalType t, DuplicateOptions options) : base(db, t, options) { mPredefinedType = t.mPredefinedType; }
public IfcFireSuppressionTerminalType(DatabaseIfc m, string name, IfcFireSuppressionTerminalTypeEnum t) : base(m) { Name = name; mPredefinedType = t; }
internal IfcFireSuppressionTerminalType(DatabaseIfc db, IfcFireSuppressionTerminalType t, DuplicateOptions options) : base(db, t, options) { PredefinedType = t.PredefinedType; }
public IfcFireSuppressionTerminalType(DatabaseIfc db, string name, IfcFireSuppressionTerminalTypeEnum t) : base(db) { Name = name; PredefinedType = t; }
}
[Serializable]
public partial class IfcFixedReferenceSweptAreaSolid : IfcDirectrixCurveSweptAreaSolid //IFC4
{
internal int mFixedReference;// : IfcDirection;
internal IfcDirection mFixedReference;// : IfcDirection;
public IfcDirection FixedReference { get { return mDatabase[mFixedReference] as IfcDirection; } set { mFixedReference = value.mIndex; } }
public IfcDirection FixedReference { get { return mFixedReference; } set { mFixedReference = value; } }
internal IfcFixedReferenceSweptAreaSolid() : base() { }
internal IfcFixedReferenceSweptAreaSolid(DatabaseIfc db, IfcFixedReferenceSweptAreaSolid s, DuplicateOptions options) : base(db, s, options)
@ -450,42 +453,42 @@ namespace GeometryGym.Ifc
[Serializable]
public partial class IfcFlowInstrument : IfcDistributionControlElement //IFC4
{
internal IfcFlowInstrumentTypeEnum mPredefinedType = IfcFlowInstrumentTypeEnum.NOTDEFINED;
public IfcFlowInstrumentTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcFlowInstrumentTypeEnum mPredefinedType = IfcFlowInstrumentTypeEnum.NOTDEFINED;
public IfcFlowInstrumentTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcFlowInstrumentTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcFlowInstrument() : base() { }
internal IfcFlowInstrument(DatabaseIfc db, IfcFlowInstrument i, DuplicateOptions options) : base(db, i, options) { mPredefinedType = i.mPredefinedType; }
internal IfcFlowInstrument(DatabaseIfc db, IfcFlowInstrument i, DuplicateOptions options) : base(db, i, options) { PredefinedType = i.PredefinedType; }
public IfcFlowInstrument(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape representation, IfcDistributionSystem system) : base(host, placement, representation, system) { }
}
[Serializable]
public partial class IfcFlowInstrumentType : IfcDistributionControlElementType
{
internal IfcFlowInstrumentTypeEnum mPredefinedType = IfcFlowInstrumentTypeEnum.NOTDEFINED;// : IfcFlowInstrumentTypeEnum;
public IfcFlowInstrumentTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcFlowInstrumentTypeEnum mPredefinedType = IfcFlowInstrumentTypeEnum.NOTDEFINED;// : IfcFlowInstrumentTypeEnum;
public IfcFlowInstrumentTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcFlowInstrumentTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcFlowInstrumentType() : base() { }
internal IfcFlowInstrumentType(DatabaseIfc db, IfcFlowInstrumentType t, DuplicateOptions options) : base(db, t, options) { mPredefinedType = t.mPredefinedType; }
public IfcFlowInstrumentType(DatabaseIfc m, string name, IfcFlowInstrumentTypeEnum t) : base(m) { Name = name; mPredefinedType = t; }
internal IfcFlowInstrumentType(DatabaseIfc db, IfcFlowInstrumentType t, DuplicateOptions options) : base(db, t, options) { PredefinedType = t.PredefinedType; }
public IfcFlowInstrumentType(DatabaseIfc db, string name, IfcFlowInstrumentTypeEnum t) : base(db) { Name = name; PredefinedType = t; }
}
[Serializable]
public partial class IfcFlowMeter : IfcFlowController //IFC4
{
internal IfcFlowMeterTypeEnum mPredefinedType = IfcFlowMeterTypeEnum.NOTDEFINED;// OPTIONAL : IfcDamperTypeEnum;
public IfcFlowMeterTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcFlowMeterTypeEnum mPredefinedType = IfcFlowMeterTypeEnum.NOTDEFINED;// OPTIONAL : IfcFlowMeterTypeEnum;
public IfcFlowMeterTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcFlowMeterTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcFlowMeter() : base() { }
internal IfcFlowMeter(DatabaseIfc db, IfcFlowMeter m, DuplicateOptions options) : base(db, m, options) { mPredefinedType = m.mPredefinedType; }
internal IfcFlowMeter(DatabaseIfc db, IfcFlowMeter m, DuplicateOptions options) : base(db, m, options) { PredefinedType = m.PredefinedType; }
public IfcFlowMeter(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape representation, IfcDistributionSystem system) : base(host, placement, representation, system) { }
}
[Serializable]
public partial class IfcFlowMeterType : IfcFlowControllerType
{
internal IfcFlowMeterTypeEnum mPredefinedType = IfcFlowMeterTypeEnum.NOTDEFINED;// : IfcFlowMeterTypeEnum;
public IfcFlowMeterTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcFlowMeterTypeEnum mPredefinedType = IfcFlowMeterTypeEnum.NOTDEFINED;// : IfcFlowMeterTypeEnum;
public IfcFlowMeterTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcFlowMeterTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcFlowMeterType() : base() { }
internal IfcFlowMeterType(DatabaseIfc db, IfcFlowMeterType t, DuplicateOptions options) : base(db, t, options) { mPredefinedType = t.mPredefinedType; }
public IfcFlowMeterType(DatabaseIfc m, string name, IfcFlowMeterTypeEnum type) : base(m) { Name = name; mPredefinedType = type; }
internal IfcFlowMeterType(DatabaseIfc db, IfcFlowMeterType t, DuplicateOptions options) : base(db, t, options) { PredefinedType = t.PredefinedType; }
public IfcFlowMeterType(DatabaseIfc db, string name, IfcFlowMeterTypeEnum type) : base(db) { Name = name; PredefinedType = type; }
}
[Serializable]
public partial class IfcFlowMovingDevice : IfcDistributionFlowElement // SUPERTYPE OF(ONEOF(IfcCompressor, IfcFan, IfcPump))
@ -543,7 +546,6 @@ namespace GeometryGym.Ifc
internal IfcFlowTerminal() : base() { }
internal IfcFlowTerminal(DatabaseIfc db) : base(db) { }
protected IfcFlowTerminal(IfcFlowTerminal basis, bool replace) : base(basis, replace) { }
internal IfcFlowTerminal(DatabaseIfc db, IfcFlowTerminal t, DuplicateOptions options) : base(db, t, options) { }
public IfcFlowTerminal(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape representation, IfcDistributionSystem system) : base(host, placement, representation, system) { }
}
@ -552,7 +554,6 @@ namespace GeometryGym.Ifc
{ // IfcElectricApplianceType ,IfcElectricHeaterType ,IfcFireSuppressionTerminalType,IfcLampType ,IfcLightFixtureType ,IfcOutletType ,IfcSanitaryTerminalType ,IfcStackTerminalType ,IfcWasteTerminalType))
// IFC4 deleted ,IfcGasTerminalType
protected IfcFlowTerminalType() : base() { }
protected IfcFlowTerminalType(IfcDistributionFlowElementType basis) : base(basis) { }
protected IfcFlowTerminalType(DatabaseIfc db) : base(db) { }
protected IfcFlowTerminalType(DatabaseIfc db, IfcFlowTerminalType t, DuplicateOptions options) : base(db, t, options) { }
}
@ -578,12 +579,12 @@ namespace GeometryGym.Ifc
public partial class IfcFluidFlowProperties : IfcPropertySetDefinition
{
internal IfcPropertySourceEnum mPropertySource;// : IfcPropertySourceEnum;
internal int mFlowConditionTimeSeries, mVelocityTimeSeries, mFlowrateTimeSeries;// : OPTIONAL IfcTimeSeries;
internal int mFluid;// : IfcMaterial;
internal int mPressureTimeSeries;// : OPTIONAL IfcTimeSeries;
internal IfcTimeSeries mFlowConditionTimeSeries, mVelocityTimeSeries, mFlowrateTimeSeries;// : OPTIONAL IfcTimeSeries;
internal IfcMaterial mFluid;// : IfcMaterial;
internal IfcTimeSeries mPressureTimeSeries;// : OPTIONAL IfcTimeSeries;
internal string mUserDefinedPropertySource = "";// : OPTIONAL IfcLabel;
internal double mTemperatureSingleValue = double.NaN, mWetBulbTemperatureSingleValue = double.NaN;// : OPTIONAL IfcThermodynamicTemperatureMeasure;
internal int mWetBulbTemperatureTimeSeries, mTemperatureTimeSeries;// : OPTIONAL IfcTimeSeries;
internal IfcTimeSeries mWetBulbTemperatureTimeSeries, mTemperatureTimeSeries;// : OPTIONAL IfcTimeSeries;
internal double mFlowrateSingleValue = double.NaN;// : OPTIONAL IfcDerivedMeasureValue;
internal double mFlowConditionSingleValue = double.NaN;// : OPTIONAL IfcPositiveRatioMeasure;
internal double mVelocitySingleValue = double.NaN;// : OPTIONAL IfcLinearVelocityMeasure;
@ -593,18 +594,22 @@ namespace GeometryGym.Ifc
internal IfcFluidFlowProperties(DatabaseIfc db, IfcFluidFlowProperties p, DuplicateOptions options) : base(db, p, options)
{
mPropertySource = p.mPropertySource;
//if(p.mFlowConditionTimeSeries > 0)
// mFlowConditionTimeSeries = p.mFlowConditionTimeSeries;
//mVelocityTimeSeries = p.mVelocityTimeSeries;
//mFlowrateTimeSeries = p.mFlowrateTimeSeries;
//mFluid = p.mFluid;
//mPressureTimeSeries = p.mPressureTimeSeries;
if(p.mFlowConditionTimeSeries != null)
mFlowConditionTimeSeries = db.Factory.Duplicate(p.mFlowConditionTimeSeries, options);
if(p.mVelocityTimeSeries != null)
mVelocityTimeSeries = db.Factory.Duplicate(p.mVelocityTimeSeries, options);
if(p.mFlowrateTimeSeries != null)
mFlowrateTimeSeries = db.Factory.Duplicate(p.mFlowrateTimeSeries, options);
mFluid = db.Factory.Duplicate(p.mFluid, options);
if(p.mPressureTimeSeries != null)
mPressureTimeSeries = db.Factory.Duplicate(p.mPressureTimeSeries, options);
mUserDefinedPropertySource = p.mUserDefinedPropertySource;
mTemperatureSingleValue = p.mTemperatureSingleValue;
mWetBulbTemperatureSingleValue = p.mWetBulbTemperatureSingleValue;
//mWetBulbTemperatureTimeSeries = p.mWetBulbTemperatureTimeSeries;
//mTemperatureTimeSeries = p.mTemperatureTimeSeries;
if(p.mWetBulbTemperatureTimeSeries != null)
mWetBulbTemperatureTimeSeries = db.Factory.Duplicate(p.mWetBulbTemperatureTimeSeries, options);
if(p.mTemperatureTimeSeries != null)
mTemperatureTimeSeries = db.Factory.Duplicate(p.mTemperatureTimeSeries, options);
mFlowrateSingleValue = p.mFlowrateSingleValue;
mFlowConditionSingleValue = p.mFlowConditionSingleValue;
mVelocitySingleValue = p.mVelocitySingleValue;
@ -615,23 +620,23 @@ namespace GeometryGym.Ifc
[Serializable]
public partial class IfcFooting : IfcBuiltElement
{
internal IfcFootingTypeEnum mPredefinedType = IfcFootingTypeEnum.NOTDEFINED;// OPTIONAL : IfcFootingTypeEnum;
public IfcFootingTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcFootingTypeEnum mPredefinedType = IfcFootingTypeEnum.NOTDEFINED;// OPTIONAL : IfcFootingTypeEnum;
public IfcFootingTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcFootingTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcFooting() : base() { }
internal IfcFooting(DatabaseIfc db, IfcFooting f, DuplicateOptions options) : base(db, f, options) { mPredefinedType = f.mPredefinedType; }
internal IfcFooting(DatabaseIfc db, IfcFooting f, DuplicateOptions options) : base(db, f, options) { PredefinedType = f.PredefinedType; }
public IfcFooting(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape representation) : base(host, placement, representation) { }
}
[Serializable]
public partial class IfcFootingType : IfcBuiltElementType
{
internal IfcFootingTypeEnum mPredefinedType = IfcFootingTypeEnum.NOTDEFINED;
public IfcFootingTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcFootingTypeEnum mPredefinedType = IfcFootingTypeEnum.NOTDEFINED;
public IfcFootingTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcFootingTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcFootingType() : base() { }
internal IfcFootingType(DatabaseIfc db, IfcFootingType t, DuplicateOptions options) : base(db,t, options) { mPredefinedType = t.mPredefinedType; }
public IfcFootingType(DatabaseIfc m, string name, IfcFootingTypeEnum type) : base(m) { Name = name; mPredefinedType = type; }
public IfcFootingType(string name, IfcMaterialProfileSet mps, IfcFootingTypeEnum type) : base(mps.mDatabase) { Name = name; mPredefinedType = type; MaterialSelect = mps; }
internal IfcFootingType(DatabaseIfc db, IfcFootingType t, DuplicateOptions options) : base(db,t, options) { PredefinedType = t.PredefinedType; }
public IfcFootingType(DatabaseIfc db, string name, IfcFootingTypeEnum type) : base(db) { Name = name; PredefinedType = type; }
public IfcFootingType(string name, IfcMaterialProfileSet mps, IfcFootingTypeEnum type) : base(mps.mDatabase) { Name = name; PredefinedType = type; MaterialSelect = mps; }
}
//[Obsolete("DEPRECATED IFC4", false)]
//ENTITY IfcFuelProperties
@ -654,11 +659,11 @@ namespace GeometryGym.Ifc
{
public override string StepClassName { get { return (mDatabase.mRelease < ReleaseVersion.IFC4 ? "IfcFurnishingElement" : base.StepClassName); } }
internal IfcFurnitureTypeEnum mPredefinedType = IfcFurnitureTypeEnum.NOTDEFINED;//: OPTIONAL IfcFurnitureTypeEnum;
public IfcFurnitureTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcFurnitureTypeEnum mPredefinedType = IfcFurnitureTypeEnum.NOTDEFINED;//: OPTIONAL IfcFurnitureTypeEnum;
public IfcFurnitureTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcFurnitureTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcFurniture() : base() { }
internal IfcFurniture(DatabaseIfc db, IfcFurniture f, DuplicateOptions options) : base(db, f, options) { mPredefinedType = f.mPredefinedType; }
internal IfcFurniture(DatabaseIfc db, IfcFurniture f, DuplicateOptions options) : base(db, f, options) { PredefinedType = f.PredefinedType; }
public IfcFurniture(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape representation) : base(host, placement, representation) { }
}
[Obsolete("DEPRECATED IFC4", false)]
@ -672,14 +677,14 @@ namespace GeometryGym.Ifc
public partial class IfcFurnitureType : IfcFurnishingElementType
{
internal IfcAssemblyPlaceEnum mAssemblyPlace = IfcAssemblyPlaceEnum.NOTDEFINED;
internal IfcFurnitureTypeEnum mPredefinedType = IfcFurnitureTypeEnum.NOTDEFINED; // IFC4 OPTIONAL
private IfcFurnitureTypeEnum mPredefinedType = IfcFurnitureTypeEnum.NOTDEFINED; // IFC4 OPTIONAL
public IfcAssemblyPlaceEnum AssemblyPlace { get { return mAssemblyPlace; } set { mAssemblyPlace = value; } }
public IfcFurnitureTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcFurnitureTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcFurnitureType() : base() { }
internal IfcFurnitureType(DatabaseIfc db, IfcFurnitureType t, DuplicateOptions options) : base(db, t, options) { mAssemblyPlace = t.mAssemblyPlace; mPredefinedType = t.mPredefinedType; }
internal IfcFurnitureType(DatabaseIfc db, IfcFurnitureType t, DuplicateOptions options) : base(db, t, options) { mAssemblyPlace = t.mAssemblyPlace; PredefinedType = t.PredefinedType; }
public IfcFurnitureType(DatabaseIfc db, string name, IfcFurnitureTypeEnum type) : base(db, name)
{
mPredefinedType = type;
if (mDatabase.mRelease < ReleaseVersion.IFC4 && string.IsNullOrEmpty(ElementType) && type != IfcFurnitureTypeEnum.NOTDEFINED)
ElementType = type.ToString();
PredefinedType = type;
}
}
}

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

@ -32,12 +32,12 @@ namespace GeometryGym.Ifc
[Serializable]
public partial class IfcGasTerminalType : IfcFlowTerminalType // DEPRECATED IFC4
{
internal IfcGasTerminalTypeEnum mPredefinedType = IfcGasTerminalTypeEnum.NOTDEFINED;// : IfcGasTerminalBoxTypeEnum;
public IfcGasTerminalTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcGasTerminalTypeEnum mPredefinedType = IfcGasTerminalTypeEnum.NOTDEFINED;// : IfcGasTerminalBoxTypeEnum;
public IfcGasTerminalTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcGasTerminalTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcGasTerminalType() : base() { }
internal IfcGasTerminalType(DatabaseIfc db, IfcGasTerminalType t, DuplicateOptions options) : base(db, t, options) { mPredefinedType = t.mPredefinedType; }
public IfcGasTerminalType(DatabaseIfc m, string name, IfcGasTerminalTypeEnum type) : base(m) { Name = name; mPredefinedType = type; }
internal IfcGasTerminalType(DatabaseIfc db, IfcGasTerminalType t, DuplicateOptions options) : base(db, t, options) { PredefinedType = t.PredefinedType; }
public IfcGasTerminalType(DatabaseIfc db, string name, IfcGasTerminalTypeEnum type) : base(db) { Name = name; PredefinedType = type; }
}
[Obsolete("DEPRECATED IFC4", false)]
[Serializable]
@ -75,38 +75,39 @@ namespace GeometryGym.Ifc
internal IfcGeneralProfileProperties(DatabaseIfc db, IfcGeneralProfileProperties p, DuplicateOptions options) : base(db, p, options) { mPhysicalWeight = p.mPhysicalWeight; mPerimeter = p.mPerimeter; mMinimumPlateThickness = p.mMinimumPlateThickness; mMaximumPlateThickness = p.mMaximumPlateThickness; mCrossSectionArea = p.mCrossSectionArea; }
public IfcGeneralProfileProperties(IfcProfileDef p) : base(p) { }
}
[Serializable]
[Serializable, VersionAdded(ReleaseVersion.IFC4)]
public partial class IfcGeographicElement : IfcElement //IFC4
{
internal IfcGeographicElementTypeEnum mPredefinedType = IfcGeographicElementTypeEnum.NOTDEFINED;// OPTIONAL IfcGeographicElementTypeEnum;
public IfcGeographicElementTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcGeographicElementTypeEnum mPredefinedType = IfcGeographicElementTypeEnum.NOTDEFINED;// OPTIONAL IfcGeographicElementTypeEnum;
public IfcGeographicElementTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcGeographicElementTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcGeographicElement() : base() { }
internal IfcGeographicElement(DatabaseIfc db) : base(db) { }
internal IfcGeographicElement(DatabaseIfc db, IfcGeographicElement e, DuplicateOptions options) : base(db, e, options) { mPredefinedType = e.mPredefinedType; }
public IfcGeographicElement(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape representation) : base(host, placement, representation) { if (mDatabase.mRelease < ReleaseVersion.IFC4) throw new Exception(StepClassName + " only supported in IFC4!"); }
internal IfcGeographicElement(DatabaseIfc db, IfcGeographicElement e, DuplicateOptions options) : base(db, e, options) { PredefinedType = e.PredefinedType; }
public IfcGeographicElement(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape representation) : base(host, placement, representation) { }
}
[Serializable, VersionAdded(ReleaseVersion.IFC4)]
public partial class IfcGeographicElementType : IfcElementType //IFC4
{
internal IfcGeographicElementTypeEnum mPredefinedType = IfcGeographicElementTypeEnum.NOTDEFINED;// IfcGeographicElementTypeEnum;
public IfcGeographicElementTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcGeographicElementTypeEnum mPredefinedType = IfcGeographicElementTypeEnum.NOTDEFINED;// IfcGeographicElementTypeEnum;
public IfcGeographicElementTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcGeographicElementTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcGeographicElementType() : base() { }
internal IfcGeographicElementType(DatabaseIfc db, IfcGeographicElementType t, DuplicateOptions options) : base(db, t, options) { mPredefinedType = t.mPredefinedType; }
public IfcGeographicElementType(DatabaseIfc m, string name, IfcGeographicElementTypeEnum type) : base(m) { Name = name; mPredefinedType = type; if (m.mRelease < ReleaseVersion.IFC4) throw new Exception(StepClassName + " only supported in IFC4!"); }
internal IfcGeographicElementType(DatabaseIfc db, IfcGeographicElementType t, DuplicateOptions options) : base(db, t, options) { PredefinedType = t.PredefinedType; }
public IfcGeographicElementType(DatabaseIfc db, string name, IfcGeographicElementTypeEnum type) : base(db) { Name = name; PredefinedType = type; }
}
[Serializable]
public partial class IfcGeometricCurveSet : IfcGeometricSet
{
internal IfcGeometricCurveSet() : base() { }
internal IfcGeometricCurveSet(DatabaseIfc db, IfcGeometricCurveSet s, DuplicateOptions options) : base(db, s, options) { }
public IfcGeometricCurveSet(IfcGeometricSetSelect element) : base(element) { if(element is IfcSurface) throw new Exception("XXX Error, IfcSurface cannot be added to IfcGeometricCurveSet " + mIndex); }
public IfcGeometricCurveSet(IfcGeometricSetSelect element) : base(element) { if(element is IfcSurface) throw new Exception("XXX Error, IfcSurface cannot be added to IfcGeometricCurveSet " + StepId); }
public IfcGeometricCurveSet(IEnumerable<IfcGeometricSetSelect> set) : base(set)
{
foreach(IfcGeometricSetSelect item in set)
{
if(item is IfcSurface)
throw new Exception("XXX Error, IfcSurface cannot be added to IfcGeometricCurveSet " + mIndex);
throw new Exception("XXX Error, IfcSurface cannot be added to IfcGeometricCurveSet " + StepId);
}
}
}
@ -144,7 +145,7 @@ namespace GeometryGym.Ifc
mCoordinateSpaceDimension = c.mCoordinateSpaceDimension;
mPrecision = c.mPrecision;
if(c.mWorldCoordinateSystem != null)
WorldCoordinateSystem = db.Factory.Duplicate(c.mDatabase[c.mWorldCoordinateSystem.Index]) as IfcAxis2Placement;
WorldCoordinateSystem = db.Factory.Duplicate<IfcAxis2Placement>(c.mWorldCoordinateSystem);
if (c.mTrueNorth != null)
TrueNorth = db.Factory.Duplicate(c.TrueNorth) as IfcDirection;
@ -247,12 +248,12 @@ namespace GeometryGym.Ifc
public SET<IfcGeometricSetSelect> Elements { get { return mElements; } }
internal IfcGeometricSet() : base() { }
internal IfcGeometricSet(DatabaseIfc db, IfcGeometricSet s, DuplicateOptions options) : base(db, s, options) { mElements.AddRange(s.mElements.ConvertAll(x=>db.Factory.Duplicate(s.mDatabase[x.Index]) as IfcGeometricSetSelect)); }
internal IfcGeometricSet(DatabaseIfc db, IfcGeometricSet s, DuplicateOptions options) : base(db, s, options) { mElements.AddRange(s.mElements.ConvertAll(x=>db.Factory.Duplicate<IfcGeometricSetSelect>(x))); }
public IfcGeometricSet(IfcGeometricSetSelect element) : base(element.Database) { mElements.Add(element); }
public IfcGeometricSet(IEnumerable<IfcGeometricSetSelect> set) : base(set.First().Database) { mElements.AddRange(set); }
}
public partial interface IfcGeometricSetSelect : IBaseClassIfc { } //SELECT ( IfcPoint, IfcCurve, IfcSurface);
[Serializable]
[Serializable, VersionAdded(ReleaseVersion.IFC4X3)]
public partial class IfcGeomodel : IfcGeotechnicalAssembly
{
public IfcGeomodel() : base() { }
@ -260,7 +261,7 @@ namespace GeometryGym.Ifc
public IfcGeomodel(DatabaseIfc db, IfcGeomodel geomodel, DuplicateOptions options) : base(db, geomodel, options) { }
public IfcGeomodel(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape representation) : base(host, placement, representation) { }
}
[Serializable]
[Serializable, VersionAdded(ReleaseVersion.IFC4X3)]
public partial class IfcGeoslice : IfcGeotechnicalAssembly
{
public IfcGeoslice() : base() { }
@ -268,7 +269,7 @@ namespace GeometryGym.Ifc
public IfcGeoslice(DatabaseIfc db, IfcGeoslice geoslice, DuplicateOptions options) : base(db, geoslice, options) { }
public IfcGeoslice(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape representation) : base(host, placement, representation) { }
}
[Serializable]
[Serializable, VersionAdded(ReleaseVersion.IFC4X3)]
public abstract partial class IfcGeotechnicalAssembly : IfcGeotechnicalElement
{
protected IfcGeotechnicalAssembly() : base() { }
@ -276,7 +277,7 @@ namespace GeometryGym.Ifc
protected IfcGeotechnicalAssembly(DatabaseIfc db, IfcGeotechnicalAssembly geotechnicalAssembly, DuplicateOptions options) : base(db, geotechnicalAssembly, options) { }
protected IfcGeotechnicalAssembly(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape representation) : base(host, placement, representation) { }
}
[Serializable]
[Serializable, VersionAdded(ReleaseVersion.IFC4X3)]
public abstract partial class IfcGeotechnicalElement : IfcElement
{
protected IfcGeotechnicalElement() : base() { }
@ -284,7 +285,7 @@ namespace GeometryGym.Ifc
protected IfcGeotechnicalElement(DatabaseIfc db, IfcGeotechnicalElement geotechnicalElement, DuplicateOptions options) : base(db, geotechnicalElement, options) { }
protected IfcGeotechnicalElement(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape representation) : base(host, placement, representation) { }
}
[Serializable]
[Serializable, VersionAdded(ReleaseVersion.IFC4X3)]
public partial class IfcGeotechnicalStratum : IfcGeotechnicalElement
{
public override string StepClassName
@ -307,8 +308,8 @@ namespace GeometryGym.Ifc
}
}
internal IfcGeotechnicalStratumTypeEnum mPredefinedType = IfcGeotechnicalStratumTypeEnum.NOTDEFINED;// IfcGeotechnicalStratumTypeEnum;
public IfcGeotechnicalStratumTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcGeotechnicalStratumTypeEnum mPredefinedType = IfcGeotechnicalStratumTypeEnum.NOTDEFINED;// IfcGeotechnicalStratumTypeEnum;
public IfcGeotechnicalStratumTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcGeotechnicalStratumTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
public IfcGeotechnicalStratum() : base() { }
public IfcGeotechnicalStratum(DatabaseIfc db) : base(db) { }
@ -349,9 +350,9 @@ namespace GeometryGym.Ifc
private LIST<IfcGridAxis> mUAxes = new LIST<IfcGridAxis>();// : LIST [1:?] OF UNIQUE IfcGridAxis;
private LIST<IfcGridAxis> mVAxes = new LIST<IfcGridAxis>();// : LIST [1:?] OF UNIQUE IfcGridAxis;
private LIST<IfcGridAxis> mWAxes = new LIST<IfcGridAxis>();// : OPTIONAL LIST [1:?] OF UNIQUE IfcGridAxis;
internal IfcGridTypeEnum mPredefinedType = IfcGridTypeEnum.NOTDEFINED;// :OPTIONAL IfcGridTypeEnum; //IFC4 CHANGE New attribute.
private IfcGridTypeEnum mPredefinedType = IfcGridTypeEnum.NOTDEFINED;// :OPTIONAL IfcGridTypeEnum; //IFC4 CHANGE New attribute.
//INVERSE
public IfcGridTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
public IfcGridTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcGridTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
public LIST<IfcGridAxis> UAxes { get { return mUAxes; } set { mUAxes.Clear(); if (value != null) { mUAxes.CollectionChanged -= mUAxes_CollectionChanged; mUAxes = value; mUAxes.CollectionChanged += mUAxes_CollectionChanged; } } }
public LIST<IfcGridAxis> VAxes { get { return mVAxes; } set { mVAxes.Clear(); if (value != null) { mVAxes.CollectionChanged -= mVAxes_CollectionChanged; mVAxes = value; mVAxes.CollectionChanged += mVAxes_CollectionChanged; } } }
@ -363,7 +364,7 @@ namespace GeometryGym.Ifc
UAxes.AddRange(g.UAxes.ConvertAll(x => db.Factory.Duplicate(x) as IfcGridAxis));
VAxes.AddRange(g.VAxes.ConvertAll(x => db.Factory.Duplicate(x) as IfcGridAxis));
WAxes.AddRange(g.WAxes.ConvertAll(x => db.Factory.Duplicate(x) as IfcGridAxis));
mPredefinedType = g.mPredefinedType;
PredefinedType = g.PredefinedType;
}
public IfcGrid(IfcSpatialElement host, IfcAxis2Placement3D placement, List<IfcGridAxis> uAxes, List<IfcGridAxis> vAxes)
: base(new IfcLocalPlacement(host.ObjectPlacement, placement), getRepresentation(uAxes,vAxes, null))

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

@ -30,10 +30,10 @@ namespace GeometryGym.Ifc
[Serializable]
public partial class IfcHalfSpaceSolid : IfcGeometricRepresentationItem, IfcBooleanOperand /* SUPERTYPE OF (ONEOF (IfcBoxedHalfSpace ,IfcPolygonalBoundedHalfSpace)) */
{
private int mBaseSurface;// : IfcSurface;
private IfcSurface mBaseSurface;// : IfcSurface;
private bool mAgreementFlag;// : BOOLEAN;
public IfcSurface BaseSurface { get { return mDatabase[mBaseSurface] as IfcSurface; } set { mBaseSurface = value.mIndex; } }
public IfcSurface BaseSurface { get { return mBaseSurface; } set { mBaseSurface = value; } }
public bool AgreementFlag { get { return mAgreementFlag; } set { mAgreementFlag = value; } }
internal IfcHalfSpaceSolid() : base() { }
@ -44,41 +44,41 @@ namespace GeometryGym.Ifc
[Serializable]
public partial class IfcHeatExchanger : IfcEnergyConversionDevice //IFC4
{
internal IfcHeatExchangerTypeEnum mPredefinedType = IfcHeatExchangerTypeEnum.NOTDEFINED;// OPTIONAL : IfcHeatExchangerTypeEnum;
public IfcHeatExchangerTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcHeatExchangerTypeEnum mPredefinedType = IfcHeatExchangerTypeEnum.NOTDEFINED;// OPTIONAL : IfcHeatExchangerTypeEnum;
public IfcHeatExchangerTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcHeatExchangerTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcHeatExchanger() : base() { }
internal IfcHeatExchanger(DatabaseIfc db, IfcHeatExchanger e, DuplicateOptions options) : base(db, e, options) { mPredefinedType = e.mPredefinedType; }
internal IfcHeatExchanger(DatabaseIfc db, IfcHeatExchanger e, DuplicateOptions options) : base(db, e, options) { PredefinedType = e.PredefinedType; }
public IfcHeatExchanger(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape representation, IfcDistributionSystem system) : base(host, placement, representation, system) { }
}
[Serializable]
public partial class IfcHeatExchangerType : IfcEnergyConversionDeviceType
{
internal IfcHeatExchangerTypeEnum mPredefinedType = IfcHeatExchangerTypeEnum.NOTDEFINED;// : IfcHeatExchangerTypeEnum;
public IfcHeatExchangerTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcHeatExchangerTypeEnum mPredefinedType = IfcHeatExchangerTypeEnum.NOTDEFINED;// : IfcHeatExchangerTypeEnum;
public IfcHeatExchangerTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcHeatExchangerTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcHeatExchangerType() : base() { }
internal IfcHeatExchangerType(DatabaseIfc db, IfcHeatExchangerType t, DuplicateOptions options) : base(db, t, options) { mPredefinedType = t.mPredefinedType; }
public IfcHeatExchangerType(DatabaseIfc m, string name, IfcHeatExchangerTypeEnum type) : base(m) { Name = name; mPredefinedType = type; }
internal IfcHeatExchangerType(DatabaseIfc db, IfcHeatExchangerType t, DuplicateOptions options) : base(db, t, options) { PredefinedType = t.PredefinedType; }
public IfcHeatExchangerType(DatabaseIfc db, string name, IfcHeatExchangerTypeEnum type) : base(db) { Name = name; PredefinedType = type; }
}
[Serializable]
public partial class IfcHumidifier : IfcEnergyConversionDevice //IFC4
{
internal IfcHumidifierTypeEnum mPredefinedType = IfcHumidifierTypeEnum.NOTDEFINED;// OPTIONAL : IfcHumidifierTypeEnum;
public IfcHumidifierTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcHumidifierTypeEnum mPredefinedType = IfcHumidifierTypeEnum.NOTDEFINED;// OPTIONAL : IfcHumidifierTypeEnum;
public IfcHumidifierTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcHumidifierTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcHumidifier() : base() { }
internal IfcHumidifier(DatabaseIfc db, IfcHumidifier h, DuplicateOptions options) : base(db,h, options) { mPredefinedType = h.mPredefinedType; }
internal IfcHumidifier(DatabaseIfc db, IfcHumidifier h, DuplicateOptions options) : base(db,h, options) { PredefinedType = h.PredefinedType; }
public IfcHumidifier(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape representation, IfcDistributionSystem system) : base(host, placement, representation, system) { }
}
[Serializable]
public partial class IfcHumidifierType : IfcEnergyConversionDeviceType
{
internal IfcHumidifierTypeEnum mPredefinedType = IfcHumidifierTypeEnum.NOTDEFINED;// : IfcHumidifierExchangerEnum;
public IfcHumidifierTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcHumidifierTypeEnum mPredefinedType = IfcHumidifierTypeEnum.NOTDEFINED;// : IfcHumidifierExchangerEnum;
public IfcHumidifierTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcHumidifierTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcHumidifierType() : base() { }
internal IfcHumidifierType(DatabaseIfc db, IfcHumidifierType t, DuplicateOptions options) : base(db, t, options) { mPredefinedType = t.mPredefinedType; }
public IfcHumidifierType(DatabaseIfc m, string name, IfcHumidifierTypeEnum type) : base(m) { Name = name; mPredefinedType = type; }
internal IfcHumidifierType(DatabaseIfc db, IfcHumidifierType t, DuplicateOptions options) : base(db, t, options) { PredefinedType = t.PredefinedType; }
public IfcHumidifierType(DatabaseIfc db, string name, IfcHumidifierTypeEnum type) : base(db) { Name = name; PredefinedType = type; }
}
[Obsolete("DEPRECATED IFC4", false)]
[Serializable]

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

@ -32,7 +32,7 @@ namespace GeometryGym.Ifc
public partial class IfcImageTexture : IfcSurfaceTexture
{
internal string mUrlReference;// : IfcIdentifier;
public string UrlReference { get { return ParserIfc.Decode(mUrlReference); } set { mUrlReference = ParserIfc.Encode(value); } }
public string UrlReference { get { return mUrlReference; } set { mUrlReference = value; } }
internal IfcImageTexture() : base() { }
internal IfcImageTexture(DatabaseIfc db, IfcImageTexture t) : base(db, t) { mUrlReference = t.mUrlReference; }
@ -42,7 +42,7 @@ namespace GeometryGym.Ifc
public partial class IfcImpactProtectionDevice : IfcElementComponent
{
private IfcImpactProtectionDeviceTypeEnum mPredefinedType = IfcImpactProtectionDeviceTypeEnum.NOTDEFINED; //: OPTIONAL IfcImpactProtectionDeviceTypeEnum;
public IfcImpactProtectionDeviceTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
public IfcImpactProtectionDeviceTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcImpactProtectionDeviceTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
public IfcImpactProtectionDevice() : base() { }
public IfcImpactProtectionDevice(DatabaseIfc db) : base(db) { }
@ -53,7 +53,7 @@ namespace GeometryGym.Ifc
public partial class IfcImpactProtectionDeviceType : IfcElementComponentType
{
private IfcImpactProtectionDeviceTypeEnum mPredefinedType = IfcImpactProtectionDeviceTypeEnum.NOTDEFINED; //: IfcImpactProtectionDeviceTypeEnum;
public IfcImpactProtectionDeviceTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
public IfcImpactProtectionDeviceTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcImpactProtectionDeviceTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
public IfcImpactProtectionDeviceType() : base() { }
public IfcImpactProtectionDeviceType(DatabaseIfc db, IfcImpactProtectionDeviceType impactProtectionDeviceType, DuplicateOptions options) : base(db, impactProtectionDeviceType, options) { PredefinedType = impactProtectionDeviceType.PredefinedType; }
@ -162,27 +162,26 @@ namespace GeometryGym.Ifc
internal IfcIndexedTriangleTextureMap() : base() { }
internal IfcIndexedTriangleTextureMap(DatabaseIfc db) : base(db) { }
internal IfcIndexedTriangleTextureMap(DatabaseIfc db, IfcIndexedTriangleTextureMap m) : base(db, m) { mTexCoordList = m.mTexCoordList; }
//public IfcIndexedTriangleTextureMap(DatabaseIfc m, IEnumerable<Tuple<int, int,int>> coords) : base(m) { mTexCoordList = coords.ToArray(); }
}
[Serializable]
public partial class IfcInterceptor : IfcFlowTreatmentDevice //IFC4
{
internal IfcInterceptorTypeEnum mPredefinedType = IfcInterceptorTypeEnum.NOTDEFINED;
public IfcInterceptorTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcInterceptorTypeEnum mPredefinedType = IfcInterceptorTypeEnum.NOTDEFINED;
public IfcInterceptorTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcInterceptorTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcInterceptor() : base() { }
internal IfcInterceptor(DatabaseIfc db, IfcInterceptor i, DuplicateOptions options) : base(db, i, options) { mPredefinedType = i.mPredefinedType; }
internal IfcInterceptor(DatabaseIfc db, IfcInterceptor i, DuplicateOptions options) : base(db, i, options) { PredefinedType = i.PredefinedType; }
public IfcInterceptor(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape representation, IfcDistributionSystem system) : base(host, placement, representation, system) { }
}
[Serializable]
public partial class IfcInterceptorType : IfcFlowTreatmentDeviceType
{
internal IfcInterceptorTypeEnum mPredefinedType = IfcInterceptorTypeEnum.NOTDEFINED;// : IfcInterceptorTypeEnum;
public IfcInterceptorTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcInterceptorTypeEnum mPredefinedType = IfcInterceptorTypeEnum.NOTDEFINED;// : IfcInterceptorTypeEnum;
public IfcInterceptorTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcInterceptorTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcInterceptorType() : base() { }
internal IfcInterceptorType(DatabaseIfc db, IfcInterceptorType t, DuplicateOptions options) : base(db, t, options) { mPredefinedType = t.mPredefinedType; }
public IfcInterceptorType(DatabaseIfc db, string name, IfcInterceptorTypeEnum t) : base(db) { Name = name; mPredefinedType = t; }
internal IfcInterceptorType(DatabaseIfc db, IfcInterceptorType t, DuplicateOptions options) : base(db, t, options) { PredefinedType = t.PredefinedType; }
public IfcInterceptorType(DatabaseIfc db, string name, IfcInterceptorTypeEnum t) : base(db) { Name = name; PredefinedType = t; }
}
public interface IfcInterferenceSelect : IBaseClassIfc // SELECT(IfcSpatialElement, IfcElement);
{
@ -200,37 +199,40 @@ namespace GeometryGym.Ifc
public partial class IfcInventory : IfcGroup
{
internal IfcInventoryTypeEnum mPredefinedType;// : IfcInventoryTypeEnum;
internal int mJurisdiction;// : IfcActorSelect;
internal List<int> mResponsiblePersons = new List<int>();// : SET [1:?] OF IfcPerson;
internal int mLastUpdateDate;// : IfcCalendarDate;
internal int mCurrentValue;// : OPTIONAL IfcCostValue;
internal int mOriginalValue;// : OPTIONAL IfcCostValue;
internal IfcActorSelect mJurisdiction;// : IfcActorSelect;
internal SET<IfcPerson> mResponsiblePersons = new SET<IfcPerson>();// : SET [1:?] OF IfcPerson;
internal DateTime mLastUpdateDate = DateTime.MinValue;// : IfcDate
internal IfcCalendarDate mLastUpdateDateSS;// : IfcCalendarDate;
internal IfcCostValue mCurrentValue;// : OPTIONAL IfcCostValue;
internal IfcCostValue mOriginalValue;// : OPTIONAL IfcCostValue;
public IfcInventoryTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
public IfcInventoryTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcInventoryTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcInventory() : base() { }
internal IfcInventory(DatabaseIfc db, IfcInventory i, DuplicateOptions options) : base(db, i, options)
{
#warning todo
//mInventoryType = p.mInventoryType;
//mJurisdiction = p.mJurisdiction;
//mResponsiblePersons = new List<int>(p.mResponsiblePersons.ToArray());
//mLastUpdateDate = p.mLastUpdateDate;
//mCurrentValue = p.mCurrentValue;
//mOriginalValue = p.mOriginalValue;
PredefinedType = i.PredefinedType;
mJurisdiction = db.Factory.Duplicate(i.mJurisdiction, options);
mResponsiblePersons.AddRange(i.mResponsiblePersons.Select(x=>db.Factory.Duplicate(x, options)));
mLastUpdateDate = i.mLastUpdateDate;
if (mLastUpdateDateSS != null)
mLastUpdateDateSS = db.Factory.Duplicate(i.mLastUpdateDateSS, options);
if(i.mCurrentValue != null)
mCurrentValue = db.Factory.Duplicate(i.mCurrentValue, options);
if(i.mOriginalValue != null)
mOriginalValue = db.Factory.Duplicate(i.mOriginalValue, options);
}
internal IfcInventory(DatabaseIfc m, string name) : base(m, name) { }
internal IfcInventory(DatabaseIfc db, string name) : base(db, name) { }
}
[Serializable]
public partial class IfcIrregularTimeSeries : IfcTimeSeries
{
private LIST<IfcIrregularTimeSeriesValue> mValues = new LIST<IfcIrregularTimeSeriesValue>(); //: LIST[1:?] OF IfcIrregularTimeSeriesValue;
public LIST<IfcIrregularTimeSeriesValue> Values { get { return mValues; } set { mValues = value; } }
public IfcIrregularTimeSeries() : base() { }
public IfcIrregularTimeSeries(string name, DateTime startTime, DateTime endTime, IfcTimeSeriesDataTypeEnum timeSeriesDataType, IfcDataOriginEnum dataOrigin, IEnumerable<IfcIrregularTimeSeriesValue> values)
: base(values.First().Database, name, startTime, endTime, timeSeriesDataType, dataOrigin)
public IfcIrregularTimeSeries(string name, IfcDateTimeSelect startTime, IfcDateTimeSelect endTime, IfcTimeSeriesDataTypeEnum timeSeriesDataType, IfcDataOriginEnum dataOrigin, IEnumerable<IfcIrregularTimeSeriesValue> values)
: base(name, startTime, endTime, timeSeriesDataType, dataOrigin)
{
Values.AddRange(values);
}

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

@ -30,21 +30,21 @@ namespace GeometryGym.Ifc
[Serializable]
public partial class IfcJunctionBox : IfcFlowFitting //IFC4
{
internal IfcJunctionBoxTypeEnum mPredefinedType = IfcJunctionBoxTypeEnum.NOTDEFINED;// OPTIONAL : IfcJunctionBoxTypeEnum;
public IfcJunctionBoxTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcJunctionBoxTypeEnum mPredefinedType = IfcJunctionBoxTypeEnum.NOTDEFINED;// OPTIONAL : IfcJunctionBoxTypeEnum;
public IfcJunctionBoxTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcJunctionBoxTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcJunctionBox() : base() { }
internal IfcJunctionBox(DatabaseIfc db, IfcJunctionBox b, DuplicateOptions options) : base(db, b, options) { mPredefinedType = b.mPredefinedType; }
internal IfcJunctionBox(DatabaseIfc db, IfcJunctionBox b, DuplicateOptions options) : base(db, b, options) { PredefinedType = b.PredefinedType; }
public IfcJunctionBox(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape representation, IfcDistributionSystem system) : base(host, placement, representation, system) { }
}
[Serializable]
public partial class IfcJunctionBoxType : IfcFlowFittingType
{
internal IfcJunctionBoxTypeEnum mPredefinedType = IfcJunctionBoxTypeEnum.NOTDEFINED;// : IfcJunctionBoxTypeEnum;
public IfcJunctionBoxTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcJunctionBoxTypeEnum mPredefinedType = IfcJunctionBoxTypeEnum.NOTDEFINED;// : IfcJunctionBoxTypeEnum;
public IfcJunctionBoxTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcJunctionBoxTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcJunctionBoxType() : base() { }
internal IfcJunctionBoxType(DatabaseIfc db, IfcJunctionBoxType t, DuplicateOptions options) : base(db, t, options) { mPredefinedType = t.mPredefinedType; }
public IfcJunctionBoxType(DatabaseIfc m, string name, IfcJunctionBoxTypeEnum type) : base(m) { Name = name; mPredefinedType = type; }
internal IfcJunctionBoxType(DatabaseIfc db, IfcJunctionBoxType t, DuplicateOptions options) : base(db, t, options) { PredefinedType = t.PredefinedType; }
public IfcJunctionBoxType(DatabaseIfc db, string name, IfcJunctionBoxTypeEnum type) : base(db) { Name = name; PredefinedType = type; }
}
}

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

@ -27,7 +27,7 @@ using GeometryGym.STEP;
namespace GeometryGym.Ifc
{
[Serializable]
[Serializable, VersionAdded(ReleaseVersion.IFC4X3)]
public partial class IfcKerb : IfcBuiltElement
{
private bool mMountable = false; //: IfcBoolean;
@ -38,7 +38,7 @@ namespace GeometryGym.Ifc
public IfcKerb(DatabaseIfc db, IfcKerb kerb, DuplicateOptions options) : base(db, kerb, options) { Mountable = kerb.Mountable; }
public IfcKerb(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape representation) : base(host, placement, representation) { }
}
[Serializable]
[Serializable, VersionAdded(ReleaseVersion.IFC4X3)]
public partial class IfcKerbType : IfcBuiltElementType
{
private bool mMountable = false; //: IfcBoolean;

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

@ -27,22 +27,22 @@ namespace GeometryGym.Ifc
[Serializable]
public partial class IfcLaborResource : IfcConstructionResource
{
internal IfcLaborResourceTypeEnum mPredefinedType = IfcLaborResourceTypeEnum.NOTDEFINED;// OPTIONAL : IfcRoofTypeEnum;
public IfcLaborResourceTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcLaborResourceTypeEnum mPredefinedType = IfcLaborResourceTypeEnum.NOTDEFINED;// OPTIONAL : IfcRoofTypeEnum;
public IfcLaborResourceTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcLaborResourceTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcLaborResource() : base() { }
internal IfcLaborResource(DatabaseIfc db, IfcLaborResource r, DuplicateOptions options) : base(db, r, options) { mPredefinedType = r.mPredefinedType; }
internal IfcLaborResource(DatabaseIfc db, IfcLaborResource r, DuplicateOptions options) : base(db, r, options) { PredefinedType = r.PredefinedType; }
public IfcLaborResource(DatabaseIfc db) : base(db) { }
}
[Serializable]
public partial class IfcLaborResourceType : IfcConstructionResourceType //IFC4
{
internal IfcLaborResourceTypeEnum mPredefinedType = IfcLaborResourceTypeEnum.NOTDEFINED;
public IfcLaborResourceTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcLaborResourceTypeEnum mPredefinedType = IfcLaborResourceTypeEnum.NOTDEFINED;
public IfcLaborResourceTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcLaborResourceTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcLaborResourceType() : base() { }
internal IfcLaborResourceType(DatabaseIfc db, IfcLaborResourceType t, DuplicateOptions options) : base(db, t, options) { mPredefinedType = t.mPredefinedType; }
public IfcLaborResourceType(DatabaseIfc db, string name, IfcLaborResourceTypeEnum type) : base(db) { Name = name; mPredefinedType = type; }
internal IfcLaborResourceType(DatabaseIfc db, IfcLaborResourceType t, DuplicateOptions options) : base(db, t, options) { PredefinedType = t.PredefinedType; }
public IfcLaborResourceType(DatabaseIfc db, string name, IfcLaborResourceTypeEnum type) : base(db) { Name = name; PredefinedType = type; }
}
[Serializable]
public partial class IfcLagTime : IfcSchedulingTime //IFC4
@ -71,22 +71,22 @@ namespace GeometryGym.Ifc
[Serializable]
public partial class IfcLamp : IfcFlowTerminal //IFC4
{
internal IfcLampTypeEnum mPredefinedType = IfcLampTypeEnum.NOTDEFINED;// OPTIONAL : IfcLampTypeEnum;
public IfcLampTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcLampTypeEnum mPredefinedType = IfcLampTypeEnum.NOTDEFINED;// OPTIONAL : IfcLampTypeEnum;
public IfcLampTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcLampTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcLamp() : base() { }
internal IfcLamp(DatabaseIfc db, IfcLamp l, DuplicateOptions options) : base(db, l, options) { mPredefinedType = l.mPredefinedType; }
internal IfcLamp(DatabaseIfc db, IfcLamp l, DuplicateOptions options) : base(db, l, options) { PredefinedType = l.PredefinedType; }
public IfcLamp(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape representation, IfcDistributionSystem system) : base(host, placement, representation, system) { }
}
[Serializable]
public partial class IfcLampType : IfcFlowTerminalType
{
internal IfcLampTypeEnum mPredefinedType = IfcLampTypeEnum.NOTDEFINED;// : IfcLampTypeEnum;
public IfcLampTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcLampTypeEnum mPredefinedType = IfcLampTypeEnum.NOTDEFINED;// : IfcLampTypeEnum;
public IfcLampTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcLampTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcLampType() : base() { }
internal IfcLampType(DatabaseIfc db, IfcLampType t, DuplicateOptions options) : base(db, t, options) { mPredefinedType = t.mPredefinedType; }
public IfcLampType(DatabaseIfc m, string name, IfcLampTypeEnum t) : base(m) { Name = name; mPredefinedType = t; }
internal IfcLampType(DatabaseIfc db, IfcLampType t, DuplicateOptions options) : base(db, t, options) { PredefinedType = t.PredefinedType; }
public IfcLampType(DatabaseIfc db, string name, IfcLampTypeEnum t) : base(db) { Name = name; PredefinedType = t; }
}
public interface IfcLayeredItem : IBaseClassIfc // SELECT(IfcRepresentationItem, IfcRepresentation);
{
@ -97,9 +97,9 @@ namespace GeometryGym.Ifc
{
internal string mName;// : IfcLabel;
internal string mVersion = "";//: OPTIONAL IfcLabel;
internal int mPublisher;// : OPTIONAL IfcActorSelect;
internal IfcActorSelect mPublisher;// : OPTIONAL IfcActorSelect;
internal DateTime mVersionDate = DateTime.MinValue; // : OPTIONAL IfcDateTime;
internal int mVersionDateSS = 0; //
internal IfcCalendarDate mVersionDateSS = null; //
internal string mLocation = "";// : OPTIONAL IfcURIReference; //IFC4 Added
internal string mDescription = "";// : OPTIONAL IfcText; //IFC4 Added
[Obsolete("DEPRECATED IFC4", false)]
@ -110,7 +110,7 @@ namespace GeometryGym.Ifc
public string Name { get { return mName; } set { mName = (string.IsNullOrEmpty(value) ? "UNKNOWN" : value); } }
public string Version { get { return mVersion; } set { mVersion = value; } }
public IfcActorSelect Publisher { get { return mDatabase[mPublisher] as IfcActorSelect; } set { mPublisher = (value == null ? 0 : value.Index); } }
public IfcActorSelect Publisher { get { return mPublisher; } set { mPublisher = value; } }
public DateTime VersionDate { get { return mVersionDate; } set { mVersionDate = value; } }
public string Location { get { return mLocation; } set { mLocation = value; } }
public string Description { get { return mDescription; } set { mDescription = value; } }
@ -119,7 +119,16 @@ namespace GeometryGym.Ifc
public SET<IfcLibraryReference> HasLibraryReferences { get { return mHasLibraryReferences; } }
internal IfcLibraryInformation() : base() { }
internal IfcLibraryInformation(DatabaseIfc db, IfcLibraryInformation i) : base(db, i) { mName = i.mName; mVersion = i.mVersion; if (i.mPublisher > 0) Publisher = db.Factory.Duplicate(i.mDatabase[i.mPublisher]) as IfcActorSelect; mVersionDate = i.mVersionDate; mLocation = i.mLocation; mDescription = i.mDescription; }
internal IfcLibraryInformation(DatabaseIfc db, IfcLibraryInformation i) : base(db, i)
{
mName = i.mName;
mVersion = i.mVersion;
if (i.mPublisher != null)
Publisher = db.Factory.Duplicate(i.mPublisher);
mVersionDate = i.mVersionDate;
mLocation = i.mLocation;
mDescription = i.mDescription;
}
public IfcLibraryInformation(DatabaseIfc db, string name) : base(db) { Name = name; }
protected override void initialize()
@ -195,22 +204,22 @@ namespace GeometryGym.Ifc
[Serializable]
public partial class IfcLightFixture : IfcFlowTerminal
{
internal IfcLightFixtureTypeEnum mPredefinedType = IfcLightFixtureTypeEnum.NOTDEFINED;// : OPTIONAL IfcLightFixtureTypeEnum;
public IfcLightFixtureTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcLightFixtureTypeEnum mPredefinedType = IfcLightFixtureTypeEnum.NOTDEFINED;// : OPTIONAL IfcLightFixtureTypeEnum;
public IfcLightFixtureTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcLightFixtureTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcLightFixture() : base() { }
internal IfcLightFixture(DatabaseIfc db, IfcLightFixture f, DuplicateOptions options) : base(db, f, options) { mPredefinedType = f.mPredefinedType; }
internal IfcLightFixture(DatabaseIfc db, IfcLightFixture f, DuplicateOptions options) : base(db, f, options) { PredefinedType = f.PredefinedType; }
public IfcLightFixture(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape representation, IfcDistributionSystem system) : base(host, placement, representation, system) { }
}
[Serializable]
public partial class IfcLightFixtureType : IfcFlowTerminalType
{
internal IfcLightFixtureTypeEnum mPredefinedType = IfcLightFixtureTypeEnum.NOTDEFINED;// : IfcLightFixtureTypeEnum;
public IfcLightFixtureTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcLightFixtureTypeEnum mPredefinedType = IfcLightFixtureTypeEnum.NOTDEFINED;// : IfcLightFixtureTypeEnum;
public IfcLightFixtureTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcLightFixtureTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcLightFixtureType() : base() { }
internal IfcLightFixtureType(DatabaseIfc db, IfcLightFixtureType t, DuplicateOptions options) : base(db, t, options) { mPredefinedType = t.mPredefinedType; }
public IfcLightFixtureType(DatabaseIfc m, string name, IfcLightFixtureTypeEnum t) : base(m) { Name = name; mPredefinedType = t; }
internal IfcLightFixtureType(DatabaseIfc db, IfcLightFixtureType t, DuplicateOptions options) : base(db, t, options) { PredefinedType = t.PredefinedType; }
public IfcLightFixtureType(DatabaseIfc db, string name, IfcLightFixtureTypeEnum t) : base(db) { Name = name; PredefinedType = t; }
}
[Serializable]
public partial class IfcLightIntensityDistribution : BaseClassIfc, IfcLightDistributionDataSourceSelect
@ -295,7 +304,7 @@ namespace GeometryGym.Ifc
[Serializable]
public partial class IfcLightSourceSpot : IfcLightSourcePositional
{
internal int mOrientation;// : IfcDirection;
internal IfcDirection mOrientation;// : IfcDirection;
internal double mConcentrationExponent;// : IfcReal;
internal double mSpreadAngle;// : IfcPositivePlaneAngleMeasure;
internal double mBeamWidthAngle;// : IfcPositivePlaneAngleMeasure;
@ -305,11 +314,11 @@ namespace GeometryGym.Ifc
[Serializable]
public partial class IfcLine : IfcCurve
{
internal int mPnt;// : IfcCartesianPoint;
internal int mDir;// : IfcVector;
internal IfcCartesianPoint mPnt;// : IfcCartesianPoint;
internal IfcVector mDir;// : IfcVector;
public IfcCartesianPoint Pnt { get { return mDatabase[mPnt] as IfcCartesianPoint; } set { mPnt = value.mIndex; } }
public IfcVector Dir { get { return mDatabase[mDir] as IfcVector; } set { mDir = value.mIndex; } }
public IfcCartesianPoint Pnt { get { return mPnt; } set { mPnt = value; } }
public IfcVector Dir { get { return mDir; } set { mDir = value; } }
internal IfcLine() : base() { }
internal IfcLine(DatabaseIfc db, IfcLine l, DuplicateOptions options) : base(db, l, options) { Pnt = db.Factory.Duplicate(l.Pnt) as IfcCartesianPoint; Dir = db.Factory.Duplicate(l.Dir) as IfcVector; }
@ -422,8 +431,9 @@ namespace GeometryGym.Ifc
if(e.Axis != null)
Axis = db.Factory.Duplicate(e.Axis) as IfcCurve;
}
public IfcLinearPositioningElement(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape shape) : base(host, placement, shape) { }
internal override bool isDuplicate(BaseClassIfc e, bool includeAggregated, double tol)
internal override bool isDuplicate(BaseClassIfc e, OptionsTestDuplicate options)
{
IfcLinearPositioningElement linearPositioningElement = e as IfcLinearPositioningElement;
if (linearPositioningElement == null)
@ -431,12 +441,12 @@ namespace GeometryGym.Ifc
if (mAxis != null)
{
BaseClassIfc axis = mAxis as BaseClassIfc;
if (!axis.isDuplicate(linearPositioningElement.mAxis as BaseClassIfc, tol))
if (!axis.isDuplicate(linearPositioningElement.mAxis as BaseClassIfc, options.Tolerance))
return false;
}
else if (linearPositioningElement.mAxis != null)
return false;
return base.isDuplicate(e, includeAggregated, tol);
return base.isDuplicate(e, options);
}
}
[Serializable]
@ -477,7 +487,7 @@ namespace GeometryGym.Ifc
public partial class IfcLiquidTerminal : IfcFlowTerminal
{
private IfcLiquidTerminalTypeEnum mPredefinedType = IfcLiquidTerminalTypeEnum.NOTDEFINED; //: OPTIONAL IfcLiquidTerminalTypeEnum;
public IfcLiquidTerminalTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
public IfcLiquidTerminalTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcLiquidTerminalTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
public IfcLiquidTerminal() : base() { }
public IfcLiquidTerminal(DatabaseIfc db) : base(db) { }
@ -488,7 +498,7 @@ namespace GeometryGym.Ifc
public partial class IfcLiquidTerminalType : IfcFlowTerminalType
{
private IfcLiquidTerminalTypeEnum mPredefinedType = IfcLiquidTerminalTypeEnum.NOTDEFINED; //: IfcLiquidTerminalTypeEnum;
public IfcLiquidTerminalTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
public IfcLiquidTerminalTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcLiquidTerminalTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
public IfcLiquidTerminalType() : base() { }
public IfcLiquidTerminalType(DatabaseIfc db, IfcLiquidTerminalType liquidTerminalType, DuplicateOptions options) : base(db, liquidTerminalType, options) { PredefinedType = liquidTerminalType.PredefinedType; }
@ -535,10 +545,10 @@ namespace GeometryGym.Ifc
internal int mHourComponent;// : IfcHourInDay;
internal int mMinuteComponent;// : OPTIONAL IfcMinuteInHour;
internal double mSecondComponent;// : OPTIONAL IfcSecondInMinute;
internal int mZone;// OPTIONAL IfcCoordinatedUniversalTimeOffset;
internal IfcCoordinatedUniversalTimeOffset mZone;// OPTIONAL IfcCoordinatedUniversalTimeOffset;
internal int mDaylightSavingOffset;// : OPTIONAL IfcDaylightSavingHour;
public IfcCoordinatedUniversalTimeOffset Zone { get { return mDatabase[mZone] as IfcCoordinatedUniversalTimeOffset; } set { mZone = (value == null ? 0 : value.mIndex); } }
public IfcCoordinatedUniversalTimeOffset Zone { get { return mZone; } set { mZone = value; } }
public int DaylightSavingOffset { get { return mDaylightSavingOffset; } set { mDaylightSavingOffset = value; } }
internal IfcLocalTime() : base() { }
internal IfcLocalTime(DatabaseIfc db, IfcLocalTime t) : base(db, t)

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

@ -32,8 +32,8 @@ namespace GeometryGym.Ifc
[Serializable]
public abstract partial class IfcManifoldSolidBrep : IfcSolidModel //ABSTRACT SUPERTYPE OF(ONEOF(IfcAdvancedBrep, IfcFacetedBrep))
{
protected int mOuter;// : IfcClosedShell;
public IfcClosedShell Outer { get { return mDatabase[mOuter] as IfcClosedShell; } set { mOuter = value.mIndex; } }
protected IfcClosedShell mOuter;// : IfcClosedShell;
public IfcClosedShell Outer { get { return mOuter; } set { mOuter = value; } }
protected IfcManifoldSolidBrep() : base() { }
protected IfcManifoldSolidBrep(IfcClosedShell s) : base(s.mDatabase) { Outer = s; }
@ -87,21 +87,22 @@ namespace GeometryGym.Ifc
public partial class IfcMarineFacility : IfcFacility
{
private IfcMarineFacilityTypeEnum mPredefinedType = IfcMarineFacilityTypeEnum.NOTDEFINED; //: OPTIONAL IfcMarineFacilityTypeEnum;
public IfcMarineFacilityTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
public IfcMarineFacilityTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcMarineFacilityTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
public IfcMarineFacility() : base() { }
public IfcMarineFacility(DatabaseIfc db) : base(db) { }
internal IfcMarineFacility(DatabaseIfc db) : base(db) { }
public IfcMarineFacility(DatabaseIfc db, string name) : base(db, name) { }
public IfcMarineFacility(DatabaseIfc db, IfcMarineFacility marineFacility, DuplicateOptions options) : base(db, marineFacility, options) { }
public IfcMarineFacility(DatabaseIfc db, IfcMarineFacilityTypeEnum predefinedType)
: base(db) { PredefinedType = predefinedType; }
public IfcMarineFacility(IfcFacility host, string name, IfcObjectPlacement placement, IfcProductDefinitionShape representation, IfcMarineFacilityTypeEnum predefinedType) : base(host, placement, representation) { Name = name; }
internal IfcMarineFacility(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape representation, IfcMarineFacilityTypeEnum predefinedType) : base(host, placement, representation) { }
internal IfcMarineFacility(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape representation) : base(host, placement, representation) { }
}
[Serializable]
public partial class IfcMarinePart : IfcFacilityPart
{
private IfcMarinePartTypeEnum mPredefinedType = IfcMarinePartTypeEnum.NOTDEFINED; //: OPTIONAL IfcMarinePartTypeEnum;
public IfcMarinePartTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
public IfcMarinePartTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcMarinePartTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
public override string StepClassName { get { if (mDatabase != null && mDatabase.Release > ReleaseVersion.IFC4X2 && mDatabase.Release < ReleaseVersion.IFC4X3) return "IfcFacilityPart"; return base.StepClassName; } }
public IfcMarinePart() : base() { }
public IfcMarinePart(DatabaseIfc db) : base(db) { }
@ -177,27 +178,33 @@ namespace GeometryGym.Ifc
}
}
}
[Obsolete("DEPRECATED IFC4", false)]
[Serializable]
public partial class IfcMaterialClassificationRelationship : BaseClassIfc
{
internal List<int> mMaterialClassifications = new List<int>();// : SET [1:?] OF IfcClassificationNotationSelect;
internal int mClassifiedMaterial;// : IfcMaterial;
internal SET<IfcClassificationNotationSelect> mMaterialClassifications = new SET<IfcClassificationNotationSelect>();// : SET [1:?] OF IfcClassificationNotationSelect;
internal IfcMaterial mClassifiedMaterial;// : IfcMaterial;
internal IfcMaterialClassificationRelationship() : base() { }
//internal IfcMaterialClassificationRelationship(IfcMaterialClassificationRelationship m) : base() { mMaterialClassifications = new List<int>(m.mMaterialClassifications.ToArray()); mClassifiedMaterial = m.mClassifiedMaterial; }
internal IfcMaterialClassificationRelationship(DatabaseIfc db) : base(db) { }
internal IfcMaterialClassificationRelationship(DatabaseIfc db, IfcMaterialClassificationRelationship m, DuplicateOptions options)
: base(db, m)
{
mMaterialClassifications.AddRange(m.mMaterialClassifications.Select(x=>db.Factory.Duplicate(x, options)));
mClassifiedMaterial = db.Factory.Duplicate(m.mClassifiedMaterial, options);
}
}
[Serializable]
public partial class IfcMaterialConstituent : IfcMaterialDefinition //IFC4
{
internal string mName = "";// : OPTIONAL IfcLabel;
internal string mDescription = "";// : OPTIONAL IfcText
internal int mMaterial;// : IfcMaterial;
internal IfcMaterial mMaterial;// : IfcMaterial;
internal double mFraction;// : OPTIONAL IfcNormalisedRatioMeasure;
internal string mCategory = "";// : OPTIONAL IfcLabel;
public override string Name { get { return mName; } set { mName = value; } }
public string Description { get { return mDescription; } set { mDescription = value; } }
public IfcMaterial Material { get { return mDatabase[mMaterial] as IfcMaterial; } set { mMaterial = (value == null ? 0 : value.mIndex); } }
public IfcMaterial Material { get { return mMaterial; } set { mMaterial = value; } }
public double Fraction { get { return mFraction; } set { mFraction = value; } }
public string Category { get { return mCategory; } set { mCategory = value; } }
@ -209,7 +216,7 @@ namespace GeometryGym.Ifc
: base(mat.mDatabase)
{
Name = name;
mMaterial = mat.mIndex;
mMaterial = mat;
}
}
[Serializable]
@ -248,12 +255,12 @@ namespace GeometryGym.Ifc
[NonSerialized] private SET<IfcRelAssociatesMaterial> mAssociatedTo = new SET<IfcRelAssociatesMaterial>();
private SET<IfcExternalReferenceRelationship> mHasExternalReference = new SET<IfcExternalReferenceRelationship>(); //IFC4 SET [0:?] OF IfcExternalReferenceRelationship FOR RelatedResourceObjects;
private SET<IfcMaterialProperties> mHasProperties = new SET<IfcMaterialProperties>();
[NonSerialized] internal List<IfcResourceConstraintRelationship> mHasConstraintRelationships = new List<IfcResourceConstraintRelationship>(); //gg
[NonSerialized] internal SET<IfcResourceConstraintRelationship> mHasConstraintRelationships = new SET<IfcResourceConstraintRelationship>(); //gg
public SET<IfcRelAssociatesMaterial> AssociatedTo { get { return mAssociatedTo; } }
public SET<IfcExternalReferenceRelationship> HasExternalReference { get { return mHasExternalReference; } }
public SET<IfcMaterialProperties> HasProperties { get { return mHasProperties; } }
public ReadOnlyCollection<IfcResourceConstraintRelationship> HasConstraintRelationships { get { return new ReadOnlyCollection<IfcResourceConstraintRelationship>( mHasConstraintRelationships); } }
public SET<IfcResourceConstraintRelationship> HasConstraintRelationships { get { return mHasConstraintRelationships; } }
public abstract string Name { get; set; }
public virtual IfcMaterial PrimaryMaterial() { return null; }
@ -346,7 +353,7 @@ namespace GeometryGym.Ifc
[Serializable]
public partial class IfcMaterialLayer : IfcMaterialDefinition
{
internal int mMaterial;// : OPTIONAL IfcMaterial;
internal IfcMaterial mMaterial;// : OPTIONAL IfcMaterial;
internal double mLayerThickness;// :: IfcNonNegativeLengthMeasure IFC4Chagne IfcPositiveLengthMeasure;
internal IfcLogicalEnum mIsVentilated = IfcLogicalEnum.FALSE; // : OPTIONAL IfcLogical;
internal string mName = "";// : OPTIONAL IfcLabel; IFC4
@ -354,7 +361,7 @@ namespace GeometryGym.Ifc
internal string mCategory = "";// : OPTIONAL IfcLabel; IFC4
internal double mPriority = double.NaN;// : OPTIONAL IfcNormalisedRatioMeasure;
public IfcMaterial Material { get { return mDatabase[mMaterial] as IfcMaterial; } set { mMaterial = (value == null ? 0 : value.mIndex); } }
public IfcMaterial Material { get { return mMaterial; } set { mMaterial = value; } }
public double LayerThickness { get { return mLayerThickness; } set { mLayerThickness = value; } }
public IfcLogicalEnum IsVentilated { get { return mIsVentilated; } set { mIsVentilated = value; } }
public override string Name { get { return mName; } set { mName = value; } }
@ -407,13 +414,13 @@ namespace GeometryGym.Ifc
[Serializable]
public partial class IfcMaterialLayerSetUsage : IfcMaterialUsageDefinition
{
private int mForLayerSet;// : IfcMaterialLayerSet;
private IfcMaterialLayerSet mForLayerSet;// : IfcMaterialLayerSet;
private IfcLayerSetDirectionEnum mLayerSetDirection = IfcLayerSetDirectionEnum.AXIS1;// : IfcLayerSetDirectionEnum;
private IfcDirectionSenseEnum mDirectionSense = IfcDirectionSenseEnum.POSITIVE;// : IfcDirectionSenseEnum;
private double mOffsetFromReferenceLine;// : IfcLengthMeasure;
private double mReferenceExtent = double.NaN;// : IFC4 OPTIONAL IfcPositiveLengthMeasure;
public IfcMaterialLayerSet ForLayerSet { get { return mDatabase[mForLayerSet] as IfcMaterialLayerSet; } set { mForLayerSet = value.mIndex; } }
public IfcMaterialLayerSet ForLayerSet { get { return mForLayerSet; } set { mForLayerSet = value; } }
public IfcLayerSetDirectionEnum LayerSetDirection { get { return mLayerSetDirection; } }
public IfcDirectionSenseEnum DirectionSense { get { return mDirectionSense; } }
public double OffsetFromReferenceLine { get { return mOffsetFromReferenceLine; } set { mOffsetFromReferenceLine = value; } }
@ -426,7 +433,7 @@ namespace GeometryGym.Ifc
internal IfcMaterialLayerSetUsage(DatabaseIfc db, IfcMaterialLayerSetUsage m) : base(db, m) { ForLayerSet = db.Factory.Duplicate(m.ForLayerSet) as IfcMaterialLayerSet; mLayerSetDirection = m.mLayerSetDirection; mDirectionSense = m.mDirectionSense; mOffsetFromReferenceLine = m.mOffsetFromReferenceLine; mReferenceExtent = m.mReferenceExtent; }
public IfcMaterialLayerSetUsage(IfcMaterialLayerSet ls, IfcLayerSetDirectionEnum dir, IfcDirectionSenseEnum sense, double offset) : base(ls.mDatabase)
{
mForLayerSet = ls.mIndex;
mForLayerSet = ls;
mLayerSetDirection = dir;
mDirectionSense = sense;
mOffsetFromReferenceLine = offset;
@ -466,18 +473,20 @@ namespace GeometryGym.Ifc
[Serializable]
public partial class IfcMaterialList : BaseClassIfc, IfcMaterialSelect, NamedObjectIfc //DEPRECATED IFC4
{
internal List<int> mMaterials = new List<int>();// LIST [1:?] OF IfcMaterial;
internal LIST<IfcMaterial> mMaterials = new LIST<IfcMaterial>();// LIST [1:?] OF IfcMaterial;
//INVERSE
[NonSerialized] private SET<IfcRelAssociatesMaterial> mAssociatedTo = new SET<IfcRelAssociatesMaterial>();
public ReadOnlyCollection<IfcMaterial> Materials { get { return new ReadOnlyCollection<IfcMaterial>( mMaterials.ConvertAll(x =>mDatabase[x] as IfcMaterial)); } }
public LIST<IfcMaterial> Materials { get { return mMaterials; } }
public SET<IfcRelAssociatesMaterial> AssociatedTo { get { return mAssociatedTo; } }
public string Name { get { return "MaterialList"; } }
public IfcMaterial PrimaryMaterial() { return mDatabase[mMaterials[0]] as IfcMaterial; }
public IfcMaterial PrimaryMaterial() { return mMaterials.First(); }
internal IfcMaterialList() : base() { }
internal IfcMaterialList(DatabaseIfc db, IfcMaterialList m) : base(db) { m.Materials.ToList().ForEach(x=>addMaterial( db.Factory.Duplicate(x) as IfcMaterial)); }
internal IfcMaterialList(DatabaseIfc db, IfcMaterialList m) : base(db)
{
Materials.AddRange(m.Materials.Select(x=>db.Factory.Duplicate(x))); }
protected override void initialize()
{
base.initialize();
@ -512,7 +521,6 @@ namespace GeometryGym.Ifc
}
public void Associate(IfcRelAssociatesMaterial associates) { if(!mAssociatedTo.Contains(associates)) mAssociatedTo.Add(associates); }
internal void addMaterial(IfcMaterial material) { mMaterials.Add(material.mIndex); }
}
[Serializable]
public partial class IfcMaterialProfile : IfcMaterialDefinition // IFC4
@ -576,7 +584,7 @@ namespace GeometryGym.Ifc
internal IfcMaterialProfileSet() : base() { }
internal IfcMaterialProfileSet(DatabaseIfc db, IfcMaterialProfileSet m) : base(db, m) { mName = m.mName; mDescription = m.mDescription; MaterialProfiles.AddRange(m.mMaterialProfiles.ConvertAll(x => db.Factory.Duplicate(x) as IfcMaterialProfile)); if (m.mCompositeProfile != null) CompositeProfile = db.Factory.Duplicate(m.CompositeProfile) as IfcCompositeProfileDef; }
private IfcMaterialProfileSet(DatabaseIfc m, string name) : base(m) { Name = name; }
private IfcMaterialProfileSet(DatabaseIfc db, string name) : base(db) { Name = name; }
public IfcMaterialProfileSet(string name, IfcMaterialProfile profile) : base(profile.mDatabase)
{
Name = name;
@ -740,19 +748,19 @@ namespace GeometryGym.Ifc
public void Associate(IfcRelAssociatesMaterial associates) { if (!mAssociatedTo.Contains(associates)) mAssociatedTo.Add(associates); }
}
[Serializable]
public partial class IfcMeasureWithUnit : BaseClassIfc, IfcAppliedValueSelect
public partial class IfcMeasureWithUnit : BaseClassIfc, IfcAppliedValueSelect, IfcConditionCriterionSelect
{
internal IfcValue mValueComponent;// : IfcValue;
private string mVal;
private int mUnitComponent;// : IfcUnit;
private IfcUnit mUnitComponent;// : IfcUnit;
public IfcValue ValueComponent { get { return mValueComponent; } set { mValueComponent = value; } }
public IfcUnit UnitComponent { get { return mDatabase[mUnitComponent] as IfcUnit; } set { mUnitComponent = value.Index; } }
public IfcUnit UnitComponent { get { return mUnitComponent; } set { mUnitComponent = value; } }
internal IfcMeasureWithUnit() : base() { }
internal IfcMeasureWithUnit(DatabaseIfc db, IfcMeasureWithUnit m) : base(db) { mValueComponent = m.mValueComponent; mVal = m.mVal; UnitComponent = db.Factory.Duplicate(m.mDatabase[ m.mUnitComponent]) as IfcUnit; }
public IfcMeasureWithUnit(IfcValue v, IfcUnit u) : base(u.Database) { mValueComponent = v; mUnitComponent = u.Index; }
internal IfcMeasureWithUnit(double value, IfcUnit u) : base(u.Database) { mValueComponent = new IfcReal(value); mUnitComponent = u.Index; }
internal IfcMeasureWithUnit(DatabaseIfc db, IfcMeasureWithUnit m) : base(db) { mValueComponent = m.mValueComponent; mVal = m.mVal; UnitComponent = db.Factory.Duplicate(m.mUnitComponent); }
public IfcMeasureWithUnit(IfcValue v, IfcUnit u) : base(u.Database) { mValueComponent = v; mUnitComponent = u; }
internal IfcMeasureWithUnit(double value, IfcUnit u) : base(u.Database) { mValueComponent = new IfcReal(value); mUnitComponent = u; }
public double SIFactor()
{
IfcUnit u = UnitComponent;
@ -799,8 +807,8 @@ namespace GeometryGym.Ifc
{
internal double mNominalDiameter = double.NaN;// : OPTIONAL IfcPositiveLengthMeasure; IFC4 DEPRECATED
internal double mNominalLength = double.NaN;// : OPTIONAL IfcPositiveLengthMeasure; IFC4 DEPRECATED
internal IfcMechanicalFastenerTypeEnum mPredefinedType = IfcMechanicalFastenerTypeEnum.NOTDEFINED;// : OPTIONAL IfcMechanicalFastenerTypeEnum;
public IfcMechanicalFastenerTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcMechanicalFastenerTypeEnum mPredefinedType = IfcMechanicalFastenerTypeEnum.NOTDEFINED;// : OPTIONAL IfcMechanicalFastenerTypeEnum;
public IfcMechanicalFastenerTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcMechanicalFastenerTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcMechanicalFastener() : base() { }
internal IfcMechanicalFastener(DatabaseIfc db, IfcMechanicalFastener f, DuplicateOptions options) : base(db, f, options) { mNominalDiameter = f.mNominalDiameter; mNominalLength = f.mNominalLength; }
@ -812,13 +820,13 @@ namespace GeometryGym.Ifc
{
internal double mNominalDiameter;// : OPTIONAL IfcPositiveLengthMeasure; IFC4
internal double mNominalLength;// : OPTIONAL IfcPositiveLengthMeasure; IFC4
internal IfcMechanicalFastenerTypeEnum mPredefinedType = IfcMechanicalFastenerTypeEnum.NOTDEFINED;// : IfcMechanicalFastenerTypeEnum; IFC4
public IfcMechanicalFastenerTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcMechanicalFastenerTypeEnum mPredefinedType = IfcMechanicalFastenerTypeEnum.NOTDEFINED;// : IfcMechanicalFastenerTypeEnum; IFC4
public IfcMechanicalFastenerTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcMechanicalFastenerTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcMechanicalFastenerType() : base() { }
internal IfcShapeRepresentation mProfileRep = null;
internal IfcMechanicalFastenerType(DatabaseIfc db, IfcMechanicalFastenerType t, DuplicateOptions options) : base(db, t, options) { mNominalDiameter = t.mNominalDiameter; mNominalLength = t.mNominalLength; mPredefinedType = t.mPredefinedType; }
public IfcMechanicalFastenerType(DatabaseIfc db, string name, IfcMechanicalFastenerTypeEnum type) : base(db) { Name = name; mPredefinedType = type; }
internal IfcMechanicalFastenerType(DatabaseIfc db, IfcMechanicalFastenerType t, DuplicateOptions options) : base(db, t, options) { mNominalDiameter = t.mNominalDiameter; mNominalLength = t.mNominalLength; PredefinedType = t.PredefinedType; }
public IfcMechanicalFastenerType(DatabaseIfc db, string name, IfcMechanicalFastenerTypeEnum type) : base(db) { Name = name; PredefinedType = type; }
}
[Obsolete("DEPRECATED IFC4", false)]
[Serializable]
@ -851,14 +859,14 @@ namespace GeometryGym.Ifc
internal double mHardeningModule = double.NaN;// : OPTIONAL IfcModulusOfElasticityMeasure
internal double mProportionalStress = double.NaN;// : OPTIONAL IfcPressureMeasure;
internal double mPlasticStrain = double.NaN;// : OPTIONAL IfcPositiveRatioMeasure;
internal List<int> mRelaxations = new List<int>();// : OPTIONAL SET [1:?] OF IfcRelaxation
internal SET<IfcRelaxation> mRelaxations = new SET<IfcRelaxation>();// : OPTIONAL SET [1:?] OF IfcRelaxation
public double YieldStress { get { return mYieldStress; } set { mYieldStress = value; } }
public double UltimateStress { get { return mUltimateStress; } set { mUltimateStress = value; } }
public double HardeningModule { get { return mHardeningModule; } set { mHardeningModule = value; } }
public double ProportionalStress { get { return mProportionalStress; } set { mProportionalStress = value; } }
public double PlasticStrain { get { return mPlasticStrain; } set { mPlasticStrain = value; } }
public List<IfcRelaxation> Relaxations { get { return mRelaxations.ConvertAll(x => mDatabase[x] as IfcRelaxation); } set { mRelaxations = (value == null ? new List<int>() : value.ConvertAll(x => x.mIndex)); } }
public SET<IfcRelaxation> Relaxations { get { return mRelaxations; } }
internal IfcMechanicalSteelMaterialProperties() : base() { }
internal IfcMechanicalSteelMaterialProperties(DatabaseIfc db, IfcMechanicalSteelMaterialProperties p, DuplicateOptions options) : base(db, p, options)
@ -869,7 +877,7 @@ namespace GeometryGym.Ifc
mHardeningModule = p.mHardeningModule;
mProportionalStress = p.mProportionalStress;
mPlasticStrain = p.mPlasticStrain;
Relaxations = p.Relaxations.ConvertAll(x=> db.Factory.Duplicate(x) as IfcRelaxation);
Relaxations.AddRange(p.Relaxations.Select(x=> db.Factory.Duplicate(x)));
}
public IfcMechanicalSteelMaterialProperties(IfcMaterial mat) : base(mat) { }
public IfcMechanicalSteelMaterialProperties(IfcMaterial mat, double dynVisc, double youngs, double shear, double poisson, double thermalExp, double yieldStress, double ultimateStress, double ultimateStrain, double hardeningModule, double proportionalStress, double plasticStrain)
@ -886,31 +894,31 @@ namespace GeometryGym.Ifc
[Serializable]
public partial class IfcMedicalDevice : IfcFlowTerminal //IFC4
{
internal IfcMedicalDeviceTypeEnum mPredefinedType = IfcMedicalDeviceTypeEnum.NOTDEFINED;// OPTIONAL : IfcMedicalDeviceTypeEnum;
public IfcMedicalDeviceTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcMedicalDeviceTypeEnum mPredefinedType = IfcMedicalDeviceTypeEnum.NOTDEFINED;// OPTIONAL : IfcMedicalDeviceTypeEnum;
public IfcMedicalDeviceTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcMedicalDeviceTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcMedicalDevice() : base() { }
internal IfcMedicalDevice(DatabaseIfc db, IfcMedicalDevice d, DuplicateOptions options) : base(db, d, options) { mPredefinedType = d.mPredefinedType; }
internal IfcMedicalDevice(DatabaseIfc db, IfcMedicalDevice d, DuplicateOptions options) : base(db, d, options) { PredefinedType = d.PredefinedType; }
public IfcMedicalDevice(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape representation, IfcDistributionSystem system) : base(host, placement, representation, system) { }
}
[Serializable]
public partial class IfcMedicalDeviceType : IfcFlowTerminalType
{
internal IfcMedicalDeviceTypeEnum mPredefinedType = IfcMedicalDeviceTypeEnum.NOTDEFINED;// : IfcMedicalDeviceBoxTypeEnum;
public IfcMedicalDeviceTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcMedicalDeviceTypeEnum mPredefinedType = IfcMedicalDeviceTypeEnum.NOTDEFINED;// : IfcMedicalDeviceBoxTypeEnum;
public IfcMedicalDeviceTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcMedicalDeviceTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcMedicalDeviceType() : base() { }
internal IfcMedicalDeviceType(DatabaseIfc db, IfcMedicalDeviceType t, DuplicateOptions options) : base(db, t, options) { mPredefinedType = t.mPredefinedType; }
public IfcMedicalDeviceType(DatabaseIfc m, string name, IfcMedicalDeviceTypeEnum t) : base(m) { Name = name; mPredefinedType = t; }
internal IfcMedicalDeviceType(DatabaseIfc db, IfcMedicalDeviceType t, DuplicateOptions options) : base(db, t, options) { PredefinedType = t.PredefinedType; }
public IfcMedicalDeviceType(DatabaseIfc db, string name, IfcMedicalDeviceTypeEnum t) : base(db) { Name = name; PredefinedType = t; }
}
[Serializable]
public partial class IfcMember : IfcBuiltElement
{
internal IfcMemberTypeEnum mPredefinedType = IfcMemberTypeEnum.NOTDEFINED;//: OPTIONAL IfcMemberTypeEnum;
public IfcMemberTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcMemberTypeEnum mPredefinedType = IfcMemberTypeEnum.NOTDEFINED;//: OPTIONAL IfcMemberTypeEnum;
public IfcMemberTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcMemberTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcMember() : base() { }
internal IfcMember(DatabaseIfc db, IfcMember m, DuplicateOptions options) : base(db, m, options) { mPredefinedType = m.mPredefinedType; }
internal IfcMember(DatabaseIfc db, IfcMember m, DuplicateOptions options) : base(db, m, options) { PredefinedType = m.PredefinedType; }
public IfcMember(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape representation) : base(host, placement, representation) { }
public IfcMember(IfcProduct host, IfcMaterialProfileSetUsage profile, IfcAxis2Placement3D placement, double length) : base(host, profile, placement,length) { }
}
@ -926,71 +934,50 @@ namespace GeometryGym.Ifc
[Serializable]
public partial class IfcMemberType : IfcBuiltElementType
{
internal IfcMemberTypeEnum mPredefinedType = IfcMemberTypeEnum.NOTDEFINED;
public IfcMemberTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcMemberTypeEnum mPredefinedType = IfcMemberTypeEnum.NOTDEFINED;
public IfcMemberTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcMemberTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcMemberType() : base() { }
internal IfcMemberType(DatabaseIfc db, IfcMemberType t, DuplicateOptions options) : base(db, t, options) { mPredefinedType = t.mPredefinedType; }
internal IfcMemberType(DatabaseIfc db, IfcMemberType t, DuplicateOptions options) : base(db, t, options) { PredefinedType = t.PredefinedType; }
public IfcMemberType(string name, IfcMaterialProfileSet ps, IfcMemberTypeEnum type) : base(ps.mDatabase)
{
Name = name;
mPredefinedType = type;
PredefinedType = type;
if (ps.mTaperEnd != null)
mTapering = ps;
else
MaterialSelect = ps;
}
public IfcMemberType(DatabaseIfc m, string name, IfcMemberTypeEnum type) : base(m) { Name = name; mPredefinedType = type; }
public IfcMemberType(string name, IfcMaterialProfile mp, IfcMemberTypeEnum type) : base(mp.mDatabase) { Name = name; mPredefinedType = type; MaterialSelect = mp; }
public IfcMemberType(DatabaseIfc db, string name, IfcMemberTypeEnum type) : base(db) { Name = name; PredefinedType = type; }
public IfcMemberType(string name, IfcMaterialProfile mp, IfcMemberTypeEnum type) : base(mp.mDatabase) { Name = name; PredefinedType = type; MaterialSelect = mp; }
}
[Serializable]
public partial class IfcMetric : IfcConstraint
{
internal IfcBenchmarkEnum mBenchMark = IfcBenchmarkEnum.EQUALTO;// : IfcBenchmarkEnum
internal string mValueSource = ""; // : OPTIONAL IfcLabel;
private int mDataValue = 0;// : OPTIONAL IfcMetricValueSelect;
private IfcValue mDataValueValue = null;
private int mReferencePath;// : OPTIONAL IfcReference;
private IfcMetricValueSelect mDataValue = null;// : OPTIONAL IfcMetricValueSelect;
private IfcReference mReferencePath;// : OPTIONAL IfcReference;
public IfcBenchmarkEnum BenchMark { get { return mBenchMark; } set { mBenchMark = value; } }
public string ValueSource { get { return mValueSource; } set { mValueSource = value; } }
public IfcMetricValueSelect DataValue
{
get
{
if (mDataValueValue != null)
return mDataValueValue;
return mDatabase[mDataValue] as IfcMetricValueSelect;
}
set
{
IfcValue ivalue = value as IfcValue;
if (value != null)
{
mDataValueValue = ivalue;
mDataValue = 0;
}
else
{
BaseClassIfc baseClass = value as BaseClassIfc;
mDataValue = baseClass == null ? 0 : baseClass.mIndex;
mDataValueValue = null;
}
}
get { return mDataValue; }
set { mDataValue = value; }
}
public IfcValue Value { get { return mDataValueValue; } set { mDataValueValue = value; } }
public IfcReference ReferencePath { get { return mDatabase[mReferencePath] as IfcReference; } set { mReferencePath = (value == null ? 0 : value.mIndex); } }
public IfcReference ReferencePath { get { return mReferencePath; } set { mReferencePath = value; } }
internal IfcMetric() : base() { }
internal IfcMetric(DatabaseIfc db, IfcMetric m) : base(db,m)
{
mBenchMark = m.mBenchMark;
mValueSource = m.mValueSource;
if(mDataValue > 0)
DataValue = db.Factory.Duplicate(m.mDatabase[ m.mDataValue]) as IfcMetricValueSelect;
mDataValueValue = m.mDataValueValue;
if(mReferencePath > 0)
ReferencePath = db.Factory.Duplicate( m.ReferencePath) as IfcReference;
if (m.DataValue is BaseClassIfc o)
DataValue = db.Factory.Duplicate(o) as IfcMetricValueSelect;
else
DataValue = m.DataValue;
ReferencePath = db.Factory.Duplicate(m.ReferencePath);
}
public IfcMetric(DatabaseIfc db, string name, IfcConstraintEnum constraint) : base(db, name, constraint) { }
}
@ -1003,22 +990,22 @@ namespace GeometryGym.Ifc
internal IfcMirroredProfileDef(DatabaseIfc db, IfcMirroredProfileDef p, DuplicateOptions options) : base(db, p, options) { }
public IfcMirroredProfileDef(IfcProfileDef p, string name) : base(p, null, name) { }
}
[Serializable]
[Serializable, VersionAdded(ReleaseVersion.IFC4X3)]
public partial class IfcMobileTelecommunicationsAppliance : IfcFlowTerminal
{
private IfcMobileTelecommunicationsApplianceTypeEnum mPredefinedType = IfcMobileTelecommunicationsApplianceTypeEnum.NOTDEFINED; //: OPTIONAL IfcMobileTelecommunicationsApplianceTypeEnum;
public IfcMobileTelecommunicationsApplianceTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
public IfcMobileTelecommunicationsApplianceTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcMobileTelecommunicationsApplianceTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
public IfcMobileTelecommunicationsAppliance() : base() { }
public IfcMobileTelecommunicationsAppliance(DatabaseIfc db) : base(db) { }
public IfcMobileTelecommunicationsAppliance(DatabaseIfc db, IfcMobileTelecommunicationsAppliance mobileAppliance, DuplicateOptions options) : base(db, mobileAppliance, options) { PredefinedType = mobileAppliance.PredefinedType; }
public IfcMobileTelecommunicationsAppliance(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape representation, IfcDistributionSystem system) : base(host, placement, representation, system) { }
}
[Serializable]
[Serializable, VersionAdded(ReleaseVersion.IFC4X3)]
public partial class IfcMobileTelecommunicationsApplianceType : IfcFlowTerminalType
{
private IfcMobileTelecommunicationsApplianceTypeEnum mPredefinedType = IfcMobileTelecommunicationsApplianceTypeEnum.NOTDEFINED; //: IfcMobileTelecommunicationsApplianceTypeEnum;
public IfcMobileTelecommunicationsApplianceTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
public IfcMobileTelecommunicationsApplianceTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcMobileTelecommunicationsApplianceTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
public IfcMobileTelecommunicationsApplianceType() : base() { }
public IfcMobileTelecommunicationsApplianceType(DatabaseIfc db, IfcMobileTelecommunicationsApplianceType mobileApplianceType, DuplicateOptions options) : base(db, mobileApplianceType, options) { PredefinedType = mobileApplianceType.PredefinedType; }
@ -1042,7 +1029,7 @@ namespace GeometryGym.Ifc
public partial class IfcMooringDevice : IfcBuiltElement
{
private IfcMooringDeviceTypeEnum mPredefinedType = IfcMooringDeviceTypeEnum.NOTDEFINED; //: OPTIONAL IfcMooringDeviceTypeEnum;
public IfcMooringDeviceTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
public IfcMooringDeviceTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcMooringDeviceTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
public IfcMooringDevice() : base() { }
public IfcMooringDevice(DatabaseIfc db) : base(db) { }
@ -1053,7 +1040,7 @@ namespace GeometryGym.Ifc
public partial class IfcMooringDeviceType : IfcBuiltElementType
{
private IfcMooringDeviceTypeEnum mPredefinedType = IfcMooringDeviceTypeEnum.NOTDEFINED; //: IfcMooringDeviceTypeEnum;
public IfcMooringDeviceTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
public IfcMooringDeviceTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcMooringDeviceTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
public IfcMooringDeviceType() : base() { }
public IfcMooringDeviceType(DatabaseIfc db, IfcMooringDeviceType mooringDeviceType, DuplicateOptions options) : base(db, mooringDeviceType, options) { PredefinedType = mooringDeviceType.PredefinedType; }
@ -1063,22 +1050,22 @@ namespace GeometryGym.Ifc
[Serializable]
public partial class IfcMotorConnection : IfcEnergyConversionDevice //IFC4
{
internal IfcMotorConnectionTypeEnum mPredefinedType = IfcMotorConnectionTypeEnum.NOTDEFINED;// OPTIONAL : IfcMotorConnectionTypeEnum;
public IfcMotorConnectionTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcMotorConnectionTypeEnum mPredefinedType = IfcMotorConnectionTypeEnum.NOTDEFINED;// OPTIONAL : IfcMotorConnectionTypeEnum;
public IfcMotorConnectionTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcMotorConnectionTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcMotorConnection() : base() { }
internal IfcMotorConnection(DatabaseIfc db, IfcMotorConnection c, DuplicateOptions options) : base(db, c, options) { mPredefinedType = c.mPredefinedType; }
internal IfcMotorConnection(DatabaseIfc db, IfcMotorConnection c, DuplicateOptions options) : base(db, c, options) { PredefinedType = c.PredefinedType; }
public IfcMotorConnection(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape representation, IfcDistributionSystem system) : base(host, placement, representation, system) { }
}
[Serializable]
public partial class IfcMotorConnectionType : IfcEnergyConversionDeviceType
{
internal IfcMotorConnectionTypeEnum mPredefinedType = IfcMotorConnectionTypeEnum.NOTDEFINED;// : IfcMotorConnectionTypeEnum;
public IfcMotorConnectionTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcMotorConnectionTypeEnum mPredefinedType = IfcMotorConnectionTypeEnum.NOTDEFINED;// : IfcMotorConnectionTypeEnum;
public IfcMotorConnectionTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcMotorConnectionTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcMotorConnectionType() : base() { }
internal IfcMotorConnectionType(DatabaseIfc db, IfcMotorConnectionType t, DuplicateOptions options) : base(db, t, options) { mPredefinedType = t.mPredefinedType; }
public IfcMotorConnectionType(DatabaseIfc m, string name, IfcMotorConnectionTypeEnum type) : base(m) { Name = name; mPredefinedType = type; }
internal IfcMotorConnectionType(DatabaseIfc db, IfcMotorConnectionType t, DuplicateOptions options) : base(db, t, options) { PredefinedType = t.PredefinedType; }
public IfcMotorConnectionType(DatabaseIfc db, string name, IfcMotorConnectionTypeEnum type) : base(db) { Name = name; PredefinedType = type; }
}
//[Obsolete("DEPRECATED IFC4", false)]
//ENTITY IfcMove // DEPRECATED IFC4

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

@ -38,31 +38,31 @@ namespace GeometryGym.Ifc
protected IfcNamedUnit() : base() { }
protected IfcNamedUnit(DatabaseIfc db, IfcNamedUnit u) : base(db, u) { if (u.mDimensions != null) Dimensions = db.Factory.Duplicate(u.Dimensions) as IfcDimensionalExponents; mUnitType = u.mUnitType; }
protected IfcNamedUnit(DatabaseIfc m, IfcUnitEnum unitEnum, bool gendims) : base(m)
protected IfcNamedUnit(DatabaseIfc db, IfcUnitEnum unitEnum, bool gendims) : base(db)
{
mUnitType = unitEnum;
if (gendims)
{
if (unitEnum == IfcUnitEnum.LENGTHUNIT)
Dimensions = new IfcDimensionalExponents(m, 1, 0, 0, 0, 0, 0, 0);
Dimensions = new IfcDimensionalExponents(db, 1, 0, 0, 0, 0, 0, 0);
else if (unitEnum == IfcUnitEnum.AREAUNIT)
Dimensions = new IfcDimensionalExponents(m, 2, 0, 0, 0, 0, 0, 0);
Dimensions = new IfcDimensionalExponents(db, 2, 0, 0, 0, 0, 0, 0);
else if (unitEnum == IfcUnitEnum.VOLUMEUNIT)
Dimensions = new IfcDimensionalExponents(m, 3, 0, 0, 0, 0, 0, 0);
Dimensions = new IfcDimensionalExponents(db, 3, 0, 0, 0, 0, 0, 0);
else if (unitEnum == IfcUnitEnum.MASSUNIT)
Dimensions = new IfcDimensionalExponents(m, 0, 1, 0, 0, 0, 0, 0);
Dimensions = new IfcDimensionalExponents(db, 0, 1, 0, 0, 0, 0, 0);
else if (unitEnum == IfcUnitEnum.TIMEUNIT)
Dimensions = new IfcDimensionalExponents(m, 0, 0, 1, 0, 0, 0, 0);
Dimensions = new IfcDimensionalExponents(db, 0, 0, 1, 0, 0, 0, 0);
else if (unitEnum == IfcUnitEnum.ELECTRICCURRENTUNIT)
Dimensions = new IfcDimensionalExponents(m, 0, 0, 0, 1, 0, 0, 0);
Dimensions = new IfcDimensionalExponents(db, 0, 0, 0, 1, 0, 0, 0);
else if (unitEnum == IfcUnitEnum.THERMODYNAMICTEMPERATUREUNIT)
Dimensions = new IfcDimensionalExponents(m, 0, 0, 0, 0, 1, 0, 0);
Dimensions = new IfcDimensionalExponents(db, 0, 0, 0, 0, 1, 0, 0);
else if (unitEnum == IfcUnitEnum.AMOUNTOFSUBSTANCEUNIT)
Dimensions = new IfcDimensionalExponents(m, 0, 0, 0, 0, 0, 1, 0);
Dimensions = new IfcDimensionalExponents(db, 0, 0, 0, 0, 0, 1, 0);
else if (unitEnum == IfcUnitEnum.LUMINOUSINTENSITYUNIT)
Dimensions = new IfcDimensionalExponents(m, 0, 0, 0, 0, 0, 0, 1);
Dimensions = new IfcDimensionalExponents(db, 0, 0, 0, 0, 0, 0, 1);
else if (unitEnum == IfcUnitEnum.PLANEANGLEUNIT)
Dimensions = new IfcDimensionalExponents(m, 0, 0, 0, 0, 0, 0, 0);
Dimensions = new IfcDimensionalExponents(db, 0, 0, 0, 0, 0, 0, 0);
}
}
public IfcNamedUnit(IfcDimensionalExponents dimensions, IfcUnitEnum unitType)
@ -74,7 +74,7 @@ namespace GeometryGym.Ifc
public partial class IfcNavigationElement : IfcBuiltElement
{
private IfcNavigationElementTypeEnum mPredefinedType = IfcNavigationElementTypeEnum.NOTDEFINED; //: OPTIONAL IfcNavigationElementTypeEnum;
public IfcNavigationElementTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
public IfcNavigationElementTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcNavigationElementTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
public IfcNavigationElement() : base() { }
public IfcNavigationElement(DatabaseIfc db) : base(db) { }
@ -85,7 +85,7 @@ namespace GeometryGym.Ifc
public partial class IfcNavigationElementType : IfcBuiltElementType
{
private IfcNavigationElementTypeEnum mPredefinedType = IfcNavigationElementTypeEnum.NOTDEFINED; //: IfcNavigationElementTypeEnum;
public IfcNavigationElementTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
public IfcNavigationElementTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcNavigationElementTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
public IfcNavigationElementType() : base() { }
public IfcNavigationElementType(DatabaseIfc db, IfcNavigationElementType navigationElementType, DuplicateOptions options) : base(db, navigationElementType, options) { PredefinedType = navigationElementType.PredefinedType; }

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

@ -72,7 +72,7 @@ namespace GeometryGym.Ifc
}
if (typeObject == null)
mIsTypedBy = null;
else //TODO CHECK CLASS NAME MATCHES INSTANCE
else
{
if (typeObject.mTypes == null)
typeObject.mTypes = new IfcRelDefinesByType(this, typeObject);
@ -82,19 +82,6 @@ namespace GeometryGym.Ifc
}
protected IfcObject() : base() { }
protected IfcObject(IfcObject obj, bool replace) : base(obj, replace)
{
mObjectType = obj.mObjectType;
IfcTypeObject typeObject = obj.RelatingType();
if (typeObject != null)
setRelatingType(typeObject);
if(replace)
{
mIsDeclaredBy = obj.mIsDeclaredBy;
mIsDefinedBy.AddRange(obj.mIsDefinedBy);
}
}
protected IfcObject(DatabaseIfc db, IfcObject o, DuplicateOptions options) : base(db, o, options)
{
mObjectType = o.mObjectType;
@ -103,6 +90,12 @@ namespace GeometryGym.Ifc
IsTypedBy = db.Factory.Duplicate(o.mIsTypedBy, options) as IfcRelDefinesByType;
}
protected IfcObject(DatabaseIfc db) : base(db) { }
protected IfcObject(IfcObject obj) : base(obj)
{
mObjectType = obj.mObjectType;
if (obj.mIsTypedBy != null)
obj.mIsTypedBy.RelatedObjects.Add(this);
}
protected override List<T> Extract<T>(Type type)
{
List<T> result = base.Extract<T>(type);
@ -159,42 +152,6 @@ namespace GeometryGym.Ifc
}
return result;
}
internal void SetPredefinedType(string predefinedTypeConstant, string enumName)
{
if (mDatabase.mRelease < ReleaseVersion.IFC4)
ObjectType = predefinedTypeConstant;
else
{
Type type = GetType();
PropertyInfo pi = type.GetProperty("PredefinedType");
if (pi != null)
{
Type enumType = pi.PropertyType;
if (enumType != null)
{
FieldInfo fi = enumType.GetField(predefinedTypeConstant);
if (fi == null)
{
ObjectType = predefinedTypeConstant;
fi = enumType.GetField("USERDEFINED");
}
if (fi != null)
{
int i = (int)fi.GetValue(enumType);
object newEnumValue = Enum.ToObject(enumType, i);
pi.SetValue(this, newEnumValue);
}
else
ObjectType = predefinedTypeConstant;
}
else
ObjectType = predefinedTypeConstant;
}
else
ObjectType = predefinedTypeConstant;
}
}
public void MaterialProfile(out IfcMaterial material, out IfcProfileDef profile)
{
@ -302,12 +259,16 @@ namespace GeometryGym.Ifc
protected IfcObjectDefinition() : base() { }
protected IfcObjectDefinition(DatabaseIfc db) : base(db) { }
protected IfcObjectDefinition(IfcObjectDefinition objectDefinition, bool replace) : base(objectDefinition, replace)
protected IfcObjectDefinition(IfcObjectDefinition obj) : base(obj)
{
if(replace)
{
//todo
}
foreach (IfcRelAssigns assigns in obj.HasAssignments)
assigns.RelatedObjects.Add(this);
if(obj.mHasContext != null)
obj.mHasContext.RelatedDefinitions.Add(this);
foreach(IfcRelAssociates associates in obj.HasAssociations)
associates.RelatedObjects.Add(this);
foreach(IfcRelDefinesByProperties defines in obj.mIsDefinedBy)
defines.RelatedObjects.Add(this);
}
protected IfcObjectDefinition(DatabaseIfc db, IfcObjectDefinition o, DuplicateOptions options) : base(db, o, options)
{
@ -456,8 +417,75 @@ namespace GeometryGym.Ifc
if (product != null && product.mContainedInStructure != null)
product.mContainedInStructure.RelatedElements.Remove(product);
}
protected T validPredefinedType<T>(T predefinedType, ReleaseVersion version) where T : struct
{
T result = predefinedType;
Type type = typeof(T);
string val = Enum.GetName(type, predefinedType);
VersionAddedAttribute versionAddedAttribute = type.GetField(val).GetCustomAttribute<VersionAddedAttribute>();
if (versionAddedAttribute != null && versionAddedAttribute.Release > version && version < ReleaseVersion.IFC4X3_RC1)
{
if (Enum.TryParse<T>("USERDEFINED", out T value))
{
result = value;
if (this is IfcObject obj && string.IsNullOrEmpty(obj.ObjectType))
obj.ObjectType = predefinedType.ToString();
else if (this is IfcElementType elementType && string.IsNullOrEmpty(elementType.ElementType))
elementType.ElementType = predefinedType.ToString();
}
}
return result;
}
internal void SetPredefinedType(string predefinedTypeConstant)
{
string objectType = "";
Type type = GetType();
PropertyInfo propertyInfo = type.GetProperty("mPredefinedType", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
FieldInfo fieldInfo = type.GetField("mPredefinedType", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
if (fieldInfo != null)
{
Type enumType = fieldInfo.FieldType;
if (enumType != null)
{
FieldInfo fi = enumType.GetField(predefinedTypeConstant);
if (fi == null)
{
objectType = predefinedTypeConstant;
fi = enumType.GetField("USERDEFINED");
}
else if (mDatabase != null)
{
VersionAddedAttribute versionAddedAttribute = fi.GetCustomAttribute<VersionAddedAttribute>();
if (versionAddedAttribute != null && versionAddedAttribute.Release > mDatabase.mRelease && mDatabase.mRelease < ReleaseVersion.IFC4X3_RC1)
{
objectType = predefinedTypeConstant;
fi = enumType.GetField("USERDEFINED");
}
}
if (fi != null)
{
int i = (int)fi.GetValue(enumType);
object newEnumValue = Enum.ToObject(enumType, i);
fieldInfo.SetValue(this, newEnumValue);
}
}
}
if(!string.IsNullOrEmpty(objectType))
{
if (this is IfcObject o && string.IsNullOrEmpty(o.ObjectType))
o.ObjectType = objectType;
else if (this is IfcElementType elementType && string.IsNullOrEmpty(elementType.ElementType))
elementType.ElementType = objectType;
}
if (this is IfcObject obj && mDatabase != null && mDatabase.mRelease < ReleaseVersion.IFC4)
{
if (string.IsNullOrEmpty(obj.mObjectType))
obj.mObjectType = predefinedTypeConstant;
}
}
internal IfcMaterialSelect RelatedMaterial() { return (mMaterialSelectIFC4 != null ? mMaterialSelectIFC4 : GetMaterialSelect()); }
protected virtual IfcMaterialSelect GetMaterialSelect()
{
@ -673,16 +701,25 @@ namespace GeometryGym.Ifc
internal override sealed bool isDuplicate(BaseClassIfc e, double tol)
{
return isDuplicate(e, false, tol);
return isDuplicate(e, new OptionsTestDuplicate(tol));
}
internal virtual bool isDuplicate(BaseClassIfc e, bool includeAggregated, double tol)
internal class OptionsTestDuplicate
{
public bool CheckRelatedObjects = true;
public double Tolerance = 1e-5;
public OptionsTestDuplicate(double tol)
{
Tolerance = tol;
}
}
internal virtual bool isDuplicate(BaseClassIfc e, OptionsTestDuplicate options)
{
IfcObjectDefinition objDef = e as IfcObjectDefinition;
if (objDef == null)
return false;
if (base.isDuplicate(e, tol))
if (base.isDuplicate(e, options.Tolerance))
{
if (includeAggregated)
if (options.CheckRelatedObjects)
{
IEnumerable<IfcObjectDefinition> objDefs = IsDecomposedBy.SelectMany(x => x.RelatedObjects);
IEnumerable<IfcObjectDefinition> dupObjDefs = objDef.IsDecomposedBy.SelectMany(x => x.RelatedObjects);
@ -693,7 +730,7 @@ namespace GeometryGym.Ifc
if (!dictObjDefs.ContainsKey(od.GlobalId))
return false;
IfcObjectDefinition dup = dictObjDefs[od.GlobalId];
if (!od.isDuplicate(dup, tol))
if (!od.isDuplicate(dup, options.Tolerance))
return false;
}
@ -708,7 +745,7 @@ namespace GeometryGym.Ifc
foreach (IfcRelNests nests in nestedBy)
{
IfcObjectDefinition firstOther = nests.RelatedObjects.First();
if (firstOther.isDuplicate(firstRelated, tol))
if (firstOther.isDuplicate(firstRelated, options.Tolerance))
{
testDuplicate = nests;
break;
@ -723,7 +760,7 @@ namespace GeometryGym.Ifc
{
IfcObjectDefinition od1 = relNests.RelatedObjects[icounter];
IfcObjectDefinition od2 = testDuplicate.RelatedObjects[icounter];
if (!od1.isDuplicate(od2, tol))
if (!od1.isDuplicate(od2, options.Tolerance))
return false;
}
}
@ -830,12 +867,12 @@ namespace GeometryGym.Ifc
[Serializable]
public partial class IfcOccupant : IfcActor
{
internal IfcOccupantTypeEnum mPredefinedType = IfcOccupantTypeEnum.NOTDEFINED;// : OPTIONAL IfcOccupantTypeEnum;
public IfcOccupantTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcOccupantTypeEnum mPredefinedType = IfcOccupantTypeEnum.NOTDEFINED;// : OPTIONAL IfcOccupantTypeEnum;
public IfcOccupantTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcOccupantTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcOccupant() : base() { }
internal IfcOccupant(DatabaseIfc db, IfcOccupant o, DuplicateOptions options) : base(db, o, options) { mPredefinedType = o.mPredefinedType; }
public IfcOccupant(IfcActorSelect a, IfcOccupantTypeEnum type) : base(a) { mPredefinedType = type; }
internal IfcOccupant(DatabaseIfc db, IfcOccupant o, DuplicateOptions options) : base(db, o, options) { PredefinedType = o.PredefinedType; }
public IfcOccupant(IfcActorSelect a, IfcOccupantTypeEnum type) : base(a) { PredefinedType = type; }
}
public abstract partial class IfcOffsetCurve : IfcCurve //ABSTRACT SUPERTYPE OF(ONEOF(IfcOffsetCurve2D, IfcOffsetCurve3D, IfcOffsetCurveByDistances))
{
@ -891,8 +928,8 @@ namespace GeometryGym.Ifc
[Serializable]
public partial class IfcOneDirectionRepeatFactor : IfcGeometricRepresentationItem // DEPRECATED IFC4 SUPERTYPE OF (IfcTwoDirectionRepeatFactor)
{
internal int mRepeatFactor;// : IfcVector
public IfcVector RepeatFactor { get { return mDatabase[mRepeatFactor] as IfcVector; } set { mRepeatFactor = value.mIndex; } }
internal IfcVector mRepeatFactor;// : IfcVector
public IfcVector RepeatFactor { get { return mRepeatFactor; } set { mRepeatFactor = value; } }
internal IfcOneDirectionRepeatFactor() : base() { }
internal IfcOneDirectionRepeatFactor(DatabaseIfc db, IfcOneDirectionRepeatFactor f, DuplicateOptions options) : base(db, f, options) { RepeatFactor = db.Factory.Duplicate(f.RepeatFactor) as IfcVector; }
@ -934,17 +971,17 @@ namespace GeometryGym.Ifc
[Serializable]
public partial class IfcOpeningElement : IfcFeatureElementSubtraction //SUPERTYPE OF(IfcOpeningStandardCase)
{
internal IfcOpeningElementTypeEnum mPredefinedType = IfcOpeningElementTypeEnum.NOTDEFINED;// : OPTIONAL IfcOpeningElementTypeEnum; //IFC4
private IfcOpeningElementTypeEnum mPredefinedType = IfcOpeningElementTypeEnum.NOTDEFINED;// : OPTIONAL IfcOpeningElementTypeEnum; //IFC4
//INVERSE
internal SET<IfcRelFillsElement> mHasFillings = new SET<IfcRelFillsElement>();
public IfcOpeningElementTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
public IfcOpeningElementTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcOpeningElementTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
public SET<IfcRelFillsElement> HasFillings { get { return mHasFillings; } }
internal IfcOpeningElement() : base() { }
internal IfcOpeningElement(DatabaseIfc db, IfcOpeningElement e, DuplicateOptions options) : base(db, e, options)
{
mPredefinedType = e.mPredefinedType;
PredefinedType = e.PredefinedType;
if (options.DuplicateDownstream)
{
foreach (IfcRelFillsElement fills in e.HasFillings)
@ -1070,10 +1107,10 @@ namespace GeometryGym.Ifc
[Serializable]
public partial class IfcOrganizationRelationship : IfcResourceLevelRelationship //IFC4
{
private int mRelatingOrganization;// : IfcOrganization;
private IfcOrganization mRelatingOrganization;// : IfcOrganization;
private SET<IfcOrganization> mRelatedOrganizations = new SET<IfcOrganization>(); // : SET [1:?] OF IfcResourceObjectSelect;
public IfcOrganization RelatingOrganization { get { return mDatabase[mRelatingOrganization] as IfcOrganization; } set { mRelatingOrganization = value.mIndex; } }
public IfcOrganization RelatingOrganization { get { return mRelatingOrganization; } set { mRelatingOrganization = value; } }
public SET<IfcOrganization> RelatedOrganizations { get { return mRelatedOrganizations; } }
internal IfcOrganizationRelationship() : base() { }
@ -1085,7 +1122,7 @@ namespace GeometryGym.Ifc
}
public IfcOrganizationRelationship(IfcOrganization relating, IfcOrganization related) : this(relating, new List<IfcOrganization>() { related }) { }
public IfcOrganizationRelationship(IfcOrganization relating, List<IfcOrganization> related)
: base(relating.mDatabase) { mRelatingOrganization = relating.mIndex; RelatedOrganizations.AddRange(related); }
: base(relating.mDatabase) { mRelatingOrganization = relating; RelatedOrganizations.AddRange(related); }
protected override void initialize()
{
@ -1134,6 +1171,7 @@ namespace GeometryGym.Ifc
VerticalAxisDirection = verticalAxisDirection;
}
}
public interface IfcOrientationSelect : IBaseClassIfc { } //= SELECT(IfcPlaneAngleMeasure, IfcDirection)
[Serializable]
public partial class IfcOrientedEdge : IfcEdge
{
@ -1169,22 +1207,22 @@ namespace GeometryGym.Ifc
[Serializable]
public partial class IfcOutlet : IfcFlowTerminal //IFC4
{
internal IfcOutletTypeEnum mPredefinedType = IfcOutletTypeEnum.NOTDEFINED;// OPTIONAL : IfcOutletTypeEnum;
public IfcOutletTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcOutletTypeEnum mPredefinedType = IfcOutletTypeEnum.NOTDEFINED;// OPTIONAL : IfcOutletTypeEnum;
public IfcOutletTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcOutletTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcOutlet() : base() { }
internal IfcOutlet(DatabaseIfc db, IfcOutlet o, DuplicateOptions options) : base(db,o, options) { mPredefinedType = o.mPredefinedType; }
internal IfcOutlet(DatabaseIfc db, IfcOutlet o, DuplicateOptions options) : base(db,o, options) { PredefinedType = o.PredefinedType; }
public IfcOutlet(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape representation, IfcDistributionSystem system) : base(host, placement, representation, system) { }
}
[Serializable]
public partial class IfcOutletType : IfcFlowTerminalType
{
internal IfcOutletTypeEnum mPredefinedType = IfcOutletTypeEnum.NOTDEFINED;// : IfcOutletTypeEnum;
public IfcOutletTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcOutletTypeEnum mPredefinedType = IfcOutletTypeEnum.NOTDEFINED;// : IfcOutletTypeEnum;
public IfcOutletTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcOutletTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcOutletType() : base() { }
internal IfcOutletType(DatabaseIfc db, IfcOutletType t, DuplicateOptions options) : base(db, t, options) { mPredefinedType = t.mPredefinedType; }
public IfcOutletType(DatabaseIfc m, string name, IfcOutletTypeEnum t) : base(m) { Name = name; mPredefinedType = t; }
internal IfcOutletType(DatabaseIfc db, IfcOutletType t, DuplicateOptions options) : base(db, t, options) { PredefinedType = t.PredefinedType; }
public IfcOutletType(DatabaseIfc db, string name, IfcOutletTypeEnum t) : base(db) { Name = name; PredefinedType = t; }
}
[Serializable]
public partial class IfcOwnerHistory : BaseClassIfc

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

@ -51,47 +51,45 @@ namespace GeometryGym.Ifc
if (p.mPosition != null)
Position = db.Factory.Duplicate(p.Position) as IfcAxis2Placement2D;
}
protected IfcParameterizedProfileDef(DatabaseIfc m, string name) : base(m, name)
protected IfcParameterizedProfileDef(DatabaseIfc db, string name) : base(db, name)
{
if (mDatabase != null)
{
if (mDatabase.mModelView == ModelView.Ifc4Reference)
throw new Exception("Invalid Model View for IfcParameterizedProfileDef : " + m.ModelView.ToString());
if (mDatabase.mRelease < ReleaseVersion.IFC4)
Position = mDatabase.Factory.Origin2dPlace;
}
if (db.mModelView == ModelView.Ifc4Reference)
throw new Exception("Invalid Model View for IfcParameterizedProfileDef : " + db.ModelView.ToString());
if (db.mRelease < ReleaseVersion.IFC4)
Position = db.Factory.Origin2dPlace;
}
}
[Serializable]
public partial class IfcPath : IfcTopologicalRepresentationItem
{
internal List<int> mEdgeList = new List<int>();// : SET [1:?] OF IfcOrientedEdge;
public ReadOnlyCollection<IfcOrientedEdge> EdgeList { get { return new ReadOnlyCollection<IfcOrientedEdge>(mEdgeList.ConvertAll(x => mDatabase[x] as IfcOrientedEdge)); } }
internal SET<IfcOrientedEdge> mEdgeList = new SET<IfcOrientedEdge>();// : SET [1:?] OF IfcOrientedEdge;
public SET<IfcOrientedEdge> EdgeList { get { return mEdgeList; } }
internal IfcPath() : base() { }
internal IfcPath(DatabaseIfc db, IfcPath p, DuplicateOptions options) : base(db, p, options) { p.EdgeList.ToList().ForEach(x => addEdge(db.Factory.Duplicate(x) as IfcOrientedEdge)); }
public IfcPath(IfcOrientedEdge edge) : base(edge.mDatabase) { mEdgeList.Add(edge.mIndex); }
public IfcPath(List<IfcOrientedEdge> edges) : base(edges[0].mDatabase) { edges.ForEach(x => addEdge(x)); }
internal void addEdge(IfcOrientedEdge edge) { mEdgeList.Add(edge.mIndex); }
internal IfcPath(DatabaseIfc db, IfcPath p, DuplicateOptions options) : base(db, p, options)
{
EdgeList.AddRange(p.EdgeList.Select(x => db.Factory.Duplicate(x)));
}
public IfcPath(IfcOrientedEdge edge) : base(edge.mDatabase) { mEdgeList.Add(edge); }
public IfcPath(IEnumerable<IfcOrientedEdge> edges) : base(edges.First().mDatabase) { mEdgeList.AddRange(edges); }
}
[Serializable]
[Serializable, VersionAdded(ReleaseVersion.IFC4X3)]
public partial class IfcPavement : IfcBuiltElement
{
private IfcPavementTypeEnum mPredefinedType = IfcPavementTypeEnum.NOTDEFINED; //: OPTIONAL IfcPavementTypeEnum;
public IfcPavementTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
public IfcPavementTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcPavementTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
public IfcPavement() : base() { }
public IfcPavement(DatabaseIfc db) : base(db) { }
public IfcPavement(DatabaseIfc db, IfcPavement pavement, DuplicateOptions options) : base(db, pavement, options) { PredefinedType = pavement.PredefinedType; }
public IfcPavement(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape representation) : base(host, placement, representation) { }
}
[Serializable]
[Serializable, VersionAdded(ReleaseVersion.IFC4X3)]
public partial class IfcPavementType : IfcBuiltElementType
{
private IfcPavementTypeEnum mPredefinedType = IfcPavementTypeEnum.NOTDEFINED; //: IfcPavementTypeEnum;
public IfcPavementTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
public IfcPavementTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcPavementTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
public IfcPavementType() : base() { }
public IfcPavementType(DatabaseIfc db, IfcPavementType pavementType, DuplicateOptions options) : base(db, pavementType, options) { PredefinedType = pavementType.PredefinedType; }
@ -115,7 +113,7 @@ namespace GeometryGym.Ifc
{
internal string mLifeCyclePhase;// : IfcLabel;
private IfcPerformanceHistoryTypeEnum mPredefinedType = IfcPerformanceHistoryTypeEnum.NOTDEFINED;// OPTIONAL : IfcPerformanceHistoryTypeEnum;
public IfcPerformanceHistoryTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
public IfcPerformanceHistoryTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcPerformanceHistoryTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
public string LifeCyclePhase { get { return mLifeCyclePhase; } set { mLifeCyclePhase = value; } }// : IfcLabel;
internal IfcPerformanceHistory() : base() { }
@ -189,12 +187,6 @@ namespace GeometryGym.Ifc
Roles.AddRange(p.Roles.ConvertAll(x => db.Factory.Duplicate(x) as IfcActorRole));
Addresses.AddRange(p.Addresses.ConvertAll(x => db.Factory.Duplicate(x) as IfcAddress));
}
internal IfcPerson(DatabaseIfc m, string id, string familyname, string givenName) : base(m)
{
Identification = id;
FamilyName = familyname;
GivenName = givenName;
}
protected override void initialize()
{
base.initialize();
@ -219,9 +211,6 @@ namespace GeometryGym.Ifc
r.RelatedResourceObjects.Remove(this);
}
}
public void AddMiddleName(string name) { if (!string.IsNullOrEmpty(name)) mMiddleNames.Add(ParserIfc.Encode(name)); }
public void AddPrefixTitle(string title) { if (!string.IsNullOrEmpty(title)) mPrefixTitles.Add(ParserIfc.Encode(title)); }
public void AddSuffixTitle(string title) { if (!string.IsNullOrEmpty(title)) mSuffixTitles.Add(ParserIfc.Encode(title)); }
public void AddConstraintRelationShip(IfcResourceConstraintRelationship constraintRelationship) { mHasConstraintRelationships.Add(constraintRelationship); }
}
[Serializable]
@ -352,11 +341,11 @@ namespace GeometryGym.Ifc
[Serializable]
public abstract partial class IfcPhysicalSimpleQuantity : IfcPhysicalQuantity //ABSTRACT SUPERTYPE OF (ONEOF (IfcQuantityArea ,IfcQuantityCount ,IfcQuantityLength ,IfcQuantityTime ,IfcQuantityVolume ,IfcQuantityWeight))
{
internal int mUnit = 0;// : OPTIONAL IfcNamedUnit;
public IfcNamedUnit Unit { get { return mDatabase[mUnit] as IfcNamedUnit; } set { mUnit = (value == null ? 0 : value.mIndex); } }
internal IfcNamedUnit mUnit = null;// : OPTIONAL IfcNamedUnit;
public IfcNamedUnit Unit { get { return mUnit; } set { mUnit = value; } }
protected IfcPhysicalSimpleQuantity() : base() { }
protected IfcPhysicalSimpleQuantity(DatabaseIfc db, IfcPhysicalSimpleQuantity q) : base(db, q) { if (q.mUnit > 0) Unit = db.Factory.Duplicate(q.Unit) as IfcNamedUnit; }
protected IfcPhysicalSimpleQuantity(DatabaseIfc db, IfcPhysicalSimpleQuantity q) : base(db, q) { if (q.mUnit != null) Unit = db.Factory.Duplicate(q.Unit); }
protected IfcPhysicalSimpleQuantity(DatabaseIfc db, string name) : base(db, name) { }
public abstract IfcMeasureValue MeasureValue { get; }
@ -364,73 +353,73 @@ namespace GeometryGym.Ifc
[Serializable]
public partial class IfcPile : IfcDeepFoundation
{
internal IfcPileTypeEnum mPredefinedType = IfcPileTypeEnum.NOTDEFINED;// OPTIONAL : IfcPileTypeEnum;
private IfcPileTypeEnum mPredefinedType = IfcPileTypeEnum.NOTDEFINED;// OPTIONAL : IfcPileTypeEnum;
internal IfcPileConstructionEnum mConstructionType = IfcPileConstructionEnum.NOTDEFINED;// : OPTIONAL IfcPileConstructionEnum; IFC4 Deprecated.
public IfcPileTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
public IfcPileTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcPileTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
[Obsolete("DEPRECATED IFC4", false)]
public IfcPileConstructionEnum ConstructionType { get { return mConstructionType; } set { mConstructionType = value; } }
internal IfcPile() : base() { }
internal IfcPile(DatabaseIfc db, IfcPile p, DuplicateOptions options) : base(db, p, options) { mPredefinedType = p.mPredefinedType; mConstructionType = p.mConstructionType; }
internal IfcPile(DatabaseIfc db, IfcPile p, DuplicateOptions options) : base(db, p, options) { PredefinedType = p.PredefinedType; mConstructionType = p.mConstructionType; }
public IfcPile(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape representation) : base(host, placement, representation) { }
}
[Serializable]
public partial class IfcPileType : IfcDeepFoundationType
{
internal IfcPileTypeEnum mPredefinedType = IfcPileTypeEnum.NOTDEFINED;
public IfcPileTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcPileTypeEnum mPredefinedType = IfcPileTypeEnum.NOTDEFINED;
public IfcPileTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcPileTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcPileType() : base() { }
internal IfcPileType(DatabaseIfc db, IfcPileType t, DuplicateOptions options) : base(db, t, options) { mPredefinedType = t.mPredefinedType; }
public IfcPileType(DatabaseIfc db, string name, IfcPileTypeEnum type) : base(db) { Name = name; mPredefinedType = type; }
public IfcPileType(string name, IfcMaterialProfileSet mps, IfcPileTypeEnum type) : base(mps.mDatabase) { Name = name; mPredefinedType = type; MaterialSelect = mps; }
internal IfcPileType(DatabaseIfc db, IfcPileType t, DuplicateOptions options) : base(db, t, options) { PredefinedType = t.PredefinedType; }
public IfcPileType(DatabaseIfc db, string name, IfcPileTypeEnum type) : base(db) { Name = name; PredefinedType = type; }
public IfcPileType(string name, IfcMaterialProfileSet mps, IfcPileTypeEnum type) : base(mps.mDatabase) { Name = name; PredefinedType = type; MaterialSelect = mps; }
}
[Serializable]
public partial class IfcPipeFitting : IfcFlowFitting //IFC4
{
internal IfcPipeFittingTypeEnum mPredefinedType = IfcPipeFittingTypeEnum.NOTDEFINED; // : OPTIONAL IfcPipeFittingTypeEnum;
public IfcPipeFittingTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcPipeFittingTypeEnum mPredefinedType = IfcPipeFittingTypeEnum.NOTDEFINED; // : OPTIONAL IfcPipeFittingTypeEnum;
public IfcPipeFittingTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcPipeFittingTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcPipeFitting() : base() { }
internal IfcPipeFitting(DatabaseIfc db, IfcPipeFitting f, DuplicateOptions options) : base(db, f, options) { mPredefinedType = f.mPredefinedType; }
internal IfcPipeFitting(DatabaseIfc db, IfcPipeFitting f, DuplicateOptions options) : base(db, f, options) { PredefinedType = f.PredefinedType; }
public IfcPipeFitting(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape representation, IfcDistributionSystem system) : base(host, placement, representation, system) { }
}
[Serializable]
public partial class IfcPipeFittingType : IfcFlowFittingType
{
internal IfcPipeFittingTypeEnum mPredefinedType = IfcPipeFittingTypeEnum.NOTDEFINED;// : IfcPipeFittingTypeEnum;
public IfcPipeFittingTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcPipeFittingTypeEnum mPredefinedType = IfcPipeFittingTypeEnum.NOTDEFINED;// : IfcPipeFittingTypeEnum;
public IfcPipeFittingTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcPipeFittingTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcPipeFittingType() : base() { }
internal IfcPipeFittingType(DatabaseIfc db, IfcPipeFittingType t, DuplicateOptions options) : base(db, t, options) { mPredefinedType = t.mPredefinedType; }
public IfcPipeFittingType(DatabaseIfc db, string name, IfcPipeFittingTypeEnum type) : base(db) { Name = name; mPredefinedType = type; }
internal IfcPipeFittingType(DatabaseIfc db, IfcPipeFittingType t, DuplicateOptions options) : base(db, t, options) { PredefinedType = t.PredefinedType; }
public IfcPipeFittingType(DatabaseIfc db, string name, IfcPipeFittingTypeEnum type) : base(db) { Name = name; PredefinedType = type; }
public IfcPipeFittingType(DatabaseIfc db, string name, double radius, double bendAngle) : base(db)
{
Name = name;
Pset_PipeFittingTypeBend pset = new Pset_PipeFittingTypeBend(this) { BendRadius = radius, BendAngle = bendAngle };
mPredefinedType = IfcPipeFittingTypeEnum.BEND;
PredefinedType = IfcPipeFittingTypeEnum.BEND;
}
}
[Serializable]
public partial class IfcPipeSegment : IfcFlowSegment //IFC4
{
internal IfcPipeSegmentTypeEnum mPredefinedType = IfcPipeSegmentTypeEnum.NOTDEFINED;// OPTIONAL : IfcPipeSegmentTypeEnum;
public IfcPipeSegmentTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcPipeSegmentTypeEnum mPredefinedType = IfcPipeSegmentTypeEnum.NOTDEFINED;// OPTIONAL : IfcPipeSegmentTypeEnum;
public IfcPipeSegmentTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcPipeSegmentTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcPipeSegment() : base() { }
internal IfcPipeSegment(DatabaseIfc db, IfcPipeSegment s, DuplicateOptions options) : base(db, s, options) { mPredefinedType = s.mPredefinedType; }
internal IfcPipeSegment(DatabaseIfc db, IfcPipeSegment s, DuplicateOptions options) : base(db, s, options) { PredefinedType = s.PredefinedType; }
public IfcPipeSegment(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape representation, IfcDistributionSystem system) : base(host, placement, representation, system) { }
}
[Serializable]
public partial class IfcPipeSegmentType : IfcFlowSegmentType
{
internal IfcPipeSegmentTypeEnum mPredefinedType = IfcPipeSegmentTypeEnum.NOTDEFINED;// : IfcPipeSegmentTypeEnum;
public IfcPipeSegmentTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcPipeSegmentTypeEnum mPredefinedType = IfcPipeSegmentTypeEnum.NOTDEFINED;// : IfcPipeSegmentTypeEnum;
public IfcPipeSegmentTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcPipeSegmentTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcPipeSegmentType() : base() { }
internal IfcPipeSegmentType(DatabaseIfc db, IfcPipeSegmentType t, DuplicateOptions options) : base(db, t, options) { mPredefinedType = t.mPredefinedType; }
public IfcPipeSegmentType(DatabaseIfc m, string name, IfcPipeSegmentTypeEnum t) : base(m) { Name = name; mPredefinedType = t; }
internal IfcPipeSegmentType(DatabaseIfc db, IfcPipeSegmentType t, DuplicateOptions options) : base(db, t, options) { PredefinedType = t.PredefinedType; }
public IfcPipeSegmentType(DatabaseIfc db, string name, IfcPipeSegmentTypeEnum t) : base(db) { Name = name; PredefinedType = t; }
}
[Serializable]
public partial class IfcPixelTexture : IfcSurfaceTexture
@ -463,11 +452,11 @@ namespace GeometryGym.Ifc
[Serializable]
public partial class IfcPlanarBox : IfcPlanarExtent
{
internal int mPlacement;// : IfcAxis2Placement;
public IfcAxis2Placement Placement { get { return mDatabase[mPlacement] as IfcAxis2Placement; } set { mPlacement = value.Index; } }
internal IfcAxis2Placement mPlacement;// : IfcAxis2Placement;
public IfcAxis2Placement Placement { get { return mPlacement; } set { mPlacement = value; } }
internal IfcPlanarBox() : base() { }
internal IfcPlanarBox(DatabaseIfc db, IfcPlanarBox b, DuplicateOptions options) : base(db, b, options) { Placement = db.Factory.Duplicate(b.mDatabase[b.mPlacement]) as IfcAxis2Placement; }
internal IfcPlanarBox(DatabaseIfc db, IfcPlanarBox b, DuplicateOptions options) : base(db, b, options) { Placement = db.Factory.Duplicate<IfcAxis2Placement>(b.mPlacement); }
}
[Serializable]
public partial class IfcPlanarExtent : IfcGeometricRepresentationItem
@ -490,11 +479,11 @@ namespace GeometryGym.Ifc
[Serializable]
public partial class IfcPlate : IfcBuiltElement
{
internal IfcPlateTypeEnum mPredefinedType = IfcPlateTypeEnum.NOTDEFINED;//: OPTIONAL IfcPlateTypeEnum;
public IfcPlateTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcPlateTypeEnum mPredefinedType = IfcPlateTypeEnum.NOTDEFINED;//: OPTIONAL IfcPlateTypeEnum;
public IfcPlateTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcPlateTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcPlate() : base() { }
internal IfcPlate(DatabaseIfc db, IfcPlate p, DuplicateOptions options) : base(db, p, options) { mPredefinedType = p.mPredefinedType; }
internal IfcPlate(DatabaseIfc db, IfcPlate p, DuplicateOptions options) : base(db, p, options) { PredefinedType = p.PredefinedType; }
public IfcPlate(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape representation) : base(host, placement, representation) { }
public IfcPlate(IfcProduct host, IfcMaterialProfileSetUsage profile, IfcAxis2Placement3D placement, double length) : base(host, profile, placement,length) { }
}
@ -508,12 +497,12 @@ namespace GeometryGym.Ifc
[Serializable]
public partial class IfcPlateType : IfcBuiltElementType
{
internal IfcPlateTypeEnum mPredefinedType = IfcPlateTypeEnum.NOTDEFINED;
public IfcPlateTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcPlateTypeEnum mPredefinedType = IfcPlateTypeEnum.NOTDEFINED;
public IfcPlateTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcPlateTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcPlateType() : base() { }
internal IfcPlateType(DatabaseIfc db, IfcPlateType t, DuplicateOptions options) : base(db, t, options) { mPredefinedType = t.mPredefinedType; }
public IfcPlateType(DatabaseIfc m, string name, IfcPlateTypeEnum type) : base(m) { Name = name; mPredefinedType = type; }
internal IfcPlateType(DatabaseIfc db, IfcPlateType t, DuplicateOptions options) : base(db, t, options) { PredefinedType = t.PredefinedType; }
public IfcPlateType(DatabaseIfc db, string name, IfcPlateTypeEnum type) : base(db) { Name = name; PredefinedType = type; }
public IfcPlateType(string name, IfcMaterialLayerSet mls, IfcPlateTypeEnum type) : this(mls.mDatabase, name, type) { MaterialSelect = mls; }
}
[Serializable]
@ -569,10 +558,10 @@ namespace GeometryGym.Ifc
[Serializable]
public partial class IfcPointOnCurve : IfcPoint
{
internal int mBasisCurve;// : IfcCurve;
internal IfcCurve mBasisCurve;// : IfcCurve;
internal double mPointParameter;// : IfcParameterValue;
public IfcCurve BasisCurve { get { return mDatabase[mBasisCurve] as IfcCurve; } set { mBasisCurve = value.mIndex; } }
public IfcCurve BasisCurve { get { return mBasisCurve; } set { mBasisCurve = value; } }
public double PointParameter { get { return mPointParameter; } set { mPointParameter = value; } }
internal IfcPointOnCurve() : base() { }
@ -581,15 +570,15 @@ namespace GeometryGym.Ifc
BasisCurve = p.BasisCurve.Duplicate(db, options) as IfcCurve;
mPointParameter = p.mPointParameter;
}
public IfcPointOnCurve(DatabaseIfc m, IfcCurve c, double p) : base(m) { mBasisCurve = c.mIndex; mPointParameter = p; }
public IfcPointOnCurve(IfcCurve c, double p) : base(c.Database) { mBasisCurve = c; mPointParameter = p; }
}
[Serializable]
public partial class IfcPointOnSurface : IfcPoint
{
internal int mBasisSurface;// : IfcSurface;
internal IfcSurface mBasisSurface;// : IfcSurface;
internal double mPointParameterU, mPointParameterV;// : IfcParameterValue;
public IfcSurface BasisSurface { get { return mDatabase[mBasisSurface] as IfcSurface; } set { mBasisSurface = value.mIndex; } }
public IfcSurface BasisSurface { get { return mBasisSurface; } set { mBasisSurface = value; } }
internal IfcPointOnSurface() : base() { }
internal IfcPointOnSurface(DatabaseIfc db, IfcPointOnSurface p, DuplicateOptions options) : base(db, p, options)
@ -603,11 +592,11 @@ namespace GeometryGym.Ifc
[Serializable]
public partial class IfcPolygonalBoundedHalfSpace : IfcHalfSpaceSolid
{
internal int mPosition;// : IfcAxis2Placement3D;
internal int mPolygonalBoundary;// : IfcBoundedCurve;
internal IfcAxis2Placement3D mPosition;// : IfcAxis2Placement3D;
internal IfcBoundedCurve mPolygonalBoundary;// : IfcBoundedCurve;
public IfcAxis2Placement3D Position { get { return mDatabase[mPosition] as IfcAxis2Placement3D; } set { mPosition = value.mIndex; } }
public IfcBoundedCurve PolygonalBoundary { get { return mDatabase[mPolygonalBoundary] as IfcBoundedCurve; } set { mPolygonalBoundary = value.mIndex; } }
public IfcAxis2Placement3D Position { get { return mPosition; } set { mPosition = value; } }
public IfcBoundedCurve PolygonalBoundary { get { return mPolygonalBoundary; } set { mPolygonalBoundary = value; } }
internal IfcPolygonalBoundedHalfSpace() : base() { }
internal IfcPolygonalBoundedHalfSpace(DatabaseIfc db, IfcPolygonalBoundedHalfSpace s, DuplicateOptions options) : base(db, s, options) { Position = db.Factory.Duplicate(s.Position) as IfcAxis2Placement3D; PolygonalBoundary = db.Factory.Duplicate(s.PolygonalBoundary) as IfcBoundedCurve; }
@ -1032,20 +1021,20 @@ namespace GeometryGym.Ifc
internal IfcProcedureTypeEnum mPredefinedType;// : IfcProcedureTypeEnum;
internal string mUserDefinedProcedureType = "";// : OPTIONAL IfcLabel;
public IfcProcedureTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
public IfcProcedureTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcProcedureTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcProcedure() : base() { }
internal IfcProcedure(DatabaseIfc db, IfcProcedure p, DuplicateOptions options) : base(db, p, options) { mPredefinedType = p.mPredefinedType; mUserDefinedProcedureType = p.mUserDefinedProcedureType; }
internal IfcProcedure(DatabaseIfc db, IfcProcedure p, DuplicateOptions options) : base(db, p, options) { PredefinedType = p.PredefinedType; mUserDefinedProcedureType = p.mUserDefinedProcedureType; }
}
[Serializable]
public partial class IfcProcedureType : IfcTypeProcess //IFC4
{
internal IfcProcedureTypeEnum mPredefinedType = IfcProcedureTypeEnum.NOTDEFINED;// : IfcProcedureTypeEnum;
public IfcProcedureTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcProcedureTypeEnum mPredefinedType = IfcProcedureTypeEnum.NOTDEFINED;// : IfcProcedureTypeEnum;
public IfcProcedureTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcProcedureTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcProcedureType() : base() { }
internal IfcProcedureType(DatabaseIfc db, IfcProcedureType t, DuplicateOptions options) : base(db, t, options) { mPredefinedType = t.mPredefinedType; }
public IfcProcedureType(DatabaseIfc m, string name, IfcProcedureTypeEnum t) : base(m) { Name = name; mPredefinedType = t; }
internal IfcProcedureType(DatabaseIfc db, IfcProcedureType t, DuplicateOptions options) : base(db, t, options) { PredefinedType = t.PredefinedType; }
public IfcProcedureType(DatabaseIfc db, string name, IfcProcedureTypeEnum t) : base(db) { Name = name; PredefinedType = t; }
}
[Serializable]
public abstract partial class IfcProcess : IfcObject, IfcProcessSelect // ABSTRACT SUPERTYPE OF (ONEOF (IfcProcedure ,IfcTask))
@ -1064,6 +1053,11 @@ namespace GeometryGym.Ifc
public SET<IfcRelAssignsToProcess> OperatesOn { get { return mOperatesOn; } }
protected IfcProcess() : base() { }
protected IfcProcess(IfcProcess process) : base(process)
{
Identification = process.Identification;
LongDescription = process.LongDescription;
}
protected IfcProcess(DatabaseIfc db, IfcProcess p, DuplicateOptions options ) : base(db, p, options)
{
mIdentification = p.mIdentification;
@ -1080,11 +1074,6 @@ namespace GeometryGym.Ifc
if (mDatabase.mModelView != ModelView.Ifc4NotAssigned && mDatabase.mModelView != ModelView.Ifc2x3NotAssigned)
throw new Exception("Invalid Model View for IfcProcess : " + db.ModelView.ToString());
}
protected IfcProcess(IfcProcess process) : base(process, false)
{
mIdentification = process.mIdentification;
mLongDescription = process.mLongDescription;
}
public bool AddOperatesOn(IfcObjectDefinition related)
{
if (mOperatesOn.Count == 0)
@ -1171,16 +1160,6 @@ namespace GeometryGym.Ifc
internal IfcObjectPlacement mContainerCommonPlacement = null; //GeometryGym common Placement reference for aggregated items
protected IfcProduct() : base() { }
protected IfcProduct(IfcProduct product, bool replace) : base(product, replace)
{
ObjectPlacement = product.ObjectPlacement;
Representation = product.Representation;
if(replace)
{
mReferencedBy = product.mReferencedBy;
mContainedInStructure = product.mContainedInStructure;
}
}
protected IfcProduct(IfcProductDefinitionShape rep) : base(rep.mDatabase) { Representation = rep; }
protected IfcProduct(IfcObjectPlacement placement) : base(placement.mDatabase) { ObjectPlacement = placement; }
protected IfcProduct(IfcObjectPlacement placement, IfcProductDefinitionShape rep) : base(placement == null ? rep.mDatabase : placement.mDatabase)
@ -1357,17 +1336,17 @@ namespace GeometryGym.Ifc
}
return null;
}
internal override bool isDuplicate(BaseClassIfc e, bool includeAggregated, double tol)
internal override bool isDuplicate(BaseClassIfc e, OptionsTestDuplicate options)
{
IfcProduct product = e as IfcProduct;
if (e == null)
return false;
if (base.isDuplicate(e, includeAggregated, tol))
if (base.isDuplicate(e, options))
{
IfcObjectPlacement placement = ObjectPlacement, placement2 = product.ObjectPlacement;
if (placement != null)
{
if (!placement.isDuplicate(placement2, tol))
if (!placement.isDuplicate(placement2, options.Tolerance))
return false;
}
else if (placement2 != null)
@ -1375,7 +1354,7 @@ namespace GeometryGym.Ifc
IfcProductDefinitionShape rep = Representation, rep2 = product.Representation;
if (rep != null)
{
if (!rep.isDuplicate(rep2, tol))
if (!rep.isDuplicate(rep2, options.Tolerance))
return false;
}
else if (rep2 != null)
@ -1491,8 +1470,8 @@ namespace GeometryGym.Ifc
//INVERSE
private SET<IfcExternalReferenceRelationship> mHasExternalReference = new SET<IfcExternalReferenceRelationship>(); //IFC4 SET [0:?] OF IfcExternalReferenceRelationship FOR RelatedResourceObjects;
internal SET<IfcProfileProperties> mHasProperties = new SET<IfcProfileProperties>();
internal List<IfcResourceConstraintRelationship> mHasConstraintRelationships = new List<IfcResourceConstraintRelationship>(); //gg
internal List<IfcResourceConstraintRelationship> HasConstraintRelationships { get { return mHasConstraintRelationships; } }
internal SET<IfcResourceConstraintRelationship> mHasConstraintRelationships = new SET<IfcResourceConstraintRelationship>(); //gg
internal SET<IfcResourceConstraintRelationship> HasConstraintRelationships { get { return mHasConstraintRelationships; } }
public IfcProfileTypeEnum ProfileType { get { return mProfileType; } set { mProfileType = value; } }
public string ProfileName { get { return mProfileName; } set { mProfileName = value; } }
@ -1667,14 +1646,14 @@ namespace GeometryGym.Ifc
{
internal string mMapProjection = "";// : OPTIONAL IfcIdentifier;
internal string mMapZone = "";// : OPTIONAL IfcIdentifier
internal int mMapUnit = 0;// : OPTIONAL IfcNamedUnit;
internal IfcNamedUnit mMapUnit = null;// : OPTIONAL IfcNamedUnit;
public string MapProjection { get { return mMapProjection; } set { mMapProjection = ParserIfc.Encode(value); } }
public string MapZone { get { return mMapZone; } set { mMapZone = value; } }
public IfcNamedUnit MapUnit { get { return mDatabase[mMapUnit] as IfcNamedUnit; } set { mMapUnit = (value == null ? 0 : value.mIndex); } }
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.mMapUnit > 0) MapUnit = db.Factory.Duplicate(p.MapUnit) as IfcNamedUnit; }
internal IfcProjectedCRS(DatabaseIfc db, IfcProjectedCRS p) : base(db, p) { mName = p.mName; mMapZone = p.mMapZone; if (p != null) MapUnit = db.Factory.Duplicate(p.MapUnit) as IfcNamedUnit; }
public IfcProjectedCRS(DatabaseIfc db, string name) : base(db, name) { }
}
//[Obsolete("DEPRECATED IFC4", false)]
@ -1682,47 +1661,50 @@ namespace GeometryGym.Ifc
[Serializable]
public partial class IfcProjectionElement : IfcFeatureElementAddition
{
internal IfcProjectionElementTypeEnum mPredefinedType = IfcProjectionElementTypeEnum.NOTDEFINED;// : OPTIONAL IfcProjectionElementTypeEnum; //IFC4
public IfcProjectionElementTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcProjectionElementTypeEnum mPredefinedType = IfcProjectionElementTypeEnum.NOTDEFINED;// : OPTIONAL IfcProjectionElementTypeEnum; //IFC4
public IfcProjectionElementTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcProjectionElementTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
//INVERSE
internal IfcProjectionElement() : base() { }
internal IfcProjectionElement(DatabaseIfc db, IfcProjectionElement e, DuplicateOptions options) : base(db, e, options){ mPredefinedType = e.mPredefinedType; }
internal IfcProjectionElement(DatabaseIfc db, IfcProjectionElement e, DuplicateOptions options) : base(db, e, options){ PredefinedType = e.PredefinedType; }
}
[Serializable]
public partial class IfcProjectLibrary : IfcContext
{
internal IfcProjectLibrary() : base() { }
internal IfcProjectLibrary(DatabaseIfc db, IfcProjectLibrary l, DuplicateOptions options) : base(db, l, options) { }
public IfcProjectLibrary(DatabaseIfc m, string name) : base(m, name)
public IfcProjectLibrary(DatabaseIfc db, string name) : base(db, name)
{
if (m.ModelView == ModelView.Ifc4Reference || m.ModelView == ModelView.Ifc2x3Coordination)
throw new Exception("Invalid Model View for IfcProjectLibrary : " + m.ModelView.ToString());
if (db.ModelView == ModelView.Ifc4Reference || db.ModelView == ModelView.Ifc2x3Coordination)
throw new Exception("Invalid Model View for IfcProjectLibrary : " + db.ModelView.ToString());
if (string.IsNullOrEmpty(Name))
Name = "UNKNOWN PROJECTLIBRARY";
}
public IfcProjectLibrary(DatabaseIfc m, string name, IfcUnitAssignment.Length length)
: base(m, name) { UnitsInContext = new IfcUnitAssignment(mDatabase).SetUnits(length); }
public IfcProjectLibrary(DatabaseIfc db, string name, IfcUnitAssignment.Length length)
: base(db, name) { UnitsInContext = new IfcUnitAssignment(db).SetUnits(length); }
}
[Serializable]
public partial class IfcProjectOrder : IfcControl
{
//internal string mID;// : IfcIdentifier; IFC4 relocated
internal IfcProjectOrderTypeEnum mPredefinedType = IfcProjectOrderTypeEnum.NOTDEFINED;// : IfcProjectOrderTypeEnum;
private IfcProjectOrderTypeEnum mPredefinedType = IfcProjectOrderTypeEnum.NOTDEFINED;// : IfcProjectOrderTypeEnum;
internal string mStatus = "";// : OPTIONAL IfcLabel;
internal string mLongDescription = ""; // : OPTIONAL IfcText;
public IfcProjectOrderTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcProjectOrderTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcProjectOrder() : base() { }
internal IfcProjectOrder(DatabaseIfc db, IfcProjectOrder o, DuplicateOptions options) : base(db, o, options) { mPredefinedType = o.mPredefinedType; mStatus = o.mStatus; mLongDescription = o.mLongDescription; }
internal IfcProjectOrder(DatabaseIfc db, IfcProjectOrder o, DuplicateOptions options) : base(db, o, options) { PredefinedType = o.PredefinedType; mStatus = o.mStatus; mLongDescription = o.mLongDescription; }
}
[Obsolete("DEPRECATED IFC4", false)]
[Serializable]
public partial class IfcProjectOrderRecord : IfcControl // DEPRECATED IFC4
{
internal List<int> mRecords = new List<int>();// : LIST [1:?] OF UNIQUE IfcRelAssignsToProjectOrder;
internal IfcProjectOrderRecordTypeEnum mPredefinedType = IfcProjectOrderRecordTypeEnum.NOTDEFINED;// : IfcProjectOrderRecordTypeEnum;
//public List<ifcrelassignstopr>
internal LIST<IfcRelAssignsToProjectOrder> mRecords = new LIST<IfcRelAssignsToProjectOrder>();// : LIST [1:?] OF UNIQUE IfcRelAssignsToProjectOrder;
private IfcProjectOrderRecordTypeEnum mPredefinedType = IfcProjectOrderRecordTypeEnum.NOTDEFINED;// : IfcProjectOrderRecordTypeEnum;
public IfcProjectOrderRecordTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcProjectOrderRecordTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcProjectOrderRecord() : base() { }
internal IfcProjectOrderRecord(DatabaseIfc db, IfcProjectOrderRecord r, DuplicateOptions options) : base(db, r, options) { }// Records = r.Records mPredefinedType = i.mPredefinedType; }
internal IfcProjectOrderRecord(DatabaseIfc db, IfcProjectOrderRecord r, DuplicateOptions options)
: base(db, r, options) { mRecords.AddRange(r.mRecords.Select(x => db.Factory.Duplicate(x))); PredefinedType = r.PredefinedType; }
}
[Serializable]
public abstract partial class IfcProperty : IfcPropertyAbstraction, NamedObjectIfc //ABSTRACT SUPERTYPE OF (ONEOF(IfcComplexProperty,IfcSimpleProperty));
@ -1803,12 +1785,12 @@ namespace GeometryGym.Ifc
{
internal IfcValue mUpperBoundValue;// : OPTIONAL IfcValue;
internal IfcValue mLowerBoundValue;// : OPTIONAL IfcValue;
internal int mUnit;// : OPTIONAL IfcUnit;
internal IfcUnit mUnit;// : OPTIONAL IfcUnit;
internal IfcValue mSetPointValue;// OPTIONAL IfcValue; IFC4
public IfcValue UpperBoundValue { get { return mUpperBoundValue; } set { mUpperBoundValue = value; } }
public IfcValue LowerBoundValue { get { return mLowerBoundValue; } set { mLowerBoundValue = value; } }
public IfcUnit Unit { get { return mDatabase[mUnit] as IfcUnit; } set { mUnit = (value == null ? 0 : value.Index); } }
public IfcUnit Unit { get { return mUnit; } set { mUnit = value; } }
public IfcValue SetPointValue { get { return mSetPointValue; } set { mSetPointValue = value; } }
internal IfcPropertyBoundedValue() : base() { }
@ -1816,8 +1798,8 @@ namespace GeometryGym.Ifc
{
mUpperBoundValue = p.mUpperBoundValue;
mLowerBoundValue = p.mLowerBoundValue;
if (p.mUnit > 0)
Unit = mDatabase.Factory.Duplicate(p.mDatabase[p.mUnit]) as IfcUnit;
if (p.mUnit != null)
Unit = mDatabase.Factory.Duplicate<IfcUnit>(p.mUnit);
mSetPointValue = p.mSetPointValue;
}
public IfcPropertyBoundedValue(DatabaseIfc db, string name) : base(db, name) { }
@ -1828,16 +1810,24 @@ namespace GeometryGym.Ifc
public override string StepClassName { get { return "IfcPropertyBoundedValue"; } }
internal T mUpperBoundValue;// : OPTIONAL IfcValue;
internal T mLowerBoundValue;// : OPTIONAL IfcValue;
internal int mUnit;// : OPTIONAL IfcUnit;
internal IfcUnit mUnit;// : OPTIONAL IfcUnit;
internal T mSetPointValue;// OPTIONAL IfcValue; IFC4
public T UpperBoundValue { get { return mUpperBoundValue; } set { mUpperBoundValue = value; } }
public T LowerBoundValue { get { return mUpperBoundValue; } set { mUpperBoundValue = value; } }
public IfcUnit Unit { get { return mDatabase[mUnit] as IfcUnit; } set { mUnit = (value == null ? 0 : value.Index); } }
public T LowerBoundValue { get { return mLowerBoundValue; } set { mLowerBoundValue = value; } }
public IfcUnit Unit { get { return mUnit; } set { mUnit = value; } }
public T SetPointValue { get { return mSetPointValue; } set { mSetPointValue = value; } }
internal IfcPropertyBoundedValue() : base() { }
public IfcPropertyBoundedValue(DatabaseIfc db, string name) : base(db, name) { }
internal IfcPropertyBoundedValue(DatabaseIfc db, IfcPropertyBoundedValue<T> p, DuplicateOptions options) : base(db, p, options)
{
mUpperBoundValue = p.mUpperBoundValue;
mLowerBoundValue = p.mLowerBoundValue;
if (p.mUnit != null)
Unit = mDatabase.Factory.Duplicate<IfcUnit>(p.mUnit);
mSetPointValue = p.mSetPointValue;
}
}
[Obsolete("DELETED IFC4", false)]
[Serializable]
@ -1875,7 +1865,7 @@ namespace GeometryGym.Ifc
protected IfcPropertyDefinition() : base() { }
internal IfcPropertyDefinition(DatabaseIfc db) : base(db) { }
protected IfcPropertyDefinition(IfcPropertyDefinition propertyDefinition) : base(propertyDefinition, false) { }
protected IfcPropertyDefinition(IfcPropertyDefinition propertyDefinition) : base(propertyDefinition) { }
protected IfcPropertyDefinition(DatabaseIfc db, IfcPropertyDefinition p, DuplicateOptions options) : base(db, p, options)
{
if (options.DuplicateHost && p.HasContext != null)
@ -1920,12 +1910,12 @@ namespace GeometryGym.Ifc
[Serializable]
public partial class IfcPropertyDependencyRelationship : IfcResourceLevelRelationship
{
internal int mDependingProperty;// : IfcProperty;
internal int mDependantProperty;// : IfcProperty;
private IfcProperty mDependingProperty;// : IfcProperty;
private IfcProperty mDependantProperty;// : IfcProperty;
internal string mExpression = "";// : OPTIONAL IfcText;
public IfcProperty DependingProperty { get { return mDatabase[mDependingProperty] as IfcProperty; } set { mDependingProperty = value.mIndex; value.mPropertyDependsOn.Add(this); } }
public IfcProperty DependantProperty { get { return mDatabase[mDependantProperty] as IfcProperty; } set { mDependantProperty = value.mIndex; value.mPropertyForDependance.Add(this); } }
public IfcProperty DependingProperty { get { return mDependingProperty; } set { mDependingProperty = value; value.mPropertyDependsOn.Add(this); } }
public IfcProperty DependantProperty { get { return mDependantProperty; } set { mDependantProperty = value; value.mPropertyForDependance.Add(this); } }
public string Expression { get { return mExpression; } set { mExpression = value; } }
internal IfcPropertyDependencyRelationship() : base() { }
@ -1943,10 +1933,10 @@ namespace GeometryGym.Ifc
public partial class IfcPropertyEnumeratedValue : IfcSimpleProperty
{
internal LIST<IfcValue> mEnumerationValues = new LIST<IfcValue>();// : LIST [1:?] OF IfcValue;
internal int mEnumerationReference;// : OPTIONAL IfcPropertyEnumeration;
internal IfcPropertyEnumeration mEnumerationReference;// : OPTIONAL IfcPropertyEnumeration;
public LIST<IfcValue> EnumerationValues { get { return mEnumerationValues; } set { mEnumerationValues = value; } }
public IfcPropertyEnumeration EnumerationReference { get { return mDatabase[mEnumerationReference] as IfcPropertyEnumeration; } set { mEnumerationReference = value == null ? 0 : value.mIndex; } }
public IfcPropertyEnumeration EnumerationReference { get { return mEnumerationReference; } set { mEnumerationReference = value; } }
internal IfcPropertyEnumeratedValue() : base() { }
public IfcPropertyEnumeratedValue(DatabaseIfc db, string name, IfcValue value) : base(db, name) { mEnumerationValues.Add(value); }
@ -2007,22 +1997,29 @@ namespace GeometryGym.Ifc
internal IfcPropertyListValue() : base() { }
public IfcPropertyListValue(DatabaseIfc db, string name, IEnumerable<T> values)
: base(db, name) { mNominalValue.AddRange(values); }
internal IfcPropertyListValue(DatabaseIfc db, IfcPropertyListValue<T> p, DuplicateOptions options) : base(db, p, options)
{
mNominalValue.AddRange(p.mNominalValue);
if (p.mUnit != null)
Unit = db.Factory.Duplicate(p.mUnit as BaseClassIfc, options) as IfcUnit;
}
}
[Serializable]
public partial class IfcPropertyReferenceValue : IfcSimpleProperty
{
internal string mUsageName = "";// : OPTIONAL IfcText;
internal int mPropertyReference = 0;// : OPTIONAL IfcObjectReferenceSelect;
internal string mUsageName = "";//: OPTIONAL IfcText;
internal IfcObjectReferenceSelect mPropertyReference = null;//: OPTIONAL IfcObjectReferenceSelect;
public string UsageName { get { return mUsageName; } set { mUsageName = value; } }
public IfcObjectReferenceSelect PropertyReference { get { return mDatabase[mPropertyReference] as IfcObjectReferenceSelect; } set { mPropertyReference = (value == null ? 0 : value.Index); } }
public IfcObjectReferenceSelect PropertyReference { get { return mPropertyReference; } set { mPropertyReference = value; } }
internal IfcPropertyReferenceValue() : base() { }
internal IfcPropertyReferenceValue(DatabaseIfc db, IfcPropertyReferenceValue p, DuplicateOptions options) : base(db, p, options)
{
mUsageName = p.mUsageName;
if(p.mPropertyReference > 0)
PropertyReference = db.Factory.Duplicate(p.PropertyReference as BaseClassIfc, options) as IfcObjectReferenceSelect;
if(p.mPropertyReference != null)
PropertyReference = db.Factory.Duplicate<IfcObjectReferenceSelect>(p.PropertyReference, options);
}
public IfcPropertyReferenceValue(DatabaseIfc db, string name) : base(db, name) { }
public IfcPropertyReferenceValue(string name, IfcObjectReferenceSelect obj) : base(obj.Database, name) { PropertyReference = obj; }
@ -2227,7 +2224,7 @@ namespace GeometryGym.Ifc
protected IfcPropertySetDefinition() : base() { }
protected IfcPropertySetDefinition(IfcPropertySetDefinition pset) : base(pset) { }
protected IfcPropertySetDefinition(DatabaseIfc db, IfcPropertySetDefinition s, DuplicateOptions options) : base(db, s, options) { }
protected IfcPropertySetDefinition(DatabaseIfc m, string name) : base(m) { Name = name; }
protected IfcPropertySetDefinition(DatabaseIfc db, string name) : base(db) { Name = name; }
protected IfcPropertySetDefinition(IfcObjectDefinition relatedObject, string name) : base(relatedObject.mDatabase) { RelateObjectDefinition(relatedObject); Name = name; }
public void RelateObjectDefinition(IfcObjectDefinition relatedObject)
@ -2357,12 +2354,12 @@ namespace GeometryGym.Ifc
if (s.mUnit != null)
Unit = db.Factory.Duplicate(s.mUnit as BaseClassIfc, options) as IfcUnit;
}
public IfcPropertySingleValue(DatabaseIfc m, string name, IfcValue value) : base(m, name) { mNominalValue = value; }
public IfcPropertySingleValue(DatabaseIfc m, string name, bool value) : this(m, name, new IfcBoolean(value)) { }
public IfcPropertySingleValue(DatabaseIfc m, string name, int value) : this(m, name, new IfcInteger(value)) { }
public IfcPropertySingleValue(DatabaseIfc m, string name, double value) : this(m, name, new IfcReal(value)) { }
public IfcPropertySingleValue(DatabaseIfc m, string name, string value) : this(m, name, new IfcLabel(value)) { }
public IfcPropertySingleValue(DatabaseIfc m, string name, IfcValue val, IfcUnit unit) : this(m, name, val) { Unit = unit; }
public IfcPropertySingleValue(DatabaseIfc db, string name, IfcValue value) : base(db, name) { mNominalValue = value; }
public IfcPropertySingleValue(DatabaseIfc db, string name, bool value) : this(db, name, new IfcBoolean(value)) { }
public IfcPropertySingleValue(DatabaseIfc db, string name, int value) : this(db, name, new IfcInteger(value)) { }
public IfcPropertySingleValue(DatabaseIfc db, string name, double value) : this(db, name, new IfcReal(value)) { }
public IfcPropertySingleValue(DatabaseIfc db, string name, string value) : this(db, name, new IfcLabel(value)) { }
public IfcPropertySingleValue(DatabaseIfc db, string name, IfcValue val, IfcUnit unit) : this(db, name, val) { Unit = unit; }
internal override bool isDuplicate(BaseClassIfc e, double tol)
{
@ -2436,19 +2433,6 @@ namespace GeometryGym.Ifc
}
}
[Serializable]
public partial class IfcPropertyTableValue<T,U> : IfcSimpleProperty where T : IfcValue where U :IfcValue
{
internal List <T> mDefiningValues = new List<T>();// : OPTIONAL LIST [1:?] OF UNIQUE IfcValue;
internal List<U> mDefinedValues = new List<U>();// : OPTIONAL LIST [1:?] OF IfcValue;
internal string mExpression = "";// :: OPTIONAL IfcText;
internal IfcUnit mDefiningUnit;// : : OPTIONAL IfcUnit;
internal IfcUnit mDefinedUnit;// : : OPTIONAL IfcUnit;
internal IfcCurveInterpolationEnum mCurveInterpolation = IfcCurveInterpolationEnum.NOTDEFINED;// : : OPTIONAL IfcCurveInterpolationEnum;
internal IfcPropertyTableValue() : base() { }
public IfcPropertyTableValue(DatabaseIfc db, string name) : base(db, name) { }
}
[Serializable]
public partial class IfcPropertyTableValue : IfcSimpleProperty
{
@ -2472,6 +2456,28 @@ namespace GeometryGym.Ifc
public IfcPropertyTableValue(DatabaseIfc db, string name) : base(db, name) { }
}
[Serializable]
public partial class IfcPropertyTableValue<T, U> : IfcSimpleProperty where T : IfcValue where U : IfcValue
{
internal List<T> mDefiningValues = new List<T>();// : OPTIONAL LIST [1:?] OF UNIQUE IfcValue;
internal List<U> mDefinedValues = new List<U>();// : OPTIONAL LIST [1:?] OF IfcValue;
internal string mExpression = "";//: OPTIONAL IfcText;
internal IfcUnit mDefiningUnit;//: OPTIONAL IfcUnit;
internal IfcUnit mDefinedUnit;//: OPTIONAL IfcUnit;
internal IfcCurveInterpolationEnum mCurveInterpolation = IfcCurveInterpolationEnum.NOTDEFINED;// : : OPTIONAL IfcCurveInterpolationEnum;
internal IfcPropertyTableValue() : base() { }
public IfcPropertyTableValue(DatabaseIfc db, string name) : base(db, name) { }
internal IfcPropertyTableValue(DatabaseIfc db, IfcPropertyTableValue<T, U> p, DuplicateOptions options) : base(db, p, options)
{
mDefiningValues.AddRange(p.mDefiningValues);
mDefinedValues.AddRange(p.mDefinedValues);
mExpression = p.mExpression;
mDefiningUnit = db.Factory.Duplicate(p.mDefiningUnit);
mDefinedUnit = db.Factory.Duplicate(p.mDefinedUnit);
mCurveInterpolation = p.mCurveInterpolation;
}
}
[Serializable]
public abstract partial class IfcPropertyTemplate : IfcPropertyTemplateDefinition //ABSTRACT SUPERTYPE OF(ONEOF(IfcComplexPropertyTemplate, IfcSimplePropertyTemplate))
{ //INVERSE
internal SET<IfcComplexPropertyTemplate> mPartOfComplexTemplate = new SET<IfcComplexPropertyTemplate>();// : SET OF IfcComplexPropertyTemplate FOR HasPropertyTemplates;
@ -2488,47 +2494,47 @@ namespace GeometryGym.Ifc
{
protected IfcPropertyTemplateDefinition() : base() { }
protected IfcPropertyTemplateDefinition(DatabaseIfc db, IfcPropertyTemplateDefinition p, DuplicateOptions options) : base(db, p, options) { }
protected IfcPropertyTemplateDefinition(DatabaseIfc m, string name) : base(m) { Name = name; }
protected IfcPropertyTemplateDefinition(DatabaseIfc db, string name) : base(db) { Name = name; }
}
[Serializable]
public partial class IfcProtectiveDevice : IfcFlowController //IFC4
{
internal IfcProtectiveDeviceTypeEnum mPredefinedType = IfcProtectiveDeviceTypeEnum.NOTDEFINED;// OPTIONAL : IfcProtectiveDeviceTypeEnum;
public IfcProtectiveDeviceTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcProtectiveDeviceTypeEnum mPredefinedType = IfcProtectiveDeviceTypeEnum.NOTDEFINED;// OPTIONAL : IfcProtectiveDeviceTypeEnum;
public IfcProtectiveDeviceTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcProtectiveDeviceTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcProtectiveDevice() : base() { }
internal IfcProtectiveDevice(DatabaseIfc db, IfcProtectiveDevice d, DuplicateOptions options) : base(db, d, options) { mPredefinedType = d.mPredefinedType; }
internal IfcProtectiveDevice(DatabaseIfc db, IfcProtectiveDevice d, DuplicateOptions options) : base(db, d, options) { PredefinedType = d.PredefinedType; }
public IfcProtectiveDevice(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape representation, IfcDistributionSystem system) : base(host, placement, representation, system) { }
}
[Serializable]
public partial class IfcProtectiveDeviceTrippingUnit : IfcDistributionControlElement //IFC4
{
internal IfcProtectiveDeviceTrippingUnitTypeEnum mPredefinedType = IfcProtectiveDeviceTrippingUnitTypeEnum.NOTDEFINED;
public IfcProtectiveDeviceTrippingUnitTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcProtectiveDeviceTrippingUnitTypeEnum mPredefinedType = IfcProtectiveDeviceTrippingUnitTypeEnum.NOTDEFINED;
public IfcProtectiveDeviceTrippingUnitTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcProtectiveDeviceTrippingUnitTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcProtectiveDeviceTrippingUnit() : base() { }
internal IfcProtectiveDeviceTrippingUnit(DatabaseIfc db, IfcProtectiveDeviceTrippingUnit u, DuplicateOptions options) : base(db,u, options) { mPredefinedType = u.mPredefinedType; }
internal IfcProtectiveDeviceTrippingUnit(DatabaseIfc db, IfcProtectiveDeviceTrippingUnit u, DuplicateOptions options) : base(db,u, options) { PredefinedType = u.PredefinedType; }
public IfcProtectiveDeviceTrippingUnit(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape representation, IfcDistributionSystem system) : base(host, placement, representation, system) { }
}
[Serializable]
public partial class IfcProtectiveDeviceTrippingUnitType : IfcDistributionControlElementType
{
internal IfcProtectiveDeviceTrippingUnitTypeEnum mPredefinedType = IfcProtectiveDeviceTrippingUnitTypeEnum.NOTDEFINED;// : IfcProtectiveDeviceTrippingUnitTypeEnum;
public IfcProtectiveDeviceTrippingUnitTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcProtectiveDeviceTrippingUnitTypeEnum mPredefinedType = IfcProtectiveDeviceTrippingUnitTypeEnum.NOTDEFINED;// : IfcProtectiveDeviceTrippingUnitTypeEnum;
public IfcProtectiveDeviceTrippingUnitTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcProtectiveDeviceTrippingUnitTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcProtectiveDeviceTrippingUnitType() : base() { }
internal IfcProtectiveDeviceTrippingUnitType(DatabaseIfc db, IfcProtectiveDeviceTrippingUnitType t, DuplicateOptions options) : base(db, t, options) { mPredefinedType = t.mPredefinedType; }
public IfcProtectiveDeviceTrippingUnitType(DatabaseIfc m, string name, IfcProtectiveDeviceTrippingUnitTypeEnum t) : base(m) { Name = name; mPredefinedType = t; }
internal IfcProtectiveDeviceTrippingUnitType(DatabaseIfc db, IfcProtectiveDeviceTrippingUnitType t, DuplicateOptions options) : base(db, t, options) { PredefinedType = t.PredefinedType; }
public IfcProtectiveDeviceTrippingUnitType(DatabaseIfc db, string name, IfcProtectiveDeviceTrippingUnitTypeEnum t) : base(db) { Name = name; PredefinedType = t; }
}
[Serializable]
public partial class IfcProtectiveDeviceType : IfcFlowControllerType
{
internal IfcProtectiveDeviceTypeEnum mPredefinedType = IfcProtectiveDeviceTypeEnum.NOTDEFINED;// : IfcProtectiveDeviceTypeEnum;
public IfcProtectiveDeviceTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcProtectiveDeviceTypeEnum mPredefinedType = IfcProtectiveDeviceTypeEnum.NOTDEFINED;// : IfcProtectiveDeviceTypeEnum;
public IfcProtectiveDeviceTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcProtectiveDeviceTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcProtectiveDeviceType() : base() { }
internal IfcProtectiveDeviceType(DatabaseIfc db, IfcProtectiveDeviceType t, DuplicateOptions options) : base(db, t, options) { mPredefinedType = t.mPredefinedType; }
public IfcProtectiveDeviceType(DatabaseIfc m, string name, IfcProtectiveDeviceTypeEnum t) : base(m) { Name = name; mPredefinedType = t; }
internal IfcProtectiveDeviceType(DatabaseIfc db, IfcProtectiveDeviceType t, DuplicateOptions options) : base(db, t, options) { PredefinedType = t.PredefinedType; }
public IfcProtectiveDeviceType(DatabaseIfc db, string name, IfcProtectiveDeviceTypeEnum t) : base(db) { Name = name; PredefinedType = t; }
}
[Obsolete("DEPRECATED IFC4x3", false)]
[Serializable]
@ -2552,25 +2558,26 @@ namespace GeometryGym.Ifc
rcss.RelatedElements.Add(this);
}
}
internal IfcProxy(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape shape) : base(host, placement, shape) { }
}
[Serializable]
public partial class IfcPump : IfcFlowMovingDevice //IFC4
{
internal IfcPumpTypeEnum mPredefinedType = IfcPumpTypeEnum.NOTDEFINED;// OPTIONAL : IfcPumpTypeEnum;
public IfcPumpTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcPumpTypeEnum mPredefinedType = IfcPumpTypeEnum.NOTDEFINED;// OPTIONAL : IfcPumpTypeEnum;
public IfcPumpTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcPumpTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcPump() : base() { }
internal IfcPump(DatabaseIfc db, IfcPump p, DuplicateOptions options) : base(db,p, options) { mPredefinedType = p.mPredefinedType; }
internal IfcPump(DatabaseIfc db, IfcPump p, DuplicateOptions options) : base(db,p, options) { PredefinedType = p.PredefinedType; }
public IfcPump(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape representation, IfcDistributionSystem system) : base(host, placement, representation, system) { }
}
[Serializable]
public partial class IfcPumpType : IfcFlowMovingDeviceType
{
internal IfcPumpTypeEnum mPredefinedType = IfcPumpTypeEnum.NOTDEFINED;// : IfcPumpTypeEnum;
public IfcPumpTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcPumpTypeEnum mPredefinedType = IfcPumpTypeEnum.NOTDEFINED;// : IfcPumpTypeEnum;
public IfcPumpTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcPumpTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcPumpType() : base() { }
internal IfcPumpType(DatabaseIfc db, IfcPumpType t, DuplicateOptions options) : base(db, t, options) { mPredefinedType = t.mPredefinedType; }
public IfcPumpType(DatabaseIfc m, string name, IfcPumpTypeEnum type) : base(m) { Name = name; mPredefinedType = type; }
internal IfcPumpType(DatabaseIfc db, IfcPumpType t, DuplicateOptions options) : base(db, t, options) { PredefinedType = t.PredefinedType; }
public IfcPumpType(DatabaseIfc db, string name, IfcPumpTypeEnum type) : base(db) { Name = name; PredefinedType = type; }
}
}

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Разница между файлами не показана из-за своего большого размера Загрузить разницу

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

@ -62,18 +62,27 @@ namespace GeometryGym.Ifc
internal string mIdentifier = "";// : OPTIONAL IfcIdentifier;
internal string mName = "";// : OPTIONAL IfcLabel;
internal string mDescription = "";// : OPTIONAL IfcText;
internal int mUnit;// : OPTIONAL IfcUnit;
private int mReferencePath;// : OPTIONAL IfcReference;
internal IfcUnit mUnit;// : OPTIONAL IfcUnit;
private IfcReference mReferencePath;// : OPTIONAL IfcReference;
public string Identifier { get { return mIdentifier; } set { mIdentifier = value; } }
public string Name { get { return mName; } set { mName = value; } }
public string Description { get { return mDescription; } set { mDescription = value; } }
public IfcUnit Unit { get { return mDatabase[mUnit] as IfcUnit; } set { mUnit = (value == null ? 0 : value.Index); } }
public IfcReference ReferencePath { get { return mDatabase[mReferencePath] as IfcReference; } set { mReferencePath = (value == null ? 0 : value.mIndex); } }
public IfcUnit Unit { get { return mUnit; } set { mUnit = value; } }
public IfcReference ReferencePath { get { return mReferencePath; } set { mReferencePath = value; } }
internal IfcTableColumn() : base() { }
public IfcTableColumn(DatabaseIfc db) : base(db) { }
internal IfcTableColumn(DatabaseIfc db, IfcTableColumn c) : base(db, c) { mIdentifier = c.mIdentifier; mName = c.mName; mDescription = c.mDescription; if (c.mUnit > 0) Unit = db.Factory.Duplicate(c.mDatabase[c.mUnit]) as IfcUnit; if (c.mReferencePath > 0) ReferencePath = db.Factory.Duplicate(c.ReferencePath) as IfcReference; }
internal IfcTableColumn(DatabaseIfc db, IfcTableColumn c) : base(db, c)
{
mIdentifier = c.mIdentifier;
mName = c.mName;
mDescription = c.mDescription;
if (c.mUnit != null)
Unit = db.Factory.Duplicate<IfcUnit>(c.mUnit);
if (c.mReferencePath != null)
ReferencePath = db.Factory.Duplicate(c.ReferencePath);
}
}
[Serializable]
public partial class IfcTableRow : BaseClassIfc
@ -96,22 +105,22 @@ namespace GeometryGym.Ifc
[Serializable]
public partial class IfcTank : IfcFlowStorageDevice //IFC4
{
internal IfcTankTypeEnum mPredefinedType = IfcTankTypeEnum.NOTDEFINED;// OPTIONAL : IfcTankTypeEnum;
public IfcTankTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcTankTypeEnum mPredefinedType = IfcTankTypeEnum.NOTDEFINED;// OPTIONAL : IfcTankTypeEnum;
public IfcTankTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcTankTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcTank() : base() { }
internal IfcTank(DatabaseIfc db, IfcTank t, DuplicateOptions options) : base(db, t, options) { mPredefinedType = t.mPredefinedType; }
internal IfcTank(DatabaseIfc db, IfcTank t, DuplicateOptions options) : base(db, t, options) { PredefinedType = t.PredefinedType; }
public IfcTank(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape representation, IfcDistributionSystem system) : base(host, placement, representation, system) { }
}
[Serializable]
public partial class IfcTankType : IfcFlowStorageDeviceType
{
internal IfcTankTypeEnum mPredefinedType = IfcTankTypeEnum.NOTDEFINED;// : IfcDuctFittingTypeEnum;
public IfcTankTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcTankTypeEnum mPredefinedType = IfcTankTypeEnum.NOTDEFINED;// : IfcDuctFittingTypeEnum;
public IfcTankTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcTankTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcTankType() : base() { }
internal IfcTankType(DatabaseIfc db, IfcTankType t, DuplicateOptions options) : base(db, t, options) { mPredefinedType = t.mPredefinedType; }
public IfcTankType(DatabaseIfc db, string name, IfcTankTypeEnum t) : base(db) { Name = name; mPredefinedType = t; }
internal IfcTankType(DatabaseIfc db, IfcTankType t, DuplicateOptions options) : base(db, t, options) { PredefinedType = t.PredefinedType; }
public IfcTankType(DatabaseIfc db, string name, IfcTankTypeEnum t) : base(db) { Name = name; PredefinedType = t; }
}
[Serializable]
public partial class IfcTask : IfcProcess //SUPERTYPE OF (ONEOF(IfcMove,IfcOrderAction) both DEPRECATED IFC4)
@ -122,7 +131,7 @@ namespace GeometryGym.Ifc
internal bool mIsMilestone = false;// : BOOLEAN
internal int mPriority = int.MinValue;// : OPTIONAL INTEGER IFC4
internal IfcTaskTime mTaskTime = null;// : OPTIONAL IfcTaskTime; IFC4
internal IfcTaskTypeEnum mPredefinedType = IfcTaskTypeEnum.NOTDEFINED;// : OPTIONAL IfcTaskTypeEnum IFC4
private IfcTaskTypeEnum mPredefinedType = IfcTaskTypeEnum.NOTDEFINED;// : OPTIONAL IfcTaskTypeEnum IFC4
//INVERSE
internal SET<IfcRelAssignsTasks> mOwningControls = new SET<IfcRelAssignsTasks>(); //gg
@ -131,7 +140,7 @@ namespace GeometryGym.Ifc
public bool IsMilestone { get { return mIsMilestone; } set { mIsMilestone = value; } }
public int Priority { get { return mPriority; } set { mPriority = value; } }
public IfcTaskTime TaskTime { get { return mTaskTime; } set { mTaskTime = value; } }
public IfcTaskTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
public IfcTaskTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcTaskTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcTask() : base() { }
internal IfcTask(DatabaseIfc db, IfcTask t, DuplicateOptions options) : base(db, t, options)
@ -142,7 +151,7 @@ namespace GeometryGym.Ifc
mPriority = t.mPriority;
if (t.mTaskTime != null)
TaskTime = db.Factory.Duplicate(t.TaskTime) as IfcTaskTime;
mPredefinedType = t.mPredefinedType;
PredefinedType = t.PredefinedType;
}
public IfcTask(DatabaseIfc db) : base(db) { }
public IfcTask(IfcTask task) : base(task)
@ -152,7 +161,7 @@ namespace GeometryGym.Ifc
mIsMilestone = task.mIsMilestone;
mPriority = task.mPriority;
mTaskTime = task.mTaskTime;
mPredefinedType = task.mPredefinedType;
PredefinedType = task.PredefinedType;
}
public Tuple<DateTime, DateTime> computeScheduleStartFinish()
@ -235,15 +244,15 @@ namespace GeometryGym.Ifc
[Serializable]
public partial class IfcTaskType : IfcTypeProcess //IFC4
{
internal IfcTaskTypeEnum mPredefinedType = IfcTaskTypeEnum.NOTDEFINED;// : IfcTaskTypeEnum;
private IfcTaskTypeEnum mPredefinedType = IfcTaskTypeEnum.NOTDEFINED;// : IfcTaskTypeEnum;
private string mWorkMethod = "";// : OPTIONAL IfcLabel;
public IfcTaskTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
public IfcTaskTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcTaskTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
public string WorkMethod { get { return mWorkMethod; } set { mWorkMethod = value; } }
internal IfcTaskType() : base() { }
internal IfcTaskType(DatabaseIfc db, IfcTaskType t, DuplicateOptions options) : base(db, t, options) { mPredefinedType = t.mPredefinedType; mWorkMethod = t.mWorkMethod; }
public IfcTaskType(DatabaseIfc m, string name, IfcTaskTypeEnum t) : base(m) { Name = name; mPredefinedType = t; }
internal IfcTaskType(DatabaseIfc db, IfcTaskType t, DuplicateOptions options) : base(db, t, options) { PredefinedType = t.PredefinedType; mWorkMethod = t.mWorkMethod; }
public IfcTaskType(DatabaseIfc db, string name, IfcTaskTypeEnum t) : base(db) { Name = name; PredefinedType = t; }
}
[Serializable]
public partial class IfcTelecomAddress : IfcAddress
@ -269,7 +278,7 @@ namespace GeometryGym.Ifc
[Serializable]
public partial class IfcTendon : IfcReinforcingElement
{
internal IfcTendonTypeEnum mPredefinedType = IfcTendonTypeEnum.NOTDEFINED;// : IfcTendonTypeEnum;//
private IfcTendonTypeEnum mPredefinedType = IfcTendonTypeEnum.NOTDEFINED;// : IfcTendonTypeEnum;//
internal double mNominalDiameter;// : IfcPositiveLengthMeasure;
internal double mCrossSectionArea;// : IfcAreaMeasure;
internal double mTensionForce;// : OPTIONAL IfcForceMeasure;
@ -277,11 +286,11 @@ namespace GeometryGym.Ifc
internal double mFrictionCoefficient;// //: OPTIONAL IfcNormalisedRatioMeasure;
internal double mAnchorageSlip;// : OPTIONAL IfcPositiveLengthMeasure;
internal double mMinCurvatureRadius;// : OPTIONAL IfcPositiveLengthMeasure;
public IfcTendonTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
public IfcTendonTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcTendonTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcTendon() : base() { }
internal IfcTendon(DatabaseIfc db, IfcTendon t, DuplicateOptions options) : base(db, t, options)
{
mPredefinedType = t.mPredefinedType;
PredefinedType = t.PredefinedType;
mNominalDiameter = t.mNominalDiameter;
mCrossSectionArea = t.mCrossSectionArea;
mTensionForce = t.mTensionForce;
@ -301,18 +310,18 @@ namespace GeometryGym.Ifc
[Serializable]
public partial class IfcTendonAnchor : IfcReinforcingElement
{
internal IfcTendonAnchorTypeEnum mPredefinedType = IfcTendonAnchorTypeEnum.NOTDEFINED;// : OPTIONAL IfcTendonAnchorTypeEnum;
public IfcTendonAnchorTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcTendonAnchorTypeEnum mPredefinedType = IfcTendonAnchorTypeEnum.NOTDEFINED;// : OPTIONAL IfcTendonAnchorTypeEnum;
public IfcTendonAnchorTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcTendonAnchorTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcTendonAnchor() : base() { }
internal IfcTendonAnchor(DatabaseIfc db, IfcTendonAnchor a, DuplicateOptions options) : base(db, a, options) { mPredefinedType = a.mPredefinedType; }
internal IfcTendonAnchor(DatabaseIfc db, IfcTendonAnchor a, DuplicateOptions options) : base(db, a, options) { PredefinedType = a.PredefinedType; }
public IfcTendonAnchor(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape representation) : base(host, placement, representation) { }
}
[Serializable]
public partial class IfcTendonAnchorType : IfcReinforcingElementType
{
private IfcTendonAnchorTypeEnum mPredefinedType = IfcTendonAnchorTypeEnum.NOTDEFINED; //: IfcTendonAnchorTypeEnum;
public IfcTendonAnchorTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
public IfcTendonAnchorTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcTendonAnchorTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
public IfcTendonAnchorType() : base() { }
public IfcTendonAnchorType(DatabaseIfc db, string name, IfcTendonAnchorTypeEnum predefinedType)
@ -322,7 +331,7 @@ namespace GeometryGym.Ifc
public partial class IfcTendonConduit : IfcReinforcingElement
{
private IfcTendonConduitTypeEnum mPredefinedType = IfcTendonConduitTypeEnum.NOTDEFINED; //: IfcTendonConduitTypeEnum;
public IfcTendonConduitTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
public IfcTendonConduitTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcTendonConduitTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
public IfcTendonConduit() : base() { }
public IfcTendonConduit(DatabaseIfc db, IfcTendonConduitTypeEnum predefinedType)
@ -333,7 +342,7 @@ namespace GeometryGym.Ifc
public partial class IfcTendonConduitType : IfcReinforcingElementType
{
private IfcTendonConduitTypeEnum mPredefinedType = IfcTendonConduitTypeEnum.NOTDEFINED; //: IfcTendonConduitTypeEnum;
public IfcTendonConduitTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
public IfcTendonConduitTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcTendonConduitTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
public IfcTendonConduitType() : base() { }
public IfcTendonConduitType(DatabaseIfc db, string name, IfcTendonConduitTypeEnum predefinedType)
@ -342,32 +351,33 @@ namespace GeometryGym.Ifc
[Serializable]
public partial class IfcTendonType : IfcReinforcingElementType //IFC4
{
internal IfcTendonTypeEnum mPredefinedType = IfcTendonTypeEnum.NOTDEFINED;// : IfcTendonType; //IFC4
private IfcTendonTypeEnum mPredefinedType = IfcTendonTypeEnum.NOTDEFINED;// : IfcTendonType; //IFC4
private double mNominalDiameter;// : IfcPositiveLengthMeasure; IFC4 OPTIONAL
internal double mCrossSectionArea;// : IfcAreaMeasure; IFC4 OPTIONAL
internal double mSheathDiameter;// : OPTIONAL IfcPositiveLengthMeasure;
public IfcTendonTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
public IfcTendonTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcTendonTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
public double NominalDiameter { get { return mNominalDiameter; } set { mNominalDiameter = value; } }
internal IfcTendonType() : base() { }
internal IfcTendonType(DatabaseIfc db, IfcTendonType t, DuplicateOptions options) : base(db, t, options)
{
mPredefinedType = t.mPredefinedType;
PredefinedType = t.PredefinedType;
mNominalDiameter = t.mNominalDiameter;
mCrossSectionArea = t.mCrossSectionArea;
mSheathDiameter = t.mSheathDiameter;
}
public IfcTendonType(DatabaseIfc db, string name, IfcTendonTypeEnum type)
: base(db) { Name = name; mPredefinedType = type; }
: base(db) { Name = name; PredefinedType = type; }
}
[Obsolete("DEPRECATED IFC4", false)]
[Serializable]
public partial class IfcTerminatorSymbol : IfcAnnotationSymbolOccurrence // DEPRECATED IFC4
{
internal int mAnnotatedCurve;// : IfcAnnotationCurveOccurrence;
internal IfcAnnotationCurveOccurrence mAnnotatedCurve;// : IfcAnnotationCurveOccurrence;
internal IfcTerminatorSymbol() : base() { }
//internal IfcTerminatorSymbol(IfcTerminatorSymbol i) : base(i) { mAnnotatedCurve = i.mAnnotatedCurve; }
internal IfcTerminatorSymbol(IfcAnnotationCurveOccurrence curve) : base(curve.Database) { mAnnotatedCurve = curve; }
internal IfcTerminatorSymbol(DatabaseIfc db, IfcTerminatorSymbol s, DuplicateOptions options) : base(db, s, options) { mAnnotatedCurve = db.Factory.Duplicate(s.mAnnotatedCurve); }
}
[Serializable]
public abstract partial class IfcTessellatedFaceSet : IfcTessellatedItem, IfcBooleanOperand //ABSTRACT SUPERTYPE OF(IfcTriangulatedFaceSet, IfcPolygonalFaceSet )
@ -400,36 +410,46 @@ namespace GeometryGym.Ifc
public partial class IfcTextLiteral : IfcGeometricRepresentationItem //SUPERTYPE OF (IfcTextLiteralWithExtent)
{
internal string mLiteral = "";// : IfcPresentableText;
internal int mPlacement;// : IfcAxis2Placement;
internal IfcAxis2Placement mPlacement;// : IfcAxis2Placement;
internal IfcTextPath mPath;// : IfcTextPath;
public string Literal { get { return ParserIfc.Decode(mLiteral); } set { mLiteral = ParserIfc.Encode(value); } }
public IfcAxis2Placement Placement { get { return mDatabase[mPlacement] as IfcAxis2Placement; } }
public IfcAxis2Placement Placement { get { return mPlacement; } }
public IfcTextPath Path { get { return mPath; } set { mPath = value; } }
internal IfcTextLiteral() : base() { }
internal IfcTextLiteral(DatabaseIfc db, IfcTextLiteral l, DuplicateOptions options) : base(db, l, options) { mLiteral = l.mLiteral; mPlacement = db.Factory.Duplicate(l.mDatabase[l.mPlacement]).mIndex; mPath = l.mPath; }
internal IfcTextLiteral(DatabaseIfc db, IfcTextLiteral l, DuplicateOptions options) : base(db, l, options)
{
mLiteral = l.mLiteral;
mPlacement = db.Factory.Duplicate<IfcAxis2Placement>(l.mPlacement);
mPath = l.mPath;
}
}
[Serializable]
public partial class IfcTextLiteralWithExtent : IfcTextLiteral
{
internal int mExtent;// : IfcPlanarExtent;
internal string mBoxAlignment;// : IfcBoxAlignment;
internal IfcPlanarExtent mExtent;// : IfcPlanarExtent;
internal string mBoxAlignment = "";// : IfcBoxAlignment;
public IfcPlanarExtent Extent { get { return mDatabase[mExtent] as IfcPlanarExtent; } }
public IfcPlanarExtent Extent { get { return mExtent; } set { mExtent = value; } }
internal IfcTextLiteralWithExtent() : base() { }
//internal IfcTextLiteralWithExtent(IfcTextLiteralWithExtent o) : base(o) { mExtent = o.mExtent; mBoxAlignment = o.mBoxAlignment; }
}
[Serializable]
public partial class IfcTextStyle : IfcPresentationStyle, IfcPresentationStyleSelect
{
internal int mTextCharacterAppearance;// : OPTIONAL IfcCharacterStyleSelect;
internal int mTextStyle;// : OPTIONAL IfcTextStyleSelect;
internal int mTextFontStyle;// : IfcTextFontSelect;
internal IfcCharacterStyleSelect mTextCharacterAppearance;// : OPTIONAL IfcCharacterStyleSelect;
internal IfcTextStyleSelect mTextStyle;// : OPTIONAL IfcTextStyleSelect;
internal IfcTextFontSelect mTextFontStyle;// : IfcTextFontSelect;
internal bool mModelOrDraughting = true;// : OPTIONAL BOOLEAN; IFC4CHANGE
internal IfcTextStyle() : base() { }
// internal IfcTextStyle(IfcTextStyle v) : base(v) { mTextCharacterAppearance = v.mTextCharacterAppearance; mTextStyle = v.mTextStyle; mTextFontStyle = v.mTextFontStyle; mModelOrDraughting = v.mModelOrDraughting; }
internal IfcTextStyle(DatabaseIfc db, IfcTextStyle v) : base(db, v)
{
mTextCharacterAppearance = db.Factory.Duplicate<IfcCharacterStyleSelect>(v.mTextCharacterAppearance);
mTextStyle = db.Factory.Duplicate<IfcTextStyleSelect>(v.mTextStyle);
mTextFontStyle = db.Factory.Duplicate<IfcTextFontSelect>(v.mTextFontStyle);
mModelOrDraughting = v.mModelOrDraughting;
}
}
[Serializable]
public partial class IfcTextStyleFontModel : IfcPreDefinedTextFont
@ -452,13 +472,14 @@ namespace GeometryGym.Ifc
[Serializable]
public partial class IfcTextStyleForDefinedFont : IfcPresentationItem
{
internal int mColour;// : IfcColour;
internal int mBackgroundColour;// : OPTIONAL IfcColour;
internal IfcColour mColour;// : IfcColour;
internal IfcColour mBackgroundColour;// : OPTIONAL IfcColour;
internal IfcTextStyleForDefinedFont() : base() { }
// internal IfcTextStyleForDefinedFont(IfcTextStyleForDefinedFont o) : base() { mColour = o.mColour; mBackgroundColour = o.mBackgroundColour; }
}
public interface IfcTextStyleSelect : IBaseClassIfc { } // SELECT(IfcTextStyleWithBoxCharacteristics, IfcTextStyleTextModel);
[Serializable]
public partial class IfcTextStyleTextModel : IfcPresentationItem
public partial class IfcTextStyleTextModel : IfcPresentationItem, IfcTextStyleSelect
{
private IfcSizeSelect mTextIndent = null; //: OPTIONAL IfcSizeSelect;
private string mTextAlign = ""; //: OPTIONAL IfcTextAlignment;
@ -479,8 +500,26 @@ namespace GeometryGym.Ifc
public IfcTextStyleTextModel() : base() { }
public IfcTextStyleTextModel(DatabaseIfc db) : base(db) { }
}
//[Obsolete("DEPRECATED IFC4", false)]
//ENTITY IfcTextStyleWithBoxCharacteristics; // DEPRECATED IFC4
[Obsolete("DEPRECATED IFC4", false)]
[Serializable]
public partial class IfcTextStyleWithBoxCharacteristics : BaseClassIfc, IfcTextStyleSelect // DEPRECATED IFC4
{
internal double mBoxHeight = double.NaN;// : OPTIONAL IfcPositiveLengthMeasure;
internal double mBoxWidth = double.NaN;// : OPTIONAL IfcPositiveLengthMeasure;
internal double mBoxSlantAngle = double.NaN;// : OPTIONAL IfcPlaneAngleMeasure;
internal double mBoxRotateAngle = double.NaN;// : OPTIONAL IfcPlaneAngleMeasure;
internal IfcSizeSelect mCharacterSpacing = null;// : OPTIONAL IfcSizeSelect
internal IfcTextStyleWithBoxCharacteristics() : base() { }
internal IfcTextStyleWithBoxCharacteristics(DatabaseIfc db, IfcTextStyleWithBoxCharacteristics p, DuplicateOptions options)
: base(db)
{
mBoxHeight = p.mBoxHeight;
mBoxWidth = p.mBoxWidth;
mBoxSlantAngle = p.mBoxSlantAngle;
mBoxRotateAngle = p.mBoxRotateAngle;
mCharacterSpacing = p.mCharacterSpacing;
}
}
[Serializable]
public abstract partial class IfcTextureCoordinate : IfcPresentationItem //ABSTRACT SUPERTYPE OF(ONEOF(IfcIndexedTextureMap, IfcTextureCoordinateGenerator, IfcTextureMap))
{
@ -496,10 +535,10 @@ namespace GeometryGym.Ifc
public partial class IfcTextureCoordinateGenerator : IfcTextureCoordinate
{
private string mMode = ""; //: IfcLabel;
private LIST<double> mParameter = new LIST<double>(); //: OPTIONAL LIST[1:?] OF IfcReal;
private List<double> mParameter = new List<double>(); //: OPTIONAL LIST[1:?] OF IfcReal;
public string Mode { get { return mMode; } set { mMode = value; } }
public LIST<double> Parameter { get { return mParameter; } set { mParameter = value; } }
public List<double> Parameter { get { return mParameter; } }
public IfcTextureCoordinateGenerator() : base() { }
public IfcTextureCoordinateGenerator(IEnumerable<IfcSurfaceTexture> maps, string mode)
@ -612,23 +651,23 @@ namespace GeometryGym.Ifc
[Serializable]
public partial class IfcTimePeriod : BaseClassIfc // IFC4
{
internal string mStart; //: IfcTime;
internal string mFinish; //: IfcTime;
internal DateTime mStart; //: IfcTime;
internal DateTime mFinish; //: IfcTime;
internal IfcTimePeriod() : base() { }
internal IfcTimePeriod(IfcTimePeriod m) : base() { mStart = m.mStart; mFinish = m.mFinish; }
public IfcTimePeriod(DatabaseIfc m, DateTime start, DateTime finish) : base(m) { mStart = IfcTime.convert(start); mFinish = IfcTime.convert(finish); }
public IfcTimePeriod(DatabaseIfc db, DateTime start, DateTime finish) : base(db) { mStart = start; mFinish = finish; }
}
[Serializable]
public abstract partial class IfcTimeSeries : BaseClassIfc, IfcMetricValueSelect, IfcObjectReferenceSelect, IfcResourceObjectSelect, NamedObjectIfc
{ // ABSTRACT SUPERTYPE OF (ONEOF(IfcIrregularTimeSeries,IfcRegularTimeSeries));
internal string mName = "";// : OPTIONAL IfcLabel;
internal string mName = "";// : IfcLabel;
internal string mDescription = "";// : OPTIONAL IfcText;
internal int mStartTime;// : IfcDateTimeSelect;
internal int mEndTime;// : IfcDateTimeSelect;
internal IfcDateTimeSelect mStartTime;// : IfcDateTimeSelect;
internal IfcDateTimeSelect mEndTime;// : IfcDateTimeSelect;
internal IfcTimeSeriesDataTypeEnum mTimeSeriesDataType = IfcTimeSeriesDataTypeEnum.NOTDEFINED;// : IfcTimeSeriesDataTypeEnum;
internal IfcDataOriginEnum mDataOrigin = IfcDataOriginEnum.NOTDEFINED;// : IfcDataOriginEnum;
internal string mUserDefinedDataOrigin = "";// : OPTIONAL IfcLabel;
internal int mUnit;// : OPTIONAL IfcUnit;
internal IfcUnit mUnit;// : OPTIONAL IfcUnit;
//INVERSE
private SET<IfcExternalReferenceRelationship> mHasExternalReference = new SET<IfcExternalReferenceRelationship>(); //IFC4 SET [0:?] OF IfcExternalReferenceRelationship FOR RelatedResourceObjects;
internal SET<IfcResourceConstraintRelationship> mHasConstraintRelationships = new SET<IfcResourceConstraintRelationship>(); //gg
@ -638,26 +677,24 @@ namespace GeometryGym.Ifc
public SET<IfcResourceConstraintRelationship> HasConstraintRelationships { get { return mHasConstraintRelationships; } }
protected IfcTimeSeries() : base() { }
//protected IfcTimeSeries(DatabaseIfc db, IfcTimeSeries i)
// : base(db,i)
//{
// mName = i.mName;
// mDescription = i.mDescription;
// mStartTime = i.mStartTime;
// mEndTime = i.mEndTime;
// mTimeSeriesDataType = i.mTimeSeriesDataType;
// mDataOrigin = i.mDataOrigin;
// mUserDefinedDataOrigin = i.mUserDefinedDataOrigin;
// mUnit = i.mUnit;
//}
protected IfcTimeSeries(DatabaseIfc db, IfcTimeSeries s) : base(db,s)
{
mName = s.mName;
mDescription = s.mDescription;
mStartTime = db.Factory.Duplicate<IfcDateTimeSelect>(s.mStartTime);
mEndTime = db.Factory.Duplicate<IfcDateTimeSelect>(s.mEndTime);
mTimeSeriesDataType = s.mTimeSeriesDataType;
mDataOrigin = s.mDataOrigin;
mUserDefinedDataOrigin = s.mUserDefinedDataOrigin;
mUnit = db.Factory.Duplicate<IfcUnit>(s.mUnit);
}
protected IfcTimeSeries(DatabaseIfc db) : base(db) { }
protected IfcTimeSeries(DatabaseIfc db, string name, DateTime startTime, DateTime endTime, IfcTimeSeriesDataTypeEnum timeSeriesDataType, IfcDataOriginEnum dataOrigin)
: base(db)
protected IfcTimeSeries(string name, IfcDateTimeSelect startTime, IfcDateTimeSelect endTime, IfcTimeSeriesDataTypeEnum timeSeriesDataType, IfcDataOriginEnum dataOrigin)
: base(startTime.Database)
{
Name = name;
//mStartTime = startTime;
//mEndTime = endTime;
#warning TODO
mStartTime = startTime;
mEndTime = endTime;
mTimeSeriesDataType = timeSeriesDataType;
mDataOrigin = dataOrigin;
}
@ -749,22 +786,22 @@ namespace GeometryGym.Ifc
internal IfcToroidalSurface(DatabaseIfc db, IfcToroidalSurface s, DuplicateOptions options) : base(db, s, options) { mMajorRadius = s.mMajorRadius; mMinorRadius = s.mMinorRadius; }
public IfcToroidalSurface(IfcAxis2Placement3D placement, double majorRadius, double minorRadius) : base(placement) { MajorRadius = majorRadius; MinorRadius = minorRadius; }
}
[Serializable]
[Serializable, VersionAdded(ReleaseVersion.IFC4X3)]
public partial class IfcTrackElement : IfcBuiltElement
{
private IfcTrackElementTypeEnum mPredefinedType = IfcTrackElementTypeEnum.NOTDEFINED; //: OPTIONAL IfcTrackElementTypeEnum;
public IfcTrackElementTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
public IfcTrackElementTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcTrackElementTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
public IfcTrackElement() : base() { }
public IfcTrackElement(DatabaseIfc db) : base(db) { }
public IfcTrackElement(DatabaseIfc db, IfcTrackElement trackElement, DuplicateOptions options) : base(db, trackElement, options) { PredefinedType = trackElement.PredefinedType; }
public IfcTrackElement(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape representation) : base(host, placement, representation) { }
}
[Serializable]
[Serializable, VersionAdded(ReleaseVersion.IFC4X3)]
public partial class IfcTrackElementType : IfcBuiltElementType
{
private IfcTrackElementTypeEnum mPredefinedType = IfcTrackElementTypeEnum.NOTDEFINED; //: IfcTrackElementTypeEnum;
public IfcTrackElementTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
public IfcTrackElementTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcTrackElementTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
public IfcTrackElementType() : base() { }
public IfcTrackElementType(DatabaseIfc db, IfcTrackElementType trackElementType, DuplicateOptions options) : base(db, trackElementType, options) { PredefinedType = trackElementType.PredefinedType; }
@ -774,22 +811,22 @@ namespace GeometryGym.Ifc
[Serializable]
public partial class IfcTransformer : IfcEnergyConversionDevice //IFC4
{
internal IfcTransformerTypeEnum mPredefinedType = IfcTransformerTypeEnum.NOTDEFINED;// OPTIONAL : IfcTransformerTypeEnum;
public IfcTransformerTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcTransformerTypeEnum mPredefinedType = IfcTransformerTypeEnum.NOTDEFINED;// OPTIONAL : IfcTransformerTypeEnum;
public IfcTransformerTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcTransformerTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcTransformer() : base() { }
internal IfcTransformer(DatabaseIfc db, IfcTransformer t, DuplicateOptions options) : base(db, t, options) { mPredefinedType = t.mPredefinedType; }
internal IfcTransformer(DatabaseIfc db, IfcTransformer t, DuplicateOptions options) : base(db, t, options) { PredefinedType = t.PredefinedType; }
public IfcTransformer(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape representation, IfcDistributionSystem system) : base(host, placement, representation, system) { }
}
[Serializable]
public partial class IfcTransformerType : IfcEnergyConversionDeviceType
{
internal IfcTransformerTypeEnum mPredefinedType = IfcTransformerTypeEnum.NOTDEFINED;// : IfcTransformerEnum;
public IfcTransformerTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcTransformerTypeEnum mPredefinedType = IfcTransformerTypeEnum.NOTDEFINED;// : IfcTransformerEnum;
public IfcTransformerTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcTransformerTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcTransformerType() : base() { }
internal IfcTransformerType(DatabaseIfc db, IfcTransformerType t, DuplicateOptions options) : base(db, t, options) { mPredefinedType = t.mPredefinedType; }
public IfcTransformerType(DatabaseIfc m, string name, IfcTransformerTypeEnum type) : base(m) { Name = name; mPredefinedType = type; }
internal IfcTransformerType(DatabaseIfc db, IfcTransformerType t, DuplicateOptions options) : base(db, t, options) { PredefinedType = t.PredefinedType; }
public IfcTransformerType(DatabaseIfc db, string name, IfcTransformerTypeEnum type) : base(db) { Name = name; PredefinedType = type; }
}
[Obsolete("DEPRECATED IFC4X3", false)]
[Serializable]
@ -843,18 +880,17 @@ namespace GeometryGym.Ifc
public abstract partial class IfcTransportationDeviceType : IfcElementType //ABSTRACT SUPERTYPE OF (ONEOF (IfcTransportElementType , IfcVehicleType))
{
internal IfcTransportationDeviceType() : base() { }
internal IfcTransportationDeviceType(IfcTransportationDeviceType basis) : base(basis) { }
public IfcTransportationDeviceType(DatabaseIfc db) : base(db) { }
protected IfcTransportationDeviceType(DatabaseIfc db, IfcTransportationDeviceType t, DuplicateOptions options) : base(db, t, options) { }
}
[Serializable]
public partial class IfcTransportElement : IfcTransportationDevice
{
internal IfcTransportElementTypeEnum mPredefinedType = IfcTransportElementTypeEnum.NOTDEFINED;// : OPTIONAL IfcTransportElementTypeEnum;
private IfcTransportElementTypeEnum mPredefinedType = IfcTransportElementTypeEnum.NOTDEFINED;// : OPTIONAL IfcTransportElementTypeEnum;
internal double mCapacityByWeight = double.NaN;// : OPTIONAL IfcMassMeasure;
internal double mCapacityByNumber = double.NaN;// : OPTIONAL IfcCountMeasure;
public IfcTransportElementTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
public IfcTransportElementTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcTransportElementTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
//public double CapacityByWeight { get { return mCapacityByWeight; } set { mCapacityByWeight = value; } }
//public double CapacityByNumber { get { return CapacityByNumber; } set { mCapacityByNumber = value; } }
@ -865,12 +901,12 @@ namespace GeometryGym.Ifc
[Serializable]
public partial class IfcTransportElementType : IfcTransportationDeviceType
{
internal IfcTransportElementTypeEnum mPredefinedType = IfcTransportElementTypeEnum.NOTDEFINED;// IfcTransportElementTypeEnum;
public IfcTransportElementTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcTransportElementTypeEnum mPredefinedType = IfcTransportElementTypeEnum.NOTDEFINED;// IfcTransportElementTypeEnum;
public IfcTransportElementTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcTransportElementTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcTransportElementType() : base() { }
internal IfcTransportElementType(DatabaseIfc db, IfcTransportElementType t, DuplicateOptions options) : base(db, t, options) { mPredefinedType = t.mPredefinedType; }
public IfcTransportElementType(DatabaseIfc db, string name, IfcTransportElementTypeEnum type) : base(db) { Name = name; mPredefinedType = type; }
internal IfcTransportElementType(DatabaseIfc db, IfcTransportElementType t, DuplicateOptions options) : base(db, t, options) { PredefinedType = t.PredefinedType; }
public IfcTransportElementType(DatabaseIfc db, string name, IfcTransportElementTypeEnum type) : base(db) { Name = name; PredefinedType = type; }
}
[Serializable]
public partial class IfcTrapeziumProfileDef : IfcParameterizedProfileDef
@ -926,6 +962,8 @@ namespace GeometryGym.Ifc
[Serializable]
public partial class IfcTriangulatedIrregularNetwork : IfcTriangulatedFaceSet
{
public override string StepClassName { get { return (mDatabase != null && mDatabase.mRelease < ReleaseVersion.IFC4X1) ? "IfcTriangulatedFaceSet" : base.StepClassName; } }
internal List<int> mFlags = new List<int>(); // : LIST [1:?] OF IfcInteger;
public List<int> Flags { get { return mFlags; } }
@ -957,12 +995,12 @@ namespace GeometryGym.Ifc
internal IfcTrimmedCurve(DatabaseIfc db, IfcTrimmedCurve c, DuplicateOptions options) : base(db, c, options)
{
BasisCurve = db.Factory.Duplicate(c.BasisCurve) as IfcCurve;
mTrim1 = new IfcTrimmingSelect(c.mTrim1.mIfcParameterValue);
mTrim2 = new IfcTrimmingSelect(c.mTrim2.mIfcParameterValue);
if (c.mTrim1.mIfcCartesianPoint > 0)
mTrim1.mIfcCartesianPoint = db.Factory.Duplicate(c.mDatabase[c.mTrim1.mIfcCartesianPoint]).mIndex;
if (c.mTrim2.mIfcCartesianPoint > 0)
mTrim2.mIfcCartesianPoint = db.Factory.Duplicate(c.mDatabase[c.mTrim2.mIfcCartesianPoint]).mIndex;
mTrim1 = new IfcTrimmingSelect(c.mTrim1.ParameterValue);
mTrim2 = new IfcTrimmingSelect(c.mTrim2.ParameterValue);
if (c.mTrim1.CartesianPoint != null)
mTrim1.CartesianPoint = db.Factory.Duplicate(c.mTrim1.CartesianPoint);
if (c.mTrim2.CartesianPoint != null)
mTrim2.CartesianPoint = db.Factory.Duplicate(c.mTrim2.CartesianPoint);
mSenseAgreement = c.mSenseAgreement;
mMasterRepresentation = c.mMasterRepresentation;
}
@ -1033,16 +1071,16 @@ namespace GeometryGym.Ifc
public IfcTrimmingSelect() { }
public IfcTrimmingSelect(IfcCartesianPoint cp)
{
mIfcParameterValue = double.NaN;
mIfcCartesianPoint = (cp != null ? cp.mIndex : 0);
mParameterValue = double.NaN;
mCartesianPoint = cp;
}
public IfcTrimmingSelect(double param) { mIfcParameterValue = param; }
public IfcTrimmingSelect(double param, IfcCartesianPoint cp) : this(cp) { mIfcParameterValue = param; }
public IfcTrimmingSelect(double param) { mParameterValue = param; }
public IfcTrimmingSelect(double param, IfcCartesianPoint cp) : this(cp) { mParameterValue = param; }
internal double mIfcParameterValue = double.NaN;
public double IfcParameterValue { get { return mIfcParameterValue; } }
internal int mIfcCartesianPoint;
public int IfcCartesianPoint { get { return mIfcCartesianPoint; } }
internal double mParameterValue = double.NaN;
public double ParameterValue { get { return mParameterValue; } set { mParameterValue = value; } }
private IfcCartesianPoint mCartesianPoint = null;
public IfcCartesianPoint CartesianPoint { get { return mCartesianPoint; } set { mCartesianPoint = value; } }
}
[Serializable]
public partial class IfcTShapeProfileDef : IfcParameterizedProfileDef
@ -1087,29 +1125,29 @@ namespace GeometryGym.Ifc
[Serializable]
public partial class IfcTubeBundle : IfcEnergyConversionDevice //IFC4
{
internal IfcTubeBundleTypeEnum mPredefinedType = IfcTubeBundleTypeEnum.NOTDEFINED;// OPTIONAL : IfcTubeBundleTypeEnum;
public IfcTubeBundleTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcTubeBundleTypeEnum mPredefinedType = IfcTubeBundleTypeEnum.NOTDEFINED;// OPTIONAL : IfcTubeBundleTypeEnum;
public IfcTubeBundleTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcTubeBundleTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcTubeBundle() : base() { }
internal IfcTubeBundle(DatabaseIfc db, IfcTubeBundle b, DuplicateOptions options) : base(db, b, options) { mPredefinedType = b.mPredefinedType; }
internal IfcTubeBundle(DatabaseIfc db, IfcTubeBundle b, DuplicateOptions options) : base(db, b, options) { PredefinedType = b.PredefinedType; }
public IfcTubeBundle(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape representation, IfcDistributionSystem system) : base(host, placement, representation, system) { }
}
[Serializable]
public partial class IfcTubeBundleType : IfcEnergyConversionDeviceType
{
internal IfcTubeBundleTypeEnum mPredefinedType = IfcTubeBundleTypeEnum.NOTDEFINED;// : IfcTubeBundleEnum;
public IfcTubeBundleTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcTubeBundleTypeEnum mPredefinedType = IfcTubeBundleTypeEnum.NOTDEFINED;// : IfcTubeBundleEnum;
public IfcTubeBundleTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcTubeBundleTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcTubeBundleType() : base() { }
internal IfcTubeBundleType(DatabaseIfc db, IfcTubeBundleType t, DuplicateOptions options) : base(db, t, options) { mPredefinedType = t.mPredefinedType; }
public IfcTubeBundleType(DatabaseIfc m, string name, IfcTubeBundleTypeEnum t) : base(m) { Name = name; PredefinedType = t; }
internal IfcTubeBundleType(DatabaseIfc db, IfcTubeBundleType t, DuplicateOptions options) : base(db, t, options) { PredefinedType = t.PredefinedType; }
public IfcTubeBundleType(DatabaseIfc db, string name, IfcTubeBundleTypeEnum t) : base(db) { Name = name; PredefinedType = t; }
}
[Obsolete("DEPRECATED IFC4", false)]
[Serializable]
public partial class IfcTwoDirectionRepeatFactor : IfcOneDirectionRepeatFactor // DEPRECATED IFC4
{
internal int mSecondRepeatFactor;// : IfcVector
public IfcVector SecondRepeatFactor { get { return mDatabase[mSecondRepeatFactor] as IfcVector; } set { mSecondRepeatFactor = value.mIndex; } }
internal IfcVector mSecondRepeatFactor;// : IfcVector
public IfcVector SecondRepeatFactor { get { return mSecondRepeatFactor; } set { mSecondRepeatFactor = value; } }
internal IfcTwoDirectionRepeatFactor() : base() { }
internal IfcTwoDirectionRepeatFactor(DatabaseIfc db, IfcTwoDirectionRepeatFactor f, DuplicateOptions options) : base(db, f, options) { SecondRepeatFactor = db.Factory.Duplicate(f.SecondRepeatFactor) as IfcVector; }
@ -1133,7 +1171,6 @@ namespace GeometryGym.Ifc
public new string Name { get { return base.Name; } set { base.Name = string.IsNullOrEmpty( value) ? "NameNotAssigned" : value; } }
protected IfcTypeObject() : base() { Name = "NameNotAssigned"; }
protected IfcTypeObject(IfcTypeObject basis) : base(basis, false) { mApplicableOccurrence = basis.mApplicableOccurrence; mHasPropertySets = basis.mHasPropertySets; mTypes = basis.mTypes; }
protected IfcTypeObject(DatabaseIfc db, IfcTypeObject t, DuplicateOptions options) : base(db, t, options)
{
mApplicableOccurrence = t.mApplicableOccurrence;
@ -1395,40 +1432,6 @@ namespace GeometryGym.Ifc
db.WriteFile(filename);
}
internal void SetPredefinedType(string predefinedTypeConstant, string enumName)
{
IfcElementType elementType = this as IfcElementType;
Type type = GetType();
PropertyInfo pi = type.GetProperty("PredefinedType");
if (pi != null)
{
Type enumType = pi.PropertyType;
if (enumType != null)
{
FieldInfo fi = enumType.GetField(predefinedTypeConstant);
if (fi == null)
{
if (elementType != null)
elementType.ElementType = predefinedTypeConstant;
fi = enumType.GetField("USERDEFINED");
}
if (fi != null)
{
int i = (int)fi.GetValue(enumType);
object newEnumValue = Enum.ToObject(enumType, i);
pi.SetValue(this, newEnumValue);
}
else if (elementType != null)
elementType.ElementType = predefinedTypeConstant;
}
else if (elementType != null)
elementType.ElementType = predefinedTypeConstant;
}
else if (elementType != null)
elementType.ElementType = predefinedTypeConstant;
}
}
[Serializable]
public abstract partial class IfcTypeProcess : IfcTypeObject, IfcProcessSelect //ABSTRACT SUPERTYPE OF(ONEOF(IfcEventType, IfcProcedureType, IfcTaskType))
@ -1462,11 +1465,6 @@ namespace GeometryGym.Ifc
public SET<IfcRelAssignsToProduct> ReferencedBy { get { return mReferencedBy; } }
protected IfcTypeProduct() : base() { }
protected IfcTypeProduct(IfcTypeProduct basis) : base(basis)
{
mRepresentationMaps = basis.mRepresentationMaps;
mTag = basis.mTag;
}
protected IfcTypeProduct(DatabaseIfc db, IfcTypeProduct t, DuplicateOptions options) : base(db, t, options)
{
if(options.DuplicateRepresentation)
@ -1523,35 +1521,38 @@ namespace GeometryGym.Ifc
}
}
internal IfcElement genMappedItemElement(IfcProduct host, IfcAxis2Placement3D relativePlacement)
internal IfcProduct GenerateMappedProduct(IfcProduct host, IfcAxis2Placement3D relativePlacement)
{
DatabaseIfc db = host.Database;
string typename = this.GetType().Name;
typename = typename.Substring(0, typename.Length - 4);
IfcShapeRepresentation sr = new IfcShapeRepresentation(new IfcMappedItem(RepresentationMaps[0], db.Factory.XYPlaneTransformation));
IfcProductDefinitionShape pds = new IfcProductDefinitionShape(sr);
IfcElement element = db.Factory.ConstructElement(typename, host, new IfcLocalPlacement(host.ObjectPlacement, relativePlacement), pds);
element.setRelatingType(this);
foreach (IfcRelNests nests in IsNestedBy)
IfcProduct product = db.Factory.ConstructProduct(typename, host, new IfcLocalPlacement(host.ObjectPlacement, relativePlacement), pds);
product.setRelatingType(this);
if (product is IfcElement element)
{
foreach (IfcObjectDefinition od in nests.RelatedObjects)
foreach (IfcRelNests nests in IsNestedBy)
{
IfcDistributionPort port = od as IfcDistributionPort;
if (port != null)
foreach (IfcObjectDefinition od in nests.RelatedObjects)
{
IfcDistributionPort newPort = new IfcDistributionPort(element) { FlowDirection = port.FlowDirection, PredefinedType = port.PredefinedType, SystemType = port.SystemType };
newPort.ObjectPlacement = new IfcLocalPlacement(element.ObjectPlacement, (port.ObjectPlacement as IfcLocalPlacement).RelativePlacement);
foreach (IfcRelDefinesByProperties rdp in port.mIsDefinedBy)
rdp.RelatedObjects.Add(newPort);
IfcDistributionPort port = od as IfcDistributionPort;
if (port != null)
{
IfcDistributionPort newPort = new IfcDistributionPort(element) { FlowDirection = port.FlowDirection, PredefinedType = port.PredefinedType, SystemType = port.SystemType };
newPort.ObjectPlacement = new IfcLocalPlacement(element.ObjectPlacement, (port.ObjectPlacement as IfcLocalPlacement).RelativePlacement);
foreach (IfcRelDefinesByProperties rdp in port.mIsDefinedBy)
rdp.RelatedObjects.Add(newPort);
}
}
}
}
foreach(IfcPropertySet pset in HasPropertySets.OfType<IfcPropertySet>())
{
if (pset.IsInstancePropertySet())
pset.RelateObjectDefinition(element);
pset.RelateObjectDefinition(product);
}
return element;
return product;
}
public static IfcTypeProduct ConstructType(DatabaseIfc db, string className, string name)
@ -1566,12 +1567,21 @@ namespace GeometryGym.Ifc
definedType = fields[1];
}
}
if (!str.ToLower().EndsWith("Type"))
str = str + "Type";
if (!str.ToLower().EndsWith("type"))
str = str + "type";
if (db.Release < ReleaseVersion.IFC4X3)
{
if (string.Compare(str, "IfcBuiltElementType", true) == 0)
str = "IfcBuildingElementProxyType";
}
IfcTypeProduct result = null;
Type type = BaseClassIfc.GetType(str);
if (type != null)
{
VersionAddedAttribute versionAdded = type.GetCustomAttribute(typeof(VersionAddedAttribute)) as VersionAddedAttribute;
if (versionAdded != null && versionAdded.Release > db.Release)
type = typeof(IfcBuildingElementProxyType);
Type enumType = Type.GetType("GeometryGym.Ifc." + type.Name + "Enum");
ConstructorInfo ctor = type.GetConstructor(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic, null, new[] { typeof(DatabaseIfc), typeof(string) }, null);
if (ctor == null)
@ -1579,46 +1589,18 @@ namespace GeometryGym.Ifc
ctor = type.GetConstructor(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic, null, new[] { typeof(DatabaseIfc), typeof(string), enumType }, null);
if (ctor == null)
throw new Exception("XXX Unrecognized Ifc Constructor for " + className);
else
else
{
object predefined = Enum.Parse(enumType, "NOTDEFINED");
result = ctor.Invoke(new object[] { db, name,predefined }) as IfcTypeProduct;
result = ctor.Invoke(new object[] { db, name, predefined}) as IfcTypeProduct;
}
}
else
result = ctor.Invoke(new object[] { db, name }) as IfcTypeProduct;
if (result != null && !string.IsNullOrEmpty(definedType))
{
IfcElementType et = result as IfcElementType;
type = result.GetType();
PropertyInfo pi = type.GetProperty("PredefinedType");
if (pi != null)
{
if (enumType != null)
{
FieldInfo fi = enumType.GetField(definedType);
if (fi == null)
{
if (et != null)
{
et.ElementType = definedType;
fi = enumType.GetField("NOTDEFINED");
}
}
if (fi != null)
{
int i = (int)fi.GetValue(enumType);
object newEnumValue = Enum.ToObject(enumType, i);
pi.SetValue(result, newEnumValue, null);
}
else if (et != null)
et.ElementType = definedType;
}
else if (et != null)
et.ElementType = definedType;
}
result.SetPredefinedType(definedType);
}
}
return result;

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

@ -32,42 +32,42 @@ namespace GeometryGym.Ifc
[Serializable]
public partial class IfcUnitaryControlElement : IfcDistributionControlElement //IFC4
{
internal IfcUnitaryControlElementTypeEnum mPredefinedType = IfcUnitaryControlElementTypeEnum.NOTDEFINED;
public IfcUnitaryControlElementTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcUnitaryControlElementTypeEnum mPredefinedType = IfcUnitaryControlElementTypeEnum.NOTDEFINED;
public IfcUnitaryControlElementTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcUnitaryControlElementTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcUnitaryControlElement() : base() { }
internal IfcUnitaryControlElement(DatabaseIfc db, IfcUnitaryControlElement e, DuplicateOptions options) : base(db, e, options) { mPredefinedType = e.mPredefinedType; }
internal IfcUnitaryControlElement(DatabaseIfc db, IfcUnitaryControlElement e, DuplicateOptions options) : base(db, e, options) { PredefinedType = e.PredefinedType; }
public IfcUnitaryControlElement(IfcObjectDefinition host, IfcObjectPlacement p, IfcProductDefinitionShape r, IfcDistributionSystem system) : base(host,p,r, system) { }
}
[Serializable]
public partial class IfcUnitaryControlElementType : IfcDistributionControlElementType
{
internal IfcUnitaryControlElementTypeEnum mPredefinedType = IfcUnitaryControlElementTypeEnum.NOTDEFINED;// : IfcUnitaryControlElementTypeEnum;
public IfcUnitaryControlElementTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcUnitaryControlElementTypeEnum mPredefinedType = IfcUnitaryControlElementTypeEnum.NOTDEFINED;// : IfcUnitaryControlElementTypeEnum;
public IfcUnitaryControlElementTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcUnitaryControlElementTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcUnitaryControlElementType() : base() { }
internal IfcUnitaryControlElementType(DatabaseIfc db, IfcUnitaryControlElementType t, DuplicateOptions options) : base(db, t, options) { mPredefinedType = t.mPredefinedType; }
public IfcUnitaryControlElementType(DatabaseIfc db, string name, IfcUnitaryControlElementTypeEnum t) : base(db) { Name = name; mPredefinedType = t; }
internal IfcUnitaryControlElementType(DatabaseIfc db, IfcUnitaryControlElementType t, DuplicateOptions options) : base(db, t, options) { PredefinedType = t.PredefinedType; }
public IfcUnitaryControlElementType(DatabaseIfc db, string name, IfcUnitaryControlElementTypeEnum t) : base(db) { Name = name; PredefinedType = t; }
}
[Serializable]
public partial class IfcUnitaryEquipment : IfcEnergyConversionDevice //IFC4
{
internal IfcUnitaryEquipmentTypeEnum mPredefinedType = IfcUnitaryEquipmentTypeEnum.NOTDEFINED;// OPTIONAL : IfcUnitaryEquipmentTypeEnum;
public IfcUnitaryEquipmentTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcUnitaryEquipmentTypeEnum mPredefinedType = IfcUnitaryEquipmentTypeEnum.NOTDEFINED;// OPTIONAL : IfcUnitaryEquipmentTypeEnum;
public IfcUnitaryEquipmentTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcUnitaryEquipmentTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcUnitaryEquipment() : base() { }
internal IfcUnitaryEquipment(DatabaseIfc db, IfcUnitaryEquipment e, DuplicateOptions options) : base(db, e, options) { mPredefinedType = e.mPredefinedType; }
internal IfcUnitaryEquipment(DatabaseIfc db, IfcUnitaryEquipment e, DuplicateOptions options) : base(db, e, options) { PredefinedType = e.PredefinedType; }
public IfcUnitaryEquipment(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape representation, IfcDistributionSystem system) : base(host, placement, representation, system) { }
}
[Serializable]
public partial class IfcUnitaryEquipmentType : IfcEnergyConversionDeviceType
{
internal IfcUnitaryEquipmentTypeEnum mPredefinedType = IfcUnitaryEquipmentTypeEnum.NOTDEFINED;// : IfcUnitaryEquipmentTypeEnum;
public IfcUnitaryEquipmentTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcUnitaryEquipmentTypeEnum mPredefinedType = IfcUnitaryEquipmentTypeEnum.NOTDEFINED;// : IfcUnitaryEquipmentTypeEnum;
public IfcUnitaryEquipmentTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcUnitaryEquipmentTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcUnitaryEquipmentType() : base() { }
internal IfcUnitaryEquipmentType(DatabaseIfc db, IfcUnitaryEquipmentType t, DuplicateOptions options) : base(db, t, options) { mPredefinedType = t.mPredefinedType; }
public IfcUnitaryEquipmentType(DatabaseIfc m, string name, IfcUnitaryEquipmentTypeEnum type) : base(m) { Name = name; mPredefinedType = type; }
internal IfcUnitaryEquipmentType(DatabaseIfc db, IfcUnitaryEquipmentType t, DuplicateOptions options) : base(db, t, options) { PredefinedType = t.PredefinedType; }
public IfcUnitaryEquipmentType(DatabaseIfc db, string name, IfcUnitaryEquipmentTypeEnum type) : base(db) { Name = name; PredefinedType = type; }
}
[Serializable]
public partial class IfcUnitAssignment : BaseClassIfc
@ -78,7 +78,7 @@ namespace GeometryGym.Ifc
public SET<IfcUnit> Units { get { return mUnits; } }
internal IfcUnitAssignment() : base() { }
internal IfcUnitAssignment(DatabaseIfc db, IfcUnitAssignment u) : base(db) { Units.AddRange(u.Units.ConvertAll(x => db.Factory.Duplicate(u.mDatabase[x.Index]) as IfcUnit)); }
internal IfcUnitAssignment(DatabaseIfc db, IfcUnitAssignment u) : base(db) { Units.AddRange(u.Units.Select(x => db.Factory.Duplicate<IfcUnit>(x))); }
public IfcUnitAssignment(DatabaseIfc db) : base(db) { }
public IfcUnitAssignment(DatabaseIfc db, Length length) : base(db) { SetUnits(length); }
public IfcUnitAssignment(params IfcUnit[] units) : base(units.First().Database) { Units.AddRange(units); }
@ -142,15 +142,15 @@ namespace GeometryGym.Ifc
if (mStructuralSet)
return;
mStructuralSet = true;
DatabaseIfc m = mDatabase;
DatabaseIfc db = mDatabase;
IfcNamedUnit fu = this[IfcUnitEnum.FORCEUNIT];
if (fu == null)
{
fu = new IfcSIUnit(m, IfcUnitEnum.FORCEUNIT, IfcSIPrefix.NONE, IfcSIUnitName.NEWTON);
fu = new IfcSIUnit(db, IfcUnitEnum.FORCEUNIT, IfcSIPrefix.NONE, IfcSIUnitName.NEWTON);
Units.Add(fu);
}
IfcSIUnit lengthSI = m.Factory.SILength, volumeSI = m.Factory.SIVolume;
IfcSIUnit lengthSI = db.Factory.SILength, volumeSI = db.Factory.SIVolume;
if (this[IfcDerivedUnitEnum.TORQUEUNIT] == null)
Units.Add(new IfcDerivedUnit(new IfcDerivedUnitElement(fu, 1), new IfcDerivedUnitElement(lengthSI, 1), IfcDerivedUnitEnum.TORQUEUNIT));
if (this[IfcDerivedUnitEnum.LINEARFORCEUNIT] == null)
@ -168,7 +168,7 @@ namespace GeometryGym.Ifc
if(this[IfcDerivedUnitEnum.ACCELERATIONUNIT] == null)
Units.Add(new IfcDerivedUnit(new IfcDerivedUnitElement(lengthSI, 1), new IfcDerivedUnitElement(time, -2), IfcDerivedUnitEnum.ACCELERATIONUNIT));
if(this[IfcUnitEnum.PRESSUREUNIT] == null)
Units.Add(new IfcSIUnit(m, IfcUnitEnum.PRESSUREUNIT, IfcSIPrefix.NONE, IfcSIUnitName.PASCAL));
Units.Add(new IfcSIUnit(db, IfcUnitEnum.PRESSUREUNIT, IfcSIPrefix.NONE, IfcSIUnitName.PASCAL));
if (this[IfcDerivedUnitEnum.SECTIONMODULUSUNIT] == null)
Units.Add(new IfcDerivedUnit(new IfcDerivedUnitElement(lengthSI, 3), IfcDerivedUnitEnum.SECTIONMODULUSUNIT));
if(this[IfcDerivedUnitEnum.MOMENTOFINERTIAUNIT] == null)
@ -176,7 +176,7 @@ namespace GeometryGym.Ifc
IfcSIUnit massu = this[IfcUnitEnum.MASSUNIT] as IfcSIUnit;
if (massu == null)
{
massu = new IfcSIUnit(m, IfcUnitEnum.MASSUNIT, IfcSIPrefix.KILO, IfcSIUnitName.GRAM);
massu = new IfcSIUnit(db, IfcUnitEnum.MASSUNIT, IfcSIPrefix.KILO, IfcSIUnitName.GRAM);
Units.Add(massu);
}
if (this[IfcDerivedUnitEnum.MASSDENSITYUNIT] == null)
@ -184,7 +184,7 @@ namespace GeometryGym.Ifc
IfcSIUnit kelvin = this[IfcUnitEnum.THERMODYNAMICTEMPERATUREUNIT] as IfcSIUnit;
if (kelvin == null)
{
kelvin = new IfcSIUnit(m, IfcUnitEnum.THERMODYNAMICTEMPERATUREUNIT, IfcSIPrefix.NONE, IfcSIUnitName.KELVIN);
kelvin = new IfcSIUnit(db, IfcUnitEnum.THERMODYNAMICTEMPERATUREUNIT, IfcSIPrefix.NONE, IfcSIUnitName.KELVIN);
Units.Add(kelvin);
}
if (this[IfcDerivedUnitEnum.THERMALEXPANSIONCOEFFICIENTUNIT] == null)
@ -283,7 +283,7 @@ namespace GeometryGym.Ifc
mFlangeSlope = p.mFlangeSlope;
mCentreOfGravityInX = p.mCentreOfGravityInX;
}
public IfcUShapeProfileDef(DatabaseIfc m, string name, double depth, double flangeWidth, double webThickness, double flangeThickness)
: base(m,name) { mDepth = depth; mFlangeWidth = flangeWidth; mWebThickness = webThickness; mFlangeThickness = flangeThickness; }
public IfcUShapeProfileDef(DatabaseIfc db, string name, double depth, double flangeWidth, double webThickness, double flangeThickness)
: base(db,name) { mDepth = depth; mFlangeWidth = flangeWidth; mWebThickness = webThickness; mFlangeThickness = flangeThickness; }
}
}

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

@ -43,22 +43,22 @@ namespace GeometryGym.Ifc
[Serializable]
public partial class IfcValve : IfcFlowController //IFC4
{
internal IfcValveTypeEnum mPredefinedType = IfcValveTypeEnum.NOTDEFINED;// OPTIONAL : IfcValveTypeEnum;
public IfcValveTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcValveTypeEnum mPredefinedType = IfcValveTypeEnum.NOTDEFINED;// OPTIONAL : IfcValveTypeEnum;
public IfcValveTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcValveTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcValve() : base() { }
internal IfcValve(DatabaseIfc db, IfcValve v, DuplicateOptions options) : base(db, v, options) { mPredefinedType = v.mPredefinedType; }
internal IfcValve(DatabaseIfc db, IfcValve v, DuplicateOptions options) : base(db, v, options) { PredefinedType = v.PredefinedType; }
public IfcValve(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape representation, IfcDistributionSystem system) : base(host, placement, representation, system) { }
}
[Serializable]
public partial class IfcValveType : IfcFlowControllerType
{
internal IfcValveTypeEnum mPredefinedType = IfcValveTypeEnum.NOTDEFINED;// : IfcValveTypeEnum;
public IfcValveTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcValveTypeEnum mPredefinedType = IfcValveTypeEnum.NOTDEFINED;// : IfcValveTypeEnum;
public IfcValveTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcValveTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcValveType() : base() { }
internal IfcValveType(DatabaseIfc db, IfcValveType t, DuplicateOptions options) : base(db, t, options) { mPredefinedType = t.mPredefinedType; }
public IfcValveType(DatabaseIfc m, string name, IfcValveTypeEnum type) : base(m) { Name = name; mPredefinedType = type; }
internal IfcValveType(DatabaseIfc db, IfcValveType t, DuplicateOptions options) : base(db, t, options) { PredefinedType = t.PredefinedType; }
public IfcValveType(DatabaseIfc db, string name, IfcValveTypeEnum type) : base(db) { Name = name; PredefinedType = type; }
}
[Serializable]
public partial class IfcVector : IfcGeometricRepresentationItem, IfcHatchLineDistanceSelect, IfcVectorOrDirection
@ -77,8 +77,8 @@ namespace GeometryGym.Ifc
[Serializable]
public partial class IfcVehicle : IfcTransportationDevice
{
internal IfcVehicleTypeEnum mPredefinedType = IfcVehicleTypeEnum.NOTDEFINED;// : OPTIONAL IfcVehicleTypeEnum;
public IfcVehicleTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcVehicleTypeEnum mPredefinedType = IfcVehicleTypeEnum.NOTDEFINED;// : OPTIONAL IfcVehicleTypeEnum;
public IfcVehicleTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcVehicleTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcVehicle() : base() { }
internal IfcVehicle(DatabaseIfc db, IfcVehicle e, DuplicateOptions options) : base(db, e, options) { }
@ -87,12 +87,12 @@ namespace GeometryGym.Ifc
[Serializable]
public partial class IfcVehicleType : IfcTransportationDeviceType
{
internal IfcVehicleTypeEnum mPredefinedType = IfcVehicleTypeEnum.NOTDEFINED;// IfcVehicleTypeEnum;
public IfcVehicleTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcVehicleTypeEnum mPredefinedType = IfcVehicleTypeEnum.NOTDEFINED;// IfcVehicleTypeEnum;
public IfcVehicleTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcVehicleTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcVehicleType() : base() { }
internal IfcVehicleType(DatabaseIfc db, IfcVehicleType t, DuplicateOptions options) : base(db, t, options) { mPredefinedType = t.mPredefinedType; }
public IfcVehicleType(DatabaseIfc m, string name, IfcVehicleTypeEnum type) : base(m) { Name = name; mPredefinedType = type; }
internal IfcVehicleType(DatabaseIfc db, IfcVehicleType t, DuplicateOptions options) : base(db, t, options) { PredefinedType = t.PredefinedType; }
public IfcVehicleType(DatabaseIfc db, string name, IfcVehicleTypeEnum type) : base(db) { Name = name; PredefinedType = type; }
}
[Serializable]
public partial class IfcVertex : IfcTopologicalRepresentationItem //SUPERTYPE OF(IfcVertexPoint)
@ -108,17 +108,21 @@ namespace GeometryGym.Ifc
[Obsolete("DEPRECATED IFC4", false)]
public partial class IfcVertexBasedTextureMap : BaseClassIfc // DEPRECATED IFC4
{
internal List<int> mTextureVertices = new List<int>();// LIST [3:?] OF IfcTextureVertex;
internal List<int> mTexturePoints = new List<int>();// LIST [3:?] OF IfcCartesianPoint;
internal LIST<IfcTextureVertex> mTextureVertices = new LIST<IfcTextureVertex>();// LIST [3:?] OF IfcTextureVertex;
internal LIST<IfcCartesianPoint> mTexturePoints = new LIST<IfcCartesianPoint>();// LIST [3:?] OF IfcCartesianPoint;
internal IfcVertexBasedTextureMap() : base() { }
internal IfcVertexBasedTextureMap(IfcVertexBasedTextureMap m) : base() { mTextureVertices = new List<int>(m.mTextureVertices.ToArray()); mTexturePoints = new List<int>(m.mTexturePoints.ToArray()); }
internal IfcVertexBasedTextureMap(DatabaseIfc db, IfcVertexBasedTextureMap m) : base(db)
{
mTextureVertices.AddRange(m.mTextureVertices.Select(x => db.Factory.Duplicate(x)));
mTexturePoints.AddRange(m.mTexturePoints.Select(x => db.Factory.Duplicate(x)));
}
}
[Serializable]
public partial class IfcVertexLoop : IfcLoop
{
internal int mLoopVertex;// : IfcVertex;
public IfcVertex LoopVertex { get { return mDatabase[mLoopVertex] as IfcVertex; } set { mLoopVertex = value.mIndex; } }
internal IfcVertex mLoopVertex;// : IfcVertex;
public IfcVertex LoopVertex { get { return mLoopVertex; } set { mLoopVertex = value; } }
internal IfcVertexLoop() : base() { }
internal IfcVertexLoop(DatabaseIfc db, IfcVertexLoop l, DuplicateOptions options) : base(db, l, options) { LoopVertex = db.Factory.Duplicate(l.LoopVertex) as IfcVertex; }
@ -141,21 +145,21 @@ namespace GeometryGym.Ifc
return result;
}
}
[Serializable]
[Serializable, VersionAdded(ReleaseVersion.IFC4X2)]
public partial class IfcVibrationDamper : IfcElementComponent
{
private IfcVibrationDamperTypeEnum mPredefinedType = IfcVibrationDamperTypeEnum.NOTDEFINED; //: OPTIONAL IfcVibrationDamperTypeEnum;
public IfcVibrationDamperTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
public IfcVibrationDamperTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcVibrationDamperTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
public IfcVibrationDamper() : base() { }
public IfcVibrationDamper(DatabaseIfc db) : base(db) { }
public IfcVibrationDamper(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape representation) : base(host, placement, representation) { }
}
[Serializable]
[Serializable, VersionAdded(ReleaseVersion.IFC4X2)]
public partial class IfcVibrationDamperType : IfcElementComponentType
{
private IfcVibrationDamperTypeEnum mPredefinedType = IfcVibrationDamperTypeEnum.NOTDEFINED; //: IfcVibrationDamperTypeEnum;
public IfcVibrationDamperTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
public IfcVibrationDamperTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcVibrationDamperTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
public IfcVibrationDamperType() : base() { }
public IfcVibrationDamperType(DatabaseIfc db, string name) : base(db, name) { }
@ -163,28 +167,28 @@ namespace GeometryGym.Ifc
[Serializable]
public partial class IfcVibrationIsolator : IfcElementComponent
{
internal IfcVibrationIsolatorTypeEnum mPredefinedType = IfcVibrationIsolatorTypeEnum.NOTDEFINED;// : OPTIONAL IfcVibrationIsolatorTypeEnum;
public IfcVibrationIsolatorTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcVibrationIsolatorTypeEnum mPredefinedType = IfcVibrationIsolatorTypeEnum.NOTDEFINED;// : OPTIONAL IfcVibrationIsolatorTypeEnum;
public IfcVibrationIsolatorTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcVibrationIsolatorTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcVibrationIsolator() : base() { }
internal IfcVibrationIsolator(DatabaseIfc db, IfcVibrationIsolator i, DuplicateOptions options) : base(db, i, options) { mPredefinedType = i.mPredefinedType; }
internal IfcVibrationIsolator(DatabaseIfc db, IfcVibrationIsolator i, DuplicateOptions options) : base(db, i, options) { PredefinedType = i.PredefinedType; }
public IfcVibrationIsolator(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape representation) : base(host, placement, representation) { }
}
[Serializable]
public partial class IfcVibrationIsolatorType : IfcElementComponentType
{
internal IfcVibrationIsolatorTypeEnum mPredefinedType = IfcVibrationIsolatorTypeEnum.NOTDEFINED;// : IfcVibrationIsolatorTypeEnum
public IfcVibrationIsolatorTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcVibrationIsolatorTypeEnum mPredefinedType = IfcVibrationIsolatorTypeEnum.NOTDEFINED;// : IfcVibrationIsolatorTypeEnum
public IfcVibrationIsolatorTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcVibrationIsolatorTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcVibrationIsolatorType() : base() { }
internal IfcVibrationIsolatorType(DatabaseIfc db, IfcVibrationIsolatorType t, DuplicateOptions options) : base(db, t, options) { mPredefinedType = t.mPredefinedType; }
public IfcVibrationIsolatorType(DatabaseIfc m, string name, IfcVibrationIsolatorTypeEnum type) : base(m) { Name = name; mPredefinedType = type; }
internal IfcVibrationIsolatorType(DatabaseIfc db, IfcVibrationIsolatorType t, DuplicateOptions options) : base(db, t, options) { PredefinedType = t.PredefinedType; }
public IfcVibrationIsolatorType(DatabaseIfc db, string name, IfcVibrationIsolatorTypeEnum type) : base(db) { Name = name; PredefinedType = type; }
}
[Serializable]
public partial class IfcVirtualElement : IfcElement
{
internal IfcVirtualElementTypeEnum mPredefinedType = IfcVirtualElementTypeEnum.NOTDEFINED;// : IfcVirtualElementTypeEnum
public IfcVirtualElementTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcVirtualElementTypeEnum mPredefinedType = IfcVirtualElementTypeEnum.NOTDEFINED;// : IfcVirtualElementTypeEnum
public IfcVirtualElementTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcVirtualElementTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcVirtualElement() : base() { }
internal IfcVirtualElement(DatabaseIfc db, IfcVirtualElement e, DuplicateOptions options) : base(db, e, options) { }
@ -193,32 +197,34 @@ namespace GeometryGym.Ifc
[Serializable]
public partial class IfcVirtualGridIntersection : BaseClassIfc, IfcGridPlacementDirectionSelect
{
private Tuple<int,int> mIntersectingAxes = new Tuple<int,int>(0,0);// : LIST [2:2] OF UNIQUE IfcGridAxis;
private Tuple<IfcGridAxis, IfcGridAxis> mIntersectingAxes = null;// : LIST [2:2] OF UNIQUE IfcGridAxis;
private Tuple<double,double,double> mOffsetDistances = null;// : LIST [2:3] OF IfcLengthMeasure;
public Tuple<IfcGridAxis,IfcGridAxis> IntersectingAxes { get { return new Tuple<IfcGridAxis, IfcGridAxis>(mDatabase[mIntersectingAxes.Item1] as IfcGridAxis, mDatabase[mIntersectingAxes.Item2] as IfcGridAxis); } set { mIntersectingAxes = new Tuple<int, int>(value.Item1.mIndex, value.Item2.mIndex); } }
public Tuple<IfcGridAxis,IfcGridAxis> IntersectingAxes { get { return mIntersectingAxes; } set { mIntersectingAxes = value; } }
internal IfcVirtualGridIntersection() : base() { }
internal IfcVirtualGridIntersection(DatabaseIfc db, IfcVirtualGridIntersection i) : base(db, i) { Tuple<IfcGridAxis, IfcGridAxis> axes = i.IntersectingAxes; IntersectingAxes = new Tuple<IfcGridAxis,IfcGridAxis>(db.Factory.Duplicate(axes.Item1) as IfcGridAxis, db.Factory.Duplicate(axes.Item2) as IfcGridAxis); mOffsetDistances = i.mOffsetDistances; }
}
[Serializable]
public partial class IfcVoidingFeature : IfcFeatureElementSubtraction //IFC4
{
internal IfcVoidingFeatureTypeEnum mPredefinedType = IfcVoidingFeatureTypeEnum.NOTDEFINED;// :IfcVoidingFeatureTypeEnum;
public IfcVoidingFeatureTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcVoidingFeatureTypeEnum mPredefinedType = IfcVoidingFeatureTypeEnum.NOTDEFINED;// :IfcVoidingFeatureTypeEnum;
public IfcVoidingFeatureTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcVoidingFeatureTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcVoidingFeature() : base() { }
internal IfcVoidingFeature(DatabaseIfc db, IfcVoidingFeature v, DuplicateOptions options) : base(db, v, options) { mPredefinedType = v.mPredefinedType; }
public IfcVoidingFeature(IfcElement host, IfcProductDefinitionShape rep, IfcVoidingFeatureTypeEnum type) : base(host, rep) { mPredefinedType = type; }
internal IfcVoidingFeature(DatabaseIfc db, IfcVoidingFeature v, DuplicateOptions options) : base(db, v, options) { PredefinedType = v.PredefinedType; }
public IfcVoidingFeature(IfcElement host, IfcProductDefinitionShape rep, IfcVoidingFeatureTypeEnum type) : base(host, rep) { PredefinedType = type; }
}
[Obsolete("RELEASE CANDIDATE IFC4X3", false)]
[Serializable]
[Serializable, VersionAdded(ReleaseVersion.IFC4X3)]
public partial class IfcVoidStratum : IfcGeotechnicalStratum
{
public override string StepClassName { get { return (mDatabase.mRelease >= ReleaseVersion.IFC4X3 ? "IfcGeotechnicalStratum" : base.StepClassName); } }
public IfcVoidStratum() : base() { PredefinedType = IfcGeotechnicalStratumTypeEnum.VOID; }
public IfcVoidStratum(DatabaseIfc db) : base(db) { PredefinedType = IfcGeotechnicalStratumTypeEnum.VOID; }
public IfcVoidStratum(DatabaseIfc db, IfcVoidStratum voidStratum, DuplicateOptions options)
internal IfcVoidStratum() : base() { PredefinedType = IfcGeotechnicalStratumTypeEnum.VOID; }
internal IfcVoidStratum(DatabaseIfc db) : base(db) { PredefinedType = IfcGeotechnicalStratumTypeEnum.VOID; }
internal IfcVoidStratum(DatabaseIfc db, IfcVoidStratum voidStratum, DuplicateOptions options)
: base(db, voidStratum, options) { PredefinedType = IfcGeotechnicalStratumTypeEnum.VOID; }
public IfcVoidStratum(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape shape)
: base(host, placement, shape) { PredefinedType = IfcGeotechnicalStratumTypeEnum.VOID; }
}
[Serializable]
@ -510,7 +516,7 @@ namespace GeometryGym.Ifc
[Serializable]
public class IfcParameterValue : IfcMeasureValue, IfcCurveMeasureSelect { public IfcParameterValue(double value) : base(value) { } }
[Serializable]
public class IfcPlaneAngleMeasure : IfcMeasureValue, IfcBendingParameterSelect { public IfcPlaneAngleMeasure(double value) : base(value) { } }
public class IfcPlaneAngleMeasure : IfcMeasureValue, IfcBendingParameterSelect, IfcOrientationSelect { public IfcPlaneAngleMeasure(double value) : base(value) { } }
[Serializable]
public class IfcPositivePlaneAngleMeasure : IfcMeasureValue { public IfcPositivePlaneAngleMeasure(double value) : base(value) { } }
[Serializable]
@ -644,12 +650,12 @@ namespace GeometryGym.Ifc
DateTime result = DateTime.MinValue;
return (DateTime.TryParse(value, out result) ? result : DateTime.MinValue);
}
internal static IfcDateTimeSelect convertDateTimeSelect(DatabaseIfc m, DateTime date)
internal static IfcDateTimeSelect convertDateTimeSelect(DatabaseIfc db, DateTime date)
{
IfcCalendarDate cd = new IfcCalendarDate(m, date.Day, date.Month, date.Year);
if (date.Hour + date.Minute + date.Second < m.Tolerance)
IfcCalendarDate cd = new IfcCalendarDate(db, date.Day, date.Month, date.Year);
if (date.Hour + date.Minute + date.Second < db.Tolerance)
return cd;
return new IfcDateAndTime(cd, new IfcLocalTime(m, date.Hour, date.Minute, date.Second));
return new IfcDateAndTime(cd, new IfcLocalTime(db, date.Hour, date.Minute, date.Second));
}
public override string ValueString { get { return FormatSTEP(mDateTime); } }
}
@ -761,7 +767,7 @@ namespace GeometryGym.Ifc
public override string ToString() { return "IFCINTEGER(" + Magnitude.ToString() + ")"; }
}
[Serializable]
public partial class IfcLabel : IfcSimpleValue
public partial class IfcLabel : IfcSimpleValue, IfcConditionCriterionSelect
{
public string Label { get; set; }
public override object Value { get { return Label; } set { Label = value.ToString(); } }

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

@ -31,11 +31,11 @@ namespace GeometryGym.Ifc
[Serializable]
public partial class IfcWall : IfcBuiltElement
{
internal IfcWallTypeEnum mPredefinedType = IfcWallTypeEnum.NOTDEFINED;//: OPTIONAL IfcWallTypeEnum;
public IfcWallTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcWallTypeEnum mPredefinedType = IfcWallTypeEnum.NOTDEFINED;//: OPTIONAL IfcWallTypeEnum;
public IfcWallTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcWallTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcWall() : base() { }
internal IfcWall(DatabaseIfc db, IfcWall w, DuplicateOptions options) : base(db, w, options) { mPredefinedType = w.mPredefinedType; }
internal IfcWall(DatabaseIfc db, IfcWall w, DuplicateOptions options) : base(db, w, options) { PredefinedType = w.PredefinedType; }
public IfcWall(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape representation) : base(host, placement, representation) { }
}
[Serializable]
@ -69,13 +69,13 @@ namespace GeometryGym.Ifc
[Serializable]
public partial class IfcWallType : IfcBuiltElementType
{
internal IfcWallTypeEnum mPredefinedType = IfcWallTypeEnum.NOTDEFINED;
public IfcWallTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcWallTypeEnum mPredefinedType = IfcWallTypeEnum.NOTDEFINED;
public IfcWallTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcWallTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcWallType() : base() { }
internal IfcWallType(DatabaseIfc db, IfcWallType t, DuplicateOptions options) : base(db, t, options) { mPredefinedType = t.mPredefinedType; }
public IfcWallType(DatabaseIfc m, string name, IfcWallTypeEnum type) : base(m) { Name = name; mPredefinedType = type; }
public IfcWallType(string name, IfcMaterialLayerSet ls, IfcWallTypeEnum type) : base(ls.mDatabase) { Name = name; mPredefinedType = type; MaterialSelect = ls; }
internal IfcWallType(DatabaseIfc db, IfcWallType t, DuplicateOptions options) : base(db, t, options) { PredefinedType = t.PredefinedType; }
public IfcWallType(DatabaseIfc db, string name, IfcWallTypeEnum type) : base(db) { Name = name; PredefinedType = type; }
public IfcWallType(string name, IfcMaterialLayerSet ls, IfcWallTypeEnum type) : base(ls.mDatabase) { Name = name; PredefinedType = type; MaterialSelect = ls; }
}
[Serializable]
public partial class IfcWarpingStiffnessSelect
@ -88,22 +88,22 @@ namespace GeometryGym.Ifc
[Serializable]
public partial class IfcWasteTerminal : IfcFlowTerminal //IFC4
{
internal IfcWasteTerminalTypeEnum mPredefinedType = IfcWasteTerminalTypeEnum.NOTDEFINED;// OPTIONAL : IfcWasteTerminalTypeEnum;
public IfcWasteTerminalTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcWasteTerminalTypeEnum mPredefinedType = IfcWasteTerminalTypeEnum.NOTDEFINED;// OPTIONAL : IfcWasteTerminalTypeEnum;
public IfcWasteTerminalTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcWasteTerminalTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcWasteTerminal() : base() { }
internal IfcWasteTerminal(DatabaseIfc db, IfcWasteTerminal t, DuplicateOptions options) : base(db, t, options) { mPredefinedType = t.mPredefinedType; }
internal IfcWasteTerminal(DatabaseIfc db, IfcWasteTerminal t, DuplicateOptions options) : base(db, t, options) { PredefinedType = t.PredefinedType; }
public IfcWasteTerminal(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape representation, IfcDistributionSystem system) : base(host, placement, representation, system) { }
}
[Serializable]
public partial class IfcWasteTerminalType : IfcFlowTerminalType
{
internal IfcWasteTerminalTypeEnum mPredefinedType = IfcWasteTerminalTypeEnum.NOTDEFINED;// : IfcWasteTerminalTypeEnum;
public IfcWasteTerminalTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcWasteTerminalTypeEnum mPredefinedType = IfcWasteTerminalTypeEnum.NOTDEFINED;// : IfcWasteTerminalTypeEnum;
public IfcWasteTerminalTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcWasteTerminalTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcWasteTerminalType() : base() { }
internal IfcWasteTerminalType(DatabaseIfc db, IfcWasteTerminalType t, DuplicateOptions options) : base(db, t, options) { mPredefinedType = t.mPredefinedType; }
public IfcWasteTerminalType(DatabaseIfc m, string name, IfcWasteTerminalTypeEnum t) : base(m) { Name = name; mPredefinedType = t; }
internal IfcWasteTerminalType(DatabaseIfc db, IfcWasteTerminalType t, DuplicateOptions options) : base(db, t, options) { PredefinedType = t.PredefinedType; }
public IfcWasteTerminalType(DatabaseIfc db, string name, IfcWasteTerminalTypeEnum t) : base(db) { Name = name; PredefinedType = t; }
}
[Obsolete("DEPRECATED IFC4", false)]
[Serializable]
@ -127,32 +127,34 @@ namespace GeometryGym.Ifc
}
}
[Obsolete("RELEASE CANDIDATE IFC4X3", false)]
[Serializable]
[Serializable, VersionAdded(ReleaseVersion.IFC4X3)]
public partial class IfcWaterStratum : IfcGeotechnicalStratum
{
public override string StepClassName { get { return (mDatabase.mRelease >= ReleaseVersion.IFC4X3 ? "IfcGeotechnicalStratum" : base.StepClassName); } }
public IfcWaterStratum() : base() { PredefinedType = IfcGeotechnicalStratumTypeEnum.WATER; }
public IfcWaterStratum(DatabaseIfc db) : base(db) { PredefinedType = IfcGeotechnicalStratumTypeEnum.WATER; }
public IfcWaterStratum(DatabaseIfc db, IfcWaterStratum waterStratum, DuplicateOptions options) : base(db, waterStratum, options) { PredefinedType = IfcGeotechnicalStratumTypeEnum.WATER; }
internal IfcWaterStratum() : base() { PredefinedType = IfcGeotechnicalStratumTypeEnum.WATER; }
internal IfcWaterStratum(DatabaseIfc db) : base(db) { PredefinedType = IfcGeotechnicalStratumTypeEnum.WATER; }
internal IfcWaterStratum(DatabaseIfc db, IfcWaterStratum waterStratum, DuplicateOptions options) : base(db, waterStratum, options) { PredefinedType = IfcGeotechnicalStratumTypeEnum.WATER; }
internal IfcWaterStratum(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape shape)
: base(host, placement, shape) { PredefinedType = IfcGeotechnicalStratumTypeEnum.WATER; }
}
[Serializable]
public partial class IfcWindow : IfcBuiltElement
{
internal double mOverallHeight = double.NaN;// : OPTIONAL IfcPositiveLengthMeasure;
internal double mOverallWidth = double.NaN;// : OPTIONAL IfcPositiveLengthMeasure;
internal IfcWindowTypeEnum mPredefinedType = IfcWindowTypeEnum.NOTDEFINED;// : OPTIONAL IfcWindowTypeEnum;
private IfcWindowTypeEnum mPredefinedType = IfcWindowTypeEnum.NOTDEFINED;// : OPTIONAL IfcWindowTypeEnum;
internal IfcWindowTypePartitioningEnum mPartitioningType = IfcWindowTypePartitioningEnum.NOTDEFINED;// : OPTIONAL IfcWindowTypePartitioningEnum;
internal string mUserDefinedPartitioningType = "";//: OPTIONAL IfcLabel;
public double OverallHeight { get { return mOverallHeight; } set { mOverallHeight = (value > 0 ? value : double.NaN); } }
public double OverallWidth { get { return mOverallWidth; } set { mOverallWidth = (value > 0 ? value : double.NaN); } }
public IfcWindowTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
public IfcWindowTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcWindowTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
public IfcWindowTypePartitioningEnum PartitioningType { get { return mPartitioningType; } set { mPartitioningType = value; } }
public string UserDefinedPartitioningType { get { return mUserDefinedPartitioningType; } set { mUserDefinedPartitioningType = value; } }
internal IfcWindow() : base() { }
internal IfcWindow(DatabaseIfc db, IfcWindow w, DuplicateOptions options) : base(db, w, options) { mOverallHeight = w.mOverallHeight; mOverallWidth = w.mOverallWidth; mPredefinedType = w.mPredefinedType; mPartitioningType = w.mPartitioningType; mUserDefinedPartitioningType = w.mUserDefinedPartitioningType; }
internal IfcWindow(DatabaseIfc db, IfcWindow w, DuplicateOptions options) : base(db, w, options) { mOverallHeight = w.mOverallHeight; mOverallWidth = w.mOverallWidth; PredefinedType = w.mPredefinedType; mPartitioningType = w.mPartitioningType; mUserDefinedPartitioningType = w.mUserDefinedPartitioningType; }
public IfcWindow(IfcObjectDefinition host, IfcObjectPlacement placement, IfcProductDefinitionShape representation) : base(host, placement, representation) { }
public IfcWindow(IfcOpeningElement host, IfcObjectPlacement placement, IfcProductDefinitionShape representation) :
base(host.Database)
@ -169,10 +171,10 @@ namespace GeometryGym.Ifc
internal double mLiningThickness = double.NaN; //: OPTIONAL IfcNonNegativeLengthMeasure
internal double mTransomThickness = double.NaN, mMullionThickness = double.NaN;// : OPTIONAL IfcPositiveLengthMeasure;
internal double mFirstTransomOffset = double.NaN, mSecondTransomOffset = double.NaN, mFirstMullionOffset = double.NaN, mSecondMullionOffset = double.NaN;// : OPTIONAL IfcNormalisedRatioMeasure;
private int mShapeAspectStyle;// : OPTIONAL IfcShapeAspect; IFC4 DEPRECATED
private IfcShapeAspect mShapeAspectStyle;// : OPTIONAL IfcShapeAspect; IFC4 DEPRECATED
internal double mLiningOffset = double.NaN, mLiningToPanelOffsetX = double.NaN, mLiningToPanelOffsetY = double.NaN;// : OPTIONAL IfcLengthMeasure;
[Obsolete("DEPRECATED IFC4", false)]
public IfcShapeAspect ShapeAspectStyle { get { return mDatabase[mShapeAspectStyle] as IfcShapeAspect; } set { mShapeAspectStyle = (value == null ? 0 : value.mIndex); } }
public IfcShapeAspect ShapeAspectStyle { get { return mShapeAspectStyle; } set { mShapeAspectStyle = value; } }
internal IfcWindowLiningProperties() : base() { }
internal IfcWindowLiningProperties(DatabaseIfc db, IfcWindowLiningProperties p, DuplicateOptions options) : base(db, p, options)
{
@ -184,15 +186,14 @@ namespace GeometryGym.Ifc
mSecondTransomOffset = p.mSecondTransomOffset;
mFirstMullionOffset = p.mFirstMullionOffset;
mSecondMullionOffset = p.mSecondMullionOffset;
if (p.mShapeAspectStyle > 0)
ShapeAspectStyle = db.Factory.Duplicate(p.ShapeAspectStyle) as IfcShapeAspect;
ShapeAspectStyle = db.Factory.Duplicate(p.ShapeAspectStyle);
mLiningOffset = p.mLiningOffset;
mLiningToPanelOffsetX = p.mLiningToPanelOffsetX;
mLiningToPanelOffsetY = p.mLiningToPanelOffsetY;
}
internal IfcWindowLiningProperties(DatabaseIfc m, string name, double lngDpth, double lngThck, double trnsmThck, double mllnThck,
internal IfcWindowLiningProperties(DatabaseIfc db, string name, double lngDpth, double lngThck, double trnsmThck, double mllnThck,
double trnsmOffst1, double trnsmOffst2, double mllnOffst1, double mllnOffst2, double lngOffset, double lngToPnlOffstX, double lngToPnlOffstY)
: base(m, name)
: base(db, name)
{
mLiningDepth = lngDpth;
mLiningThickness = lngThck;
@ -214,9 +215,9 @@ namespace GeometryGym.Ifc
internal IfcWindowPanelPositionEnum mPanelPosition;// :IfcWindowPanelPositionEnume;
internal double mFrameDepth = double.NaN;// : OPTIONAL IfcPositiveLengthMeasure;
internal double mFrameThickness = double.NaN;// : OPTIONAL IfcPositiveLengthMeasure;
private int mShapeAspectStyle;// : OPTIONAL IfcShapeAspect; IFC4 DEPRECATED
private IfcShapeAspect mShapeAspectStyle;// : OPTIONAL IfcShapeAspect; IFC4 DEPRECATED
[Obsolete("DEPRECATED IFC4", false)]
public IfcShapeAspect ShapeAspectStyle { get { return mDatabase[mShapeAspectStyle] as IfcShapeAspect; } set { mShapeAspectStyle = (value == null ? 0 : value.mIndex); } }
public IfcShapeAspect ShapeAspectStyle { get { return mShapeAspectStyle; } set { mShapeAspectStyle = value; } }
internal IfcWindowPanelProperties() : base() { }
internal IfcWindowPanelProperties(DatabaseIfc db, IfcWindowPanelProperties p, DuplicateOptions options) : base(db, p, options)
@ -225,16 +226,14 @@ namespace GeometryGym.Ifc
mPanelPosition = p.mPanelPosition;
mFrameDepth = p.mFrameDepth;
mFrameThickness = p.mFrameThickness;
if (p.mShapeAspectStyle > 0)
ShapeAspectStyle = db.Factory.Duplicate(p.ShapeAspectStyle) as IfcShapeAspect;
if (p.mShapeAspectStyle != null)
ShapeAspectStyle = db.Factory.Duplicate(p.ShapeAspectStyle);
}
public IfcWindowPanelProperties(DatabaseIfc db, string name, IfcWindowPanelOperationEnum op, IfcWindowPanelPositionEnum panel, double frameDepth, double frameThick)
public IfcWindowPanelProperties(DatabaseIfc db, string name, IfcWindowPanelOperationEnum op, IfcWindowPanelPositionEnum panel)
: base(db, name)
{
mOperationType = op;
mPanelPosition = panel;
mFrameDepth = frameDepth;
mFrameThickness = frameThick;
}
}
[Serializable]
@ -259,43 +258,27 @@ namespace GeometryGym.Ifc
public partial class IfcWindowType : IfcBuiltElementType //IFCWindowStyle IFC2x3
{
public override string StepClassName { get { return (mDatabase.mRelease < ReleaseVersion.IFC4 ? "IfcWindowStyle" : base.StepClassName); } }
internal IfcWindowTypeEnum mPredefinedType = IfcWindowTypeEnum.NOTDEFINED;
private IfcWindowTypeEnum mPredefinedType = IfcWindowTypeEnum.NOTDEFINED;
internal IfcWindowTypePartitioningEnum mPartitioningType = IfcWindowTypePartitioningEnum.NOTDEFINED;// : IfcWindowTypePartitioningEnum;
internal bool mParameterTakesPrecedence = false;// : BOOLEAN;
internal string mUserDefinedPartitioningType = "$"; // : OPTIONAL IfcLabel;
internal string mUserDefinedPartitioningType = ""; // : OPTIONAL IfcLabel;
public IfcWindowTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
public IfcWindowTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcWindowTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcWindowType() : base() { }
internal IfcWindowType(DatabaseIfc db, IfcWindowType t, DuplicateOptions options) : base(db, t, options) { mPredefinedType = t.mPredefinedType; mPartitioningType = t.mPartitioningType; mParameterTakesPrecedence = t.mParameterTakesPrecedence; mUserDefinedPartitioningType = t.mUserDefinedPartitioningType; }
public IfcWindowType(DatabaseIfc m, string name, IfcWindowTypeEnum type) : base(m) { Name = name; mPredefinedType = type; }
public IfcWindowType(DatabaseIfc m, string name, IfcWindowTypeEnum type, IfcWindowTypePartitioningEnum partition, bool parameterTakesPrecendence)
: base(m) { Name = name; mPredefinedType = type; mPartitioningType = partition; mParameterTakesPrecedence = parameterTakesPrecendence; }
public IfcWindowType(DatabaseIfc m, string name, IfcWindowTypeEnum type, IfcWindowTypePartitioningEnum partition, string userDefinedPartionType, IfcWindowLiningProperties wlp, List<IfcWindowPanelProperties> pps)
: base(m)
{
Name = name;
mPredefinedType = type;
mPartitioningType = partition;
mParameterTakesPrecedence = true;
if (wlp != null)
mHasPropertySets.Add(wlp);
if (pps != null && pps.Count > 0)
mHasPropertySets.AddRange(pps);
if (!string.IsNullOrEmpty(userDefinedPartionType))
mUserDefinedPartitioningType = userDefinedPartionType.Replace("'", "");
}
internal IfcWindowType(DatabaseIfc db, IfcWindowType t, DuplicateOptions options) : base(db, t, options) { PredefinedType = t.PredefinedType; mPartitioningType = t.mPartitioningType; mParameterTakesPrecedence = t.mParameterTakesPrecedence; mUserDefinedPartitioningType = t.mUserDefinedPartitioningType; }
public IfcWindowType(DatabaseIfc db, string name, IfcWindowTypeEnum type) : base(db) { Name = name; PredefinedType = type; }
}
[Serializable]
public partial class IfcWorkCalendar : IfcControl //IFC4
{
internal SET<IfcWorkTime> mWorkingTimes = new SET<IfcWorkTime>();// : OPTIONAL SET [1:?] OF IfcWorkTime;
internal SET<IfcWorkTime> mExceptionTimes = new SET<IfcWorkTime>();// : OPTIONAL SET [1:?] OF IfcWorkTime;
internal IfcWorkCalendarTypeEnum mPredefinedType = IfcWorkCalendarTypeEnum.NOTDEFINED;// : OPTIONAL IfcWorkCalendarTypeEnum
private IfcWorkCalendarTypeEnum mPredefinedType = IfcWorkCalendarTypeEnum.NOTDEFINED;// : OPTIONAL IfcWorkCalendarTypeEnum
public SET<IfcWorkTime> WorkingTimes { get { return mWorkingTimes; } }
public SET<IfcWorkTime> ExceptionTimes { get { return mExceptionTimes; } }
public IfcWorkCalendarTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
public IfcWorkCalendarTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcWorkCalendarTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcWorkCalendar() : base() { }
internal IfcWorkCalendar(DatabaseIfc db, IfcWorkCalendar c, DuplicateOptions options) : base(db, c, options)
@ -304,7 +287,7 @@ namespace GeometryGym.Ifc
mExceptionTimes.AddRange(c.ExceptionTimes.Select(x=>db.Factory.Duplicate(x) as IfcWorkTime));
mPredefinedType = c.mPredefinedType;
}
public IfcWorkCalendar(DatabaseIfc db, string name, IfcWorkCalendarTypeEnum type) : base(db) { Name = name; mPredefinedType = type; }
public IfcWorkCalendar(DatabaseIfc db, string name, IfcWorkCalendarTypeEnum type) : base(db) { Name = name; PredefinedType = type; }
}
[Serializable]
public abstract partial class IfcWorkControl : IfcControl //ABSTRACT SUPERTYPE OF(ONEOF(IfcWorkPlan, IfcWorkSchedule))
@ -396,32 +379,32 @@ namespace GeometryGym.Ifc
[Serializable]
public partial class IfcWorkPlan : IfcWorkControl
{
internal IfcWorkPlanTypeEnum mPredefinedType = IfcWorkPlanTypeEnum.NOTDEFINED;// : OPTIONAL IfcWorkPlanTypeEnum; IFC4
public IfcWorkPlanTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcWorkPlanTypeEnum mPredefinedType = IfcWorkPlanTypeEnum.NOTDEFINED;// : OPTIONAL IfcWorkPlanTypeEnum; IFC4
public IfcWorkPlanTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcWorkPlanTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcWorkPlan() : base() { }
public IfcWorkPlan(DatabaseIfc db) : base(db) { }
internal IfcWorkPlan(DatabaseIfc db, IfcWorkPlan p, DuplicateOptions options) : base(db, p, options) { mPredefinedType = p.mPredefinedType; }
internal IfcWorkPlan(DatabaseIfc db, IfcWorkPlan p, DuplicateOptions options) : base(db, p, options) { PredefinedType = p.PredefinedType; }
}
[Serializable]
public partial class IfcWorkSchedule : IfcWorkControl
{
internal IfcWorkScheduleTypeEnum mPredefinedType = IfcWorkScheduleTypeEnum.NOTDEFINED;// : OPTIONAL IfcWorkScheduleTypeEnum; IFC4
public IfcWorkScheduleTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = value; } }
private IfcWorkScheduleTypeEnum mPredefinedType = IfcWorkScheduleTypeEnum.NOTDEFINED;// : OPTIONAL IfcWorkScheduleTypeEnum; IFC4
public IfcWorkScheduleTypeEnum PredefinedType { get { return mPredefinedType; } set { mPredefinedType = validPredefinedType<IfcWorkScheduleTypeEnum>(value, mDatabase == null ? ReleaseVersion.IFC4X3 : mDatabase.Release); } }
internal IfcWorkSchedule() : base() { }
public IfcWorkSchedule(DatabaseIfc db) : base(db) { }
public IfcWorkSchedule(IfcWorkPlan workPlan) : base(workPlan.Database) { workPlan.AddAggregated(this); }
internal IfcWorkSchedule(DatabaseIfc db, IfcWorkSchedule s, DuplicateOptions options) : base(db, s, options) { mPredefinedType = s.mPredefinedType; }
internal IfcWorkSchedule(DatabaseIfc db, IfcWorkSchedule s, DuplicateOptions options) : base(db, s, options) { PredefinedType = s.PredefinedType; }
}
[Serializable]
public partial class IfcWorkTime : IfcSchedulingTime //IFC4
{
internal int mRecurrencePattern;// OPTIONAL IfcRecurrencePattern
internal IfcRecurrencePattern mRecurrencePattern;// OPTIONAL IfcRecurrencePattern
internal DateTime mStartDate = DateTime.MinValue;// : OPTIONAL IfcDate;
internal DateTime mFinishDate = DateTime.MinValue;// : OPTIONAL IfcDate;
internal IfcRecurrencePattern RecurrencePattern { get { return mDatabase[mRecurrencePattern] as IfcRecurrencePattern; } set { mRecurrencePattern = (value == null ? 0 : value.mIndex); } }
internal IfcRecurrencePattern RecurrencePattern { get { return mRecurrencePattern; } set { mRecurrencePattern = value; } }
public DateTime StartDate { get { return mStartDate; } set { mStartDate = value; } }
public DateTime FinishDate { get { return mFinishDate; } set { mFinishDate = value; } }

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

@ -36,7 +36,7 @@ namespace GeometryGym.Ifc
internal IfcZone() : base() { }
internal IfcZone(DatabaseIfc db, IfcZone z, DuplicateOptions options) : base(db, z, options) { mLongName = z.mLongName; }
internal IfcZone(DatabaseIfc m, string name) : base(m, name) { }
internal IfcZone(DatabaseIfc db, string name) : base(db, name) { }
public IfcZone(IfcSpatialElement e, string name, List<IfcSpace> spaces) : base(e, name)
{
if (spaces != null && spaces.Count > 0)

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

@ -209,7 +209,7 @@ namespace GeometryGym.Ifc
{
if (objects.Count() == 0)
return;
obj[name] = new JArray( objects.ToList().ConvertAll(x => mDatabase[x.Index].getJson(host, options)));
obj[name] = new JArray( objects.ToList().ConvertAll(x => mDatabase[x.StepId].getJson(host, options)));
}
public static void setJSON(IfcColourOrFactor colourOrFactor, string name, JObject obj, BaseClassIfc host, SetJsonOptions options)

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

@ -519,7 +519,7 @@ namespace GeometryGym.Ifc
else
obj["AppliedValue"] = mAppliedValue.getJson(this, options);
}
if (mUnitBasis > 0)
if (mUnitBasis != null)
obj["UnitBasis"] = UnitBasis.getJson(this, options);
//todo
setAttribute(obj, "Category", Category);
@ -527,7 +527,7 @@ namespace GeometryGym.Ifc
if (mArithmeticOperator != IfcArithmeticOperatorEnum.NONE)
obj["ArithmeticOperator"] = ArithmeticOperator.ToString();
if(mComponents.Count > 0)
obj["Components"] = new JArray(Components.ToList().ConvertAll(x => x.getJson(this, options)));
obj["Components"] = new JArray(Components.Select(x => x.getJson(this, options)));
if (mHasExternalReference.Count > 0)
obj["HasExternalReference"] = new JArray(HasExternalReference.ToList().ConvertAll(x => x.getJson(this, options)));
if (mHasConstraintRelationships.Count > 0)
@ -535,7 +535,7 @@ namespace GeometryGym.Ifc
JArray array = new JArray();
foreach (IfcResourceConstraintRelationship r in HasConstraintRelationships)
{
if (r.mIndex != host.mIndex)
if (r.StepId != host.StepId)
array.Add(r.getJson(this, options));
}
if(array.Count > 0)

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

@ -126,13 +126,8 @@ namespace GeometryGym.Ifc
Axis2 = mDatabase.ParseJObject<IfcDirection>(jobj);
jobj = obj.GetValue("LocalOrigin", StringComparison.InvariantCultureIgnoreCase) as JObject;
if (jobj != null)
{
JToken jtoken = jobj["href"];
if (jtoken != null)
mLocalOrigin = jtoken.Value<int>();
else
LocalOrigin = mDatabase.ParseJObject<IfcCartesianPoint>(jobj);
}
LocalOrigin = mDatabase.ParseJObject<IfcCartesianPoint>(jobj);
JToken token = obj.GetValue("Scale", StringComparison.InvariantCultureIgnoreCase);
if (token != null)
mScale = token.Value<double>();
@ -140,9 +135,9 @@ namespace GeometryGym.Ifc
protected override void setJSON(JObject obj, BaseClassIfc host, SetJsonOptions options)
{
base.setJSON(obj, host, options);
if (mAxis1 > 0)
if (mAxis1 != null)
obj["Axis1"] = Axis1.getJson(this, options);
if (mAxis2 > 0)
if (mAxis2 != null)
obj["Axis2"] = Axis2.getJson(this, options);
obj["LocalOrigin"] = LocalOrigin.getJson(this, options);
if (!double.IsNaN(mScale))
@ -162,7 +157,7 @@ namespace GeometryGym.Ifc
protected override void setJSON(JObject obj, BaseClassIfc host, SetJsonOptions options)
{
base.setJSON(obj, host, options);
if (mAxis3 > 0)
if (mAxis3 != null)
obj["Axis3"] = Axis3.getJson(this, options);
}
}

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

@ -300,8 +300,8 @@ namespace GeometryGym.Ifc
setAttribute(obj, "Location", Location);
setAttribute(obj, "Purpose", Purpose);
setAttribute(obj, "Revision", Revision);
if(mDocumentOwner > 0)
obj["DocumentOwner"] = mDatabase[mDocumentOwner].getJson(this, options);
if(mDocumentOwner != null)
obj["DocumentOwner"] = mDocumentOwner.getJson(this, options);
if(mEditors.Count > 0)
obj["Editors"] = new JArray(mEditors.ToList().ConvertAll(x => x.getJson(this, options)));
if (mCreationTime != DateTime.MinValue)
@ -367,7 +367,7 @@ namespace GeometryGym.Ifc
if (!double.IsNaN(mPanelWidth))
obj["PanelWidth"] = mPanelWidth;
obj["PanelPosition"] = mPanelPosition.ToString();
if (mShapeAspectStyle > 0)
if (mShapeAspectStyle != null)
obj["ShapeAspectStyle"] = ShapeAspectStyle.getJson(this, options);
}
}

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

@ -136,7 +136,7 @@ namespace GeometryGym.Ifc
JArray array = new JArray();
foreach (IfcRelVoidsElement rv in HasOpenings)
{
if (rv.mIndex != host.mIndex)
if (rv.StepId != host.StepId)
array.Add(rv.getJson(this, options));
}
if (array.Count > 0)

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

@ -104,7 +104,7 @@ namespace GeometryGym.Ifc
obj["CoordinateSpaceDimension"] = CoordinateSpaceDimension;
if (mPrecision > 0)
obj["Precision"] = Precision;
obj["WorldCoordinateSystem"] = mDatabase[mWorldCoordinateSystem.Index].getJson(this, options);
obj["WorldCoordinateSystem"] = mDatabase[mWorldCoordinateSystem.StepId].getJson(this, options);
if (mTrueNorth != null)
obj["TrueNorth"] = TrueNorth.getJson(this, options);
}
@ -114,7 +114,7 @@ namespace GeometryGym.Ifc
{
foreach (IfcGeometricRepresentationSubContext sub in HasSubContexts)
{
if (sub.mIndex != host.mIndex)
if (sub.StepId != host.StepId)
arr.Add(sub.getJson(this, options));
}
}

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

@ -47,8 +47,8 @@ namespace GeometryGym.Ifc
base.setJSON(obj, host, options);
obj["Name"] = Name;
setAttribute(obj, "Version", Version);
if (mPublisher > 0)
obj["Publisher"] = mDatabase[mPublisher].getJson(this, options);
if (mPublisher != null)
obj["Publisher"] = mPublisher.getJson(this, options);
//VersionDate
setAttribute(obj, "Location", Location);
setAttribute(obj, "Description", Description);

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

@ -150,7 +150,7 @@ namespace GeometryGym.Ifc
base.setJSON(obj, host, options);
setAttribute(obj, "Name", Name);
setAttribute(obj, "Description", Description);
if (mMaterial > 0)
if (mMaterial != null)
obj["Material"] = Material.getJson(this, options);
setAttribute(obj, "Category", Category);
}
@ -219,7 +219,7 @@ namespace GeometryGym.Ifc
{
base.setJSON(obj, host, options);
if (mMaterial > 0)
if (mMaterial != null)
obj["Material"] = Material.getJson(this, options);
obj["LayerThickness"] = mLayerThickness;
obj["IsVentilated"] = mIsVentilated.ToString();
@ -388,7 +388,7 @@ namespace GeometryGym.Ifc
obj["ValueComponent"] = DatabaseIfc.extract(value);
IfcUnit unit = UnitComponent;
if (unit != null)
obj["UnitComponent"] = mDatabase[mUnitComponent].getJson(this, options);
obj["UnitComponent"] = mUnitComponent.getJson(this, options);
}
}
public partial class IfcMetric : IfcConstraint
@ -413,7 +413,7 @@ namespace GeometryGym.Ifc
if (value != null)
DataValue = value;
else
mDataValueValue = DatabaseIfc.ParseValue(jobj);
mDataValue = DatabaseIfc.ParseValue(jobj) as IfcMetricValueSelect;
}
//else
@ -428,11 +428,11 @@ namespace GeometryGym.Ifc
base.setJSON(obj, host, options);
obj["BenchMark"] = mBenchMark.ToString();
setAttribute(obj, "ValueSource", ValueSource);
if (mDataValue > 0)
obj["DataValue"] = mDatabase[mDataValue].getJson(this, options);
else if(mDataValueValue != null)
obj["DataValue"] = DatabaseIfc.extract(mDataValueValue);
if (mReferencePath > 0)
if (mDataValue is BaseClassIfc o)
obj["DataValue"] = o.getJson(this, options);
else if(mDataValue is IfcValue val)
obj["DataValue"] = DatabaseIfc.extract(val);
if (mReferencePath != null)
obj["ReferencePath"] = ReferencePath.getJson(this, options);
}
}

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

@ -87,7 +87,7 @@ namespace GeometryGym.Ifc
JArray array = new JArray();
foreach (IfcRelAssigns ra in HasAssignments)
{
if (host == null || ra.mIndex != host.mIndex)
if (host == null || ra.StepId != host.StepId)
array.Add(ra.getJson(this, options));
}
if (array.Count > 0)
@ -149,7 +149,7 @@ namespace GeometryGym.Ifc
JArray array = new JArray();
foreach (IfcConstraint c in BenchmarkValues)
{
if (c.mIndex != host.mIndex)
if (c.StepId != host.StepId)
array.Add(c.getJson(this, options));
}
if (array.Count > 0)
@ -203,7 +203,7 @@ namespace GeometryGym.Ifc
JArray array = new JArray();
foreach (IfcRelFillsElement rf in HasFillings)
{
if (rf.mIndex != host.mIndex)
if (rf.StepId != host.StepId)
array.Add(rf.getJson(this, options));
}
if (array.Count > 0)

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

@ -102,10 +102,8 @@ namespace GeometryGym.Ifc
GivenName = token.Value<string>();
JArray array = obj.GetValue("MiddleName", StringComparison.InvariantCultureIgnoreCase) as JArray;
if (array != null)
{
foreach (string s in array.Values<string>())
AddMiddleName(s);
}
MiddleNames.AddRange(array.Values<string>());
Roles.AddRange(mDatabase.extractJArray<IfcActorRole>(obj.GetValue("Roles", StringComparison.InvariantCultureIgnoreCase) as JArray));
Addresses.AddRange(mDatabase.extractJArray<IfcAddress>(obj.GetValue("Addresses", StringComparison.InvariantCultureIgnoreCase) as JArray));
}
@ -577,8 +575,8 @@ namespace GeometryGym.Ifc
obj["UpperBoundValue"] = DatabaseIfc.extract(UpperBoundValue);
if (mLowerBoundValue != null)
obj["LowerBoundValue"] = DatabaseIfc.extract(LowerBoundValue);
if (mUnit > 0)
obj["Unit"] = mDatabase[mUnit].getJson(this, options);
if (mUnit is BaseClassIfc o)
obj["Unit"] = o.getJson(this, options);
if (mSetPointValue != null)
obj["SetPointValue"] = DatabaseIfc.extract(SetPointValue);
}
@ -592,8 +590,8 @@ namespace GeometryGym.Ifc
obj["UpperBoundValue"] = DatabaseIfc.extract(UpperBoundValue);
if (mLowerBoundValue != null)
obj["LowerBoundValue"] = DatabaseIfc.extract(LowerBoundValue);
if (mUnit > 0)
obj["Unit"] = mDatabase[mUnit].getJson(this, options);
if (mUnit is BaseClassIfc o)
obj["Unit"] = o.getJson(this, options);
if (mSetPointValue != null)
obj["SetPointValue"] = DatabaseIfc.extract(SetPointValue);
}
@ -629,7 +627,7 @@ namespace GeometryGym.Ifc
{
base.setJSON(obj, host, options);
obj["EnumerationValues"] = new JArray(EnumerationValues.ToList().ConvertAll(x => DatabaseIfc.extract(x)));
if (mEnumerationReference > 0)
if (mEnumerationReference != null)
obj["EnumerationReference"] = EnumerationReference.getJson(this, options);
}
}
@ -661,7 +659,7 @@ namespace GeometryGym.Ifc
if(array != null)
{
foreach (IfcRelDefinesByTemplate r in mDatabase.extractJArray<IfcRelDefinesByTemplate>(array))
r.AddRelated(this);
r.RelatedPropertySets.Add(this);
}
array = obj.GetValue("DefinesOccurrence", StringComparison.InvariantCultureIgnoreCase) as JArray;
if(array != null)

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

@ -127,7 +127,7 @@ namespace GeometryGym.Ifc
setAttribute(obj, "InstanceName", InstanceName);
if (mListPositions.Count > 0)
obj["ListPositions"] = new JArray(mListPositions.ToArray());
if (mInnerReference > 0)
if (mInnerReference != null)
obj["InnerReference"] = InnerReference.getJson(this, options);
}
}
@ -237,7 +237,7 @@ namespace GeometryGym.Ifc
{
base.setJSON(obj, host, options);
if (host != mRelatingProduct)
obj["RelatingProduct"] = mDatabase[mRelatingProduct.Index].getJson(this, options);
obj["RelatingProduct"] = mDatabase[mRelatingProduct.StepId].getJson(this, options);
}
}
public partial class IfcRelAssociates : IfcRelationship //ABSTRACT SUPERTYPE OF (ONEOF(IfcRelAssociatesApproval,IfcRelAssociatesclassification,IfcRelAssociatesConstraint,IfcRelAssociatesDocument,IfcRelAssociatesLibrary,IfcRelAssociatesMaterial))
@ -292,7 +292,7 @@ namespace GeometryGym.Ifc
{
base.setJSON(obj, host, options);
setAttribute(obj, "Intent", Intent);
if (host.mIndex != mRelatingConstraint)
if (host != mRelatingConstraint)
obj["RelatingConstraint"] = RelatingConstraint.getJson(this, options);
}
}
@ -308,8 +308,8 @@ namespace GeometryGym.Ifc
protected override void setJSON(JObject obj, BaseClassIfc host, SetJsonOptions options)
{
base.setJSON(obj, host, options);
if (host.mIndex != mRelatingDocument)
obj["RelatingDocument"] = mDatabase[mRelatingDocument].getJson(this, options);
if (host != mRelatingDocument)
obj["RelatingDocument"] = mRelatingDocument.getJson(this, options);
}
}
public partial class IfcRelAssociatesLibrary : IfcRelAssociates
@ -340,8 +340,8 @@ namespace GeometryGym.Ifc
protected override void setJSON(JObject obj, BaseClassIfc host, SetJsonOptions options)
{
base.setJSON(obj, host, options);
if (host.mIndex != mRelatingMaterial)
obj["RelatingMaterial"] = mDatabase[mRelatingMaterial].getJson(this, options);
if (host != mRelatingMaterial)
obj["RelatingMaterial"] = mRelatingMaterial.getJson(this, options);
}
}
public partial class IfcRelAssociatesProfileDef : IfcRelAssociates
@ -376,28 +376,28 @@ namespace GeometryGym.Ifc
{
JToken measure = jobj["IfcPlaneAngleMeasure"];
if (measure != null)
mProfileOrientationValue = measure.Value<double>();
mProfileOrientation = new IfcPlaneAngleMeasure(measure.Value<double>());
else
{
IfcDirection dir = mDatabase.ParseJObject<IfcDirection>(jobj);
if (dir != null)
mProfileOrientation = dir.mIndex;
mProfileOrientation = dir;
}
}
}
protected override void setJSON(JObject obj, BaseClassIfc host, SetJsonOptions options)
{
base.setJSON(obj, host, options);
if (host.mIndex != mRelatingProfileProperties)
obj["RelatingProfileProperties"] = mDatabase[mRelatingProfileProperties].getJson(this, options);
if (mProfileSectionLocation > 0 && host.mIndex != mProfileSectionLocation)
obj["ProfileSectionLocation"] = mDatabase[mProfileSectionLocation].getJson(this, options);
if (mProfileOrientation > 0)
obj["ProfileOrientation"] = mDatabase[mProfileOrientation].getJson(this, options);
else if (!double.IsNaN(mProfileOrientationValue))
if (host != mRelatingProfileProperties)
obj["RelatingProfileProperties"] = mRelatingProfileProperties.getJson(this, options);
if (mProfileSectionLocation != null && host != mProfileSectionLocation)
obj["ProfileSectionLocation"] = mProfileSectionLocation.getJson(this, options);
if (mProfileOrientation is BaseClassIfc o)
obj["ProfileOrientation"] = o.getJson(this, options);
else if (mProfileOrientation is IfcPlaneAngleMeasure planeAngleMeasure)
{
JObject jobj = new JObject();
jobj["IfcPlaneAngleMeasure"] = mProfileOrientationValue;
jobj["IfcPlaneAngleMeasure"] = planeAngleMeasure.Measure;
obj["ProfileOrientation"] = jobj;
}
}
@ -429,17 +429,17 @@ namespace GeometryGym.Ifc
protected override void setJSON(JObject obj, BaseClassIfc host, SetJsonOptions options)
{
base.setJSON(obj, host, options);
if (host == null || host.mIndex != mRelatingStructuralMember)
if (host == null || host != mRelatingStructuralMember)
obj["RelatingStructuralMember"] = RelatingStructuralMember.getJson(host, options);
if (host == null || host.mIndex != mRelatedStructuralConnection)
if (host == null || host != mRelatedStructuralConnection)
obj["RelatedStructuralConnection"] = RelatedStructuralConnection.getJson(host, options);
if (mAppliedCondition > 0)
if (mAppliedCondition != null)
obj["AppliedCondition"] = AppliedCondition.getJson(this, options);
if (mAdditionalConditions > 0)
if (mAdditionalConditions != null)
obj["AdditionalConditions"] = AdditionalConditions.getJson(this, options);
if (mSupportedLength > 0)
obj["SupportedLength"] = SupportedLength;
if (mConditionCoordinateSystem > 0)
if (mConditionCoordinateSystem != null)
obj["ConditionCoordinateSystem"] = ConditionCoordinateSystem.getJson(this, options);
}
}
@ -473,7 +473,7 @@ namespace GeometryGym.Ifc
base.setJSON(obj, host, options);
if (RelatingContext != host)
obj["RelatingContext"] = RelatingContext.getJson(this, options);
obj["RelatedDefinitions"] = new JArray(mRelatedDefinitions.ConvertAll(x => mDatabase[x.Index].getJson(this, options)));
obj["RelatedDefinitions"] = new JArray(mRelatedDefinitions.ConvertAll(x => mDatabase[x.StepId].getJson(this, options)));
}
}
public partial class IfcRelDefinesByProperties : IfcRelDefines
@ -497,7 +497,7 @@ namespace GeometryGym.Ifc
base.parseJObject(obj);
JArray array = obj.GetValue("RelatedPropertySets", StringComparison.InvariantCultureIgnoreCase) as JArray;
if (array != null)
mDatabase.extractJArray<IfcPropertySetDefinition>(array).ForEach(x=>AddRelated(x));
RelatedPropertySets.AddRange(mDatabase.extractJArray<IfcPropertySetDefinition>(array));
JObject jobj = obj.GetValue("RelatingTemplate", StringComparison.InvariantCultureIgnoreCase) as JObject;
if(jobj != null)
RelatingTemplate = extractObject<IfcPropertySetTemplate>(jobj);
@ -509,7 +509,7 @@ namespace GeometryGym.Ifc
//List<IfcObject> relatedObjects = RelatedObjects;
//JArray array = new JArray();
//foreach (IfcObject obj in relatedObjects)
// array.Add(obj.Index);
// array.Add(obj.StepId);
//obj["RelatedObjects"] = array;
}
}
@ -532,7 +532,7 @@ namespace GeometryGym.Ifc
//List<IfcObject> relatedObjects = RelatedObjects;
//JArray array = new JArray();
//foreach (IfcObject obj in relatedObjects)
// array.Add(obj.Index);
// array.Add(obj.StepId);
//obj["RelatedObjects"] = array;
}
}
@ -551,10 +551,10 @@ namespace GeometryGym.Ifc
protected override void setJSON(JObject obj, BaseClassIfc host, SetJsonOptions options)
{
base.setJSON(obj, host, options);
if (host.mIndex != mRelatingOpeningElement)
obj["RelatingOpeningElement"] = mDatabase[mRelatingOpeningElement].getJson(this, options);
if (host.mIndex != mRelatedBuildingElement)
obj["RelatedBuildingElement"] = mDatabase[mRelatedBuildingElement].getJson(this, options);
if (host != mRelatingOpeningElement)
obj["RelatingOpeningElement"] = mRelatingOpeningElement.getJson(this, options);
if (host != mRelatedBuildingElement)
obj["RelatedBuildingElement"] = mRelatedBuildingElement.getJson(this, options);
}
}
public partial class IfcRelNests : IfcRelDecomposes
@ -749,8 +749,8 @@ namespace GeometryGym.Ifc
foreach (IfcResourceObjectSelect r in RelatedResourceObjects)
{
IfcResourceConstraintRelationship rcr = r as IfcResourceConstraintRelationship;
if (r.Index != host.mIndex)
array.Add(mDatabase[r.Index].getJson(this, options));
if (r.StepId != host.StepId)
array.Add(mDatabase[r.StepId].getJson(this, options));
}
if (array.Count > 0)
obj["RelatedResourceObjects"] = array;

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

@ -238,12 +238,12 @@ namespace GeometryGym.Ifc
obj["TemplateType"] = mTemplateType.ToString();
setAttribute(obj, "PrimaryMeasureType", PrimaryMeasureType);
setAttribute(obj, "SecondaryMeasureType", SecondaryMeasureType);
if (mEnumerators > 0)
if (mEnumerators != null)
obj["Enumerators"] = Enumerators.getJson(this, options);
if (mPrimaryUnit > 0)
obj["PrimaryUnit"] = mDatabase[mPrimaryUnit].getJson(this, options);
if (mSecondaryUnit > 0)
obj["SecondaryUnit"] = mDatabase[mSecondaryUnit].getJson(this, options);
if (mPrimaryUnit is BaseClassIfc o)
obj["PrimaryUnit"] = o.getJson(this, options);
if (mSecondaryUnit != null)
obj["SecondaryUnit"] = mSecondaryUnit.getJson(this, options);
setAttribute(obj, "Expression", Expression);
if (mAccessState != IfcStateEnum.NOTDEFINED)
obj["AccessState"] = mAccessState.ToString();
@ -476,7 +476,7 @@ namespace GeometryGym.Ifc
}
else
obj["DestabilizingLoad"] = mDestabilizingLoad == IfcLogicalEnum.TRUE;
if (mCausedBy > 0)
if (mCausedBy != null)
obj["CausedBy"] = CausedBy.getJson(this, options);
}
}
@ -530,12 +530,12 @@ namespace GeometryGym.Ifc
base.setJSON(obj, host, options);
if (mPredefinedType != IfcAnalysisModelTypeEnum.NOTDEFINED)
obj["PredefinedType"] = mPredefinedType.ToString();
if (mOrientationOf2DPlane > 0)
if (mOrientationOf2DPlane != null)
obj["OrientationOf2DPlane"] = OrientationOf2DPlane.getJson(this, options);
if (mLoadedBy.Count > 0)
obj["LoadedBy"] = new JArray(mLoadedBy.ConvertAll(x => mDatabase[x].getJson(this, options)));
obj["LoadedBy"] = new JArray(mLoadedBy.ConvertAll(x => x.getJson(this, options)));
if (mHasResults.Count > 0)
obj["HasResults"] = new JArray(mHasResults.ConvertAll(x => mDatabase[x].getJson(this, options)));
obj["HasResults"] = new JArray(mHasResults.ConvertAll(x => x.getJson(this, options)));
if (mSharedPlacement != null)
obj["SharedPlacement"] = SharedPlacement.getJson(this, options);
}
@ -555,13 +555,13 @@ namespace GeometryGym.Ifc
{
base.setJSON(obj, host, options);
if (mAppliedCondition > 0)
if (mAppliedCondition != null)
obj["AppliedCondition"] = AppliedCondition.getJson(this, options);
JArray array = new JArray();
foreach(IfcRelConnectsStructuralMember connects in mConnectsStructuralMembers)
{
IfcStructuralMember member = connects.RelatingStructuralMember;
if(host == null || member.mIndex != host.mIndex)
if(host == null || member.StepId != host.StepId)
array.Add(member.getJson(this, options));
}
if (array.Count > 0)
@ -746,7 +746,7 @@ namespace GeometryGym.Ifc
foreach (IfcRelConnectsStructuralMember connects in mConnectedBy)
{
IfcStructuralConnection connection = connects.RelatedStructuralConnection;
if (host == null || connection.mIndex != host.mIndex)
if (host == null || connection.StepId != host.StepId)
array.Add(connects.getJson(this, options));
}
if (array.Count > 0)
@ -765,7 +765,7 @@ namespace GeometryGym.Ifc
protected override void setJSON(JObject obj, BaseClassIfc host, SetJsonOptions options)
{
base.setJSON(obj, host, options);
if (mConditionCoordinateSystem > 0)
if (mConditionCoordinateSystem != null)
obj["ConditionCoordinateSystem"] = ConditionCoordinateSystem.getJson(this, options);
}
}

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

@ -251,10 +251,10 @@ namespace GeometryGym.Ifc
internal JArray getJSON(DatabaseIfc db)
{
JArray result = new JArray();
if (!double.IsNaN(mIfcParameterValue))
result.Add(DatabaseIfc.extract(new IfcParameterValue(mIfcParameterValue)));
if (mIfcCartesianPoint > 0)
result.Add(db[mIfcCartesianPoint].getJson(null, new BaseClassIfc.SetJsonOptions()));
if (!double.IsNaN(ParameterValue))
result.Add(DatabaseIfc.extract(new IfcParameterValue(ParameterValue)));
if (CartesianPoint != null)
result.Add(CartesianPoint.getJson(null, new BaseClassIfc.SetJsonOptions()));
return result;
}
}

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

@ -72,7 +72,7 @@ namespace GeometryGym.Ifc
base.setJSON(obj, host, options);
JArray array = new JArray();
foreach (IfcUnit unit in mUnits)
array.Add(mDatabase[unit.Index].getJson(this, options));
array.Add(mDatabase[unit.StepId].getJson(this, options));
obj["Units"] = array;
}
}

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

@ -251,7 +251,7 @@ namespace GeometryGym.Ifc
BaseClassIfc result = BaseClassIfc.LineParser(kw, str, schema, dict);
if (result == null)
return null;
result.mIndex = stepID;
result.mStepId = stepID;
return result;
}
@ -547,6 +547,8 @@ namespace GeometryGym.Ifc
}
internal static IfcValue parseValue(string str)
{
if (string.Compare(str, "$", true) == 0)
return null;
IfcMeasureValue mv = parseMeasureValue(str);
if (mv != null)
return mv;

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

@ -40,7 +40,7 @@ namespace GeometryGym.Ifc
}
public partial class IfcActor
{
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + ",#" + mTheActor.Index; }
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + ",#" + mTheActor.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);
@ -120,7 +120,7 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return base.BuildStringSTEP(release) + ",(#" + string.Join(",#", mVoids.ConvertAll(x => x.Index)) + ")";
return base.BuildStringSTEP(release) + ",(" + string.Join(",", mVoids.ConvertAll(x => "#" + x.StepId)) + ")";
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
@ -313,7 +313,7 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return StepOptionalLengthString(mStartDistAlong) + ",(#" + string.Join(",#", mSegments.ConvertAll(x => x.Index)) + ")";
return StepOptionalLengthString(mStartDistAlong) + ",(#" + string.Join(",", mSegments.ConvertAll(x => "#" + x.StepId)) + ")";
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
@ -323,7 +323,7 @@ namespace GeometryGym.Ifc
}
public partial class IfcAlignment2DHorizontalSegment
{
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + ",#" + mCurveGeometry.Index; }
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + ",#" + mCurveGeometry.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);
@ -368,7 +368,7 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return "(#" + string.Join(",#", mSegments.ConvertAll(x => x.Index)) + ")";
return "(" + string.Join(",", mSegments.ConvertAll(x => "#" + x.StepId)) + ")";
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary) { mSegments.AddRange(ParserSTEP.StripListLink(str, ref pos, len).ConvertAll(x => dictionary[x] as IfcAlignment2DVerticalSegment)); }
}
@ -389,7 +389,7 @@ namespace GeometryGym.Ifc
protected override string BuildStringSTEP(ReleaseVersion release)
{
return base.BuildStringSTEP(release) + "," + ParserSTEP.DoubleOptionalToString(mRailHeadDistance) +
(release == ReleaseVersion.IFC4X3_RC2 ? (mCantSegments.Count == 0 ? ",$" : ",(" + string.Join(",", mCantSegments.ConvertAll(x => "#" + x.Index)) + ")") : "");
(release == ReleaseVersion.IFC4X3_RC2 ? (mCantSegments.Count == 0 ? ",$" : ",(" + string.Join(",", mCantSegments.ConvertAll(x => "#" + x.StepId)) + ")") : "");
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
@ -443,7 +443,7 @@ namespace GeometryGym.Ifc
protected override string BuildStringSTEP(ReleaseVersion release)
{
return base.BuildStringSTEP(release) + (release < ReleaseVersion.IFC4X3_RC4 ? "," + ParserSTEP.DoubleOptionalToString(mStartDistAlong) : "") +
(release == ReleaseVersion.IFC4X3_RC2 ? (mHorizontalSegments.Count == 0 ? ",$" : ",(#" + string.Join(",#", mHorizontalSegments.ConvertAll(x => x.Index)) + ")") : "");
(release == ReleaseVersion.IFC4X3_RC2 ? (mHorizontalSegments.Count == 0 ? ",$" : ",(" + string.Join(",", mHorizontalSegments.ConvertAll(x => "#" + x.StepId)) + ")") : "");
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
@ -458,7 +458,7 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return base.BuildStringSTEP(release) + ",#" + mStartPoint.mIndex + "," + ParserSTEP.DoubleToString(mStartDirection) + "," +
return base.BuildStringSTEP(release) + ",#" + mStartPoint.StepId + "," + ParserSTEP.DoubleToString(mStartDirection) + "," +
formatLength(mStartRadiusOfCurvature) + "," +
formatLength(mEndRadiusOfCurvature) + "," + formatLength(mSegmentLength) + "," +
ParserSTEP.DoubleOptionalToString(mGravityCenterLineHeight) + ",." + mPredefinedType.ToString() + ".";
@ -506,7 +506,7 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return base.BuildStringSTEP(release) + (release == ReleaseVersion.IFC4X3_RC2 ? (mVerticalSegments.Count == 0 ? ",$" : ",(#" + string.Join(",#", mVerticalSegments.ConvertAll(x => x.Index)) + ")") : "");
return base.BuildStringSTEP(release) + (release == ReleaseVersion.IFC4X3_RC2 ? (mVerticalSegments.Count == 0 ? ",$" : ",(" + string.Join(",", mVerticalSegments.Select(x => "#" + x.StepId)) + ")") : "");
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
@ -556,7 +556,8 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return "#" + mOuterBoundary.Index + (mInnerBoundaries.Count == 0 ? ",$" : ",(#" + string.Join(",#", mInnerBoundaries.ConvertAll(x=>x.mIndex)) + ")");
return "#" + mOuterBoundary.StepId +
(mInnerBoundaries.Count == 0 ? ",$" : ",(" + string.Join(",", mInnerBoundaries.Select(x => "#" + x.StepId)) + ")");
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
@ -597,7 +598,7 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return (mApplicationDeveloper != null ? "#" + mApplicationDeveloper.Index : "$") + ",'" + mVersion + "','" +
return (mApplicationDeveloper != null ? "#" + mApplicationDeveloper.StepId : "$") + ",'" + mVersion + "','" +
(string.IsNullOrEmpty(mApplicationFullName) ? mDatabase.Factory.ApplicationFullName : mApplicationFullName) + "','" +
(string.IsNullOrEmpty(mApplicationIdentifier) ? mDatabase.Factory.ApplicationIdentifier : mApplicationIdentifier) + "'";
}
@ -624,9 +625,9 @@ namespace GeometryGym.Ifc
else
result += ParserSTEP.LinkToString((mAppliedValue as BaseClassIfc).StepId);
}
result += "," + ParserSTEP.LinkToString(mUnitBasis) + ",";
result += (mUnitBasis == null ? ",$," : ",#" + mUnitBasis.StepId + ",");
if (release < ReleaseVersion.IFC4)
return result + (mSSApplicableDate == null ? ",$" : ",#" + mSSApplicableDate.Index) + (mSSFixedUntilDate == null ? ",$" : ",#" + mSSFixedUntilDate.Index);
return result + (mSSApplicableDate == null ? ",$" : ",#" + mSSApplicableDate.StepId) + (mSSFixedUntilDate == null ? ",$" : ",#" + mSSFixedUntilDate.StepId);
result += IfcDate.STEPAttribute(mApplicableDate) + "," + IfcDate.STEPAttribute(mFixedUntilDate);
result += (string.IsNullOrEmpty(mCategory) ? ",$," : ",'" + ParserIfc.Encode(mCategory) + "',") + (string.IsNullOrEmpty(mCondition) ? "$," : "'" + ParserIfc.Encode(mCondition) + "',");
return result + (mArithmeticOperator == IfcArithmeticOperatorEnum.NONE ? "$," : "." + mArithmeticOperator.ToString() + ".,")
@ -636,12 +637,12 @@ namespace GeometryGym.Ifc
{
mName = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mDescription = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
string s = ParserSTEP.StripField(str, ref pos, len);
string s = ParserSTEP.StripField(str, ref pos, len).Trim();
if(s.StartsWith("IFC"))
mAppliedValue = ParserIfc.parseValue(s);
else
mAppliedValue = dictionary[ ParserSTEP.ParseLink(s)] as IfcAppliedValueSelect;
mUnitBasis = ParserSTEP.StripLink(str, ref pos, len);
mAppliedValue = dictionary[ParserSTEP.ParseLink(s)] as IfcAppliedValueSelect;
mUnitBasis = dictionary[ ParserSTEP.StripLink(str, ref pos, len)] as IfcMeasureWithUnit;
if(release < ReleaseVersion.IFC4)
{
mSSApplicableDate = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcDateTimeSelect;
@ -664,8 +665,8 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return "#" + mComponentOfTotal.StepId + ",(#" +
string.Join(",#", mComponents.Select(x=>x.Index))+ "),." + mArithmeticOperator.ToString() + ".," + mName + "," + mDescription;
return "#" + mComponentOfTotal.StepId + ",(" +
string.Join(",", mComponents.Select(x=> "#" + x.StepId))+ "),." + mArithmeticOperator.ToString() + ".," + mName + "," + mDescription;
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
@ -724,61 +725,62 @@ namespace GeometryGym.Ifc
}
public partial class IfcApprovalActorRelationship
{
protected override string BuildStringSTEP(ReleaseVersion release) { return ParserSTEP.LinkToString(mActor) + "," + ParserSTEP.LinkToString(mApproval) + "," + ParserSTEP.LinkToString(mRole); }
protected override string BuildStringSTEP(ReleaseVersion release)
{
return "#" + mActor.StepId + ",#" + mApproval.StepId + ",#" + mRole.StepId; }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
mActor = ParserSTEP.StripLink(str, ref pos, len);
mApproval = ParserSTEP.StripLink(str, ref pos, len);
mRole = ParserSTEP.StripLink(str, ref pos, len);
mActor = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcActorSelect;
mApproval = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcApproval;
mRole = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcActorRole;
}
}
public partial class IfcApprovalPropertyRelationship
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
string str = "(" + ParserSTEP.LinkToString(mApprovedProperties[0]);
for(int icounter = 1; icounter < mApprovedProperties.Count; icounter++)
str += "," + ParserSTEP.LinkToString(mApprovedProperties[icounter]);
str += ")," + ParserSTEP.LinkToString(mApproval);
return str;
return "(" + String.Join(",", mApprovedProperties.Select(x=>"#" + x.StepId)) + "),#" + mApproval.StepId;
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
mApprovedProperties = ParserSTEP.StripListLink(str, ref pos, len);
mApproval = ParserSTEP.StripLink(str, ref pos, len);
mApprovedProperties.AddRange(ParserSTEP.StripListLink(str, ref pos, len).Select(x=>dictionary[x] as IfcProperty));
mApproval = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcApproval;
}
}
public partial class IfcApprovalRelationship
{
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + "," + ParserSTEP.LinkToString(mRelatedApproval) + "," + ParserSTEP.LinkToString(mRelatingApproval) + (release < ReleaseVersion.IFC4 ? (mDescription == "$" ? ",$,'" : ",'" + mDescription + "','") + mName + "'": ""); }
protected override string BuildStringSTEP(ReleaseVersion release)
{
return base.BuildStringSTEP(release) + ",#" + mRelatedApproval.StepId + ",#" + mRelatingApproval.StepId +
(release < ReleaseVersion.IFC4 ? (string.IsNullOrEmpty(mDescription) ? ",$,'" : ",'" + ParserIfc.Encode(mDescription) + "','") + ParserIfc.Encode(mName) + "'": ""); }
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);
mRelatedApproval = ParserSTEP.StripLink(str, ref pos, len);
mRelatingApproval = ParserSTEP.StripLink(str, ref pos, len);
mRelatedApproval = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcApproval;
mRelatingApproval = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcApproval;
if (release < ReleaseVersion.IFC4)
{
mDescription = ParserSTEP.StripString(str, ref pos, len);
mName = ParserSTEP.StripString(str, ref pos, len);
mDescription = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mName = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
}
}
}
public partial class IfcArbitraryClosedProfileDef
{
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + "," + ParserSTEP.LinkToString(mOuterCurve); }
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + ",#" + mOuterCurve.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);
mOuterCurve = ParserSTEP.StripLink(str, ref pos, len);
mOuterCurve = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcCurve;
}
}
public partial class IfcArbitraryOpenProfileDef
{
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + "," + ParserSTEP.LinkToString(mCurve); }
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + ",#" + mCurve.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);
mCurve = ParserSTEP.StripLink(str, ref pos, len);
mCurve = Database[ParserSTEP.StripLink(str, ref pos, len)] as IfcBoundedCurve;
}
}
public partial class IfcArbitraryProfileDefWithVoids
@ -799,26 +801,28 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return base.BuildStringSTEP(release) + (string.IsNullOrEmpty(mIdentification) ? ",$," : ",'" + ParserIfc.Encode(mIdentification) + "',") + ParserSTEP.LinkToString(mOriginalValue) + "," +ParserSTEP.LinkToString(mCurrentValue) + "," +
ParserSTEP.LinkToString(mTotalReplacementCost) + "," +ParserSTEP.LinkToString(mOwner) + "," +
ParserSTEP.LinkToString(mUser) + "," +ParserSTEP.LinkToString(mResponsiblePerson) + "," +
(mDatabase.Release < ReleaseVersion.IFC4 ? ParserSTEP.LinkToString(mIncorporationDateSS) : IfcDate.STEPAttribute(mIncorporationDate)) + "," +ParserSTEP.LinkToString(mDepreciatedValue);
return base.BuildStringSTEP(release) + (string.IsNullOrEmpty(mIdentification) ? ",$," : ",'" + ParserIfc.Encode(mIdentification) +
(mOriginalValue == null ? "',$" : "',#" + mOriginalValue.StepId) + (mCurrentValue == null ? ",$" : ",#" + mCurrentValue.StepId) +
(mTotalReplacementCost == null ? ",$" : ",#" + mTotalReplacementCost.StepId) + (mOwner == null ? ",$" : ",#" + mOwner.StepId) +
(mUser == null ? ",$" : ",#" + mUser.StepId) + (mResponsiblePerson == null ? ",$" : ",#" + mResponsiblePerson.StepId) +
(mDatabase.Release < ReleaseVersion.IFC4 ? (mIncorporationDate == null ? ",$" : ",#" + mIncorporationDateSS.StepId) :
IfcDate.STEPAttribute(mIncorporationDate))) + (mDepreciatedValue == null ? ",$" : ",#" + mDepreciatedValue.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);
mIdentification = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mOriginalValue = ParserSTEP.StripLink(str, ref pos, len);
mCurrentValue = ParserSTEP.StripLink(str, ref pos, len);
mTotalReplacementCost = ParserSTEP.StripLink(str, ref pos, len);
mOwner = ParserSTEP.StripLink(str, ref pos, len);
mUser = ParserSTEP.StripLink(str, ref pos, len);
mResponsiblePerson = ParserSTEP.StripLink(str, ref pos, len);
mOriginalValue = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcCostValue;
mCurrentValue = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcCostValue;
mTotalReplacementCost = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcCostValue;
mOwner = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcActorSelect;
mUser = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcActorSelect;
mResponsiblePerson = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcPerson;
if (release < ReleaseVersion.IFC4)
mIncorporationDateSS = ParserSTEP.StripLink(str, ref pos, len);
mIncorporationDateSS = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcCalendarDate;
else
mIncorporationDate = IfcDate.ParseSTEP(ParserSTEP.StripString(str, ref pos, len));
mDepreciatedValue = ParserSTEP.StripLink(str, ref pos, len);
mDepreciatedValue = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcCostValue;
}
}
public partial class IfcAsymmetricIShapeProfileDef
@ -898,11 +902,11 @@ namespace GeometryGym.Ifc
}
public partial class IfcAxis1Placement
{
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + "," + ParserSTEP.LinkToString(mAxis); }
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + (mAxis == null ? ",$" : ",#" + mAxis.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);
mAxis = ParserSTEP.StripLink(str, ref pos, len);
mAxis = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcDirection;
}
}
public partial class IfcAxis2Placement2D

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

@ -217,10 +217,10 @@ namespace GeometryGym.Ifc
}
public partial class IfcBoundingBox
{
protected override string BuildStringSTEP(ReleaseVersion release) { return ParserSTEP.LinkToString(mCorner) + "," + ParserSTEP.DoubleToString(mXDim) + "," + ParserSTEP.DoubleToString(mYDim) + "," + ParserSTEP.DoubleToString(mZDim); }
protected override string BuildStringSTEP(ReleaseVersion release) { return "#" + mCorner.StepId + "," + ParserSTEP.DoubleToString(mXDim) + "," + ParserSTEP.DoubleToString(mYDim) + "," + ParserSTEP.DoubleToString(mZDim); }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
mCorner = ParserSTEP.StripLink(str, ref pos, len);
mCorner = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcCartesianPoint;
mXDim = ParserSTEP.StripDouble(str, ref pos, len);
mYDim = ParserSTEP.StripDouble(str, ref pos, len);
mZDim = ParserSTEP.StripDouble(str, ref pos, len);
@ -228,8 +228,8 @@ namespace GeometryGym.Ifc
}
public partial class IfcBoxedHalfSpace
{
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + "," + ParserSTEP.LinkToString(mEnclosure); }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary) { mEnclosure = ParserSTEP.StripLink(str, ref pos, len); }
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + ",#" + mEnclosure.StepId; }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary) { mEnclosure = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcBoundingBox; }
}
public partial class IfcBridge
{

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

@ -315,14 +315,13 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return ParserSTEP.LinkToString(mAxis1) + "," + ParserSTEP.LinkToString(mAxis2) + "," +
ParserSTEP.LinkToString(mLocalOrigin) + "," + ParserSTEP.DoubleOptionalToString(mScale);
return (mAxis1 == null ? "$" : "#" + mAxis1.StepId) + (mAxis2 == null ? ",$" : ",#" + mAxis2.StepId) + ",#" + mLocalOrigin.StepId + "," + ParserSTEP.DoubleOptionalToString(mScale);
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
mAxis1 = ParserSTEP.StripLink(str, ref pos, len);
mAxis2 = ParserSTEP.StripLink(str, ref pos, len);
mLocalOrigin = ParserSTEP.StripLink(str, ref pos, len);
mAxis1 = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcDirection;
mAxis2 = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcDirection;
mLocalOrigin = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcCartesianPoint;
Scale = ParserSTEP.StripDouble(str, ref pos, len);
}
}
@ -337,11 +336,11 @@ namespace GeometryGym.Ifc
}
public partial class IfcCartesianTransformationOperator3D
{
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + "," + ParserSTEP.LinkToString(mAxis3); }
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + (mAxis3 == null ? ",$" : ",#" + mAxis3.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);
mAxis3 = ParserSTEP.StripLink(str, ref pos, len);
mAxis3 = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcDirection;
}
}
public partial class IfcCartesianTransformationOperator3DnonUniform
@ -468,10 +467,10 @@ namespace GeometryGym.Ifc
if (mReferenceTokens.Count > 0)
tokens = "('" + string.Join("','", mReferenceTokens) + "')";
bool older = mDatabase.Release <= ReleaseVersion.IFC2x3;
string result = (string.IsNullOrEmpty(mSource) ? (older ? "'Unknown'," : "$,") : "'" + ParserIfc.Encode(mSource) + "',") +
(string.IsNullOrEmpty(mEdition) ? (older ? "'Unknown'," : "$,") : "'" + ParserIfc.Encode(mEdition) + "',") + (older ? ParserSTEP.LinkToString(mEditionDateSS) : IfcDate.STEPAttribute(mEditionDate)) +
",'" + ParserIfc.Encode(mName) + (older ? "'" : (string.IsNullOrEmpty(mDescription) ? "',$," : "','" + ParserIfc.Encode(mDescription) + "',") + (string.IsNullOrEmpty(mSpecification) ? "$," : "'" + ParserIfc.Encode(mSpecification) + "',") + tokens);
return result;
return (string.IsNullOrEmpty(mSource) ? (older ? "'Unknown'," : "$,") : "'" + ParserIfc.Encode(mSource) + "',") +
(string.IsNullOrEmpty(mEdition) ? (older ? "'Unknown'," : "$,") : "'" + ParserIfc.Encode(mEdition) + "',") +
(older ? (mEditionDateSS == null ? "$" : "#" + mEditionDateSS.StepId) : IfcDate.STEPAttribute(mEditionDate)) + ",'" +
ParserIfc.Encode(mName) + (older ? "'" : (string.IsNullOrEmpty(mDescription) ? "',$," : "','" + ParserIfc.Encode(mDescription) + "',") + (string.IsNullOrEmpty(mSpecification) ? "$," : "'" + ParserIfc.Encode(mSpecification) + "',") + tokens);
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
@ -479,7 +478,7 @@ namespace GeometryGym.Ifc
mEdition = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
if (release <= ReleaseVersion.IFC2x3)
{
mEditionDateSS = ParserSTEP.StripLink(str, ref pos, len);
mEditionDateSS = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcCalendarDate;
mName = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
}
else
@ -494,37 +493,40 @@ namespace GeometryGym.Ifc
}
public partial class IfcClassificationItem
{
protected override string BuildStringSTEP(ReleaseVersion release) { return ParserSTEP.LinkToString(mNotation) + "," + ParserSTEP.LinkToString(mItemOf) + "," + mTitle; }
protected override string BuildStringSTEP(ReleaseVersion release) { return "#" + mNotation.StepId + ",#" + mItemOf.StepId + ",'" + ParserIfc.Encode(mTitle) + "'"; }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
mNotation = ParserSTEP.StripLink(str, ref pos, len);
mItemOf = ParserSTEP.StripLink(str, ref pos, len);
mTitle = ParserSTEP.StripString(str, ref pos, len);
mNotation = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcClassificationNotationFacet;
mItemOf = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcClassification;
mTitle = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
}
}
public partial class IfcClassificationItemRelationship
{
protected override string BuildStringSTEP(ReleaseVersion release) { return mSource + "," + mEdition + "," + ParserSTEP.LinkToString(mEditionDate) + "," + mName; }
protected override string BuildStringSTEP(ReleaseVersion release)
{
return mSource + "," + mEdition + (mEditionDate == null ? ",$,'" : ",#" + mEditionDate.StepId + ",'") + ParserIfc.Encode(mName) + "'";
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
mSource = ParserSTEP.StripString(str, ref pos, len);
mEdition = ParserSTEP.StripString(str, ref pos, len);
mEditionDate = ParserSTEP.StripLink(str, ref pos, len);
mName = ParserSTEP.StripString(str, ref pos, len);
mEditionDate = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcCalendarDate;
mName = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
}
}
public partial class IfcClassificationNotation
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return "(" + string.Join(",", mNotationFacets.Select(x=>"#" + mNotationFacets)) + ")";
return "(" + string.Join(",", mNotationFacets.Select(x => "#" + x.StepId)) + ")";
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary) { mNotationFacets = ParserSTEP.StripListLink(str, ref pos, len); }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary) { mNotationFacets.AddRange(ParserSTEP.StripListLink(str, ref pos, len).Select(x=>dictionary[x] as IfcClassificationNotationFacet)); }
}
public partial class IfcClassificationNotationFacet
{
protected override string BuildStringSTEP(ReleaseVersion release) { return mNotationValue; }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary) { mNotationValue = ParserSTEP.StripString(str, ref pos, len); }
protected override string BuildStringSTEP(ReleaseVersion release) { return "'" + ParserIfc.Encode( mNotationValue) + "'"; }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary) { mNotationValue = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len)); }
}
public partial class IfcClassificationReference
{
@ -665,7 +667,7 @@ namespace GeometryGym.Ifc
if (release < ReleaseVersion.IFC4)
return "";
return base.BuildStringSTEP(release) + (string.IsNullOrEmpty(mUsageName) ? ",$," : ",'" + ParserIfc.Encode(mUsageName) + "',") + (mTemplateType == IfcComplexPropertyTemplateTypeEnum.NOTDEFINED ? ",$," : ",." + mTemplateType + ".,") +
(mHasPropertyTemplates.Count == 0 ? "$" : "(#" + string.Join(",#", mHasPropertyTemplates.Values.Select(x => x.Index)) + ")");
(mHasPropertyTemplates.Count == 0 ? "$" : "(" + string.Join(",", mHasPropertyTemplates.Values.Select(x => "#" + x.StepId)) + ")");
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
@ -682,7 +684,7 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return "(" + string.Join(",", Segments.ConvertAll(x=>"#" + x.Index)) + ")," + ParserIfc.LogicalToString(mSelfIntersect);
return "(" + string.Join(",", Segments.ConvertAll(x=>"#" + x.StepId)) + ")," + ParserIfc.LogicalToString(mSelfIntersect);
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
@ -693,11 +695,11 @@ namespace GeometryGym.Ifc
}
public partial class IfcCompositeCurveOnSurface
{
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + ",#" + mBasisSurface; }
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + ",#" + mBasisSurface.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);
mBasisSurface = ParserSTEP.StripLink(str, ref pos, len);
mBasisSurface = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcSurface;
}
}
public partial class IfcCompositeCurveSegment
@ -801,18 +803,30 @@ namespace GeometryGym.Ifc
}
public partial class IfcConditionCriterion
{
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + "," + ParserSTEP.LinkToString(mCriterion) + "," + ParserSTEP.LinkToString(mCriterionDateTime); }
protected override string BuildStringSTEP(ReleaseVersion release)
{
string criterion = "$";
if (mCriterion is IfcLabel label)
criterion = label.ToString();
else if (mCriterion is BaseClassIfc o)
criterion = "#" + o.StepId;
return base.BuildStringSTEP(release) + "," + criterion + ",#" + mCriterionDateTime.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);
mCriterion = ParserSTEP.StripLink(str, ref pos, len);
mCriterionDateTime = ParserSTEP.StripLink(str, ref pos, len);
string s = ParserSTEP.StripField(str, ref pos, len);
if (s.StartsWith("#"))
mCriterion = dictionary[int.Parse(s.Substring(1))] as IfcConditionCriterionSelect;
else
mCriterion = ParserIfc.parseMeasureValue(s) as IfcConditionCriterionSelect;
mCriterionDateTime = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcDateTimeSelect;
}
}
public abstract partial class IfcConic
{
protected override string BuildStringSTEP(ReleaseVersion release) { return ParserSTEP.LinkToString(mPosition); }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary) { mPosition = ParserSTEP.StripLink(str, ref pos, len); }
protected override string BuildStringSTEP(ReleaseVersion release) { return "#" + mPosition.StepId; }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary) { mPosition = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcAxis2Placement; }
}
public partial class IfcConnectedFaceSet
{
@ -820,7 +834,7 @@ namespace GeometryGym.Ifc
{
if (mCfsFaces.Count == 0)
return "";
return "(#" + string.Join(",#", CfsFaces.ConvertAll(x => x.Index)) + ")";
return "(" + string.Join(",", CfsFaces.ConvertAll(x => "#" + x.StepId)) + ")";
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
@ -829,11 +843,14 @@ namespace GeometryGym.Ifc
}
public partial class IfcConnectionCurveGeometry
{
protected override string BuildStringSTEP(ReleaseVersion release) { return ParserSTEP.LinkToString(mCurveOnRelatingElement) + "," + ParserSTEP.LinkToString(mCurveOnRelatedElement); }
protected override string BuildStringSTEP(ReleaseVersion release)
{
return "#" + mCurveOnRelatingElement.StepId + (mCurveOnRelatedElement == null ? ",$" : ",#" + mCurveOnRelatedElement.StepId);
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
mCurveOnRelatingElement = ParserSTEP.StripLink(str, ref pos, len);
mCurveOnRelatedElement = ParserSTEP.StripLink(str, ref pos, len);
mCurveOnRelatingElement = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcCurveOrEdgeCurve;
mCurveOnRelatedElement = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcCurveOrEdgeCurve;
}
}
public partial class IfcConnectionPointEccentricity
@ -849,21 +866,24 @@ namespace GeometryGym.Ifc
}
public partial class IfcConnectionPointGeometry
{
protected override string BuildStringSTEP(ReleaseVersion release) { return ParserSTEP.LinkToString(mPointOnRelatingElement) + "," + ParserSTEP.LinkToString(mPointOnRelatedElement); }
protected override string BuildStringSTEP(ReleaseVersion release)
{
return "#" + mPointOnRelatingElement.StepId + (mPointOnRelatedElement == null ? ",$" : ",#" + mPointOnRelatedElement.StepId);
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
mPointOnRelatingElement = ParserSTEP.StripLink(str, ref pos, len);
mPointOnRelatedElement = ParserSTEP.StripLink(str, ref pos, len);
mPointOnRelatingElement = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcPointOrVertexPoint;
mPointOnRelatedElement = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcPointOrVertexPoint;
}
}
public partial class IfcConnectionSurfaceGeometry
{
protected override string BuildStringSTEP(ReleaseVersion release) { return ParserSTEP.LinkToString(mSurfaceOnRelatingElement) + "," + ParserSTEP.LinkToString(mSurfaceOnRelatedElement); }
protected override string BuildStringSTEP(ReleaseVersion release) { return "#" + mSurfaceOnRelatingElement.StepId + (mSurfaceOnRelatedElement == null ? ",$" : ",#" + mSurfaceOnRelatedElement.StepId); }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
mSurfaceOnRelatingElement = ParserSTEP.StripLink(str, ref pos, len);
mSurfaceOnRelatedElement = ParserSTEP.StripLink(str, ref pos, len);
mSurfaceOnRelatingElement = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcSurfaceOrFaceSurface;
mSurfaceOnRelatedElement = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcSurfaceOrFaceSurface;
}
}
public partial class IfcConnectionVolumeGeometry
@ -932,7 +952,7 @@ namespace GeometryGym.Ifc
protected override string BuildStringSTEP(ReleaseVersion release)
{
if (release < ReleaseVersion.IFC4)
return base.BuildStringSTEP(release) + (mSuppliers.Count == 0 ? ",$" : ",(#" + string.Join(",#", mSuppliers.ConvertAll(x => x.Index)) + "),") +
return base.BuildStringSTEP(release) + (mSuppliers.Count == 0 ? ",$" : ",(" + string.Join(",", mSuppliers.Select(x=> "#" + x.StepId)) + "),") +
(mUsageRatio == null ? ",$" : "," + mUsageRatio.ToString());
return base.BuildStringSTEP(release) + (mPredefinedType == IfcConstructionMaterialResourceTypeEnum.NOTDEFINED ? ",$" : ",." + mPredefinedType.ToString() + ".");
}
@ -995,7 +1015,8 @@ namespace GeometryGym.Ifc
if (release < ReleaseVersion.IFC4)
return base.BuildStringSTEP(release) + (string.IsNullOrEmpty(mIdentification) ? ",$," : ",'" + ParserIfc.Encode(mIdentification) + "',") +
(string.IsNullOrEmpty(mResourceGroup) ? "$," : "'" + ParserIfc.Encode(mResourceGroup) + "',") + ParserSTEP.ObjToLinkString(mBaseQuantitySS);
return base.BuildStringSTEP(release) + (mUsage == 0 ? ",$," : ",#" + mUsage + ",") + ParserSTEP.ListLinksToString(mBaseCosts) + "," + ParserSTEP.ObjToLinkString(mBaseQuantity);
return base.BuildStringSTEP(release) + (mUsage == null ? ",$,(" : ",#" + mUsage.StepId + ",(") +
String.Join(",", BaseCosts.Select(x=>"#" + x.StepId)) + (mBaseQuantity == null ? "),$" : "),#" + mBaseQuantity.StepId);
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
@ -1009,20 +1030,25 @@ namespace GeometryGym.Ifc
}
else
{
mUsage = ParserSTEP.StripLink(str, ref pos, len);
mBaseCosts = ParserSTEP.StripListLink(str, ref pos, len);
mUsage = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcResourceTime;
mBaseCosts.AddRange(ParserSTEP.StripListLink(str, ref pos, len).Select(x=>dictionary[x] as IfcAppliedValue));
mBaseQuantity = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcPhysicalQuantity;
}
}
}
public abstract partial class IfcConstructionResourceType
{
protected override string BuildStringSTEP(ReleaseVersion release) { return (release < ReleaseVersion.IFC4 ? "" : base.BuildStringSTEP(release) + "," + ParserSTEP.ListLinksToString(mBaseCosts) + (mBaseQuantity == 0 ? ",$" : ",#" + mBaseQuantity)); }
protected override string BuildStringSTEP(ReleaseVersion release)
{
return (release < ReleaseVersion.IFC4 ? "" : base.BuildStringSTEP(release) +
(mBaseCosts.Count == 0 ? ",$" : ",(" + String.Join(",", mBaseCosts.Select(x=>"#" + x.StepId)) + ")") +
(mBaseQuantity == null ? ",$" : ",#" + mBaseQuantity.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);
mBaseCosts = ParserSTEP.StripListLink(str, ref pos, len);
mBaseQuantity = ParserSTEP.StripLink(str, ref pos, len);
mBaseCosts.AddRange(ParserSTEP.StripListLink(str, ref pos, len).Select(x=>dictionary[x] as IfcAppliedValue));
mBaseQuantity = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcPhysicalQuantity;
}
}
public abstract partial class IfcContext
@ -1032,7 +1058,8 @@ namespace GeometryGym.Ifc
return base.BuildStringSTEP(release) + (string.IsNullOrEmpty(mObjectType) ? ",$" : ",'" + ParserIfc.Encode(mObjectType) + "'") +
(string.IsNullOrEmpty(mLongName) ? ",$" : ",'" + ParserIfc.Encode(mLongName) + "'") +
(string.IsNullOrEmpty(mPhase) ? ",$" : ",'" + ParserIfc.Encode(mPhase) + "'") +
(mRepresentationContexts.Count == 0 ? ",$," : ",(#" + string.Join(",#", mRepresentationContexts.ConvertAll(x => x.StepId)) + "),") + (mUnitsInContext == 0 ? "$" : ParserSTEP.LinkToString(mUnitsInContext));
(mRepresentationContexts.Count == 0 ? ",$," : ",(" + string.Join(",", mRepresentationContexts.Select(x => "#" + x.StepId)) + "),") +
(mUnitsInContext == null ? "$" : "#" + mUnitsInContext.StepId);
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
@ -1042,7 +1069,7 @@ namespace GeometryGym.Ifc
mLongName = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mPhase = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
RepresentationContexts.AddRange(ParserSTEP.StripListLink(str, ref pos, len).ConvertAll(x => dictionary[x] as IfcRepresentationContext));
mUnitsInContext = ParserSTEP.StripLink(str, ref pos, len);
mUnitsInContext = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcUnitAssignment;
if (mDatabase.mContext == null || !(this is IfcProjectLibrary))
mDatabase.mContext = this;
@ -1094,12 +1121,15 @@ namespace GeometryGym.Ifc
}
public partial class IfcConversionBasedUnit
{
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + ",'" + mName + "'," + ParserSTEP.LinkToString(mConversionFactor); }
protected override string BuildStringSTEP(ReleaseVersion release)
{
return base.BuildStringSTEP(release) + ",'" + mName + "',#" + mConversionFactor.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);
mName = ParserSTEP.StripString(str, ref pos, len);
mConversionFactor = ParserSTEP.StripLink(str, ref pos, len);
mConversionFactor = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcMeasureWithUnit;
}
}
public partial class IfcConversionBasedUnitWithOffset
@ -1439,13 +1469,19 @@ namespace GeometryGym.Ifc
}
public abstract partial class IfcCsgPrimitive3D
{
protected override string BuildStringSTEP(ReleaseVersion release) { return ParserSTEP.LinkToString(mPosition); }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary) { mPosition = ParserSTEP.StripLink(str, ref pos, len); }
protected override string BuildStringSTEP(ReleaseVersion release) { return (mPosition == null ? "$" : "#" + mPosition.StepId); }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
mPosition = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcAxis2Placement3D;
}
}
public partial class IfcCsgSolid
{
protected override string BuildStringSTEP(ReleaseVersion release) { return ParserSTEP.LinkToString(mTreeRootExpression); }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary) { mTreeRootExpression = ParserSTEP.StripLink(str, ref pos, len); }
protected override string BuildStringSTEP(ReleaseVersion release) { return "#" + mTreeRootExpression.StepId; }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
mTreeRootExpression = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcCsgSelect;
}
}
public partial class IfcCShapeProfileDef
{
@ -1485,7 +1521,10 @@ namespace GeometryGym.Ifc
}
public partial class IfcCurtainWall
{
protected override string BuildStringSTEP(ReleaseVersion release) { return (release < ReleaseVersion.IFC4 ? base.BuildStringSTEP(release) : base.BuildStringSTEP(release) + ",." + mPredefinedType.ToString() + "."); }
protected override string BuildStringSTEP(ReleaseVersion release)
{
return base.BuildStringSTEP(release) + (release < ReleaseVersion.IFC4 ? "" : (mPredefinedType == IfcCurtainWallTypeEnum.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);
@ -1550,7 +1589,7 @@ namespace GeometryGym.Ifc
}
public abstract partial class IfcCurveSegment2D
{
protected override string BuildStringSTEP(ReleaseVersion release) { return "#" + mStartPoint.mIndex +
protected override string BuildStringSTEP(ReleaseVersion release) { return "#" + mStartPoint.StepId +
"," + ParserSTEP.DoubleToString(mStartDirection) + "," + formatLength(mSegmentLength); }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
@ -1561,15 +1600,21 @@ namespace GeometryGym.Ifc
}
public partial class IfcCurveStyle
{
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + "," + ParserSTEP.LinkToString(mCurveFont) + (mCurveWidth == null ? ",$," : "," + mCurveWidth.ToString() + ",") + ParserSTEP.LinkToString(mCurveColour) + (release != ReleaseVersion.IFC2x3 ? (mModelOrDraughting == IfcLogicalEnum.UNKNOWN ? ",$" : ","+ ParserIfc.LogicalToString(mModelOrDraughting)) :"") ; }
protected override string BuildStringSTEP(ReleaseVersion release)
{
return base.BuildStringSTEP(release) + (mCurveFont == null ? ",$" : ",#" + mCurveFont.StepId) +
(mCurveWidth == null ? ",$," : "," + mCurveWidth.ToString() + ",") +
(mCurveColour == null ? "$" : "#" + mCurveColour.StepId) +
(release != ReleaseVersion.IFC2x3 ? (mModelOrDraughting == IfcLogicalEnum.UNKNOWN ? ",$" : ","+ ParserIfc.LogicalToString(mModelOrDraughting)) :"");
}
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);
mCurveFont = ParserSTEP.StripLink(str, ref pos, len);
mCurveFont = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcCurveFontOrScaledCurveFontSelect;
string s = ParserSTEP.StripField(str, ref pos, len);
if(str != "$")
mCurveWidth = ParserIfc.parseValue(str) as IfcSizeSelect;
mCurveColour = ParserSTEP.StripLink(str, ref pos, len);
mCurveColour = dictionary[ ParserSTEP.StripLink(str, ref pos, len)] as IfcColour;
if (release != ReleaseVersion.IFC2x3)
mModelOrDraughting = ParserIfc.StripLogical(str, ref pos, len);
}

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

@ -119,18 +119,11 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
string str = base.BuildStringSTEP(release) + ",(";
if (mAnnotatedBySymbols.Count > 0)
{
str += ParserSTEP.LinkToString(mAnnotatedBySymbols[0]);
for (int icounter = 1; icounter < mAnnotatedBySymbols.Count; icounter++)
str += "," + ParserSTEP.LinkToString(mAnnotatedBySymbols[icounter]);
}
return str + "}";
return base.BuildStringSTEP(release) + ",(" + String.Join(",", mAnnotatedBySymbols.Select(x=>"#" + x.StepId)) + ")";
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
mAnnotatedBySymbols = ParserSTEP.StripListLink(str, ref pos, len);
mAnnotatedBySymbols.AddRange(ParserSTEP.StripListLink(str, ref pos, len).Select(x=>dictionary[x] as IfcTerminatorSymbol));
}
}
public partial class IfcDimensionCurveTerminator
@ -302,14 +295,19 @@ namespace GeometryGym.Ifc
}
public partial class IfcDistributionPort
{
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + ",." + mFlowDirection.ToString() + (release < ReleaseVersion.IFC4 ? "." : ".,." + mPredefinedType + ".,." + mSystemType + "."); }
protected override string BuildStringSTEP(ReleaseVersion release)
{
return base.BuildStringSTEP(release) + (mFlowDirection == IfcFlowDirectionEnum.NOTDEFINED ? ",$" : ",." + mFlowDirection.ToString() + ".") +
(release < ReleaseVersion.IFC4 ? "" : (mPredefinedType == IfcDistributionPortTypeEnum.NOTDEFINED ? ",$" : ",." + mPredefinedType + ".") +
(mSystemType == IfcDistributionSystemEnum.NOTDEFINED ? ",$" : ",." + mSystemType + "."));
}
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<IfcFlowDirectionEnum>(s.Replace(".", ""), true, out mFlowDirection);
if (release != ReleaseVersion.IFC2x3)
if (release > ReleaseVersion.IFC2x3)
{
s = ParserSTEP.StripField(str, ref pos, len);
if (s.StartsWith("."))
@ -364,11 +362,12 @@ namespace GeometryGym.Ifc
(string.IsNullOrEmpty(mLocation) ? "$," : "'" + ParserIfc.Encode(mLocation) + "',")) +
(string.IsNullOrEmpty(mPurpose) ? "$," : "'" + ParserIfc.Encode(mPurpose) + "',") + (string.IsNullOrEmpty(mIntendedUse) ? "$," : "'" + ParserIfc.Encode(mIntendedUse) + "',") +
(string.IsNullOrEmpty(mScope) ? "$," : "'" + ParserIfc.Encode(mScope) + "',") +
(string.IsNullOrEmpty(mRevision) ? "$," : "'" + ParserIfc.Encode(mRevision) + "',") + ParserSTEP.LinkToString(mDocumentOwner) +
(mEditors.Count == 0 ? ",$," : ",(#" + string.Join(",#", mEditors) + "),") + IfcDateTime.STEPAttribute(mCreationTime) + "," + IfcDateTime.STEPAttribute(mLastRevisionTime) + "," +
(release < ReleaseVersion.IFC4 ? ParserSTEP.LinkToString(mSSElectronicFormat) : (string.IsNullOrEmpty(mElectronicFormat) ? "$" : "'" + ParserIfc.Encode(mElectronicFormat) + "'")) +
(string.IsNullOrEmpty(mRevision) ? "$," : "'" + ParserIfc.Encode(mRevision) + "',") +
(mDocumentOwner == null ? "$" : "#" + mDocumentOwner.StepId) +
(mEditors.Count == 0 ? ",$," : ",(" + string.Join(",", mEditors.Select(x=>"#" + x.StepId) + "),") + IfcDateTime.STEPAttribute(mCreationTime) + "," + IfcDateTime.STEPAttribute(mLastRevisionTime) + "," +
(release < ReleaseVersion.IFC4 ? (mSSElectronicFormat == null ? "$" : "#" + mSSElectronicFormat.StepId) : (string.IsNullOrEmpty(mElectronicFormat) ? "$" : "'" + ParserIfc.Encode(mElectronicFormat) + "'")) +
(release < ReleaseVersion.IFC4 ? ",$,$" : "," + IfcDate.STEPAttribute(mValidFrom) + "," + IfcDate.STEPAttribute(mValidUntil)) +
(mConfidentiality == IfcDocumentConfidentialityEnum.NOTDEFINED ? ",$," : ",." + mConfidentiality.ToString() + ".,") + (mStatus == IfcDocumentStatusEnum.NOTDEFINED ? "$" : "." + mStatus.ToString() + ".");
(mConfidentiality == IfcDocumentConfidentialityEnum.NOTDEFINED ? ",$," : ",." + mConfidentiality.ToString() + ".,") + (mStatus == IfcDocumentStatusEnum.NOTDEFINED ? "$" : "." + mStatus.ToString() + "."));
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
@ -383,12 +382,12 @@ namespace GeometryGym.Ifc
mIntendedUse = ParserSTEP.StripString(str, ref pos, len);
mScope = ParserSTEP.StripString(str, ref pos, len);
mRevision = ParserSTEP.StripString(str, ref pos, len);
mDocumentOwner = ParserSTEP.StripLink(str, ref pos, len);
mDocumentOwner = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcActorSelect;
Editors.AddRange(ParserSTEP.StripListLink(str, ref pos, len).Select(x=>dictionary[x] as IfcActorSelect));
mCreationTime = IfcDateTime.ParseSTEP(ParserSTEP.StripField(str, ref pos, len));
mLastRevisionTime = IfcDateTime.ParseSTEP(ParserSTEP.StripField(str, ref pos, len));
if (release < ReleaseVersion.IFC4)
mSSElectronicFormat = ParserSTEP.StripLink(str, ref pos, len);
mSSElectronicFormat = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcDocumentElectronicFormat;
else
mElectronicFormat = ParserSTEP.StripString(str, ref pos, len);
mValidFrom = IfcDate.ParseSTEP(ParserSTEP.StripField(str, ref pos, len));
@ -436,8 +435,8 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return base.BuildStringSTEP(release) + "," + ParserSTEP.DoubleOptionalToString(mOverallHeight) + "," + ParserSTEP.DoubleOptionalToString(mOverallWidth)
+ (release < ReleaseVersion.IFC4 ? "" : (mPredefinedType == IfcDoorTypeEnum.NOTDEFINED ? ",$," : ",." + mPredefinedType.ToString() + ".,") +
return base.BuildStringSTEP(release) + "," + formatLength(mOverallHeight) + "," + formatLength(mOverallWidth) +
(release < ReleaseVersion.IFC4 ? "" : (mPredefinedType == IfcDoorTypeEnum.NOTDEFINED ? ",$," : ",." + mPredefinedType.ToString() + ".,") +
(mOperationType == IfcDoorTypeOperationEnum.NOTDEFINED ? "$," : "." + SerializeDoorTypeOperation(mOperationType, release) + ".,") +
(string.IsNullOrEmpty(mUserDefinedOperationType) ? "$" : ",'" + ParserIfc.Encode(mUserDefinedOperationType) + "'"));
}
@ -466,8 +465,13 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return base.BuildStringSTEP(release) + "," + ParserSTEP.DoubleOptionalToString(mLiningDepth) + "," + ParserSTEP.DoubleOptionalToString(mLiningThickness) + "," + ParserSTEP.DoubleOptionalToString(mThresholdDepth) + "," + ParserSTEP.DoubleOptionalToString(mThresholdThickness) + "," + ParserSTEP.DoubleOptionalToString(mTransomThickness) + "," + ParserSTEP.DoubleOptionalToString(mTransomOffset) + "," + ParserSTEP.DoubleOptionalToString(mLiningOffset) + "," +
ParserSTEP.DoubleOptionalToString(mThresholdOffset) + "," + ParserSTEP.DoubleOptionalToString(mCasingThickness) + "," + ParserSTEP.DoubleOptionalToString(mCasingDepth) + "," + ParserSTEP.LinkToString(mShapeAspectStyle) + (release < ReleaseVersion.IFC4 ? "" : "," + ParserSTEP.DoubleOptionalToString(mLiningToPanelOffsetX) + "," + ParserSTEP.DoubleOptionalToString(mLiningToPanelOffsetY));
return base.BuildStringSTEP(release) + "," + ParserSTEP.DoubleOptionalToString(mLiningDepth) + "," +
ParserSTEP.DoubleOptionalToString(mLiningThickness) + "," + ParserSTEP.DoubleOptionalToString(mThresholdDepth) + "," +
ParserSTEP.DoubleOptionalToString(mThresholdThickness) + "," + ParserSTEP.DoubleOptionalToString(mTransomThickness) + "," +
ParserSTEP.DoubleOptionalToString(mTransomOffset) + "," + ParserSTEP.DoubleOptionalToString(mLiningOffset) + "," +
ParserSTEP.DoubleOptionalToString(mThresholdOffset) + "," + ParserSTEP.DoubleOptionalToString(mCasingThickness) + "," +
ParserSTEP.DoubleOptionalToString(mCasingDepth) + (mShapeAspectStyle == null ? ",$" : ",#" + mShapeAspectStyle) +
(release < ReleaseVersion.IFC4 ? "" : "," + ParserSTEP.DoubleOptionalToString(mLiningToPanelOffsetX) + "," + ParserSTEP.DoubleOptionalToString(mLiningToPanelOffsetY));
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
@ -482,7 +486,7 @@ namespace GeometryGym.Ifc
mThresholdOffset = ParserSTEP.StripDouble(str, ref pos, len);
mCasingThickness = ParserSTEP.StripDouble(str, ref pos, len);
mCasingDepth = ParserSTEP.StripDouble(str, ref pos, len);
mShapeAspectStyle = ParserSTEP.StripLink(str, ref pos, len);
mShapeAspectStyle = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcShapeAspect;
if (release != ReleaseVersion.IFC2x3)
{
mLiningToPanelOffsetX = ParserSTEP.StripDouble(str, ref pos, len);
@ -492,7 +496,11 @@ namespace GeometryGym.Ifc
}
public partial class IfcDoorPanelProperties
{
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + "," + ParserSTEP.DoubleOptionalToString(mPanelDepth) + ",." + mOperationType.ToString() + ".," + ParserSTEP.DoubleOptionalToString(mPanelWidth) + ",." + mPanelPosition.ToString() + ".," + ParserSTEP.LinkToString(mShapeAspectStyle); }
protected override string BuildStringSTEP(ReleaseVersion release)
{
return base.BuildStringSTEP(release) + "," + ParserSTEP.DoubleOptionalToString(mPanelDepth) + ",." + mOperationType.ToString() + ".," +
ParserSTEP.DoubleOptionalToString(mPanelWidth) + ",." + mPanelPosition.ToString() + (mShapeAspectStyle == null ? ".,$" : ".,#" + mShapeAspectStyle.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);
@ -500,7 +508,7 @@ namespace GeometryGym.Ifc
Enum.TryParse<IfcDoorPanelOperationEnum>(ParserSTEP.StripField(str, ref pos, len).Replace(".", ""), true, out mOperationType);
mPanelWidth = ParserSTEP.StripDouble(str, ref pos, len);
Enum.TryParse<IfcDoorPanelPositionEnum>(ParserSTEP.StripField(str, ref pos, len).Replace(".", ""), true, out mPanelPosition);
mShapeAspectStyle = ParserSTEP.StripLink(str,ref pos,len);
mShapeAspectStyle = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcShapeAspect;
}
}
public partial class IfcDoorStyle
@ -537,9 +545,9 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return "(" + string.Join(",", mContents.Select(x => "#" + x)) + ")";
return "(" + string.Join(",", mContents.Select(x => "#" + x.StepId)) + ")";
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary) { mContents = ParserSTEP.StripListLink(str, ref pos, len); }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary) { mContents.AddRange(ParserSTEP.StripListLink(str, ref pos, len).Select(x=>dictionary[x] as IfcDraughtingCalloutElement)); }
}
public partial class IfcDraughtingCalloutRelationship
{

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

@ -62,7 +62,7 @@ namespace GeometryGym.Ifc
protected override string BuildStringSTEP(ReleaseVersion release)
{
IfcOrientedEdge oe = this as IfcOrientedEdge;
return (oe == null ? "#" + mEdgeStart.Index + ",#" + mEdgeEnd.Index : "*,*");
return (oe == null ? "#" + mEdgeStart.StepId + ",#" + mEdgeEnd.StepId : "*,*");
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
@ -145,7 +145,12 @@ namespace GeometryGym.Ifc
}
public partial class IfcElectricDistributionPoint
{
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + ",." + mDistributionPointFunction.ToString() + (string.IsNullOrEmpty(mUserDefinedFunction) ? ".,$" : ".,'" + ParserIfc.Encode(mUserDefinedFunction) + "'"); }
protected override string BuildStringSTEP(ReleaseVersion release)
{
return base.BuildStringSTEP(release) + (release > ReleaseVersion.IFC2x3 ? "" :
",." + mDistributionPointFunction.ToString() +
(string.IsNullOrEmpty(mUserDefinedFunction) ? ".,$" : ".,'" + ParserIfc.Encode(mUserDefinedFunction) + "'"));
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
base.parse(str, ref pos, release, len, dictionary);
@ -227,7 +232,10 @@ namespace GeometryGym.Ifc
}
public partial class IfcElectricHeaterType
{
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + ",." + mPredefinedType.ToString() + "."; }
protected override string BuildStringSTEP(ReleaseVersion release)
{
return base.BuildStringSTEP(release) + (release > ReleaseVersion.IFC2x3 ? "" : ",." + 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);
@ -291,8 +299,11 @@ namespace GeometryGym.Ifc
}
public abstract partial class IfcElementarySurface
{
protected override string BuildStringSTEP(ReleaseVersion release) { return ParserSTEP.LinkToString(mPosition); }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary) { mPosition = ParserSTEP.StripLink(str, ref pos, len); }
protected override string BuildStringSTEP(ReleaseVersion release) { return "#" + mPosition.StepId; }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
mPosition = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcAxis2Placement3D;
}
}
public partial class IfcElementAssembly
{
@ -581,8 +592,7 @@ namespace GeometryGym.Ifc
{
if (release < ReleaseVersion.IFC4)
return "";
return base.BuildStringSTEP(release) + ",#" + mRelatingReference.StepId + ",(#" + string.Join(",#", mRelatedResourceObjects.ConvertAll(x=>x.Index)) + ")";
return base.BuildStringSTEP(release) + ",#" + mRelatingReference.StepId + ",(" + string.Join(",", mRelatedResourceObjects.Select(x=> "#" + x.StepId)) + ")";
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
@ -614,11 +624,11 @@ namespace GeometryGym.Ifc
}
public partial class IfcExtrudedAreaSolidTapered
{
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + "," + ParserSTEP.LinkToString(mEndSweptArea); }
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + ",#" + mEndSweptArea.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);
mEndSweptArea = ParserSTEP.StripLink(str, ref pos, len);
mEndSweptArea = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcProfileDef;
}
}
}

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

@ -34,11 +34,11 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return (mBounds.Count == 0 ? "()" : "(#" + string.Join(",#", Bounds.ConvertAll(x => x.mIndex)) + ")");
return (mBounds.Count == 0 ? "()" : "(" + string.Join(",", Bounds.Select(x => "#" + x.StepId)) + ")");
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
Bounds.AddRange(ParserSTEP.StripListLink(str, ref pos, str.Length).ConvertAll(x => dictionary[x] as IfcFaceBound));
Bounds.AddRange(ParserSTEP.StripListLink(str, ref pos, str.Length).Select(x => dictionary[x] as IfcFaceBound));
}
}
public partial class IfcFaceBasedSurfaceModel
@ -75,36 +75,34 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
string str = base.BuildStringSTEP(release) + ",(";
if (mVoids.Count > 0)
{
str += ParserSTEP.LinkToString(mVoids[0]);
for (int icounter = 1; icounter < mVoids.Count; icounter++)
str += "," + ParserSTEP.LinkToString(mVoids[icounter]);
}
return str + ")";
return base.BuildStringSTEP(release) + ",(" +string.Join(",", mVoids.Select(x => "#" + x.StepId)) + ")";
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
base.parse(str, ref pos, release, len, dictionary);
mVoids = ParserSTEP.StripListLink(str, ref pos, len);
mVoids.AddRange(ParserSTEP.StripListLink(str, ref pos, len).Select(x=>dictionary[x] as IfcClosedShell));
}
}
public partial class IfcFacilityPart
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
if(release >= ReleaseVersion.IFC4X3_RC1 && release < ReleaseVersion.IFC4X3)
{
string predefined = "IFCFACILITYPARTTYPEENUM(.NOTDEFINED.),.";
if(this is IfcFacilityPartCommon facilityPartCommon)
if (this is IfcBridgePart bridgePart)
predefined = "IFCBRIDGEPARTTYPEENUM(." + bridgePart.PredefinedType.ToString() + ".),.";
return base.BuildStringSTEP(release) + "," + predefined + mUsageType.ToString() + ".";
}
if (release > ReleaseVersion.IFC4X2)
{
if (release < ReleaseVersion.IFC4X3)
{
string predefined = "IFCFACILITYPARTTYPEENUM(.NOTDEFINED.),.";
if (this is IfcFacilityPartCommon facilityPartCommon)
predefined = "IFCFACILITYPARTTYPEENUM(." + facilityPartCommon.PredefinedType.ToString() + ".),.";
else if (this is IfcBridgePart bridgePart)
predefined = "IFCBRIDGEPARTTYPEENUM(." + bridgePart.PredefinedType.ToString() + ".),.";
else if (this is IfcRoadPart roadPart)
predefined = "IFCROADPARTTYPEENUM(." + roadPart.PredefinedType.ToString() + ".),.";
else if (this is IfcRailwayPart railwayPart)
predefined = "IFCRAILWAYPARTTYPEENUM(." + railwayPart.PredefinedType.ToString() + ".),.";
return base.BuildStringSTEP(release) + "," + predefined + mUsageType.ToString() + ".";
}
return base.BuildStringSTEP(release) + ",." + mUsageType.ToString() + ".";
}
return base.BuildStringSTEP(release);
@ -112,22 +110,24 @@ namespace GeometryGym.Ifc
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
base.parse(str, ref pos, release, len, dictionary);
if (release > ReleaseVersion.IFC4X2 && release < ReleaseVersion.IFC4X3)
if (release > ReleaseVersion.IFC4X2)
{
string s = "";
if (release > ReleaseVersion.IFC4X2 && release < ReleaseVersion.IFC4X3)
if (release < ReleaseVersion.IFC4X3)
{
s = ParserSTEP.StripField(str, ref pos, len);
int index = s.IndexOf('.');
if(index > 0)
if (index > 0)
{
s = s.Substring(index + 1, s.Length - index - 3);
if (this is IfcFacilityPartCommon facilityPartCommon && Enum.TryParse<IfcFacilityPartCommonTypeEnum>(s, true, out IfcFacilityPartCommonTypeEnum facilityPartCommonTypeEnum))
facilityPartCommon.PredefinedType = facilityPartCommonTypeEnum;
else if (this is IfcBridgePart bridgePart && Enum.TryParse<IfcBridgePartTypeEnum>(s, true, out IfcBridgePartTypeEnum bridgePartTypeEnum))
bridgePart.PredefinedType = bridgePartTypeEnum;
//else if (this is IfcRoadPart roadPart && Enum.TryParse<IfcBridgePartTypeEnum>(s, true, out IfcBridgePartTypeEnum bridgePartTypeEnum))
// bridgePart.PredefinedType = bridgePartTypeEnum;
else if (this is IfcRoadPart roadPart && Enum.TryParse<IfcRoadPartTypeEnum>(s, true, out IfcRoadPartTypeEnum roadPartTypeEnum))
roadPart.PredefinedType = roadPartTypeEnum;
else if (this is IfcRailwayPart railwayPart && Enum.TryParse<IfcRailwayPartTypeEnum>(s, true, out IfcRailwayPartTypeEnum railwayPartTypeEnum))
railwayPart.PredefinedType = railwayPartTypeEnum;
}
}
s = ParserSTEP.StripField(str, ref pos, len);
@ -227,13 +227,22 @@ namespace GeometryGym.Ifc
}
public partial class IfcFillAreaStyleHatching
{
protected override string BuildStringSTEP(ReleaseVersion release) { return ParserSTEP.LinkToString(mHatchLineAppearance) + "," + mStartOfNextHatchLine + "," + ParserSTEP.LinkToString(mPointOfReferenceHatchLine) + "," + ParserSTEP.LinkToString(mPatternStart) + "," + ParserSTEP.DoubleToString(mHatchLineAngle); }
protected override string BuildStringSTEP(ReleaseVersion release)
{
return "#" + mHatchLineAppearance.StepId +
(mStartOfNextHatchLine is BaseClassIfc o ? ",#" + o.StepId : "," + mStartOfNextHatchLine.ToString()) + ",#" +
mPointOfReferenceHatchLine.StepId + (mPatternStart == null ? ",$," : ",#" + mPatternStart.StepId + ",") + ParserSTEP.DoubleToString(mHatchLineAngle);
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
mHatchLineAppearance = ParserSTEP.StripLink(str, ref pos, len);
mStartOfNextHatchLine = ParserSTEP.StripField(str, ref pos, len);
mPointOfReferenceHatchLine = ParserSTEP.StripLink(str, ref pos, len);
mPatternStart = ParserSTEP.StripLink(str, ref pos, len);
mHatchLineAppearance = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcCurveStyle;
string s = ParserSTEP.StripField(str, ref pos, len).Trim();
if (s.StartsWith("IFC"))
mStartOfNextHatchLine = ParserIfc.parseValue(s) as IfcHatchLineDistanceSelect;
else
mStartOfNextHatchLine = dictionary[ParserSTEP.ParseLink(s)] as IfcHatchLineDistanceSelect;
mPointOfReferenceHatchLine = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcCartesianPoint;
mPatternStart = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcCartesianPoint;
mHatchLineAngle = ParserSTEP.StripDouble(str, ref pos, len);
}
}
@ -278,7 +287,7 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return base.BuildStringSTEP(release) + ",(#" + string.Join(",#", mFillStyles.ConvertAll(x=>x.Index)) + ")" + (release > ReleaseVersion.IFC2x3 ? "," + ParserSTEP.BoolToString(mModelorDraughting) : "");
return base.BuildStringSTEP(release) + ",(" + string.Join(",", mFillStyles.ConvertAll(x=> "#" + x.StepId)) + ")" + (release > ReleaseVersion.IFC2x3 ? "," + ParserSTEP.BoolToString(mModelorDraughting) : "");
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
@ -310,11 +319,11 @@ namespace GeometryGym.Ifc
}
public partial class IfcFixedReferenceSweptAreaSolid
{
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + "," + ParserSTEP.LinkToString(mFixedReference); }
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + ",#" + mFixedReference.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);
mFixedReference = ParserSTEP.StripLink(str, ref pos, len);
mFixedReference = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcDirection;
}
}
public partial class IfcFlowInstrument
@ -365,12 +374,15 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return base.BuildStringSTEP(release) + ",." + mPropertySource.ToString() + ".," + ParserSTEP.LinkToString(mFlowConditionTimeSeries) + "," +
ParserSTEP.LinkToString(mVelocityTimeSeries) + "," + ParserSTEP.LinkToString(mFlowrateTimeSeries) + "," +
ParserSTEP.LinkToString(mFluid) + "," + ParserSTEP.LinkToString(mPressureTimeSeries) +
return base.BuildStringSTEP(release) + ",." + mPropertySource.ToString() +
(mFlowConditionTimeSeries == null ? ".,$" : ".,#" + mFlowConditionTimeSeries.StepId) +
(mVelocityTimeSeries == null ? ",$" : ",#" + mVelocityTimeSeries.StepId) +
(mFlowrateTimeSeries == null ? ",$" : ",#" + mFlowrateTimeSeries.StepId) + ",#" + mFluid.StepId +
(mPressureTimeSeries == null ? ",$" : ",#" + mPressureTimeSeries.StepId) +
(string.IsNullOrEmpty(mUserDefinedPropertySource) ? ",$," : ",'" + ParserIfc.Encode(mUserDefinedPropertySource) + "',") +
ParserSTEP.DoubleOptionalToString(mTemperatureSingleValue) + "," + ParserSTEP.DoubleOptionalToString(mWetBulbTemperatureSingleValue) + "," +
ParserSTEP.LinkToString(mWetBulbTemperatureTimeSeries) + "," + ParserSTEP.LinkToString(mTemperatureTimeSeries) + "," +
(mWetBulbTemperatureTimeSeries == null ? ",$" : ",#" + mWetBulbTemperatureTimeSeries.StepId) +
(mTemperatureTimeSeries == null ? ",$" :",#" + mTemperatureTimeSeries.StepId) + "," +
ParserSTEP.DoubleOptionalToString(mFlowrateSingleValue) + "," + ParserSTEP.DoubleOptionalToString(mFlowConditionSingleValue) + "," +
ParserSTEP.DoubleOptionalToString(mVelocitySingleValue) + "," + ParserSTEP.DoubleOptionalToString(mPressureSingleValue);
}
@ -378,16 +390,16 @@ namespace GeometryGym.Ifc
{
base.parse(str, ref pos, release, len, dictionary);
Enum.TryParse<IfcPropertySourceEnum>(ParserSTEP.StripField(str, ref pos, len).Replace(".", ""), true, out mPropertySource);
mFlowConditionTimeSeries = ParserSTEP.StripLink(str, ref pos, len);
mVelocityTimeSeries = ParserSTEP.StripLink(str, ref pos, len);
mFlowrateTimeSeries = ParserSTEP.StripLink(str, ref pos, len);
mFluid = ParserSTEP.StripLink(str, ref pos, len);
mPressureTimeSeries = ParserSTEP.StripLink(str, ref pos, len);
mFlowConditionTimeSeries = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcTimeSeries;
mVelocityTimeSeries = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcTimeSeries;
mFlowrateTimeSeries = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcTimeSeries;
mFluid = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcMaterial;
mPressureTimeSeries = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcTimeSeries;
mUserDefinedPropertySource = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mTemperatureSingleValue = ParserSTEP.StripLink(str, ref pos, len);
mWetBulbTemperatureSingleValue = ParserSTEP.StripLink(str, ref pos, len);
mWetBulbTemperatureTimeSeries = ParserSTEP.StripLink(str, ref pos, len);
mTemperatureTimeSeries = ParserSTEP.StripLink(str, ref pos, len);
mWetBulbTemperatureTimeSeries = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcTimeSeries;
mTemperatureTimeSeries = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcTimeSeries;
mFlowrateSingleValue = ParserSTEP.StripLink(str, ref pos, len);
mFlowConditionSingleValue = ParserSTEP.StripLink(str, ref pos, len);
mVelocitySingleValue = ParserSTEP.StripLink(str, ref pos, len);

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

@ -75,7 +75,10 @@ namespace GeometryGym.Ifc
}
public partial class IfcGeographicElement
{
protected override string BuildStringSTEP(ReleaseVersion release) { return (release < ReleaseVersion.IFC4 ? "" : base.BuildStringSTEP(release) + ",." + mPredefinedType + "."); }
protected override string BuildStringSTEP(ReleaseVersion release)
{
return (release < ReleaseVersion.IFC4 ? "" : base.BuildStringSTEP(release) + (mPredefinedType == IfcGeographicElementTypeEnum.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);
@ -117,7 +120,7 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return base.BuildStringSTEP(release) + ",#" + mParentContext.Index + (double.IsNaN(mTargetScale) || mTargetScale <=0 ? ",$,." : "," + ParserSTEP.DoubleOptionalToString(mTargetScale) + ",.") +
return base.BuildStringSTEP(release) + ",#" + mParentContext.StepId + (double.IsNaN(mTargetScale) || mTargetScale <=0 ? ",$,." : "," + ParserSTEP.DoubleOptionalToString(mTargetScale) + ",.") +
mTargetView.ToString() + (string.IsNullOrEmpty(mUserDefinedTargetView) ? ".,$" : ".,'" + ParserIfc.Encode(mUserDefinedTargetView) + "'"); }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
@ -132,7 +135,7 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return (mElements.Count == 0 ? "" : "(" + string.Join(",", mElements.ConvertAll(x => "#" + x.Index)) + ")");
return (mElements.Count == 0 ? "" : "(" + string.Join(",", mElements.ConvertAll(x => "#" + x.StepId)) + ")");
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
@ -176,16 +179,16 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return base.BuildStringSTEP(release) + ",(#" + string.Join(",#", mUAxes.ConvertAll(x => x.Index.ToString())) + "),(#" +
string.Join(",#", mVAxes.ConvertAll(x => x.Index.ToString())) + (mWAxes.Count == 0 ? "),$" : "),(#" +
string.Join(",#", mWAxes.ConvertAll(x=>x.Index.ToString())) + ")") + (release < ReleaseVersion.IFC4 ? "" : (mPredefinedType == IfcGridTypeEnum.NOTDEFINED ? ",$" : ",." + mPredefinedType.ToString() + "."));
return base.BuildStringSTEP(release) + ",(" + string.Join(",", mUAxes.Select(x => "#" + x.StepId)) + "),(" +
string.Join(",", mVAxes.Select(x => "#" + x.StepId)) + (mWAxes.Count == 0 ? "),$" : "),(" +
string.Join(",", mWAxes.Select(x=> "#" + x.StepId)) + ")") + (release < ReleaseVersion.IFC4 ? "" : (mPredefinedType == IfcGridTypeEnum.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);
UAxes.AddRange(ParserSTEP.StripListLink(str, ref pos, len).ConvertAll(x=>dictionary[x] as IfcGridAxis));
VAxes.AddRange(ParserSTEP.StripListLink(str, ref pos, len).ConvertAll(x=>dictionary[x] as IfcGridAxis));
WAxes.AddRange(ParserSTEP.StripListLink(str, ref pos, len).ConvertAll(x=>dictionary[x] as IfcGridAxis));
UAxes.AddRange(ParserSTEP.StripListLink(str, ref pos, len).Select(x=>dictionary[x] as IfcGridAxis));
VAxes.AddRange(ParserSTEP.StripListLink(str, ref pos, len).Select(x=>dictionary[x] as IfcGridAxis));
WAxes.AddRange(ParserSTEP.StripListLink(str, ref pos, len).Select(x=>dictionary[x] as IfcGridAxis));
if (release != ReleaseVersion.IFC2x3)
{
string s = ParserSTEP.StripField(str, ref pos, len);
@ -196,7 +199,7 @@ namespace GeometryGym.Ifc
}
public partial class IfcGridAxis
{
protected override string BuildStringSTEP(ReleaseVersion release) { return (string.IsNullOrEmpty(mAxisTag) ? "$," : "'" + ParserIfc.Encode(mAxisTag) + "',#") + AxisCurve.Index.ToString() + "," + ParserSTEP.BoolToString(mSameSense); }
protected override string BuildStringSTEP(ReleaseVersion release) { return (string.IsNullOrEmpty(mAxisTag) ? "$," : "'" + ParserIfc.Encode(mAxisTag) + "',#") + AxisCurve.StepId + "," + ParserSTEP.BoolToString(mSameSense); }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
mAxisTag = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));

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

@ -30,10 +30,10 @@ namespace GeometryGym.Ifc
{
public partial class IfcHalfSpaceSolid
{
protected override string BuildStringSTEP(ReleaseVersion release) { return ParserSTEP.LinkToString(mBaseSurface) + "," + ParserSTEP.BoolToString(mAgreementFlag); }
protected override string BuildStringSTEP(ReleaseVersion release) { return "#" + mBaseSurface.StepId + "," + ParserSTEP.BoolToString(mAgreementFlag); }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
mBaseSurface = ParserSTEP.StripLink(str, ref pos, len);
mBaseSurface = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcSurface;
mAgreementFlag = ParserSTEP.StripBool(str, ref pos, len);
}
}

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

@ -31,11 +31,11 @@ namespace GeometryGym.Ifc
{
public partial class IfcImageTexture
{
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + ",'" + mUrlReference + "'"; }
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + ",'" + ParserIfc.Encode(mUrlReference) + "'"; }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
base.parse(str, ref pos, release, len, dictionary);
mUrlReference = ParserSTEP.StripString(str, ref pos, len);
mUrlReference = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
}
}
public partial class IfcIndexedColourMap
@ -57,7 +57,7 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return "#" + mPoints.Index + (mSegments.Count == 0 ? ",$," : ",(" + string.Join(",", mSegments) + "),") +
return "#" + mPoints.StepId + (mSegments.Count == 0 ? ",$," : ",(" + string.Join(",", mSegments) + "),") +
(mSelfIntersect == IfcLogicalEnum.UNKNOWN ? "$" : (mSelfIntersect == IfcLogicalEnum.TRUE ? ".T." : ".F."));
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
@ -176,20 +176,23 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
string result = base.BuildStringSTEP(release) + ",." + mPredefinedType.ToString() + ".,#" + mJurisdiction + ",(#" + mResponsiblePersons[0];
for (int icounter = 1; icounter < mResponsiblePersons.Count; icounter++)
result += ",#" + mResponsiblePersons[icounter];
return result + "),#" + mLastUpdateDate + (mCurrentValue == 0 ? ",$" : ",#" + mCurrentValue) + (mOriginalValue == 0 ? ",$" : ",#" + mOriginalValue);
return base.BuildStringSTEP(release) + ",." + mPredefinedType.ToString() + ".,#" + mJurisdiction.StepId + ",(" +
string.Join(",", mResponsiblePersons.Select(x=>"#" + x.StepId)) +
(release < ReleaseVersion.IFC4 ? "),#" + mLastUpdateDate : ")," + IfcDate.STEPAttribute(mLastUpdateDate)) +
(mCurrentValue == null ? ",$" : ",#" + mCurrentValue.StepId) + (mOriginalValue == null ? ",$" : ",#" + mOriginalValue.StepId);
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
base.parse(str, ref pos, release, len, dictionary);
Enum.TryParse<IfcInventoryTypeEnum>(ParserSTEP.StripField(str, ref pos, len).Replace(".", ""), true, out mPredefinedType);
mJurisdiction = ParserSTEP.StripLink(str, ref pos, len);
mResponsiblePersons = ParserSTEP.StripListLink(str, ref pos, len);
mLastUpdateDate = ParserSTEP.StripLink(str, ref pos, len);
mCurrentValue = ParserSTEP.StripLink(str, ref pos, len);
mOriginalValue = ParserSTEP.StripLink(str, ref pos, len);
mJurisdiction = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcActorSelect;
mResponsiblePersons.AddRange(ParserSTEP.StripListLink(str, ref pos, len).Select(x=>dictionary[x] as IfcPerson));
if(release < ReleaseVersion.IFC4)
mLastUpdateDateSS = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcCalendarDate;
else
mLastUpdateDate = IfcDate.ParseSTEP(ParserSTEP.StripString(str, ref pos, len));
mCurrentValue = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcCostValue;
mOriginalValue = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcCostValue;
}
}
public partial class IfcImpactProtectionDevice

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

@ -99,19 +99,22 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
string result = "'" + ParserIfc.Encode(mName) + (string.IsNullOrEmpty(mVersion) ? "',$," : "','" + ParserIfc.Encode(mVersion) + "',") + ParserSTEP.LinkToString(mPublisher);
string result = "'" + ParserIfc.Encode(mName) + (string.IsNullOrEmpty(mVersion) ? "',$," : "','" + ParserIfc.Encode(mVersion) + "',") +
(mPublisher == null? "$" : "#" + mPublisher.StepId);
if (mDatabase.Release < ReleaseVersion.IFC4)
return result + ",$,(" + string.Join(",", mHasConstraintRelationships.Select(x => "#" + x.StepId)) + ")";
return result + "," + IfcDateTime.STEPAttribute(mVersionDate) + "," + (string.IsNullOrEmpty(mLocation) ? "$," : "'" + ParserIfc.Encode(mLocation) + "',") + (string.IsNullOrEmpty(mDescription) ? "$" : "'" + ParserIfc.Encode(mDescription) + "'");
return result + (mVersionDateSS == null ? ",$" : ",#" + mVersionDateSS.StepId) + ",(" + string.Join(",", mHasConstraintRelationships.Select(x => "#" + x.StepId)) + ")";
return result + "," + IfcDateTime.STEPAttribute(mVersionDate) + "," +
(string.IsNullOrEmpty(mLocation) ? "$," : "'" + ParserIfc.Encode(mLocation) + "',") +
(string.IsNullOrEmpty(mDescription) ? "$" : "'" + ParserIfc.Encode(mDescription) + "'");
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
mName = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mVersion = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mPublisher = ParserSTEP.StripLink(str, ref pos, len);
mPublisher = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcActorSelect;
if (release < ReleaseVersion.IFC4)
{
mVersionDateSS = ParserSTEP.StripLink(str, ref pos, len);
mVersionDateSS = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcCalendarDate;
mLibraryReference.AddRange(ParserSTEP.StripListLink(str, ref pos, len).Select(x => dictionary[x] as IfcLibraryReference));
}
else
@ -254,11 +257,15 @@ namespace GeometryGym.Ifc
}
public partial class IfcLightSourceSpot
{
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + "," + ParserSTEP.LinkToString(mOrientation) + "," + ParserSTEP.DoubleToString(mConcentrationExponent) + "," + ParserSTEP.DoubleToString(mSpreadAngle) + "," + ParserSTEP.DoubleToString(mBeamWidthAngle); }
protected override string BuildStringSTEP(ReleaseVersion release)
{
return base.BuildStringSTEP(release) + ",#" + mOrientation.StepId + "," + ParserSTEP.DoubleToString(mConcentrationExponent) + "," +
ParserSTEP.DoubleToString(mSpreadAngle) + "," + ParserSTEP.DoubleToString(mBeamWidthAngle);
}
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);
mOrientation = ParserSTEP.StripLink(str, ref pos, len);
mOrientation = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcDirection;
mConcentrationExponent = ParserSTEP.StripDouble(str, ref pos, len);
mSpreadAngle = ParserSTEP.StripDouble(str, ref pos, len);
mBeamWidthAngle = ParserSTEP.StripDouble(str, ref pos, len);
@ -266,11 +273,11 @@ namespace GeometryGym.Ifc
}
public partial class IfcLine
{
protected override string BuildStringSTEP(ReleaseVersion release) { return ParserSTEP.LinkToString(mPnt) + "," + ParserSTEP.LinkToString(mDir); }
protected override string BuildStringSTEP(ReleaseVersion release) { return "#" + mPnt.StepId + ",#" + mDir.StepId; }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
mPnt = ParserSTEP.StripLink(str, ref pos, len);
mDir = ParserSTEP.StripLink(str, ref pos, len);
mPnt = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcCartesianPoint;
mDir = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcVector;
}
}
public partial class IfcLinearAxisWithInclination
@ -390,13 +397,17 @@ namespace GeometryGym.Ifc
}
public partial class IfcLocalTime
{
protected override string BuildStringSTEP(ReleaseVersion release) { return mHourComponent + "," + mMinuteComponent + "," + ParserSTEP.DoubleToString(mSecondComponent) + "," + ParserSTEP.LinkToString(mZone) + "," + ParserSTEP.IntOptionalToString(mDaylightSavingOffset); }
protected override string BuildStringSTEP(ReleaseVersion release)
{
return mHourComponent + "," + mMinuteComponent + "," + ParserSTEP.DoubleToString(mSecondComponent) +
(mZone == null ? ",$" : ",#" + mZone.StepId) + "," + ParserSTEP.IntOptionalToString(mDaylightSavingOffset);
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
mHourComponent = ParserSTEP.StripInt(str, ref pos, len);
mMinuteComponent = ParserSTEP.StripInt(str, ref pos, len);
mSecondComponent = ParserSTEP.StripDouble(str, ref pos, len);
mZone = ParserSTEP.StripLink(str, ref pos, len);
mZone = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcCoordinatedUniversalTimeOffset;
mDaylightSavingOffset = ParserSTEP.StripInt(str, ref pos, len);
}
}

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

@ -31,8 +31,11 @@ namespace GeometryGym.Ifc
{
public abstract partial class IfcManifoldSolidBrep
{
protected override string BuildStringSTEP(ReleaseVersion release) { return ParserSTEP.LinkToString(mOuter); }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary) { mOuter = ParserSTEP.StripLink(str, ref pos, len); }
protected override string BuildStringSTEP(ReleaseVersion release) { return "#" + mOuter.StepId; }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
mOuter = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcClosedShell;
}
}
public partial class IfcMapConversion
{
@ -130,12 +133,12 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return "(" + string.Join(",", mMaterialClassifications.Select(x=>"#" + x)) + ")," + ParserSTEP.LinkToString(mClassifiedMaterial);
return "(" + string.Join(",", mMaterialClassifications.Select(x=>"#" + x.StepId)) + "),#" + mClassifiedMaterial.StepId;
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
mMaterialClassifications = ParserSTEP.StripListLink(str, ref pos, len);
mClassifiedMaterial = ParserSTEP.StripLink(str, ref pos, len);
mMaterialClassifications.AddRange(ParserSTEP.StripListLink(str, ref pos, len).Select(x => dictionary[x] as IfcClassificationNotationSelect));
mClassifiedMaterial = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcMaterial;
}
}
public partial class IfcMaterialConstituent
@ -143,14 +146,14 @@ namespace GeometryGym.Ifc
protected override string BuildStringSTEP(ReleaseVersion release)
{
return (string.IsNullOrEmpty(mName) ? "$," : "'" + ParserIfc.Encode(mName) + "',") +
(string.IsNullOrEmpty(mDescription) ? "$," : "'" + ParserIfc.Encode(mDescription) + "',") + ParserSTEP.LinkToString(mMaterial) + "," +
(string.IsNullOrEmpty(mDescription) ? "$,#" : "'" + ParserIfc.Encode(mDescription) + "',#") + mMaterial.StepId + "," +
ParserSTEP.DoubleToString(mFraction) + (string.IsNullOrEmpty(mCategory) ? ",$" : ",'" + ParserIfc.Encode(mCategory) + "'");
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
mName = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mDescription = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mMaterial = ParserSTEP.StripLink(str, ref pos, len);
mMaterial = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcMaterial;
mFraction = ParserSTEP.StripDouble(str, ref pos, len);
mCategory = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
}
@ -184,11 +187,11 @@ namespace GeometryGym.Ifc
{
string s = (release < ReleaseVersion.IFC4 ? "" : (string.IsNullOrEmpty(mName) ? ",$," : ",'" + ParserIfc.Encode(mName) + "',") +
(string.IsNullOrEmpty(mDescription) ? "$," : "'" + ParserIfc.Encode(mDescription) + "',") + (string.IsNullOrEmpty(mCategory) ? "$," : "'" + ParserIfc.Encode(mCategory) + "',") + ParserSTEP.DoubleOptionalToString(mPriority));
return ParserSTEP.LinkToString(mMaterial) + "," + ParserSTEP.DoubleToString(mLayerThickness) + "," + ParserIfc.LogicalToString(mIsVentilated) + s;
return "#" + mMaterial.StepId + "," + ParserSTEP.DoubleToString(mLayerThickness) + "," + ParserIfc.LogicalToString(mIsVentilated) + s;
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
mMaterial = ParserSTEP.StripLink(str, ref pos, len);
mMaterial = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcMaterial;
mLayerThickness = ParserSTEP.StripDouble(str, ref pos, len);
mIsVentilated = ParserIfc.StripLogical(str, ref pos, len);
try
@ -222,10 +225,10 @@ namespace GeometryGym.Ifc
}
public partial class IfcMaterialLayerSetUsage
{
protected override string BuildStringSTEP(ReleaseVersion release) { return ParserSTEP.LinkToString(mForLayerSet) + ",." + mLayerSetDirection.ToString() + ".,." + mDirectionSense.ToString() + ".," + ParserSTEP.DoubleToString(mOffsetFromReferenceLine) + (release < ReleaseVersion.IFC4 ? "" : "," + ParserSTEP.DoubleOptionalToString(mReferenceExtent)); }
protected override string BuildStringSTEP(ReleaseVersion release) { return "#" + mForLayerSet.StepId + ",." + mLayerSetDirection.ToString() + ".,." + mDirectionSense.ToString() + ".," + ParserSTEP.DoubleToString(mOffsetFromReferenceLine) + (release < ReleaseVersion.IFC4 ? "" : "," + ParserSTEP.DoubleOptionalToString(mReferenceExtent)); }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
mForLayerSet = ParserSTEP.StripLink(str, ref pos, len);
mForLayerSet = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcMaterialLayerSet;
Enum.TryParse<IfcLayerSetDirectionEnum>(ParserSTEP.StripField(str, ref pos, len).Replace(".", ""), true, out mLayerSetDirection);
Enum.TryParse<IfcDirectionSenseEnum>(ParserSTEP.StripField(str, ref pos, len).Replace(".", ""), true, out mDirectionSense);
mOffsetFromReferenceLine = ParserSTEP.StripDouble(str, ref pos, len);
@ -267,12 +270,12 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
string str = "(" + ParserSTEP.LinkToString(mMaterials[0]);
for (int icounter = 1; icounter < mMaterials.Count; icounter++)
str += "," + ParserSTEP.LinkToString(mMaterials[icounter]);
return str + ")";
return "(" + String.Join(",", mMaterials.Select(x => "#" + x.StepId)) + ")";
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
mMaterials.AddRange(ParserSTEP.StripListLink(str, ref pos, len).Select(x=>dictionary[x] as IfcMaterial));
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary) { mMaterials = ParserSTEP.StripListLink(str, ref pos, len); }
}
public partial class IfcMaterialProfile
{
@ -317,7 +320,7 @@ namespace GeometryGym.Ifc
{
if (release < ReleaseVersion.IFC4 || AssociatedTo.SelectMany(x => x.mRelatedObjects).Count() == 0)
return "";
return "#" + mForProfileSet.Index + "," + (mCardinalPoint == IfcCardinalPointReference.DEFAULT ? "$" : ((int)mCardinalPoint).ToString()) + "," + ParserSTEP.DoubleOptionalToString(mReferenceExtent);
return "#" + mForProfileSet.StepId + "," + (mCardinalPoint == IfcCardinalPointReference.DEFAULT ? "$" : ((int)mCardinalPoint).ToString()) + "," + ParserSTEP.DoubleOptionalToString(mReferenceExtent);
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
@ -330,7 +333,7 @@ namespace GeometryGym.Ifc
}
public partial class IfcMaterialProfileSetUsageTapering
{
protected override string BuildStringSTEP(ReleaseVersion release) { return (release < ReleaseVersion.IFC4 || AssociatedTo.SelectMany(x => x.mRelatedObjects).Count() == 0 ? "" : base.BuildStringSTEP(release) + ",#" + ForProfileEndSet.Index + "," + (int)mCardinalEndPoint); }
protected override string BuildStringSTEP(ReleaseVersion release) { return (release < ReleaseVersion.IFC4 || AssociatedTo.SelectMany(x => x.mRelatedObjects).Count() == 0 ? "" : base.BuildStringSTEP(release) + ",#" + ForProfileEndSet.StepId + "," + (int)mCardinalEndPoint); }
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);
@ -353,7 +356,7 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return (release >= ReleaseVersion.IFC4 ? base.BuildStringSTEP(release) + "," : "" ) + "#" + mMaterial.Index;
return (release >= ReleaseVersion.IFC4 ? base.BuildStringSTEP(release) + "," : "" ) + "#" + mMaterial.StepId;
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
@ -382,14 +385,14 @@ namespace GeometryGym.Ifc
}
public partial class IfcMeasureWithUnit
{
protected override string BuildStringSTEP(ReleaseVersion release) { return (mValueComponent != null ? mValueComponent.ToString() : mVal) + "," + ParserSTEP.LinkToString(mUnitComponent); }
protected override string BuildStringSTEP(ReleaseVersion release) { return (mValueComponent != null ? mValueComponent.ToString() : mVal) + ",#" + mUnitComponent.StepId; }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
string s = ParserSTEP.StripField(str, ref pos, len);
mValueComponent = ParserIfc.parseValue(s);
if (mValueComponent == null)
mVal = s;
mUnitComponent = ParserSTEP.StripLink(str, ref pos, len);
mUnitComponent = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcUnit;
}
}
public partial class IfcMechanicalConcreteMaterialProperties
@ -459,13 +462,11 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
string str = base.BuildStringSTEP(release) + "," + ParserSTEP.DoubleOptionalToString(mYieldStress) + "," + ParserSTEP.DoubleOptionalToString(mUltimateStress) + "," + ParserSTEP.DoubleOptionalToString(mUltimateStrain) + "," + ParserSTEP.DoubleOptionalToString(mHardeningModule) + "," + ParserSTEP.DoubleOptionalToString(mProportionalStress) + "," + ParserSTEP.DoubleOptionalToString(mPlasticStrain);
if (mRelaxations.Count == 0)
return str + ",$";
str += ",(" + ParserSTEP.LinkToString(mRelaxations[0]);
for (int icounter = 1; icounter < mRelaxations.Count; icounter++)
str += "," + ParserSTEP.LinkToString(mRelaxations[icounter]);
return str += ")";
return base.BuildStringSTEP(release) + "," + ParserSTEP.DoubleOptionalToString(mYieldStress) + "," +
ParserSTEP.DoubleOptionalToString(mUltimateStress) + "," + ParserSTEP.DoubleOptionalToString(mUltimateStrain) + "," +
ParserSTEP.DoubleOptionalToString(mHardeningModule) + "," + ParserSTEP.DoubleOptionalToString(mProportionalStress) + "," +
ParserSTEP.DoubleOptionalToString(mPlasticStrain) +
(mRelaxations.Count == 0 ? ",$" : ",(" + String.Join(",", mRelaxations.Select(x => "#" + x.StepId)) + ")");
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
@ -476,7 +477,7 @@ namespace GeometryGym.Ifc
mHardeningModule = ParserSTEP.StripDouble(str, ref pos, len);
mProportionalStress = ParserSTEP.StripDouble(str, ref pos, len);
mPlasticStrain = ParserSTEP.StripDouble(str, ref pos, len);
mRelaxations = ParserSTEP.StripListLink(str, ref pos, len);
mRelaxations.AddRange(ParserSTEP.StripListLink(str, ref pos, len).Select(x => dictionary[x] as IfcRelaxation));
}
}
public partial class IfcMedicalDevice
@ -530,10 +531,10 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return base.BuildStringSTEP(release) + ",." + mBenchMark.ToString() +
(string.IsNullOrEmpty(mValueSource) ? ".,$," : ".,'" + ParserIfc.Encode(mValueSource) + "',") +
(mDataValueValue == null ? ParserSTEP.LinkToString(mDataValue) : mDataValueValue.ToString()) +
(mDatabase.Release < ReleaseVersion.IFC4 ? "" : "," + ParserSTEP.LinkToString(mReferencePath));
return base.BuildStringSTEP(release) + ",." + mBenchMark.ToString() +
(string.IsNullOrEmpty(mValueSource) ? ".,$," : ".,'" + ParserIfc.Encode(mValueSource) + "',") +
(mDataValue == null ? "$" : (mDataValue is BaseClassIfc o ? "#" + o.StepId : mDataValue.ToString())) +
(mDatabase.Release < ReleaseVersion.IFC4 ? "" : ",#" + mReferencePath.StepId);
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
@ -541,10 +542,11 @@ namespace GeometryGym.Ifc
Enum.TryParse<IfcBenchmarkEnum>(ParserSTEP.StripField(str, ref pos, len).Replace(".", ""), true, out mBenchMark);
mValueSource = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
string s = ParserSTEP.StripField(str, ref pos, len);
mDataValueValue = ParserIfc.parseValue(s);
if (mDataValueValue == null)
mDataValue = ParserSTEP.ParseLink(s);
mReferencePath = ParserSTEP.StripLink(str, ref pos, len);
if(s[0] == '#')
mDataValue = dictionary[ParserSTEP.ParseLink(s)] as IfcMetricValueSelect;
else
mDataValue = ParserIfc.parseValue(s) as IfcMetricValueSelect;
mReferencePath = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcReference;
}
}
public partial class IfcMobileTelecommunicationsAppliance

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

@ -30,7 +30,7 @@ namespace GeometryGym.Ifc
{
public abstract partial class IfcNamedUnit
{
protected override string BuildStringSTEP(ReleaseVersion release) { return (mDimensions == null ? "*" : "#" + mDimensions.Index) + ",." + mUnitType.ToString() + "."; }
protected override string BuildStringSTEP(ReleaseVersion release) { return (mDimensions == null ? "*" : "#" + mDimensions.StepId) + ",." + mUnitType.ToString() + "."; }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
mDimensions = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcDimensionalExponents;

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

@ -85,7 +85,7 @@ namespace GeometryGym.Ifc
}
public partial class IfcOffsetCurve
{
protected override string BuildStringSTEP(ReleaseVersion release) { return "#" + mBasisCurve.Index; }
protected override string BuildStringSTEP(ReleaseVersion release) { return "#" + mBasisCurve.StepId; }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
BasisCurve = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcCurve;
@ -112,7 +112,7 @@ namespace GeometryGym.Ifc
}
public partial class IfcOffsetCurveByDistances
{
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + ",(#" + string.Join(",#", OffsetValues.ConvertAll(x => x.Index)) + (string.IsNullOrEmpty(Tag) ? "),$" : "),'" + ParserIfc.Encode(Tag) + "'"); }
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + ",(" + string.Join(",", OffsetValues.ConvertAll(x => "#" + x.StepId)) + (string.IsNullOrEmpty(Tag) ? "),$" : "),'" + ParserIfc.Encode(Tag) + "'"); }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
base.parse(str, ref pos, release, len, dictionary);
@ -122,10 +122,10 @@ namespace GeometryGym.Ifc
}
public partial class IfcOneDirectionRepeatFactor
{
protected override string BuildStringSTEP(ReleaseVersion release) { return ParserSTEP.LinkToString(mRepeatFactor); }
protected override string BuildStringSTEP(ReleaseVersion release) { return "#" + mRepeatFactor.StepId; }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
mRepeatFactor = ParserSTEP.StripLink(str, ref pos, len);
mRepeatFactor = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcVector;
}
}
public partial class IfcOpenCrossProfileDef
@ -165,13 +165,10 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
string name = mName;
if(string.IsNullOrEmpty(name))
name = mDatabase.Factory.ApplicationDeveloper;
return (string.IsNullOrEmpty(mIdentification) ? "$,'" : "'" + ParserIfc.Encode(mIdentification) + "','") + ParserIfc.Encode(name)
return (string.IsNullOrEmpty(mIdentification) ? "$,'" : "'" + ParserIfc.Encode(mIdentification) + "','") + ParserIfc.Encode(Name)
+ (string.IsNullOrEmpty(mDescription) ? "',$," : "','" + ParserIfc.Encode(mDescription) + "',")
+ (mRoles.Count == 0 ? "$," : "(#" + string.Join(",#", Roles.Select(x=>x.Index)) + "),")
+ (mAddresses.Count == 0 ? "$" : "(#" + string.Join(",#", Addresses.Select(x=>x.Index)) + ")");
+ (mRoles.Count == 0 ? "$," : "(" + string.Join(",", Roles.Select(x=>"#" + x.StepId)) + "),")
+ (mAddresses.Count == 0 ? "$" : "(" + string.Join(",", Addresses.Select(x=> "#" + x.StepId)) + ")");
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
@ -183,6 +180,19 @@ namespace GeometryGym.Ifc
mAddresses.AddRange(ParserSTEP.StripListLink(str, ref pos, len).ConvertAll(x=>dictionary[x] as IfcAddress));
}
}
public partial class IfcOrganizationRelationship
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return "#" + mRelatingOrganization.StepId + ",(" + String.Join(",", mRelatedOrganizations.Select(x => "#" + x.StepId)) + ")";
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
RelatingOrganization = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcOrganization;
RelatedOrganizations.AddRange(ParserSTEP.StripListLink(str, ref pos, len).ConvertAll(x => dictionary[x] as IfcOrganization));
}
}
public partial class IfcOrientationExpression
{
protected override string BuildStringSTEP(ReleaseVersion release)
@ -231,7 +241,7 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
string str = "#" + mOwningUser.Index + ",#" + mOwningApplication.Index + ",";
string str = "#" + mOwningUser.StepId + ",#" + mOwningApplication.StepId + ",";
if (mState == IfcStateEnum.NOTDEFINED)
str += "$";
else

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

@ -42,9 +42,12 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return "(" + string.Join(",", mEdgeList.Select(x=>"#" + x));
return "(" + string.Join(",", mEdgeList.Select(x=>"#" + x.StepId));
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
mEdgeList.AddRange(ParserSTEP.StripListLink(str, ref pos, len).Select(x=>dictionary[x] as IfcOrientedEdge));
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary) { mEdgeList = ParserSTEP.StripListLink(str, ref pos, len); }
}
public partial class IfcPcurve
{
@ -140,23 +143,24 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
string str = (string.IsNullOrEmpty(mIdentification) ? "$," : "'" + ParserIfc.Encode(mIdentification) + "',");
if (string.IsNullOrEmpty(mFamilyName) && string.IsNullOrEmpty(mGivenName))
str += (string.IsNullOrEmpty(mIdentification) ? "'Unknown',$," : "'" + ParserIfc.Encode(mIdentification) + "',$,");
else
str += (string.IsNullOrEmpty(mFamilyName) ? "$," : "'" + ParserIfc.Encode(mFamilyName) + "',") + (string.IsNullOrEmpty(mGivenName) ? "$," : "'" + ParserIfc.Encode(mGivenName) + "',");
str += (mMiddleNames.Count == 0 ? "$," : "(" + string.Join(",", mMiddleNames.Select(x=> "'" + ParserIfc.Encode(x) + "'")) + "),");
str += (mPrefixTitles.Count == 0 ? "$," : "(" + string.Join(",", mPrefixTitles.Select(x=>"'" + ParserIfc.Encode(x) + "'")) + "),");
str += (mSuffixTitles.Count == 0 ? "$," : "(" + string.Join(",", mSuffixTitles.Select(x=>"'" + ParserIfc.Encode(x) + "'")) + "),");
str += (Roles.Count == 0 ? "$," : "(#" + string.Join(",#", Roles.ConvertAll(x=>x.Index.ToString())) + "),");
return str + (Addresses.Count == 0 ? "$" : "(#" + string.Join(",#", Addresses.ConvertAll(x=>x.Index.ToString())) + ")");
string id = Identification;
if (string.IsNullOrEmpty(mIdentification) && string.IsNullOrEmpty(mGivenName) && string.IsNullOrEmpty(mFamilyName))
id = "Unknown";
return (string.IsNullOrEmpty(id) ? "$," : "'" + ParserIfc.Encode(id) + "',") +
(string.IsNullOrEmpty(mFamilyName) ? "$," : "'" + ParserIfc.Encode(mFamilyName) + "',") +
(string.IsNullOrEmpty(mGivenName) ? "$," : "'" + ParserIfc.Encode(mGivenName) + "',") +
(mMiddleNames.Count == 0 ? "$," : "(" + string.Join(",", mMiddleNames.Select(x=> "'" + ParserIfc.Encode(x) + "'")) + "),") +
(mPrefixTitles.Count == 0 ? "$," : "(" + string.Join(",", mPrefixTitles.Select(x=>"'" + ParserIfc.Encode(x) + "'")) + "),") +
(mSuffixTitles.Count == 0 ? "$," : "(" + string.Join(",", mSuffixTitles.Select(x=>"'" + ParserIfc.Encode(x) + "'")) + "),") +
(Roles.Count == 0 ? "$," : "(" + string.Join(",", Roles.ConvertAll(x=> "#" + x.StepId)) + "),") +
(Addresses.Count == 0 ? "$" : "(" + string.Join(",", Addresses.ConvertAll(x=> "#" + x.StepId)) + ")");
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
mIdentification = ParserSTEP.StripString(str, ref pos, len);
mFamilyName = ParserSTEP.StripString(str, ref pos, len);
mGivenName = ParserSTEP.StripString(str, ref pos, len);
mIdentification = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mFamilyName = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mGivenName = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mMiddleNames.AddRange(ParserSTEP.SplitListStrings(ParserSTEP.StripField(str, ref pos, len)).Select(x=>ParserIfc.Decode(x)));
mPrefixTitles.AddRange(ParserSTEP.SplitListStrings(ParserSTEP.StripField(str, ref pos, len)).Select(x => ParserIfc.Decode(x)));
mSuffixTitles.AddRange(ParserSTEP.SplitListStrings(ParserSTEP.StripField(str, ref pos, len)).Select(x => ParserIfc.Decode(x)));
@ -168,7 +172,7 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return "#" + mThePerson.Index + ",#" + mTheOrganization.Index + (mRoles.Count == 0 ? ",$" : ",(#" + string.Join(",#", mRoles.ConvertAll(x => x.Index.ToString())) + ")");
return "#" + mThePerson.StepId + ",#" + mTheOrganization.StepId + (mRoles.Count == 0 ? ",$" : ",(" + string.Join(",", mRoles.ConvertAll(x => "#" + x.StepId)) + ")");
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
@ -207,11 +211,11 @@ namespace GeometryGym.Ifc
}
public abstract partial class IfcPhysicalSimpleQuantity
{
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + "," + ParserSTEP.LinkToString(mUnit); }
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + (mUnit == null ? ",$" : ",#" + mUnit.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);
mUnit = ParserSTEP.StripLink(str, ref pos, len);
mUnit = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcNamedUnit;
}
}
public partial class IfcPile
@ -301,16 +305,16 @@ namespace GeometryGym.Ifc
}
public abstract partial class IfcPlacement
{
protected override string BuildStringSTEP(ReleaseVersion release) { return "#" + mLocation.mIndex; }
protected override string BuildStringSTEP(ReleaseVersion release) { return "#" + mLocation.StepId; }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary) { mLocation = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcPoint; }
}
public partial class IfcPlanarBox
{
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + "," + ParserSTEP.LinkToString(mPlacement); }
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + ",#" + mPlacement.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);
mPlacement = ParserSTEP.StripLink(str, ref pos, len);
mPlacement = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcAxis2Placement;
}
}
public partial class IfcPlanarExtent
@ -375,31 +379,31 @@ namespace GeometryGym.Ifc
}
public partial class IfcPointOnCurve
{
protected override string BuildStringSTEP(ReleaseVersion release) { return ParserSTEP.LinkToString(mBasisCurve) + "," + ParserSTEP.DoubleToString(mPointParameter); }
protected override string BuildStringSTEP(ReleaseVersion release) { return "#" + mBasisCurve.StepId + "," + ParserSTEP.DoubleToString(mPointParameter); }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
mBasisCurve = ParserSTEP.StripLink(str, ref pos, len);
mBasisCurve = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcCurve;
mPointParameter = ParserSTEP.StripDouble(str, ref pos, len);
}
}
public partial class IfcPointOnSurface
{
protected override string BuildStringSTEP(ReleaseVersion release) { return ParserSTEP.LinkToString(mBasisSurface) + "," + ParserSTEP.DoubleToString(mPointParameterU) + "," + ParserSTEP.DoubleToString(mPointParameterV); }
protected override string BuildStringSTEP(ReleaseVersion release) { return "#" + mBasisSurface.StepId + "," + ParserSTEP.DoubleToString(mPointParameterU) + "," + ParserSTEP.DoubleToString(mPointParameterV); }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
mBasisSurface = ParserSTEP.StripLink(str, ref pos, len);
mBasisSurface = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcSurface;
mPointParameterU = ParserSTEP.StripDouble(str, ref pos, len);
mPointParameterV = ParserSTEP.StripDouble(str, ref pos, len);
}
}
public partial class IfcPolygonalBoundedHalfSpace
{
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + "," + ParserSTEP.LinkToString(mPosition) + "," + ParserSTEP.LinkToString(mPolygonalBoundary); }
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + ",#" + mPosition.StepId + ",#" + mPolygonalBoundary.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);
mPosition = ParserSTEP.StripLink(str, ref pos, len);
mPolygonalBoundary = ParserSTEP.StripLink(str, ref pos, len);
mPosition = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcAxis2Placement3D;
mPolygonalBoundary = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcBoundedCurve;
}
}
public partial class IfcPolygonalFaceSet
@ -408,7 +412,7 @@ namespace GeometryGym.Ifc
{
return base.BuildStringSTEP(release) +
(release < ReleaseVersion.IFC4X3 ? (mClosed == IfcLogicalEnum.UNKNOWN ? ",$" : "," + ParserIfc.LogicalToString(mClosed)) : "") +
",(#" + string.Join(",#", mFaces.Select(x => x.StepId)) + (mPnIndex.Count == 0 ? "),$" : "),(" + string.Join(",", mPnIndex) + ")");
",(" + string.Join(",", mFaces.Select(x => "#" + x.StepId)) + (mPnIndex.Count == 0 ? "),$" : "),(" + string.Join(",", mPnIndex) + ")");
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
@ -421,12 +425,12 @@ namespace GeometryGym.Ifc
}
public partial class IfcPolyline
{
protected override string BuildStringSTEP(ReleaseVersion release) { return "(#" + string.Join(",#", Points.ConvertAll(x => x.Index.ToString())) + ")"; }
protected override string BuildStringSTEP(ReleaseVersion release) { return "(" + string.Join(",", Points.ConvertAll(x => "#" + x.StepId)) + ")"; }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary) { Points.AddRange(ParserSTEP.SplitListLinks(str.Substring(1, str.Length - 2)).ConvertAll(x=>dictionary[x] as IfcCartesianPoint)); }
}
public partial class IfcPolyLoop
{
protected override string BuildStringSTEP(ReleaseVersion release) { return "(#" + string.Join(",#", mPolygon.ConvertAll(x=>x.mIndex)) + ")" ; }
protected override string BuildStringSTEP(ReleaseVersion release) { return "(" + string.Join(",", mPolygon.ConvertAll(x=> "#" + x.StepId)) + ")" ; }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary) { mPolygon.AddRange(ParserSTEP.SplitListLinks(str.Substring(1, str.Length - 2)).ConvertAll(x => dictionary[x] as IfcCartesianPoint)); }
}
public partial class IfcPolynomialCurve
@ -621,9 +625,9 @@ namespace GeometryGym.Ifc
if (profileDefinition == null)
return "";
if(release < ReleaseVersion.IFC4)
return base.BuildStringSTEP(release) + (string.IsNullOrEmpty(mName) ? "$,#" : "'" + ParserIfc.Encode(mName) + "',#") + profileDefinition.Index;
return base.BuildStringSTEP(release) + (string.IsNullOrEmpty(mName) ? "$,#" : "'" + ParserIfc.Encode(mName) + "',#") + profileDefinition.StepId;
return base.BuildStringSTEP(release) + ",#" + profileDefinition.Index;
return base.BuildStringSTEP(release) + ",#" + profileDefinition.StepId;
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
@ -640,14 +644,14 @@ namespace GeometryGym.Ifc
if (release < ReleaseVersion.IFC4)
return "";
return base.BuildStringSTEP(release) + (string.IsNullOrEmpty( mMapProjection) ? ",$," : ",'" + ParserIfc.Encode( mMapProjection) + "',") +
(string.IsNullOrEmpty( mMapZone) ? "$," : "'" + ParserIfc.Encode(mMapZone) + "',") + ParserSTEP.LinkToString(mMapUnit);
(string.IsNullOrEmpty( mMapZone) ? "$," : "'" + ParserIfc.Encode(mMapZone) + "',") + (mMapUnit == null ? "$" : "#" + mMapUnit.StepId);
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
base.parse(str, ref pos, release, len, dictionary);
mMapProjection = ParserIfc.Decode( ParserSTEP.StripString(str, ref pos, len));
mMapZone = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mMapUnit = ParserSTEP.StripLink(str, ref pos, len);
mMapUnit = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcNamedUnit;
}
}
public partial class IfcProjectionElement
@ -688,15 +692,12 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
string str = base.BuildStringSTEP(release) + ",(" + ParserSTEP.LinkToString(mRecords[0]);
for (int icounter = 1; icounter < mRecords.Count; icounter++)
str += "," + ParserSTEP.LinkToString(mRecords[icounter]);
return str + "),." + mPredefinedType.ToString() + ".";
return base.BuildStringSTEP(release) + ",(" + string.Join(",", mRecords.Select(x=>"#" + x.StepId)) + "),." + 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);
mRecords = ParserSTEP.StripListLink(str, ref pos, len);
mRecords.AddRange(ParserSTEP.StripListLink(str, ref pos, len).Select(x=>dictionary[x] as IfcRelAssignsToProjectOrder));
Enum.TryParse<IfcProjectOrderRecordTypeEnum>(ParserSTEP.StripField(str, ref pos, len).Replace(".", ""), true, out mPredefinedType);
}
}
@ -711,7 +712,11 @@ namespace GeometryGym.Ifc
}
public partial class IfcPropertyBoundedValue
{
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + (mUpperBoundValue == null ? ",$," : "," + mUpperBoundValue.ToString() + ",") + (mLowerBoundValue == null ? "$," : mLowerBoundValue.ToString() + ",") + ParserSTEP.LinkToString(mUnit) + (release < ReleaseVersion.IFC4 ? "" : (mSetPointValue == null ? ",$" : "," + mSetPointValue.ToString())); }
protected override string BuildStringSTEP(ReleaseVersion release)
{
return base.BuildStringSTEP(release) + (mUpperBoundValue == null ? ",$," : "," + mUpperBoundValue.ToString() + ",") +
(mLowerBoundValue == null ? "$," : mLowerBoundValue.ToString() + ",") + (mUnit == null ? "$" : "#" + mUnit.StepId) +
(release < ReleaseVersion.IFC4 ? "" : (mSetPointValue == null ? ",$" : "," + mSetPointValue.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);
@ -721,10 +726,8 @@ namespace GeometryGym.Ifc
s = ParserSTEP.StripField(str, ref pos, len);
if (s != "$")
mLowerBoundValue = ParserIfc.parseValue(s);
s = ParserSTEP.StripField(str, ref pos, len);
if (s != "$")
mUnit = ParserSTEP.ParseLink(s);
if (release != ReleaseVersion.IFC2x3)
mUnit = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcUnit;
if (release > ReleaseVersion.IFC2x3)
{
s = ParserSTEP.StripField(str, ref pos, len);
if (s != "$")
@ -734,7 +737,11 @@ namespace GeometryGym.Ifc
}
public partial class IfcPropertyBoundedValue<T> : IfcSimpleProperty where T : IfcValue
{
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + (mUpperBoundValue == null ? ",$," : "," + mUpperBoundValue.ToString() + ",") + (mLowerBoundValue == null ? "$," : mLowerBoundValue.ToString() + ",") + ParserSTEP.LinkToString(mUnit) + (release < ReleaseVersion.IFC4 ? "" : (mSetPointValue == null ? ",$" : "," + mSetPointValue.ToString())); }
protected override string BuildStringSTEP(ReleaseVersion release)
{
return base.BuildStringSTEP(release) + (mUpperBoundValue == null ? ",$," : "," + mUpperBoundValue.ToString() + ",") +
(mLowerBoundValue == null ? "$," : mLowerBoundValue.ToString() + ",") + (mUnit == null ? "$" : "#" + mUnit.StepId) +
(release < ReleaseVersion.IFC4 ? "" : (mSetPointValue == null ? ",$" : "," + mSetPointValue.ToString())); }
}
public abstract partial class IfcPropertyConstraintRelationship
{
@ -754,12 +761,16 @@ namespace GeometryGym.Ifc
}
public partial class IfcPropertyDependencyRelationship
{
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + ",#"+ mDependingProperty + ",#" + mDependantProperty + (string.IsNullOrEmpty(mExpression) ? ",$" : ",'" + ParserIfc.Encode(mExpression) + "'"); }
protected override string BuildStringSTEP(ReleaseVersion release)
{
return base.BuildStringSTEP(release) + ",#" + mDependingProperty.StepId + ",#" + mDependantProperty.StepId +
(string.IsNullOrEmpty(mExpression) ? ",$" : ",'" + ParserIfc.Encode(mExpression) + "'");
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
base.parse(str, ref pos, release, len, dictionary);
mDependingProperty = ParserSTEP.StripLink(str, ref pos, len);
mDependantProperty = ParserSTEP.StripLink(str, ref pos, len);
mDependingProperty = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcProperty;
mDependantProperty = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcProperty;
mExpression = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
}
}
@ -767,10 +778,7 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
string result = base.BuildStringSTEP(release) + ",(" + mEnumerationValues[0].ToString();
for (int icounter = 1; icounter < mEnumerationValues.Count; icounter++)
result += "," + mEnumerationValues[icounter].ToString();
return result + ")," + ParserSTEP.LinkToString(mEnumerationReference);
return base.BuildStringSTEP(release) + ",(" + String.Join(",", mEnumerationValues) + (mEnumerationReference == null ? "),$" : "),#" + mEnumerationReference.StepId);
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
@ -778,7 +786,7 @@ namespace GeometryGym.Ifc
string s = ParserSTEP.StripField(str, ref pos, len);
List<string> fields = ParserSTEP.SplitLineFields(s.Substring(1, s.Length - 2));
mEnumerationValues.AddRange(fields.Select(x => ParserIfc.parseValue(x)));
mEnumerationReference = ParserSTEP.StripLink(str, ref pos, len);
mEnumerationReference = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcPropertyEnumeration;
}
}
public partial class IfcPropertyEnumeration
@ -825,12 +833,16 @@ namespace GeometryGym.Ifc
}
public partial class IfcPropertyReferenceValue
{
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + (string.IsNullOrEmpty(mUsageName) ? ",$," : ",'" + ParserIfc.Encode(mUsageName) + "',") + (mPropertyReference == 0 ? "$" : "#" + mPropertyReference); }
protected override string BuildStringSTEP(ReleaseVersion release)
{
return base.BuildStringSTEP(release) + (string.IsNullOrEmpty(mUsageName) ? ",$," : ",'" + ParserIfc.Encode(mUsageName) + "',") +
(mPropertyReference == null ? "$" : "#" + mPropertyReference.StepId);
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
base.parse(str, ref pos, release, len, dictionary);
mUsageName = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mPropertyReference = ParserSTEP.StripLink(str, ref pos, len);
mPropertyReference = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcObjectReferenceSelect;
}
}
public partial class IfcPropertySet

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

@ -189,10 +189,7 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
string str = base.BuildStringSTEP(release) + ",(" + ParserSTEP.DoubleToString(mWeightsData[0]);
for (int icounter = 1; icounter < mWeightsData.Count; icounter++)
str += "," + ParserSTEP.DoubleToString(mWeightsData[icounter]);
return str + ")";
return base.BuildStringSTEP(release) + ",(" + string.Join(",", mWeightsData.Select(x=> ParserSTEP.DoubleToString(x))) + ")";
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
@ -261,10 +258,10 @@ namespace GeometryGym.Ifc
}
public partial class IfcRectangularTrimmedSurface
{
protected override string BuildStringSTEP(ReleaseVersion release) { return ParserSTEP.LinkToString(mBasisSurface) + "," + ParserSTEP.DoubleToString(mU1) + "," + ParserSTEP.DoubleToString(mV1) + "," + ParserSTEP.DoubleToString(mU2) + "," + ParserSTEP.DoubleToString(mV2) + "," + ParserSTEP.BoolToString(mUsense) + "," + ParserSTEP.BoolToString(mVsense); }
protected override string BuildStringSTEP(ReleaseVersion release) { return "#" + mBasisSurface.StepId + "," + ParserSTEP.DoubleToString(mU1) + "," + ParserSTEP.DoubleToString(mV1) + "," + ParserSTEP.DoubleToString(mU2) + "," + ParserSTEP.DoubleToString(mV2) + "," + ParserSTEP.BoolToString(mUsense) + "," + ParserSTEP.BoolToString(mVsense); }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
mBasisSurface = ParserSTEP.StripLink(str, ref pos, len);
mBasisSurface = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcPlane;
mU1 = ParserSTEP.StripDouble(str, ref pos, len);
mU2 = ParserSTEP.StripDouble(str, ref pos, len);
mV1 = ParserSTEP.StripDouble(str, ref pos, len);
@ -277,45 +274,12 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
string str = "." + mRecurrenceType.ToString();
if (mDayComponent.Count == 0)
str += ".,$,";
else
{
str += ".,(" + mDayComponent[0];
for (int icounter = 1; icounter < mDayComponent.Count; icounter++)
str += "," + mDayComponent[icounter];
str += "),";
}
if (mWeekdayComponent.Count == 0)
str += "$,";
else
{
str += "(" + mWeekdayComponent[0];
for (int icounter = 1; icounter < mWeekdayComponent.Count; icounter++)
str += "," + mWeekdayComponent[icounter];
str += "),";
}
if (mMonthComponent.Count == 0)
str += "$,";
else
{
str += "(" + mMonthComponent[0];
for (int icounter = 1; icounter < mMonthComponent.Count; icounter++)
str += "," + mMonthComponent[icounter];
str += "),";
}
str += mInterval + "," + mPosition + "," + mOccurrences;
if (mTimePeriods.Count == 0)
str += ",$";
else
{
str += ",(" + ParserSTEP.LinkToString(mTimePeriods[0]);
for (int icounter = 1; icounter < mTimePeriods.Count; icounter++)
str += "," + ParserSTEP.LinkToString(mTimePeriods[icounter]);
str += ")";
}
return str;
return "." + mRecurrenceType.ToString() + (mDayComponent.Count == 0 ? ".,$," : ".,(" + string.Join(",", mDayComponent) + "),") +
(mWeekdayComponent.Count == 0 ? "$," : "(" + string.Join(",", mWeekdayComponent) + "),") +
(mMonthComponent.Count == 0 ? "$," : "(" + string.Join(",", mMonthComponent) + "),") +
(mInterval == int.MinValue ? "$" : mInterval.ToString()) + (mPosition == int.MinValue ? ",$" : "," + mPosition) +
(mOccurrences == int.MinValue ? ",$" :"," + mOccurrences) +
(mTimePeriods.Count == 0 ? ",$" : string.Join(",", mTimePeriods.Select(x=>"#" + x.StepId)) + ")");
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
@ -338,7 +302,7 @@ namespace GeometryGym.Ifc
s = ParserSTEP.StripField(str, ref pos, len);
if (s != "$")
mOccurrences = int.Parse(s);
mTimePeriods = ParserSTEP.StripListLink(str, ref pos, len);
mTimePeriods.AddRange(ParserSTEP.StripListLink(str, ref pos, len).Select(x=>dictionary[x] as IfcTimePeriod));
}
}
public partial class IfcReference
@ -350,7 +314,7 @@ namespace GeometryGym.Ifc
return (string.IsNullOrEmpty(mTypeIdentifier) ? "$" : "'" + ParserIfc.Encode(mTypeIdentifier) + "'") +
(string.IsNullOrEmpty(mAttributeIdentifier) ? ",$," : ",'" + ParserIfc.Encode(mAttributeIdentifier) + "',") +
(string.IsNullOrEmpty(mInstanceName) ? "$," : "'" + ParserIfc.Encode(mInstanceName) + "',") +
(mListPositions.Count == 0 ? "$," : "(" + string.Join(",", mListPositions) + "),") + ParserSTEP.LinkToString(mInnerReference);
(mListPositions.Count == 0 ? "$," : "(" + string.Join(",", mListPositions) + "),") + (mInnerReference == null ? "$" : "#" + mInnerReference.StepId);
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
@ -360,7 +324,7 @@ namespace GeometryGym.Ifc
string s = ParserSTEP.StripField(str, ref pos, len);
if (s.StartsWith("("))
mListPositions.AddRange(ParserSTEP.SplitLineFields(s.Substring(1, s.Length - 2)).ConvertAll(x => int.Parse(x)));
mInnerReference = ParserSTEP.StripLink(str, ref pos, len);
mInnerReference = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcReference;
}
}
public partial class IfcReferent
@ -573,7 +537,7 @@ namespace GeometryGym.Ifc
{
if (mRelatedObjects.Count == 0)
return "";
return base.BuildStringSTEP(release) + ",#" + mRelatingObject.StepId + ",(#" + string.Join(",#", RelatedObjects.OrderBy(x=>x.StepId).Select(x => x.Index)) + ")";
return base.BuildStringSTEP(release) + ",#" + mRelatingObject.StepId + ",(" + string.Join(",", RelatedObjects.OrderBy(x=>x.StepId).Select(x => "#" + x.StepId)) + ")";
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
@ -586,7 +550,7 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return base.BuildStringSTEP(release) + ",(#" + string.Join(",#", RelatedObjects.ConvertAll(x => x.Index)) + ")," +
return base.BuildStringSTEP(release) + ",(" + string.Join(",", RelatedObjects.ConvertAll(x => "#" + x.StepId)) + ")," +
(mDatabase.Release < ReleaseVersion.IFC4 && mRelatedObjectsType != IfcObjectTypeEnum.NOTDEFINED ? "." + mRelatedObjectsType + "." : "$");
}
@ -602,7 +566,10 @@ namespace GeometryGym.Ifc
}
public partial class IfcRelAssignsTasks
{
protected override string BuildStringSTEP(ReleaseVersion release) { return (mDatabase.ModelView == ModelView.Ifc2x3Coordination || mRelatedObjects.Count == 0 ? "" : base.BuildStringSTEP(release) + "," + ParserSTEP.LinkToString(mTimeForTask)); }
protected override string BuildStringSTEP(ReleaseVersion release)
{
return (mDatabase.ModelView == ModelView.Ifc2x3Coordination || mRelatedObjects.Count == 0 ? "" :
base.BuildStringSTEP(release) + (mTimeForTask == null ? ",$" : ",#" + mTimeForTask.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);
@ -611,7 +578,7 @@ namespace GeometryGym.Ifc
}
public partial class IfcRelAssignsToActor
{
protected override string BuildStringSTEP(ReleaseVersion release) { return (mRelatedObjects.Count == 0 ? "" : base.BuildStringSTEP(release) + ",#" + RelatingActor.Index + "," + ParserSTEP.ObjToLinkString(mRelatingActor)); }
protected override string BuildStringSTEP(ReleaseVersion release) { return (mRelatedObjects.Count == 0 ? "" : base.BuildStringSTEP(release) + ",#" + RelatingActor.StepId + "," + ParserSTEP.ObjToLinkString(mRelatingActor)); }
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);
@ -631,7 +598,7 @@ namespace GeometryGym.Ifc
}
public partial class IfcRelAssignsToGroup
{
protected override string BuildStringSTEP(ReleaseVersion release) { return (mRelatedObjects.Count == 0 ? "" : base.BuildStringSTEP(release) + ",#" + mRelatingGroup.Index); }
protected override string BuildStringSTEP(ReleaseVersion release) { return (mRelatedObjects.Count == 0 ? "" : base.BuildStringSTEP(release) + ",#" + mRelatingGroup.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);
@ -653,7 +620,7 @@ namespace GeometryGym.Ifc
{
if (mDatabase.ModelView == ModelView.Ifc2x3Coordination || mRelatedObjects.Count == 0)
return "";
return base.BuildStringSTEP(release) + ",#" + mRelatingProcess + (mQuantityInProcess == null ? ",$" : ",#" + mQuantityInProcess.Index); }
return base.BuildStringSTEP(release) + ",#" + mRelatingProcess.StepId + (mQuantityInProcess == null ? ",$" : ",#" + mQuantityInProcess.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);
@ -663,7 +630,7 @@ namespace GeometryGym.Ifc
}
public partial class IfcRelAssignsToProduct
{
protected override string BuildStringSTEP(ReleaseVersion release) { return (mDatabase.ModelView == ModelView.Ifc2x3Coordination || mRelatedObjects.Count == 0 ? "" : base.BuildStringSTEP(release) + ",#" + mRelatingProduct.Index); }
protected override string BuildStringSTEP(ReleaseVersion release) { return (mDatabase.ModelView == ModelView.Ifc2x3Coordination || mRelatedObjects.Count == 0 ? "" : base.BuildStringSTEP(release) + ",#" + mRelatingProduct.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);
@ -672,7 +639,10 @@ namespace GeometryGym.Ifc
}
public partial class IfcRelAssignsToResource
{
protected override string BuildStringSTEP(ReleaseVersion release) { return (mDatabase.ModelView == ModelView.Ifc2x3Coordination || mRelatedObjects.Count == 0 ? "" : base.BuildStringSTEP(release) + "," + ParserSTEP.LinkToString(mRelatingResource)); }
protected override string BuildStringSTEP(ReleaseVersion release)
{
return (mDatabase.ModelView == ModelView.Ifc2x3Coordination || mRelatedObjects.Count == 0 ? "" :
base.BuildStringSTEP(release) + ",#" + mRelatingResource.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);
@ -685,7 +655,7 @@ namespace GeometryGym.Ifc
{
if (mRelatedObjects.Count == 0)
return "";
return base.BuildStringSTEP(release) + ",(#" + string.Join(",#", mRelatedObjects.ConvertAll(x => x.Index)) + ")";
return base.BuildStringSTEP(release) + ",(" + string.Join(",", mRelatedObjects.ConvertAll(x => "#" + x.StepId)) + ")";
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
@ -702,12 +672,25 @@ namespace GeometryGym.Ifc
}
}
}
public partial class IfcRelAssociatesApproval
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
string str = base.BuildStringSTEP(release);
return string.IsNullOrEmpty(str) ? "" : str + ",#" + RelatingApproval.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);
RelatingApproval = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcApproval;
}
}
public partial class IfcRelAssociatesClassification
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
string str = base.BuildStringSTEP(release);
return string.IsNullOrEmpty(str) ? "" : str + ",#" + RelatingClassification.Index;
return string.IsNullOrEmpty(str) ? "" : str + ",#" + RelatingClassification.StepId;
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
@ -717,9 +700,11 @@ namespace GeometryGym.Ifc
}
public partial class IfcRelAssociatesConstraint
{
protected override string BuildStringSTEP(ReleaseVersion release)
protected override string BuildStringSTEP(ReleaseVersion release)
{
return (RelatingConstraint == null ? "" : base.BuildStringSTEP(release) + (string.IsNullOrEmpty(mIntent) ? ",$," : ",'" + ParserIfc.Encode(mIntent) + "',") + ParserSTEP.LinkToString(mRelatingConstraint)); }
return (RelatingConstraint == null ? "" : base.BuildStringSTEP(release) +
(string.IsNullOrEmpty(mIntent) ? ",$," : ",'" + ParserIfc.Encode(mIntent) + "',") + "#" + mRelatingConstraint.StepId);
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
base.parse(str, ref pos, release, len, dictionary);
@ -729,11 +714,11 @@ namespace GeometryGym.Ifc
}
public partial class IfcRelAssociatesDocument
{
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + "," + ParserSTEP.LinkToString(mRelatingDocument); }
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + ",#" + mRelatingDocument.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);
mRelatingDocument = ParserSTEP.StripLink(str, ref pos, len);
RelatingDocument = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcDocumentSelect;
}
}
public partial class IfcRelAssociatesLibrary
@ -742,7 +727,7 @@ namespace GeometryGym.Ifc
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
base.parse(str, ref pos, release, len, dictionary);
mRelatingLibrary = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcLibrarySelect;
RelatingLibrary = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcLibrarySelect;
}
}
public partial class IfcRelAssociatesMaterial
@ -752,7 +737,7 @@ namespace GeometryGym.Ifc
string baseString = base.BuildStringSTEP(release);
if (string.IsNullOrEmpty(baseString) || (release < ReleaseVersion.IFC4 && string.IsNullOrEmpty(RelatingMaterial.ToString())))
return "";
return baseString + ",#" + mRelatingMaterial;
return baseString + ",#" + mRelatingMaterial.StepId;
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
@ -778,28 +763,19 @@ namespace GeometryGym.Ifc
{
if (release > ReleaseVersion.IFC2x3 || mRelatedObjects.Count == 0)
return "";
string str = base.BuildStringSTEP(release) + "," + ParserSTEP.LinkToString(mRelatingProfileProperties) + "," +
ParserSTEP.LinkToString(mProfileSectionLocation) + ",";
if (double.IsNaN(mProfileOrientationValue))
{
if (mProfileOrientation == 0)
return str + "$";
return str + ",IFCPLANEANGLEMEASURE(" + ParserSTEP.DoubleToString(mProfileOrientation) + ")";
}
return str + ParserSTEP.LinkToString((int)mProfileOrientation);
return base.BuildStringSTEP(release) + ",#" + mRelatingProfileProperties.StepId + ",#" + mProfileSectionLocation.StepId + "," +
(mProfileOrientation is BaseClassIfc o ? "#" + o.StepId : (mProfileOrientation == null ? "$" : mProfileOrientation.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);
mRelatingProfileProperties = ParserSTEP.StripLink(str, ref pos, len);
mProfileSectionLocation = ParserSTEP.StripLink(str, ref pos, len);
RelatingProfileProperties = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcProfileProperties;
ProfileSectionLocation = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcShapeAspect;
string s = ParserSTEP.StripField(str, ref pos, len);
if (s.StartsWith("IfcPlaneAngleMeasure(", true, System.Globalization.CultureInfo.CurrentCulture))
{
mProfileOrientationValue = ParserSTEP.ParseDouble(s.Substring(21, s.Length - 22));
}
if (s[0] == '#')
mProfileOrientation = dictionary[ParserSTEP.ParseLink(s)] as IfcOrientationSelect;
else
mProfileOrientation = ParserSTEP.ParseLink(s);
mProfileOrientation = ParserIfc.parseValue(s) as IfcOrientationSelect;
}
}
public partial class IfcRelaxation
@ -813,7 +789,7 @@ namespace GeometryGym.Ifc
}
public partial class IfcRelConnectsElements
{
protected override string BuildStringSTEP(ReleaseVersion release) { return (mRelatingElement == null || mRelatedElement == null ? "" : base.BuildStringSTEP(release) + "," + ParserSTEP.ObjToLinkString(mConnectionGeometry) + ",#" + mRelatingElement.Index + ",#" + mRelatedElement.Index); }
protected override string BuildStringSTEP(ReleaseVersion release) { return (mRelatingElement == null || mRelatedElement == null ? "" : base.BuildStringSTEP(release) + "," + ParserSTEP.ObjToLinkString(mConnectionGeometry) + ",#" + mRelatingElement.StepId + ",#" + mRelatedElement.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);
@ -842,18 +818,25 @@ namespace GeometryGym.Ifc
}
public partial class IfcRelConnectsPorts
{
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + "," + ParserSTEP.LinkToString(mRelatingPort) + "," + ParserSTEP.LinkToString(mRelatedPort) + "," + ParserSTEP.LinkToString(mRealizingElement); }
protected override string BuildStringSTEP(ReleaseVersion release)
{
return base.BuildStringSTEP(release) + ",#" + mRelatingPort.StepId + ",#" + mRelatedPort.StepId +
(mRealizingElement == null ? ",$" : "," + mRealizingElement.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);
RelatingPort = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcPort;
RelatedPort = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcPort;
mRealizingElement = ParserSTEP.StripLink(str, ref pos, len);
RealizingElement = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcElement;
}
}
public partial class IfcRelConnectsPortToElement
{
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + "," + ParserSTEP.LinkToString(mRelatingPort) + "," + ParserSTEP.LinkToString(mRelatedElement); }
protected override string BuildStringSTEP(ReleaseVersion release)
{
return base.BuildStringSTEP(release) + ",#" + mRelatingPort.StepId + ",#" + mRelatedElement.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);
@ -886,29 +869,28 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return base.BuildStringSTEP(release) + "," + ParserSTEP.LinkToString(mRelatingStructuralMember) + "," +
ParserSTEP.LinkToString(mRelatedStructuralConnection) + "," + ParserSTEP.LinkToString(mAppliedCondition) + "," +
ParserSTEP.LinkToString(mAdditionalConditions) + "," + ParserSTEP.DoubleOptionalToString(mSupportedLength) + "," +
ParserSTEP.LinkToString(mConditionCoordinateSystem);
return base.BuildStringSTEP(release) + ",#" + mRelatingStructuralMember.StepId + ",#" + mRelatedStructuralConnection.StepId +
(mAppliedCondition == null ? ",$" : ",#" + mAppliedCondition.StepId) + (mAdditionalConditions == null ? ",$," : ",#" + mAppliedCondition.StepId + ",") +
ParserSTEP.DoubleOptionalToString(mSupportedLength) + (mConditionCoordinateSystem == null ? ",$" : ",#" + mConditionCoordinateSystem.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);
RelatingStructuralMember = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcStructuralMember;
RelatedStructuralConnection = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcStructuralConnection;
mAppliedCondition = ParserSTEP.StripLink(str, ref pos, len);
mAdditionalConditions = ParserSTEP.StripLink(str, ref pos, len);
mSupportedLength = ParserSTEP.StripDouble(str, ref pos, len);
mConditionCoordinateSystem = ParserSTEP.StripLink(str, ref pos, len);
AppliedCondition = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcBoundaryCondition;
AdditionalConditions = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcStructuralConnectionCondition;
SupportedLength = ParserSTEP.StripDouble(str, ref pos, len);
ConditionCoordinateSystem = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcAxis2Placement3D;
}
}
public partial class IfcRelConnectsWithEccentricity
{
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + "," + ParserSTEP.LinkToString(mConnectionConstraint); }
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + ",#" + mConnectionConstraint.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);
mConnectionConstraint = ParserSTEP.StripLink(str, ref pos, len);
mConnectionConstraint = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcConnectionGeometry;
}
}
public partial class IfcRelConnectsWithRealizingElements
@ -917,7 +899,7 @@ namespace GeometryGym.Ifc
{
if (mRealizingElements.Count == 0)
return "";
return base.BuildStringSTEP(release) + ",(#" + string.Join(",#", mRealizingElements.Select(x => x.Index)) + (string.IsNullOrEmpty(mConnectionType) ? "),$" : "),'" + ParserIfc.Encode(mConnectionType) + "'");
return base.BuildStringSTEP(release) + ",(" + string.Join(",", mRealizingElements.Select(x => "#" + x.StepId)) + (string.IsNullOrEmpty(mConnectionType) ? "),$" : "),'" + ParserIfc.Encode(mConnectionType) + "'");
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
@ -932,7 +914,7 @@ namespace GeometryGym.Ifc
{
if (mRelatedElements.Count <= 0)
return "";
return base.BuildStringSTEP(release) + ",(#" + string.Join(",#", mRelatedElements.OrderBy(x=>x.StepId).Select(x => x.StepId.ToString())) + "),#" + mRelatingStructure.mIndex;
return base.BuildStringSTEP(release) + ",(#" + string.Join(",#", mRelatedElements.OrderBy(x=>x.StepId).Select(x => x.StepId.ToString())) + "),#" + mRelatingStructure.StepId;
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
@ -971,7 +953,7 @@ namespace GeometryGym.Ifc
{
if (mRelatedCoverings.Count == 0)
return "";
return base.BuildStringSTEP(release) + ",#" + mRelatedSpace.Index + ",(#" + string.Join(",#", RelatedCoverings.ConvertAll(x => x.Index)) + ")";
return base.BuildStringSTEP(release) + ",#" + mRelatedSpace.StepId + ",(" + string.Join(",", RelatedCoverings.ConvertAll(x => "#" + x.StepId)) + ")";
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
@ -986,7 +968,7 @@ namespace GeometryGym.Ifc
{
if (release < ReleaseVersion.IFC4 || mRelatingContext == null || mRelatedDefinitions.Count == 0)
return "";
return base.BuildStringSTEP(release) + ",#" + mRelatingContext.mIndex + ",(#" + string.Join(",#", mRelatedDefinitions.ConvertAll(x => x.Index)) + ")";
return base.BuildStringSTEP(release) + ",#" + mRelatingContext.StepId + ",(" + string.Join(",", mRelatedDefinitions.ConvertAll(x => "#" + x.StepId)) + ")";
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
@ -1043,16 +1025,12 @@ namespace GeometryGym.Ifc
{
if (mDatabase.Release < ReleaseVersion.IFC4 || mRelatedPropertySets.Count == 0)
return "";
string str = base.BuildStringSTEP(release) + ",(" + ParserSTEP.LinkToString(mRelatedPropertySets[0]);
for (int icounter = 1; icounter < mRelatedPropertySets.Count; icounter++)
str += "," + ParserSTEP.LinkToString(mRelatedPropertySets[icounter]);
return str + ")," + ParserSTEP.LinkToString(mRelatingTemplate);
return base.BuildStringSTEP(release) + ",(" + String.Join(",", mRelatedPropertySets.Select(x => "#" + x.StepId)) + "),#" + mRelatingTemplate.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);
foreach (IfcPropertySetDefinition pset in ParserSTEP.StripListLink(str, ref pos, len).Select(x => dictionary[x] as IfcPropertySetDefinition))
AddRelated(pset);
mRelatedPropertySets.AddRange(ParserSTEP.StripListLink(str, ref pos, len).Select(x => dictionary[x] as IfcPropertySetDefinition));
RelatingTemplate = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcPropertySetTemplate;
}
}
@ -1065,7 +1043,7 @@ namespace GeometryGym.Ifc
IfcTypeObject to = RelatingType;
if (to == null || string.IsNullOrEmpty(to.ToString()))
return "";
return base.BuildStringSTEP(release) + ",(#" + string.Join(",#", mRelatedObjects.ConvertAll(x => x.Index)) + "),#" + mRelatingType.Index;
return base.BuildStringSTEP(release) + ",(" + string.Join(",", mRelatedObjects.ConvertAll(x => "#"+ x.StepId)) + "),#" + mRelatingType.StepId;
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
@ -1076,7 +1054,7 @@ namespace GeometryGym.Ifc
}
public partial class IfcRelFillsElement
{
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + "," + ParserSTEP.LinkToString(mRelatingOpeningElement) + "," + ParserSTEP.LinkToString(mRelatedBuildingElement); }
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + ",#" + mRelatingOpeningElement.StepId + ",#" + mRelatedBuildingElement.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);
@ -1086,28 +1064,30 @@ namespace GeometryGym.Ifc
}
public partial class IfcRelFlowControlElements
{
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + "," + ParserSTEP.LinkToString(mRelatingPort) + "," + ParserSTEP.LinkToString(mRelatedElement); }
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + ",#" + mRelatingPort.StepId + ",#" + mRelatedElement.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);
mRelatingPort = ParserSTEP.StripLink(str, ref pos, len);
mRelatedElement = ParserSTEP.StripLink(str, ref pos, len);
mRelatingPort = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcPort;
mRelatedElement = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcElement;
}
}
public partial class IfcRelInterferesElements
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return base.BuildStringSTEP(release) + "," + ParserSTEP.LinkToString(mRelatingElement) + "," + ParserSTEP.LinkToString(mRelatedElement) + "," +
ParserSTEP.LinkToString(mInterferenceGeometry) + (release > ReleaseVersion.IFC4X3_RC3 ? "," + ParserSTEP.ObjToLinkString(mInterferenceSpace) :"") +
(string.IsNullOrEmpty( mInterferenceType) ? ",$," : ",'" + ParserIfc.Encode(mInterferenceType) + "',") + ParserIfc.LogicalToString(mImpliedOrder);
return base.BuildStringSTEP(release) + ",#" + mRelatingElement.StepId + ",#" + mRelatedElement.StepId +
(mInterferenceGeometry == null ? ",$" : ",#" + mInterferenceGeometry.StepId) +
(release > ReleaseVersion.IFC4X3_RC3 ? "," + ParserSTEP.ObjToLinkString(mInterferenceSpace) : "") +
(string.IsNullOrEmpty( mInterferenceType) ? ",$," : ",'" + ParserIfc.Encode(mInterferenceType) + "',") +
ParserIfc.LogicalToString(mImpliedOrder);
}
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);
RelatingElement = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcInterferenceSelect;
RelatedElement = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcInterferenceSelect;
mInterferenceGeometry = ParserSTEP.StripLink(str, ref pos, len);
InterferenceGeometry =dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcConnectionGeometry;
if (release > ReleaseVersion.IFC4X3_RC3)
mInterferenceSpace = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcSpatialZone;
mInterferenceType = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
@ -1120,7 +1100,7 @@ namespace GeometryGym.Ifc
{
if (mRelatedObjects.Count == 0)
return "";
return base.BuildStringSTEP(release) + ",#" + mRelatingObject.Index + ",(#" + string.Join(",#", mRelatedObjects.Select(x => x.Index)) + ")";
return base.BuildStringSTEP(release) + ",#" + mRelatingObject.StepId + ",(" + string.Join(",", mRelatedObjects.Select(x => "#" + x.StepId)) + ")";
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
@ -1136,15 +1116,12 @@ namespace GeometryGym.Ifc
string str = base.BuildStringSTEP(release);
if (string.IsNullOrEmpty(str))
return "";
str += ",(#" + mOverridingProperties[0];
for (int icounter = 1; icounter < mOverridingProperties.Count; icounter++)
str += ",#" + mOverridingProperties[icounter];
return str + ")";
return str + ",(" + String.Join(",", mOverridingProperties.Select(x => "#" + x.StepId)) + ")";
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
base.parse(str, ref pos, release, len, dictionary);
mOverridingProperties = ParserSTEP.StripListLink(str, ref pos, len);
mOverridingProperties.AddRange(ParserSTEP.StripListLink(str, ref pos, len).Select(x=>dictionary[x] as IfcProperty));
}
}
public partial class IfcRelPositions
@ -1164,7 +1141,7 @@ namespace GeometryGym.Ifc
}
public partial class IfcRelProjectsElement
{
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + "," + ParserSTEP.LinkToString(mRelatingElement) + "," + ParserSTEP.LinkToString(mRelatedFeatureElement); }
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + ",#" + mRelatingElement.StepId + ",#" + mRelatedFeatureElement.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);
@ -1230,13 +1207,19 @@ namespace GeometryGym.Ifc
}
public partial class IfcRelSpaceBoundary
{
protected override string BuildStringSTEP(ReleaseVersion release) { return ((release > ReleaseVersion.IFC2x3 && mRelatedBuildingElement == null) || mRelatingSpace == 0 ? "" : base.BuildStringSTEP(release) + "," + ParserSTEP.LinkToString(mRelatingSpace) + "," + ParserSTEP.ObjToLinkString(mRelatedBuildingElement) + "," + ParserSTEP.LinkToString(mConnectionGeometry) + ",." + mPhysicalOrVirtualBoundary.ToString() + ".,." + mInternalOrExternalBoundary.ToString() + "."); }
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() + ".");
}
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);
RelatingSpace = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcSpaceBoundarySelect;
RelatedBuildingElement = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcElement;
mConnectionGeometry = ParserSTEP.StripLink(str, ref pos, len);
mConnectionGeometry = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcConnectionGeometry;
string s = ParserSTEP.StripField(str, ref pos, len);
if (s != "$")
Enum.TryParse<IfcPhysicalOrVirtualEnum>(s.Replace(".", ""), true, out mPhysicalOrVirtualBoundary);
@ -1247,7 +1230,7 @@ namespace GeometryGym.Ifc
}
public partial class IfcRelSpaceBoundary1stLevel
{
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + "," + ParserSTEP.LinkToString(mParentBoundary); }
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + ",#" + mParentBoundary.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);
@ -1256,7 +1239,7 @@ namespace GeometryGym.Ifc
}
public partial class IfcRelSpaceBoundary2ndLevel
{
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + "," + ParserSTEP.LinkToString(mCorrespondingBoundary); }
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + ",#" + mCorrespondingBoundary.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);
@ -1286,12 +1269,10 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
string str = (mContextOfItems == null ? "$" : "#" + mContextOfItems.Index) +
return (mContextOfItems == null ? "$" : "#" + mContextOfItems.StepId) +
(string.IsNullOrEmpty(mRepresentationIdentifier) ? ",$," : ",'" + ParserIfc.Encode(mRepresentationIdentifier) + "',") +
(string.IsNullOrEmpty(mRepresentationType) ? "$,(" : "'" + ParserIfc.Encode(mRepresentationType) + "',(");
if (mItems.Count > 0)
str += "#" + string.Join(",#", mItems.ConvertAll(x => x.mIndex));
return str + ")";
(string.IsNullOrEmpty(mRepresentationType) ? "$,(" : "'" + ParserIfc.Encode(mRepresentationType) + "',(") +
string.Join(",", mItems.ConvertAll(x => "#" + x.StepId)) + ")";
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
@ -1416,11 +1397,11 @@ namespace GeometryGym.Ifc
}
public partial class IfcRevolvedAreaSolid
{
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + "," + ParserSTEP.LinkToString(mAxis) + "," + ParserSTEP.DoubleToString(mAngle); }
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + ",#" + mAxis + "," + ParserSTEP.DoubleToString(mAngle); }
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);
mAxis = ParserSTEP.StripLink(str, ref pos, len);
mAxis = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcAxis1Placement;
string s = ParserSTEP.StripField(str, ref pos, len);
if (s.StartsWith("IfcPlaneAngleMeasure(", true, System.Globalization.CultureInfo.CurrentCulture))
mAngle = ParserSTEP.ParseDouble(s.Substring(21, str.Length - 22));
@ -1430,11 +1411,11 @@ namespace GeometryGym.Ifc
}
public partial class IfcRevolvedAreaSolidTapered
{
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + "," + ParserSTEP.LinkToString(mEndSweptArea); }
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + ",#" + mEndSweptArea.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);
mEndSweptArea = ParserSTEP.StripLink(str, ref pos, len);
mEndSweptArea = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcProfileDef;
}
}
public partial class IfcRibPlateProfileProperties
@ -1543,7 +1524,7 @@ namespace GeometryGym.Ifc
}
protected override string BuildStringSTEP(ReleaseVersion release)
{
return "'" + mGlobalId + (mOwnerHistory == null ? "',$" : "',#" + mOwnerHistory.mIndex) +
return "'" + mGlobalId + (mOwnerHistory == null ? "',$" : "',#" + mOwnerHistory.StepId) +
(string.IsNullOrEmpty(mName) ? ",$," : ",'" + ParserIfc.Encode(mName) + "',") +
(string.IsNullOrEmpty(mDescription) ? "$" : "'" + ParserIfc.Encode(mDescription) + "'");
}

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

@ -58,29 +58,35 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return base.BuildStringSTEP(release) + "," + ParserSTEP.LinkToString(mActualStart) + "," + ParserSTEP.LinkToString(mEarlyStart) + "," + ParserSTEP.LinkToString(mLateStart) + "," +
ParserSTEP.LinkToString(mScheduleStart) + "," + ParserSTEP.LinkToString(mActualFinish) + "," + ParserSTEP.LinkToString(mEarlyFinish) + "," + ParserSTEP.LinkToString(mLateFinish) + "," + ParserSTEP.LinkToString(mScheduleFinish) + "," +
ParserSTEP.DoubleOptionalToString(mScheduleDuration) + "," + ParserSTEP.DoubleOptionalToString(mActualDuration) + "," + ParserSTEP.DoubleOptionalToString(mRemainingTime) + "," + ParserSTEP.DoubleOptionalToString(mFreeFloat) + "," + ParserSTEP.DoubleOptionalToString(mTotalFloat) + "," + ParserSTEP.BoolToString(mIsCritical) + "," + ParserSTEP.LinkToString(mStatusTime) + "," +
ParserSTEP.DoubleOptionalToString(mStartFloat) + "," + ParserSTEP.DoubleOptionalToString(mFinishFloat) + "," + ParserSTEP.DoubleOptionalToString(mCompletion); //(mScheduleTimeControlAssigned == null ? "" :
return base.BuildStringSTEP(release) + (mActualStart == null ? ",$" : ",#" + mActualStart.StepId) +
(mEarlyStart == null ? ",$" : ",#" + mEarlyStart.StepId) + (mLateStart == null ? ",$" : ",#" + mLateStart.StepId) +
(mScheduleStart == null ? ",$" : ",#" + mScheduleStart.StepId) + (mActualFinish == null ? ",$" : ",#" + mActualFinish.StepId) +
(mEarlyFinish == null ? ",$" : ",#" + mEarlyFinish.StepId) + (mLateFinish == null ? ",$" : ",#" + mLateFinish.StepId) +
(mScheduleFinish == null ? ",$" : ",#" + mScheduleFinish) + ParserSTEP.DoubleOptionalToString(mScheduleDuration) + "," +
ParserSTEP.DoubleOptionalToString(mActualDuration) + "," + ParserSTEP.DoubleOptionalToString(mRemainingTime) + "," +
ParserSTEP.DoubleOptionalToString(mFreeFloat) + "," + ParserSTEP.DoubleOptionalToString(mTotalFloat) + "," +
ParserSTEP.BoolToString(mIsCritical) + (mStatusTime == null ? ",$" : ",#" + mStatusTime.StepId) + "," +
ParserSTEP.DoubleOptionalToString(mStartFloat) + "," + ParserSTEP.DoubleOptionalToString(mFinishFloat) + "," +
ParserSTEP.DoubleOptionalToString(mCompletion);
}
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);
mActualStart = ParserSTEP.StripLink(str, ref pos, len);
mEarlyStart = ParserSTEP.StripLink(str, ref pos, len);
mLateStart = ParserSTEP.StripLink(str, ref pos, len);
mScheduleStart = ParserSTEP.StripLink(str, ref pos, len);
mActualFinish = ParserSTEP.StripLink(str, ref pos, len);
mEarlyFinish = ParserSTEP.StripLink(str, ref pos, len);
mLateFinish = ParserSTEP.StripLink(str, ref pos, len);
mScheduleFinish = ParserSTEP.StripLink(str, ref pos, len);
mActualStart = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcDateTimeSelect;
mEarlyStart = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcDateTimeSelect;
mLateStart = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcDateTimeSelect;
mScheduleStart = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcDateTimeSelect;
mActualFinish = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcDateTimeSelect;
mEarlyFinish = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcDateTimeSelect;
mLateFinish = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcDateTimeSelect;
mScheduleFinish = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcDateTimeSelect;
mScheduleDuration = ParserSTEP.StripDouble(str, ref pos, len);
mActualDuration = ParserSTEP.StripDouble(str, ref pos, len);
mRemainingTime = ParserSTEP.StripDouble(str, ref pos, len);
mFreeFloat = ParserSTEP.StripDouble(str, ref pos, len);
mTotalFloat = ParserSTEP.StripDouble(str, ref pos, len);
mIsCritical = ParserSTEP.StripBool(str, ref pos, len);
mStatusTime = ParserSTEP.StripLink(str, ref pos, len);
mStatusTime = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcDateTimeSelect;
mStartFloat = ParserSTEP.StripDouble(str, ref pos, len);
mFinishFloat = ParserSTEP.StripDouble(str, ref pos, len);
mCompletion = ParserSTEP.StripDouble(str, ref pos, len);
@ -121,8 +127,7 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return "#" + Directrix.Index + ",(#" +
string.Join(",#", CrossSections.ConvertAll(x => x.Index)) + ")";
return "#" + Directrix.StepId + ",(" + string.Join(",", CrossSections.ConvertAll(x => "#" + x.StepId)) + ")";
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
@ -136,9 +141,9 @@ namespace GeometryGym.Ifc
{
string result = base.BuildStringSTEP(release);
if (release < ReleaseVersion.IFC4X3_RC3)
result += ",(#" + string.Join(",#", mCrossSectionPositions_OBSOLETE.ConvertAll(x => x.Index));
result += ",(" + string.Join(",", mCrossSectionPositions_OBSOLETE.ConvertAll(x => "#" + x.StepId));
else if (release == ReleaseVersion.IFC4X3_RC3)
result += ",(#" + string.Join(",#", mCrossSectionPositionMeasures_OBSOLETE.ConvertAll(x => x.ToString()));
result += ",(" + string.Join(",", mCrossSectionPositionMeasures_OBSOLETE.ConvertAll(x => "#" + x.ToString()));
else
result += ",(" + string.Join(",", CrossSectionPositions.Select(x => "#" + x.StepId));
return result + (release < ReleaseVersion.IFC4X3 ? (mFixedAxisVertical ? "),.T." : "),.F.") : "");
@ -169,8 +174,8 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return "#" + SpineCurve.Index + ",(#" +
string.Join(",#", CrossSections.ConvertAll(x => x.Index)) + "),(#" + string.Join(",#", mCrossSectionPositions.ConvertAll(x=>x.mIndex)) + ")";
return "#" + SpineCurve.StepId + ",(" + string.Join(",", CrossSections.ConvertAll(x => "#" + x.StepId)) + "),(" +
string.Join(",", mCrossSectionPositions.ConvertAll(x=> "#" + x.StepId)) + ")";
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
@ -210,23 +215,24 @@ namespace GeometryGym.Ifc
}
public partial class IfcSectionProperties
{
protected override string BuildStringSTEP(ReleaseVersion release) { return "." + mSectionType.ToString() + ".," + ParserSTEP.LinkToString(mStartProfile) + "," + ParserSTEP.LinkToString(mEndProfile); }
protected override string BuildStringSTEP(ReleaseVersion release)
{
return "." + mSectionType.ToString() + ".,#" + mStartProfile.StepId + ",#" + mEndProfile.StepId;
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
Enum.TryParse<IfcSectionTypeEnum>(ParserSTEP.StripField(str, ref pos, len).Replace(".", ""), true, out mSectionType);
mStartProfile = ParserSTEP.StripLink(str, ref pos, len);
mEndProfile = ParserSTEP.StripLink(str, ref pos, len);
mStartProfile = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcProfileDef;
mEndProfile = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcProfileDef;
}
}
public partial class IfcSectionReinforcementProperties
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
string result = ParserSTEP.DoubleToString(mLongitudinalStartPosition) + "," + ParserSTEP.DoubleToString(mLongitudinalEndPosition) + "," +
ParserSTEP.DoubleOptionalToString(mTransversePosition) + ",." + mReinforcementRole.ToString() + ".," + ParserSTEP.LinkToString(mSectionDefinition) + ",(" + ParserSTEP.LinkToString(mCrossSectionReinforcementDefinitions[0]);
for (int icounter = 1; icounter < mCrossSectionReinforcementDefinitions.Count; icounter++)
result += ",#" + mCrossSectionReinforcementDefinitions;
return result + ")";
return ParserSTEP.DoubleToString(mLongitudinalStartPosition) + "," + ParserSTEP.DoubleToString(mLongitudinalEndPosition) + "," +
ParserSTEP.DoubleOptionalToString(mTransversePosition) + ",." + mReinforcementRole.ToString() + ".,#" + mSectionDefinition.StepId +
",(" + String.Join(",", mCrossSectionReinforcementDefinitions.Select(x => "#" + x.StepId)) + ")";
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
@ -234,8 +240,8 @@ namespace GeometryGym.Ifc
mLongitudinalEndPosition = ParserSTEP.StripDouble(str, ref pos, len);
mTransversePosition = ParserSTEP.StripDouble(str, ref pos, len);
Enum.TryParse<IfcReinforcingBarRoleEnum>(ParserSTEP.StripField(str, ref pos, len).Replace(".", ""), true, out mReinforcementRole);
mSectionDefinition = ParserSTEP.StripLink(str, ref pos, len);
mCrossSectionReinforcementDefinitions = ParserSTEP.StripListLink(str, ref pos, len);
mSectionDefinition = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcSectionProperties;
mCrossSectionReinforcementDefinitions.AddRange(ParserSTEP.StripListLink(str, ref pos, len).Select(x=>dictionary[x] as IfcReinforcementBarProperties));
}
}
public abstract partial class IfcSegment
@ -433,8 +439,10 @@ namespace GeometryGym.Ifc
return base.BuildStringSTEP(release) + (mTemplateType == IfcSimplePropertyTemplateTypeEnum.NOTDEFINED ? ",$," : ",." + mTemplateType.ToString() + ".,") +
(string.IsNullOrEmpty(mPrimaryMeasureType) ? "$," : "'" + ParserIfc.Encode(mPrimaryMeasureType) + "',") +
(string.IsNullOrEmpty(mSecondaryMeasureType) ? "$," : "'" + ParserIfc.Encode(mSecondaryMeasureType) + "',") +
ParserSTEP.LinkToString(mEnumerators) + "," + ParserSTEP.LinkToString(mPrimaryUnit) + "," + ParserSTEP.LinkToString(mSecondaryUnit) + "," +
(string.IsNullOrEmpty(mExpression) ? "$," : "'" + ParserIfc.Encode(mExpression) + "',") + (mAccessState == IfcStateEnum.NOTDEFINED ? "$" : "." + mAccessState.ToString() + ".");
(mEnumerators == null ? "$" : "#" + mEnumerators.StepId) + (mPrimaryUnit == null ? ",$" : ",#" + mPrimaryUnit) +
(mSecondaryUnit == null ? ",$" : ",#" + mSecondaryUnit.StepId) + "," +
(string.IsNullOrEmpty(mExpression) ? "$," : "'" + ParserIfc.Encode(mExpression) + "',") +
(mAccessState == IfcStateEnum.NOTDEFINED ? "$" : "." + mAccessState.ToString() + ".");
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
@ -444,9 +452,9 @@ namespace GeometryGym.Ifc
Enum.TryParse<IfcSimplePropertyTemplateTypeEnum>(s.Replace(".", ""), true, out mTemplateType);
mPrimaryMeasureType = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mSecondaryMeasureType = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mEnumerators = ParserSTEP.StripLink(str, ref pos, len);
mPrimaryUnit = ParserSTEP.StripLink(str, ref pos, len);
mSecondaryUnit = ParserSTEP.StripLink(str, ref pos, len);
mEnumerators = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcPropertyEnumeration;
mPrimaryUnit = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcUnit;
mSecondaryUnit = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcUnit;
mExpression = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
s = ParserSTEP.StripField(str, ref pos, len);
if (s.StartsWith("."))
@ -472,7 +480,8 @@ namespace GeometryGym.Ifc
{
return base.BuildStringSTEP(release) + (mRefLatitude != null ? "," + mRefLatitude.ToSTEP() + "," : ",$,") +
(mRefLongitude != null ? mRefLongitude.ToSTEP() + "," : "$,") + ParserSTEP.DoubleOptionalToString(mRefElevation) +
(string.IsNullOrEmpty(mLandTitleNumber) ? ",$," : ",'" + ParserIfc.Encode(mLandTitleNumber) + "',") + ParserSTEP.LinkToString(mSiteAddress);
(string.IsNullOrEmpty(mLandTitleNumber) ? ",$," : ",'" + ParserIfc.Encode(mLandTitleNumber) + "',") +
(mSiteAddress == null ? "$" : "#" + mSiteAddress.StepId);
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
@ -481,7 +490,7 @@ namespace GeometryGym.Ifc
mRefLongitude = IfcCompoundPlaneAngleMeasure.Parse(ParserSTEP.StripField(str, ref pos, len));
mRefElevation = ParserSTEP.StripDouble(str, ref pos, len);
mLandTitleNumber = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mSiteAddress = ParserSTEP.StripLink(str, ref pos, len);
mSiteAddress = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcPostalAddress;
}
}
public partial class IfcSIUnit
@ -571,10 +580,8 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
string str = base.BuildStringSTEP(release) + "," + ParserSTEP.BoolToString(mIsAttenuating) + ",." + mSoundScale.ToString() + ".,(" + ParserSTEP.LinkToString(mSoundValues[0]);
for (int icounter = 1; icounter < mSoundValues.Count; icounter++)
str += "," + ParserSTEP.LinkToString(mSoundValues[icounter]);
return str + ")";
return base.BuildStringSTEP(release) + "," + ParserSTEP.BoolToString(mIsAttenuating) + ",." + mSoundScale.ToString() + ".,(" +
String.Join(",", mSoundValues.Select(x => "#" + x.StepId)) + ")";
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
@ -583,16 +590,20 @@ namespace GeometryGym.Ifc
string s = ParserSTEP.StripField(str, ref pos, len);
if (s.StartsWith("."))
Enum.TryParse<IfcSoundScaleEnum>(s.Replace(".", ""), true, out mSoundScale);
mSoundValues = ParserSTEP.StripListLink(str, ref pos, len);
mSoundValues.AddRange(ParserSTEP.StripListLink(str, ref pos, len).Select(x => dictionary[x] as IfcSoundValue));
}
}
public partial class IfcSoundValue
{
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + "," + ParserSTEP.LinkToString(mSoundLevelTimeSeries) + "," + ParserSTEP.DoubleToString(mFrequency) + "," + ParserSTEP.DoubleOptionalToString(mSoundLevelSingleValue); }
protected override string BuildStringSTEP(ReleaseVersion release)
{
return base.BuildStringSTEP(release) + (mSoundLevelTimeSeries == null ? ",$" : ",#" + mSoundLevelTimeSeries.StepId) + "," +
ParserSTEP.DoubleToString(mFrequency) + "," + ParserSTEP.DoubleOptionalToString(mSoundLevelSingleValue);
}
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);
mSoundLevelTimeSeries = ParserSTEP.StripLink(str, ref pos, len);
mSoundLevelTimeSeries = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcTimeSeries;
mFrequency = ParserSTEP.StripDouble(str, ref pos, len);
mSoundLevelSingleValue = ParserSTEP.StripDouble(str, ref pos, len);
}
@ -633,14 +644,19 @@ namespace GeometryGym.Ifc
}
public partial class IfcSpaceProgram
{
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + ",'" + mSpaceProgramIdentifier + "'," + ParserSTEP.DoubleOptionalToString(mMaxRequiredArea) + "," + ParserSTEP.DoubleOptionalToString(mMinRequiredArea) + "," + ParserSTEP.LinkToString(mRequestedLocation) + "," + ParserSTEP.DoubleToString(mStandardRequiredArea); }
protected override string BuildStringSTEP(ReleaseVersion release)
{
return base.BuildStringSTEP(release) + ",'" + mSpaceProgramIdentifier + "'," + ParserSTEP.DoubleOptionalToString(mMaxRequiredArea) + "," +
ParserSTEP.DoubleOptionalToString(mMinRequiredArea) + (mRequestedLocation == null ? ",$" : ",#" + mRequestedLocation.StepId) + "," +
ParserSTEP.DoubleToString(mStandardRequiredArea);
}
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);
mSpaceProgramIdentifier = ParserSTEP.StripField(str, ref pos, len);
mMaxRequiredArea = ParserSTEP.StripDouble(str, ref pos, len);
mMinRequiredArea = ParserSTEP.StripDouble(str, ref pos, len);
mRequestedLocation = ParserSTEP.StripLink(str, ref pos, len);
mRequestedLocation = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcSpatialStructureElement;
mStandardRequiredArea = ParserSTEP.StripDouble(str, ref pos, len);
}
}
@ -821,22 +837,29 @@ namespace GeometryGym.Ifc
}
public abstract partial class IfcStructuralAction
{
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + (mDestabilizingLoad == IfcLogicalEnum.UNKNOWN ? (mDatabase.Release < ReleaseVersion.IFC4 ? "," + ParserSTEP.BoolToString(false) : ",$") : "," + ParserIfc.LogicalToString(mDestabilizingLoad)) + (release < ReleaseVersion.IFC4 ? "," + ParserSTEP.LinkToString(mCausedBy) : ""); }
protected override string BuildStringSTEP(ReleaseVersion release)
{
return base.BuildStringSTEP(release) +
(mDestabilizingLoad == IfcLogicalEnum.UNKNOWN ? (mDatabase.Release < ReleaseVersion.IFC4 ? "," + ParserSTEP.BoolToString(false) : ",$") : "," + ParserIfc.LogicalToString(mDestabilizingLoad)) +
(release < ReleaseVersion.IFC4 ? (mCausedBy == null ? ",$" : ",#" + mCausedBy.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);
mDestabilizingLoad = ParserIfc.StripLogical(str, ref pos, len);
if (release < ReleaseVersion.IFC4)
mCausedBy = ParserSTEP.StripLink(str, ref pos, len);
mCausedBy = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcStructuralReaction;
}
}
public abstract partial class IfcStructuralActivity
{
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + "," + ParserSTEP.LinkToString(mAppliedLoad) + ",." + mGlobalOrLocal.ToString() + "."; }
protected override string BuildStringSTEP(ReleaseVersion release)
{
return base.BuildStringSTEP(release) + ",#" + mAppliedLoad.StepId + ",." + mGlobalOrLocal.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);
mAppliedLoad = ParserSTEP.StripLink(str, ref pos, len);
mAppliedLoad = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcStructuralLoad;
Enum.TryParse<IfcGlobalOrLocalEnum>(ParserSTEP.StripField(str, ref pos, len).Replace(".", ""), true, out mGlobalOrLocal);
}
}
@ -844,28 +867,33 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return base.BuildStringSTEP(release) + ",." + mPredefinedType.ToString() + ".," + ParserSTEP.LinkToString(mOrientationOf2DPlane) +
(mLoadedBy.Count == 0 ? ",$," : ",(#" + string.Join(",#", mLoadedBy) + "),") + (mHasResults.Count == 0 ? "$" : "(#" + string.Join(",#", mHasResults) + ")") +
return base.BuildStringSTEP(release) + ",." + mPredefinedType.ToString() + ".," +
(mOrientationOf2DPlane == null ? "$" : "#" + mOrientationOf2DPlane.StepId) +
(mLoadedBy.Count == 0 ? ",$," : ",(" + string.Join(",", mLoadedBy.Select(x=> "#" + x.StepId)) + "),") +
(mHasResults.Count == 0 ? "$" : "(" + string.Join(",", mHasResults.Select(x=>"#" + x.StepId)) + ")") +
(release > ReleaseVersion.IFC2x3 ? "," + ParserSTEP.ObjToLinkString(mSharedPlacement) : "");
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
base.parse(str, ref pos, release, len, dictionary);
Enum.TryParse<IfcAnalysisModelTypeEnum>(ParserSTEP.StripField(str, ref pos, len).Replace(".", ""), true, out mPredefinedType);
mOrientationOf2DPlane = ParserSTEP.StripLink(str, ref pos, len);
mLoadedBy = ParserSTEP.StripListLink(str, ref pos, len);
mHasResults = ParserSTEP.StripListLink(str, ref pos, len);
mOrientationOf2DPlane = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcAxis2Placement3D;
LoadedBy.AddRange(ParserSTEP.StripListLink(str, ref pos, len).Select(x=>dictionary[x] as IfcStructuralLoadGroup));
HasResults.AddRange(ParserSTEP.StripListLink(str, ref pos, len).Select(x=>dictionary[x] as IfcStructuralResultGroup));
if(release > ReleaseVersion.IFC2x3)
SharedPlacement = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcObjectPlacement;
}
}
public abstract partial class IfcStructuralConnection
{
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + "," + ParserSTEP.LinkToString(mAppliedCondition); }
protected override string BuildStringSTEP(ReleaseVersion release)
{
return base.BuildStringSTEP(release) + (mAppliedCondition == null ? ",$" : ",#" + mAppliedCondition.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);
mAppliedCondition = ParserSTEP.StripLink(str, ref pos, len);
mAppliedCondition = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcBoundaryCondition;
}
}
public abstract partial class IfcStructuralConnectionCondition
@ -914,17 +942,14 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
string str = base.BuildStringSTEP(release) + "," + ParserSTEP.LinkToString(mVaryingAppliedLoadLocation) + ",("
+ ParserSTEP.LinkToString(mSubsequentAppliedLoads[0]);
for (int icounter = 1; icounter < mSubsequentAppliedLoads.Count; icounter++)
str += "," + ParserSTEP.LinkToString(mSubsequentAppliedLoads[icounter]);
return str + ")";
return base.BuildStringSTEP(release) + ",#" + mVaryingAppliedLoadLocation.StepId + ",("
+ string.Join(",", mSubsequentAppliedLoads.Select(x => "#" + x.StepId)) + ")";
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
base.parse(str, ref pos, release, len, dictionary);
mVaryingAppliedLoadLocation = ParserSTEP.StripLink(str, ref pos, len);
mSubsequentAppliedLoads = ParserSTEP.StripListLink(str, ref pos, len);
mVaryingAppliedLoadLocation = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcShapeAspect;
mSubsequentAppliedLoads.AddRange(ParserSTEP.StripListLink(str, ref pos, len).Select(x=>dictionary[x] as IfcStructuralLoad));
}
}
public abstract partial class IfcStructuralLoad
@ -936,36 +961,15 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
string s = ",$";
if (mLocations.Count > 0)
{
s = ",((" + ParserSTEP.DoubleToString(mLocations[0][0]) + (mLocations[0].Count > 1 ? "," + ParserSTEP.DoubleToString(mLocations[0][1]) : "");
for (int icounter = 1; icounter < mLocations.Count; icounter++)
s += "),(" + ParserSTEP.DoubleToString(mLocations[icounter][0]) + (mLocations[icounter].Count > 1 ? "," + ParserSTEP.DoubleToString(mLocations[icounter][1]) : "");
s += "))";
}
return base.BuildStringSTEP(release) + "," + ParserSTEP.ListLinksToString(mValues) + s;
return base.BuildStringSTEP(release) + ",(" + string.Join(",", mValues.Select(x => "#" + x.StepId)) + ")" +
(mLocations.Count == 0 ? ",$" : ",(" +
string.Join(",", mLocations.Select(x=> "(" + String.Join(",", x.Select(d=>ParserSTEP.DoubleToString(d))) + ")")) + ")");
}
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);
mValues = ParserSTEP.StripListLink(str, ref pos, len);
string s = ParserSTEP.StripField(str, ref pos, len);
if (s != "$")
{
List<string> fields = ParserSTEP.SplitLineFields(s.Substring(1, s.Length - 2));
char[] delim = ",".ToCharArray();
for (int icounter = 0; icounter < fields.Count; icounter++)
{
List<double> list = new List<double>(2);
string[] ss = fields[icounter].Substring(1, fields[icounter].Length - 2).Split(delim);
list.Add(ParserSTEP.ParseDouble(ss[0]));
if (ss.Length > 1)
list.Add(ParserSTEP.ParseDouble(ss[1]));
mLocations.Add(list);
}
}
mValues.AddRange(ParserSTEP.StripListLink(str, ref pos, len).Select(x=>dictionary[x] as IfcStructuralLoadOrResult));
mLocations.AddRange(ParserSTEP.StripListListDouble(str, ref pos, len));
}
}
public partial class IfcStructuralLoadCase
@ -1084,12 +1088,16 @@ namespace GeometryGym.Ifc
}
public partial class IfcStructuralPointConnection
{
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + (release < ReleaseVersion.IFC4 ? "" : (mConditionCoordinateSystem == 0 ? ",$" : ",#" + mConditionCoordinateSystem)); }
protected override string BuildStringSTEP(ReleaseVersion release)
{
return base.BuildStringSTEP(release) +
(release < ReleaseVersion.IFC4 ? "" : (mConditionCoordinateSystem == null ? ",$" : ",#" + mConditionCoordinateSystem.StepId));
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
base.parse(str, ref pos, release, len, dictionary);
if(release > ReleaseVersion.IFC2x3)
mConditionCoordinateSystem = ParserSTEP.StripLink(str, ref pos, len);
mConditionCoordinateSystem = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcAxis2Placement3D;
}
}
public partial class IfcStructuralProfileProperties
@ -1172,16 +1180,14 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
string str = base.BuildStringSTEP(release) + ",(" + ParserSTEP.DoubleToString(mSubsequentThickness[0]);
for (int icounter = 1; icounter < mSubsequentThickness.Count; icounter++)
str += "," + ParserSTEP.DoubleToString(mSubsequentThickness[icounter]);
return str + ")" + "," + ParserSTEP.LinkToString(mVaryingThicknessLocation);
return base.BuildStringSTEP(release) + ",(" +
string.Join(",", mSubsequentThickness.Select(x=>ParserSTEP.DoubleToString(x))) + ")" + ",#" + mVaryingThicknessLocation.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);
mSubsequentThickness = ParserSTEP.StripListDouble(str, ref pos, len);
mVaryingThicknessLocation = ParserSTEP.StripLink(str, ref pos, len);
mVaryingThicknessLocation = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcShapeAspect;
}
}
public partial class IfcStructuralSurfaceReaction
@ -1241,11 +1247,11 @@ namespace GeometryGym.Ifc
}
public partial class IfcSubedge
{
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + "," + ParserSTEP.LinkToString(mParentEdge); }
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + ",#" + mParentEdge.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);
mParentEdge = ParserSTEP.StripLink(str, ref pos, len);
mParentEdge = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcEdge;
}
}
public partial class IfcSurfaceCurve
@ -1266,12 +1272,12 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return base.BuildStringSTEP(release) + ",#" + mReferenceSurface;
return base.BuildStringSTEP(release) + ",#" + mReferenceSurface.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);
mReferenceSurface = ParserSTEP.StripLink(str, ref pos, len);
mReferenceSurface = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcSurface;
}
}
public partial class IfcSurfaceFeature
@ -1291,21 +1297,21 @@ namespace GeometryGym.Ifc
}
public partial class IfcSurfaceOfLinearExtrusion
{
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + "," + ParserSTEP.LinkToString(mExtrudedDirection) + "," + ParserSTEP.DoubleToString(mDepth); }
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + ",#" + mExtrudedDirection.StepId + "," + ParserSTEP.DoubleToString(mDepth); }
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);
mExtrudedDirection = ParserSTEP.StripLink(str, ref pos, len);
mExtrudedDirection = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcDirection;
mDepth = ParserSTEP.StripDouble(str, ref pos, len);
}
}
public partial class IfcSurfaceOfRevolution
{
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + "," + ParserSTEP.LinkToString(mAxisPosition); }
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + ",#" + mAxisPosition.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);
mAxisPosition = ParserSTEP.StripLink(str, ref pos, len);
mAxisPosition = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcAxis1Placement;
}
}
public partial class IfcSurfaceReinforcementArea
@ -1343,13 +1349,17 @@ namespace GeometryGym.Ifc
}
public partial class IfcSurfaceStyleLighting
{
protected override string BuildStringSTEP(ReleaseVersion release) { return ParserSTEP.LinkToString(mDiffuseTransmissionColour) + "," + ParserSTEP.LinkToString(mDiffuseReflectionColour) + "," + ParserSTEP.LinkToString(mTransmissionColour) + "," + ParserSTEP.LinkToString(mReflectanceColour); }
protected override string BuildStringSTEP(ReleaseVersion release)
{
return "#" + mDiffuseTransmissionColour.StepId + ",#" + mDiffuseReflectionColour.StepId + ",#" +
mTransmissionColour.StepId + ",#" + mReflectanceColour.StepId;
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
mDiffuseTransmissionColour = ParserSTEP.StripLink(str, ref pos, len);
mDiffuseReflectionColour = ParserSTEP.StripLink(str, ref pos, len);
mTransmissionColour = ParserSTEP.StripLink(str, ref pos, len);
mReflectanceColour = ParserSTEP.StripLink(str, ref pos, len);
mDiffuseTransmissionColour = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcColourRgb;
mDiffuseReflectionColour = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcColourRgb;
mTransmissionColour = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcColourRgb;
mReflectanceColour = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcColourRgb;
}
}
public partial class IfcSurfaceStyleRefraction
@ -1396,12 +1406,12 @@ namespace GeometryGym.Ifc
protected override string BuildStringSTEP(ReleaseVersion release)
{
IfcSurfaceStyleRendering rendering = this as IfcSurfaceStyleRendering;
return ParserSTEP.LinkToString(mSurfaceColour) +
return "#" + mSurfaceColour.StepId +
(rendering != null || release > ReleaseVersion.IFC2x3 ? "," + ParserSTEP.DoubleOptionalToString(mTransparency) : "");
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
mSurfaceColour = ParserSTEP.StripLink(str, ref pos, len);
mSurfaceColour = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcColourRgb;
IfcSurfaceStyleRendering rendering = this as IfcSurfaceStyleRendering;
if(rendering != null || release > ReleaseVersion.IFC2x3)
mTransparency = ParserSTEP.StripDouble(str, ref pos, len);
@ -1454,10 +1464,15 @@ namespace GeometryGym.Ifc
}
public partial class IfcSweptDiskSolid
{
protected override string BuildStringSTEP(ReleaseVersion release) { return ParserSTEP.LinkToString(mDirectrix) + "," + ParserSTEP.DoubleToString(mRadius) + "," + ParserSTEP.DoubleOptionalToString(mInnerRadius) + "," + (release < ReleaseVersion.IFC4 ? ParserSTEP.DoubleToString(mStartParam) + "," + ParserSTEP.DoubleToString(mEndParam) : ParserSTEP.DoubleOptionalToString(mStartParam) + "," + ParserSTEP.DoubleOptionalToString(mEndParam)); }
protected override string BuildStringSTEP(ReleaseVersion release)
{
return "#" + mDirectrix.StepId + "," + ParserSTEP.DoubleToString(mRadius) + "," + ParserSTEP.DoubleOptionalToString(mInnerRadius) + "," +
(release < ReleaseVersion.IFC4 ? ParserSTEP.DoubleToString(mStartParam) + "," + ParserSTEP.DoubleToString(mEndParam) :
ParserSTEP.DoubleOptionalToString(mStartParam) + "," + ParserSTEP.DoubleOptionalToString(mEndParam));
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
mDirectrix = ParserSTEP.StripLink(str, ref pos, len);
mDirectrix = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcCurve;
mRadius = ParserSTEP.StripDouble(str, ref pos, len);
mInnerRadius = ParserSTEP.StripDouble(str, ref pos, len);
mStartParam = ParserSTEP.StripDouble(str, ref pos, len);
@ -1475,11 +1490,14 @@ namespace GeometryGym.Ifc
}
public abstract partial class IfcSweptSurface
{
protected override string BuildStringSTEP(ReleaseVersion release) { return ParserSTEP.LinkToString(mSweptCurve) + "," + ParserSTEP.LinkToString(mPosition); }
protected override string BuildStringSTEP(ReleaseVersion release)
{
return "#" + mSweptCurve.StepId + (mPosition == null ? ",$" : ",#" + mPosition.StepId);
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
mSweptCurve = ParserSTEP.StripLink(str, ref pos, len);
mPosition = ParserSTEP.StripLink(str, ref pos, len);
mSweptCurve = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcProfileDef;
mPosition = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcAxis2Placement3D;
}
}
public partial class IfcSwitchingDevice

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

@ -52,15 +52,15 @@ namespace GeometryGym.Ifc
return (release < ReleaseVersion.IFC4 ? "" : (string.IsNullOrEmpty(mIdentifier) ? "$," : "'" + ParserIfc.Encode(mIdentifier) + "',") +
(string.IsNullOrEmpty(mName) ? "$," : "'" + ParserIfc.Encode(mName) + "',") +
(string.IsNullOrEmpty(mDescription) ? "$," : "'" + ParserIfc.Encode(mDescription) + "',") +
ParserSTEP.LinkToString(mUnit) + "," + ParserSTEP.LinkToString(mReferencePath));
(mUnit == null ? "$" : "#" + mUnit.StepId) + (mReferencePath == null ? ",$" : ",#" + mReferencePath.StepId));
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
mIdentifier = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mName = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mDescription = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mUnit = ParserSTEP.StripLink(str, ref pos, len);
mReferencePath = ParserSTEP.StripLink(str, ref pos, len);
mUnit = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcUnit;
mReferencePath = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcReference;
}
}
public partial class IfcTableRow
@ -371,8 +371,11 @@ namespace GeometryGym.Ifc
}
public partial class IfcTerminatorSymbol
{
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + ",#" + mAnnotatedCurve; }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary) { mAnnotatedCurve = ParserSTEP.StripLink(str, ref pos, len); }
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + ",#" + mAnnotatedCurve.StepId; }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
mAnnotatedCurve = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcAnnotationCurveOccurrence;
}
}
public abstract partial class IfcTessellatedFaceSet
{
@ -395,34 +398,43 @@ namespace GeometryGym.Ifc
}
public partial class IfcTextLiteral
{
protected override string BuildStringSTEP(ReleaseVersion release) { return "'" + ParserIfc.Encode(mLiteral) + "'," + ParserSTEP.LinkToString(mPlacement) + ",." + mPath.ToString() + "."; }
protected override string BuildStringSTEP(ReleaseVersion release)
{
return "'" + ParserIfc.Encode(mLiteral) + "',#" + mPlacement.StepId + ",." + mPath.ToString() + ".";
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
mLiteral = ParserIfc.Decode(ParserSTEP.StripField(str, ref pos, len));
mPlacement = ParserSTEP.StripLink(str, ref pos, len);
mPlacement = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcAxis2Placement;
Enum.TryParse<IfcTextPath>(ParserSTEP.StripField(str, ref pos, len).Replace(".", ""), true, out mPath);
}
}
public partial class IfcTextLiteralWithExtent
{
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + "," + ParserSTEP.LinkToString(mExtent) + ",'" + mBoxAlignment + "'"; }
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + ",#" + mExtent.StepId + ",'" + mBoxAlignment + "'"; }
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);
mExtent = ParserSTEP.StripLink(str, ref pos, len);
mExtent = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcPlanarExtent;
mBoxAlignment = ParserSTEP.StripString(str, ref pos, len);
}
}
public partial class IfcTextStyle
{
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + "," + ParserSTEP.LinkToString(mTextCharacterAppearance) + "," + ParserSTEP.LinkToString(mTextStyle) + "," + ParserSTEP.LinkToString(mTextFontStyle) + (release != ReleaseVersion.IFC2x3 ? "," + ParserSTEP.BoolToString(mModelOrDraughting) : ""); }
protected override string BuildStringSTEP(ReleaseVersion release)
{
return base.BuildStringSTEP(release) + (mTextCharacterAppearance == null ? ",$" : ",#" + mTextCharacterAppearance) +
(mTextStyle == null ? ",$" : ",#" + mTextStyle.StepId) + (mTextStyle == null ? ",$" : ",#" + mTextStyle.StepId) + "," +
(mTextFontStyle == null ? ",$" : ",#" + mTextFontStyle.StepId) +
(release > ReleaseVersion.IFC2x3 ? "," + ParserSTEP.BoolToString(mModelOrDraughting) : "");
}
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);
mTextCharacterAppearance = ParserSTEP.StripLink(str, ref pos, len);
mTextStyle = ParserSTEP.StripLink(str, ref pos, len);
mTextFontStyle = ParserSTEP.StripLink(str, ref pos, len);
if (release != ReleaseVersion.IFC2x3)
mTextCharacterAppearance = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcCharacterStyleSelect;
mTextStyle = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcTextStyleSelect;
mTextFontStyle = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcTextFontSelect;
if (release > ReleaseVersion.IFC2x3)
mModelOrDraughting = ParserSTEP.StripBool(str, ref pos, len);
}
}
@ -453,11 +465,14 @@ namespace GeometryGym.Ifc
}
public partial class IfcTextStyleForDefinedFont
{
protected override string BuildStringSTEP(ReleaseVersion release) { return ParserSTEP.LinkToString(mColour) + "," + ParserSTEP.LinkToString(mBackgroundColour); }
protected override string BuildStringSTEP(ReleaseVersion release)
{
return "#" + mColour.StepId + (mBackgroundColour == null ? ",$" : ",#" + mBackgroundColour.StepId);
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
mColour = ParserSTEP.StripLink(str, ref pos, len);
mBackgroundColour = ParserSTEP.StripLink(str, ref pos, len);
mColour = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcColour;
mBackgroundColour = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcColour;
}
}
public partial class IfcTextStyleTextModel
@ -483,6 +498,23 @@ namespace GeometryGym.Ifc
LineHeight = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcSizeSelect;
}
}
public partial class IfcTextStyleWithBoxCharacteristics
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return ParserSTEP.DoubleOptionalToString(mBoxHeight) + "," +
ParserSTEP.DoubleOptionalToString(mBoxWidth) + "," + ParserSTEP.DoubleOptionalToString(mBoxSlantAngle) + "," +
ParserSTEP.DoubleOptionalToString(mBoxRotateAngle) + "," + mCharacterSpacing.ToString();
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
mBoxHeight = ParserSTEP.StripDouble(str, ref pos, len);
mBoxWidth = ParserSTEP.StripDouble(str, ref pos, len);
mBoxSlantAngle = ParserSTEP.StripDouble(str, ref pos, len);
mBoxRotateAngle = ParserSTEP.StripDouble(str, ref pos, len);
mCharacterSpacing = ParserIfc.parseValue(ParserSTEP.StripField(str, ref pos, len)) as IfcSizeSelect;
}
}
public abstract partial class IfcTextureCoordinate
{
protected override string BuildStringSTEP(ReleaseVersion release)
@ -598,11 +630,11 @@ namespace GeometryGym.Ifc
}
public partial class IfcTimePeriod
{
protected override string BuildStringSTEP(ReleaseVersion release) { return "'" + mStart + "','" + mFinish + "'"; }
protected override string BuildStringSTEP(ReleaseVersion release) { return IfcDateTime.STEPAttribute(mStart) + "," + IfcDateTime.STEPAttribute(mFinish); }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
mStart = ParserSTEP.StripString(str, ref pos, len);
mFinish = ParserSTEP.StripString(str, ref pos, len);
mStart = IfcDateTime.ParseSTEP(ParserSTEP.StripField(str, ref pos, len));
mFinish = IfcDateTime.ParseSTEP(ParserSTEP.StripField(str, ref pos, len));
}
}
public abstract partial class IfcTimeSeries
@ -610,22 +642,22 @@ namespace GeometryGym.Ifc
protected override string BuildStringSTEP(ReleaseVersion release)
{
return "'" + ParserIfc.Encode(mName) + (string.IsNullOrEmpty(mDescription) ? "',$," : "','" + ParserIfc.Encode(mDescription) + "',") +
ParserSTEP.LinkToString(mStartTime) + "," + ParserSTEP.LinkToString(mEndTime) + ",." + mTimeSeriesDataType.ToString() + ".,." +
mDataOrigin.ToString() + (string.IsNullOrEmpty(mUserDefinedDataOrigin) ? ".,$," : ".,'" + ParserIfc.Encode(mUserDefinedDataOrigin) + "',") +
ParserSTEP.LinkToString(mUnit);
(mStartTime == null ? "$" : "#" + mStartTime.StepId) + (mEndTime == null ? ",$" : ",#" + mEndTime.StepId) + ",." +
mTimeSeriesDataType.ToString() + ".,." + mDataOrigin.ToString() + (string.IsNullOrEmpty(mUserDefinedDataOrigin) ? ".,$," : ".,'" + ParserIfc.Encode(mUserDefinedDataOrigin) + "',") +
(mUnit == null ? "$" : "#" + mUnit.StepId);
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
mName = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mDescription = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mStartTime = ParserSTEP.StripLink(str, ref pos, len);
mEndTime = ParserSTEP.StripLink(str, ref pos, len);
mStartTime = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcDateTimeSelect;
mEndTime = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcDateTimeSelect;
Enum.TryParse<IfcTimeSeriesDataTypeEnum>(ParserSTEP.StripField(str, ref pos, len).Replace(".", ""), true, out mTimeSeriesDataType);
string s = ParserSTEP.StripField(str, ref pos, len);
if (s.StartsWith("."))
Enum.TryParse<IfcDataOriginEnum>(s.Replace(".", ""), true, out mDataOrigin);
mUserDefinedDataOrigin = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
mUnit = ParserSTEP.StripLink(str, ref pos, len);
mUnit = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcUnit;
}
}
public partial class IfcTimeSeriesValue
@ -895,7 +927,8 @@ namespace GeometryGym.Ifc
string field = ParserSTEP.StripField(str, ref pos, len);
if (field.StartsWith("("))
mNormals = ParserSTEP.SplitListDoubleTriple(field);
mClosed = ParserIfc.StripLogical(str, ref pos, len);
if(release < ReleaseVersion.IFC4X3)
mClosed = ParserIfc.StripLogical(str, ref pos, len);
mCoordIndex.AddRange(ParserSTEP.StripListSTPIntTriple(str, ref pos, len));
if (release <= ReleaseVersion.IFC4A1)
{
@ -914,11 +947,12 @@ namespace GeometryGym.Ifc
protected override void WriteStepLineWorker(TextWriter textWriter, ReleaseVersion release)
{
base.WriteStepLineWorker(textWriter, release);
textWriter.Write(",(" + string.Join(",", mFlags.ConvertAll(x => x.ToString())) + ")");
if(release >= ReleaseVersion.IFC4X1)
textWriter.Write(",(" + string.Join(",", mFlags.ConvertAll(x => x.ToString())) + ")");
}
protected override string BuildStringSTEP(ReleaseVersion release)
{
return base.BuildStringSTEP(release) + ",(" + string.Join(",", mFlags.ConvertAll(x=>x.ToString())) + ")";
return base.BuildStringSTEP(release) + (release >= ReleaseVersion.IFC4X1 ? ",(" + string.Join(",", mFlags.ConvertAll(x=>x.ToString())) + ")" : "");
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int, BaseClassIfc> dictionary)
{
@ -928,22 +962,22 @@ namespace GeometryGym.Ifc
}
public partial class IfcTrimmedCurve
{
protected override string BuildStringSTEP(ReleaseVersion release) { return "#" + mBasisCurve.Index + "," + mTrim1.ToString() + "," + mTrim2.ToString() + "," + ParserSTEP.BoolToString(mSenseAgreement) + ",." + mMasterRepresentation.ToString() + "."; }
protected override string BuildStringSTEP(ReleaseVersion release) { return "#" + mBasisCurve.StepId + "," + mTrim1.ToString() + "," + mTrim2.ToString() + "," + ParserSTEP.BoolToString(mSenseAgreement) + ",." + mMasterRepresentation.ToString() + "."; }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
mBasisCurve = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcCurve;
mTrim1 = IfcTrimmingSelect.Parse(ParserSTEP.StripField(str, ref pos, len));
mTrim2 = IfcTrimmingSelect.Parse(ParserSTEP.StripField(str, ref pos, len));
mTrim1 = IfcTrimmingSelect.Parse(dictionary, ParserSTEP.StripField(str, ref pos, len));
mTrim2 = IfcTrimmingSelect.Parse(dictionary, ParserSTEP.StripField(str, ref pos, len));
mSenseAgreement = ParserSTEP.StripBool(str, ref pos, len);
Enum.TryParse<IfcTrimmingPreference>(ParserSTEP.StripField(str, ref pos, len).Replace(".", ""), true, out mMasterRepresentation);
}
}
public partial class IfcTrimmingSelect
{
internal static IfcTrimmingSelect Parse(string str)
internal static IfcTrimmingSelect Parse(ConcurrentDictionary<int, BaseClassIfc> dictionary, string str)
{
IfcTrimmingSelect ts = new IfcTrimmingSelect();
ts.mIfcParameterValue = double.NaN;
ts.ParameterValue = double.NaN;
int i = 0;
while (str[i] == ' ')
i++;
@ -962,7 +996,7 @@ namespace GeometryGym.Ifc
ls += c;
i++;
}
ts.mIfcCartesianPoint = ParserSTEP.ParseLink(ls);
ts.CartesianPoint = dictionary[ParserSTEP.ParseLink(ls)] as IfcCartesianPoint;
if (c == ',')
{
i++;
@ -978,7 +1012,7 @@ namespace GeometryGym.Ifc
string pv = "";
while (str[i] != ')')
pv += str[i++];
ts.mIfcParameterValue = ParserSTEP.ParseDouble(pv);
ts.mParameterValue = ParserSTEP.ParseDouble(pv);
}
}
}
@ -994,7 +1028,7 @@ namespace GeometryGym.Ifc
string pv = "";
while (str[i] != ')')
pv += str[i++];
ts.mIfcParameterValue = ParserSTEP.ParseDouble(pv);
ts.ParameterValue = ParserSTEP.ParseDouble(pv);
}
if (++i < str.Length)
{
@ -1002,7 +1036,7 @@ namespace GeometryGym.Ifc
i++;
if (str[i++] == ',')
{
ts.mIfcCartesianPoint = ParserSTEP.ParseLink(str.Substring(i, str.Length - i - 1));
ts.CartesianPoint = dictionary[ParserSTEP.ParseLink(str.Substring(i, str.Length - i - 1))] as IfcCartesianPoint;
}
}
}
@ -1011,15 +1045,15 @@ namespace GeometryGym.Ifc
public override string ToString()
{
string str = "(";
if (!double.IsNaN(mIfcParameterValue))
if (!double.IsNaN(mParameterValue))
{
str += "IFCPARAMETERVALUE(" + ParserSTEP.DoubleToString(mIfcParameterValue) + ")";
if (mIfcCartesianPoint > 0)
str += "," + ParserSTEP.LinkToString(mIfcCartesianPoint);
str += "IFCPARAMETERVALUE(" + ParserSTEP.DoubleToString(mParameterValue) + ")";
if (mCartesianPoint != null)
str += ",#" + mCartesianPoint.StepId;
return str + ")";
}
else
return str + ParserSTEP.LinkToString(mIfcCartesianPoint) + ")";
return str + "#" + mCartesianPoint.StepId + ")";
}
}
public partial class IfcTShapeProfileDef
@ -1072,11 +1106,11 @@ namespace GeometryGym.Ifc
}
public partial class IfcTwoDirectionRepeatFactor
{
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + "," + ParserSTEP.LinkToString(mSecondRepeatFactor); }
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + ",#" + mSecondRepeatFactor.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);
mSecondRepeatFactor = ParserSTEP.StripLink(str, ref pos, len);
mSecondRepeatFactor = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcVector;
}
}
public partial class IfcTypeObject
@ -1084,7 +1118,7 @@ namespace GeometryGym.Ifc
protected override string BuildStringSTEP(ReleaseVersion release)
{
List<IfcPropertySetDefinition> psets = HasPropertySets.Where(x => !x.isEmpty).ToList();
return base.BuildStringSTEP(release) + (mApplicableOccurrence == "$" ? ",$," : ",'" + mApplicableOccurrence + "',") +(psets.Count == 0 ? "$" : "(#" + string.Join(",#" , psets.ConvertAll(x=>x.mIndex)) + ")");
return base.BuildStringSTEP(release) + (mApplicableOccurrence == "$" ? ",$," : ",'" + mApplicableOccurrence + "',") +(psets.Count == 0 ? "$" : "(" + string.Join("," , psets.ConvertAll(x=>"#" + x.StepId)) + ")");
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
@ -1112,8 +1146,8 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return base.BuildStringSTEP(release) + (mRepresentationMaps.Count == 0 ? ",$," : ",(#" + string.Join(",#", mRepresentationMaps.ConvertAll(x=>x.mIndex)) + "),") +
(string.IsNullOrEmpty(mTag) ? "$" : "'" + ParserIfc.Encode(mTag) + "'");
return base.BuildStringSTEP(release) + (mRepresentationMaps.Count == 0 ? ",$," : ",(" +
string.Join(",", mRepresentationMaps.ConvertAll(x=> "#" + x.StepId)) + "),") + (string.IsNullOrEmpty(mTag) ? "$" : "'" + ParserIfc.Encode(mTag) + "'");
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{

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

@ -75,7 +75,7 @@ namespace GeometryGym.Ifc
}
public partial class IfcUnitAssignment
{
protected override string BuildStringSTEP(ReleaseVersion release) { return "(#" + string.Join(",#", mUnits.ConvertAll(x=>x.Index)) + ")"; }
protected override string BuildStringSTEP(ReleaseVersion release) { return "(" + string.Join(",", mUnits.ConvertAll(x=> "#" + x.StepId)) + ")"; }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary) { Units.AddRange(ParserSTEP.StripListLink(str, ref pos, len).ConvertAll(x=>Database[x] as IfcUnit)); }
}
public partial class IfcUShapeProfileDef

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

@ -98,24 +98,22 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
string str = "(" + ParserSTEP.LinkToString(mTextureVertices[0]);
for (int icounter = 1; icounter < mTextureVertices.Count; icounter++)
str += "," + ParserSTEP.LinkToString(mTextureVertices[icounter]);
str += "),(" + ParserSTEP.LinkToString(mTexturePoints[0]);
for (int icounter = 1; icounter < mTexturePoints.Count; icounter++)
str += "," + ParserSTEP.LinkToString(mTexturePoints[icounter]);
return str;
return "(" + string.Join(",", mTextureVertices.Select(x => "#" + x.StepId)) + "),(" +
string.Join(",", mTexturePoints.Select(x => "#" + x.StepId)) + ")";
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
mTextureVertices = ParserSTEP.StripListLink(str, ref pos, len);
mTexturePoints = ParserSTEP.StripListLink(str, ref pos, len);
mTextureVertices.AddRange(ParserSTEP.StripListLink(str, ref pos, len).Select(x=>dictionary[x] as IfcTextureVertex));
mTexturePoints.AddRange(ParserSTEP.StripListLink(str, ref pos, len).Select(x=>dictionary[x] as IfcCartesianPoint));
}
}
public partial class IfcVertexLoop
{
protected override string BuildStringSTEP(ReleaseVersion release) { return ParserSTEP.LinkToString(mLoopVertex); }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary) { mLoopVertex = ParserSTEP.StripLink(str, ref pos, str.Length); }
protected override string BuildStringSTEP(ReleaseVersion release) { return "#" + mLoopVertex.StepId; }
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
mLoopVertex = dictionary[ParserSTEP.StripLink(str, ref pos, str.Length)] as IfcVertex;
}
}
public partial class IfcVertexPoint
{
@ -190,17 +188,14 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
string str = "(#" + mIntersectingAxes.Item1 + ",#" + mIntersectingAxes.Item2 + "),(";
str += ParserSTEP.DoubleToString(mOffsetDistances.Item1) + "," + ParserSTEP.DoubleToString(mOffsetDistances.Item2);
if (!double.IsNaN(mOffsetDistances.Item3))
str += "," + ParserSTEP.DoubleToString(mOffsetDistances.Item3);
str += ")";
return str;
return "(#" + mIntersectingAxes.Item1.StepId + ",#" + mIntersectingAxes.Item2.StepId + "),(" +
ParserSTEP.DoubleToString(mOffsetDistances.Item1) + "," + ParserSTEP.DoubleToString(mOffsetDistances.Item2) +
(!double.IsNaN(mOffsetDistances.Item3) ? "," + ParserSTEP.DoubleToString(mOffsetDistances.Item3) : "") + ")";
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
List<int> links = ParserSTEP.StripListLink(str, ref pos, len);
mIntersectingAxes = new Tuple<int, int>(links[0], links[1]);
mIntersectingAxes = new Tuple<IfcGridAxis, IfcGridAxis>(dictionary[links[0]] as IfcGridAxis, dictionary[links[1]] as IfcGridAxis);
List<string> lst = ParserSTEP.SplitLineFields(ParserSTEP.StripField(str,ref pos, len));
mOffsetDistances = new Tuple<double, double, double>(ParserSTEP.ParseDouble(lst[0]), ParserSTEP.ParseDouble(lst[1]), (lst.Count > 2 ? ParserSTEP.ParseDouble(lst[2]) : double.NaN));
}

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

@ -100,8 +100,7 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return base.BuildStringSTEP(release) + "," + ParserSTEP.DoubleOptionalToString(mOverallHeight) + "," +
ParserSTEP.DoubleOptionalToString(mOverallWidth) +
return base.BuildStringSTEP(release) + "," + formatLength(mOverallHeight) + "," + formatLength(mOverallWidth) +
(release < ReleaseVersion.IFC4 ? "" : ",." + mPredefinedType + ".,." + mPartitioningType +
(string.IsNullOrEmpty(mUserDefinedPartitioningType) ? ".,$" : ".,'" + ParserIfc.Encode(mUserDefinedPartitioningType) + "'"));
}
@ -126,9 +125,13 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return base.BuildStringSTEP(release) + "," + ParserSTEP.DoubleOptionalToString(mLiningDepth) + "," + ParserSTEP.DoubleOptionalToString(mLiningThickness) + "," + ParserSTEP.DoubleOptionalToString(mTransomThickness) + "," + ParserSTEP.DoubleOptionalToString(mMullionThickness)
+ "," + ParserSTEP.DoubleOptionalToString(mFirstTransomOffset) + "," + ParserSTEP.DoubleOptionalToString(mSecondTransomOffset) + "," + ParserSTEP.DoubleOptionalToString(mFirstMullionOffset) + "," + ParserSTEP.DoubleOptionalToString(mSecondMullionOffset) + "," +
ParserSTEP.LinkToString(mShapeAspectStyle) + (release < ReleaseVersion.IFC4 ? "" : "," + ParserSTEP.DoubleOptionalToString(mLiningOffset) + "," + ParserSTEP.DoubleOptionalToString(mLiningToPanelOffsetX) + "," + ParserSTEP.DoubleOptionalToString(mLiningToPanelOffsetY));
return base.BuildStringSTEP(release) + "," + ParserSTEP.DoubleOptionalToString(mLiningDepth) + "," +
ParserSTEP.DoubleOptionalToString(mLiningThickness) + "," + ParserSTEP.DoubleOptionalToString(mTransomThickness) + "," +
ParserSTEP.DoubleOptionalToString(mMullionThickness) + "," + ParserSTEP.DoubleOptionalToString(mFirstTransomOffset) + "," +
ParserSTEP.DoubleOptionalToString(mSecondTransomOffset) + "," + ParserSTEP.DoubleOptionalToString(mFirstMullionOffset) + "," +
ParserSTEP.DoubleOptionalToString(mSecondMullionOffset) + (mShapeAspectStyle == null ? ",$" : ",#" + mShapeAspectStyle.StepId) +
(release < ReleaseVersion.IFC4 ? "" : "," + ParserSTEP.DoubleOptionalToString(mLiningOffset) + "," +
ParserSTEP.DoubleOptionalToString(mLiningToPanelOffsetX) + "," + ParserSTEP.DoubleOptionalToString(mLiningToPanelOffsetY));
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
@ -141,7 +144,7 @@ namespace GeometryGym.Ifc
mSecondTransomOffset = ParserSTEP.StripDouble(str, ref pos, len);
mFirstMullionOffset = ParserSTEP.StripDouble(str, ref pos, len);
mSecondMullionOffset = ParserSTEP.StripDouble(str, ref pos, len);
mShapeAspectStyle = ParserSTEP.StripLink(str, ref pos, len);
mShapeAspectStyle = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcShapeAspect;
if (release != ReleaseVersion.IFC2x3)
{
mLiningOffset = ParserSTEP.StripDouble(str, ref pos, len);
@ -152,7 +155,12 @@ namespace GeometryGym.Ifc
}
public partial class IfcWindowPanelProperties
{
protected override string BuildStringSTEP(ReleaseVersion release) { return base.BuildStringSTEP(release) + ",." + mOperationType.ToString() + ".,." + mPanelPosition.ToString() + ".," + ParserSTEP.DoubleOptionalToString(mFrameDepth) + "," + ParserSTEP.DoubleOptionalToString(mFrameThickness) + "," + ParserSTEP.LinkToString(mShapeAspectStyle); }
protected override string BuildStringSTEP(ReleaseVersion release)
{
return base.BuildStringSTEP(release) + ",." + mOperationType.ToString() + ".,." + mPanelPosition.ToString() + ".," +
ParserSTEP.DoubleOptionalToString(mFrameDepth) + "," + ParserSTEP.DoubleOptionalToString(mFrameThickness) +
(mShapeAspectStyle == null ? ",$" : ",#" + mShapeAspectStyle);
}
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);
@ -160,7 +168,7 @@ namespace GeometryGym.Ifc
Enum.TryParse<IfcWindowPanelPositionEnum>(ParserSTEP.StripField(str, ref pos, len).Replace(".", ""), true, out mPanelPosition);
mFrameDepth = ParserSTEP.StripDouble(str, ref pos, len);
mFrameThickness = ParserSTEP.StripDouble(str, ref pos, len);
mShapeAspectStyle = ParserSTEP.StripLink(str, ref pos, len);
mShapeAspectStyle = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcShapeAspect;
}
}
public partial class IfcWindowStyle
@ -183,8 +191,11 @@ namespace GeometryGym.Ifc
{
protected override string BuildStringSTEP(ReleaseVersion release)
{
return (release < ReleaseVersion.IFC4 ? base.BuildStringSTEP(release) + ",.NOTDEFINED.,.NOTDEFINED.," + ParserSTEP.BoolToString(mParameterTakesPrecedence) + "," + ParserSTEP.BoolToString(false) :
base.BuildStringSTEP(release) + ",." + mPredefinedType.ToString() + ".,." + mPartitioningType.ToString() + ".," + ParserSTEP.BoolToString(mParameterTakesPrecedence) + (mUserDefinedPartitioningType == "$" ? ",$" : ",'" + mUserDefinedPartitioningType + "'"));
return (release < ReleaseVersion.IFC4 ? base.BuildStringSTEP(release) + ",.NOTDEFINED.,.NOTDEFINED.," +
ParserSTEP.BoolToString(mParameterTakesPrecedence) + "," + ParserSTEP.BoolToString(false) :
base.BuildStringSTEP(release) + ",." + mPredefinedType.ToString() + ".,." + mPartitioningType.ToString() + ".," +
ParserSTEP.BoolToString(mParameterTakesPrecedence) +
(string.IsNullOrEmpty(mUserDefinedPartitioningType) ? ",$" : ",'" + ParserIfc.Encode(mUserDefinedPartitioningType) + "'"));
}
internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary<int,BaseClassIfc> dictionary)
{
@ -192,7 +203,7 @@ namespace GeometryGym.Ifc
Enum.TryParse<IfcWindowTypeEnum>(ParserSTEP.StripField(str,ref pos, len).Replace(".", ""), true, out mPredefinedType);
Enum.TryParse<IfcWindowTypePartitioningEnum>(ParserSTEP.StripField(str, ref pos, len).Replace(".", ""), true, out mPartitioningType);
mParameterTakesPrecedence = ParserSTEP.StripBool(str, ref pos, len);
mUserDefinedPartitioningType = ParserSTEP.StripString(str, ref pos, len);
mUserDefinedPartitioningType = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
}
}
public partial class IfcWorkCalendar
@ -248,7 +259,7 @@ namespace GeometryGym.Ifc
protected override string BuildStringSTEP(ReleaseVersion release)
{
return base.BuildStringSTEP(release) + "," + (release < ReleaseVersion.IFC4 ? "'" + mIdentification + "'," + ParserSTEP.ObjToLinkString(mSSCreationDate) : IfcDateTime.STEPAttribute(mCreationDate)) +
(mCreators.Count > 0 ? ",(#" + string.Join(",#", Creators.ConvertAll(x=>x.Index)) + ")," : ",$,") +
(mCreators.Count > 0 ? ",(" + string.Join(",", Creators.ConvertAll(x=>"#" + x.StepId)) + ")," : ",$,") +
(release < ReleaseVersion.IFC4 ? (mPurpose == "$" ? "$," : "'" + mPurpose + "',") + ParserSTEP.DoubleOptionalToString(mSSDuration) + "," + ParserSTEP.DoubleOptionalToString(mSSTotalFloat) + "," +
ParserSTEP.ObjToLinkString(mSSStartTime) + "," + ParserSTEP.ObjToLinkString(mSSFinishTime) + ",." + mWorkControlType.ToString() + (mUserDefinedControlType == "$" ? ".,$" : ".,'" + mUserDefinedControlType + "'") :
(mPurpose == "$" ? "$," : "'" + mPurpose + "',") + mDuration + "," + mTotalFloat + "," + IfcDateTime.STEPAttribute(mStartTime) + "," + IfcDateTime.STEPAttribute(mFinishTime));
@ -290,11 +301,16 @@ namespace GeometryGym.Ifc
}
public partial class IfcWorkTime
{
protected override string BuildStringSTEP(ReleaseVersion release) { return (release < ReleaseVersion.IFC4 ? "" : base.BuildStringSTEP(release) + "," + ParserSTEP.LinkToString(mRecurrencePattern) + ","+ IfcDate.STEPAttribute(mStartDate) + "," + IfcDate.STEPAttribute(mFinishDate)); }
protected override string BuildStringSTEP(ReleaseVersion release)
{
return (release < ReleaseVersion.IFC4 ? "" :
base.BuildStringSTEP(release) + (mRecurrencePattern == null ? ",$" : ",#" + mRecurrencePattern.StepId) + ","+
IfcDate.STEPAttribute(mStartDate) + "," + IfcDate.STEPAttribute(mFinishDate));
}
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);
mRecurrencePattern = ParserSTEP.StripLink(str, ref pos, len);
mRecurrencePattern = dictionary[ParserSTEP.StripLink(str, ref pos, len)] as IfcRecurrencePattern;
mStartDate = IfcDate.ParseSTEP(ParserSTEP.StripString(str, ref pos, len));
mFinishDate = IfcDate.ParseSTEP(ParserSTEP.StripString(str, ref pos, len));
}

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

@ -68,7 +68,7 @@ namespace GeometryGym.Ifc
SetXML(element, host, processed);
if(mDatabase.XMLMandatoryId)
element.SetAttribute("id", "i" + mIndex);
element.SetAttribute("id", "i" + mStepId);
if (string.Compare(name, type) != 0)
{
XmlAttribute typeAttribute = doc.CreateAttribute("type", mDatabase.mXsiNamespace);
@ -101,7 +101,7 @@ namespace GeometryGym.Ifc
XmlElement element = xml.OwnerDocument.CreateElement(name, mDatabase.mXmlNamespace);
xml.AppendChild(element);
foreach (IBaseClassIfc o in objects)
element.AppendChild(mDatabase[o.Index].GetXML(xml.OwnerDocument, "", this, processed));
element.AppendChild((o as BaseClassIfc).GetXML(xml.OwnerDocument, "", this, processed));
}
internal static XmlNode convert(XmlDocument doc, IfcValue value, string name, string ifcnamespace)
{

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

@ -786,7 +786,7 @@ namespace GeometryGym.Ifc
else
xml.AppendChild((mAppliedValue as BaseClassIfc).GetXML(xml.OwnerDocument, "AppliedValue", this, processed));
}
if (mUnitBasis > 0)
if (mUnitBasis != null)
xml.AppendChild(UnitBasis.GetXML(xml.OwnerDocument, "UnitBasis", this, processed));
//todo
setAttribute(xml, "Category", Category);
@ -813,7 +813,7 @@ namespace GeometryGym.Ifc
XmlElement element = xml.OwnerDocument.CreateElement("HasConstraintRelationships", mDatabase.mXmlNamespace);
foreach (IfcResourceConstraintRelationship r in HasConstraintRelationships)
{
if (r.mIndex != host.mIndex)
if (r != host)
element.AppendChild(r.GetXML(xml.OwnerDocument, "", this, processed));
}
if (element.HasChildNodes)
@ -1010,7 +1010,7 @@ namespace GeometryGym.Ifc
internal override void SetXML(XmlElement xml, BaseClassIfc host, Dictionary<string, XmlElement> processed)
{
base.SetXML(xml, host, processed);
if (mAxis > 0)
if (mAxis != null)
xml.AppendChild(Axis.GetXML(xml.OwnerDocument, "Axis", this, processed));
}
}

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

@ -152,9 +152,9 @@ namespace GeometryGym.Ifc
internal override void SetXML(XmlElement xml, BaseClassIfc host, Dictionary<string, XmlElement> processed)
{
base.SetXML(xml, host, processed);
if (mAxis1 > 0)
if (mAxis1 != null)
xml.AppendChild(Axis1.GetXML(xml.OwnerDocument, "Axis1", this, processed));
if (mAxis2 > 0)
if (mAxis2 != null)
xml.AppendChild(Axis2.GetXML(xml.OwnerDocument, "Axis2", this, processed));
xml.AppendChild(LocalOrigin.GetXML(xml.OwnerDocument, "LocalOrigin", this, processed));
if (!double.IsNaN(mScale))
@ -192,7 +192,7 @@ namespace GeometryGym.Ifc
internal override void SetXML(XmlElement xml, BaseClassIfc host, Dictionary<string, XmlElement> processed)
{
base.SetXML(xml, host, processed);
if (mAxis3 > 0)
if (mAxis3 != null)
xml.AppendChild(Axis1.GetXML(xml.OwnerDocument, "Axis3", this, processed));
}
}
@ -346,7 +346,7 @@ namespace GeometryGym.Ifc
else if (string.Compare(name, "Edition", true) == 0)
Edition = child.InnerText;
else if (string.Compare(name, "EditionDate", true) == 0)
mEditionDateSS = mDatabase.ParseXml<IfcCalendarDate>(child as XmlElement).StepId;
mEditionDateSS = mDatabase.ParseXml<IfcCalendarDate>(child as XmlElement);
else if (string.Compare(name, "Name", true) == 0)
Name = child.InnerText;
else if (string.Compare(name, "Description", true) == 0)
@ -407,7 +407,7 @@ namespace GeometryGym.Ifc
base.SetXML(xml, host, processed);
IfcClassificationReferenceSelect referenced = ReferencedSource;
if (referenced != null && referenced != host)
xml.AppendChild(mDatabase[referenced.Index].GetXML(xml.OwnerDocument, "ReferencedSource", this, processed));
xml.AppendChild((referenced as BaseClassIfc).GetXML(xml.OwnerDocument, "ReferencedSource", this, processed));
setAttribute(xml, "Description", Description);
setAttribute(xml, "Sort", Sort);
@ -632,7 +632,7 @@ namespace GeometryGym.Ifc
internal override void SetXML(XmlElement xml, BaseClassIfc host, Dictionary<string, XmlElement> processed)
{
base.SetXML(xml, host, processed);
xml.AppendChild(mDatabase[mPosition].GetXML(xml.OwnerDocument, "Position", this, processed));
xml.AppendChild((mPosition as BaseClassIfc).GetXML(xml.OwnerDocument, "Position", this, processed));
}
}
public partial class IfcConnectedFaceSet : IfcTopologicalRepresentationItem //SUPERTYPE OF (ONEOF (IfcClosedShell ,IfcOpenShell))
@ -725,7 +725,7 @@ namespace GeometryGym.Ifc
setAttribute(xml, "Phase", Phase);
if (repContexts != null)
xml.AppendChild(repContexts);
if (mUnitsInContext > 0)
if (mUnitsInContext != null)
xml.AppendChild(UnitsInContext.GetXML(xml.OwnerDocument, "UnitsInContext", this, processed));
if (mIsDefinedBy.Count > 0)
{
@ -782,7 +782,7 @@ namespace GeometryGym.Ifc
{
base.SetXML(xml, host, processed);
xml.AppendChild((CurveOnRelatingElement as BaseClassIfc).GetXML(xml.OwnerDocument, "CurveOnRelatingElement", this, processed));
if(mCurveOnRelatedElement > 0)
if(mCurveOnRelatedElement != null)
xml.AppendChild((CurveOnRelatedElement as BaseClassIfc).GetXML(xml.OwnerDocument, "CurveOnRelatedElement", this, processed));
}
}
@ -859,7 +859,7 @@ namespace GeometryGym.Ifc
XmlElement element = xml.OwnerDocument.CreateElement("PropertiesForConstraint", mDatabase.mXmlNamespace);
foreach (IfcResourceConstraintRelationship r in mPropertiesForConstraint)
{
if (host.mIndex != r.mIndex && !processed.ContainsKey(r.xmlId()))
if (host != r && !processed.ContainsKey(r.xmlId()))
element.AppendChild(r.GetXML(xml.OwnerDocument, "", this, processed));
}
if (element.HasChildNodes)
@ -870,7 +870,7 @@ namespace GeometryGym.Ifc
XmlElement element = xml.OwnerDocument.CreateElement("HasConstraintRelationships", mDatabase.mXmlNamespace);
foreach (IfcResourceConstraintRelationship r in HasConstraintRelationships)
{
if (host.mIndex != r.mIndex)
if (host != r)
element.AppendChild(r.GetXML(xml.OwnerDocument, "", this, processed));
}
if (element.HasChildNodes)
@ -1067,7 +1067,7 @@ namespace GeometryGym.Ifc
internal override void SetXML(XmlElement xml, BaseClassIfc host, Dictionary<string, XmlElement> processed)
{
base.SetXML(xml, host, processed);
xml.AppendChild(mDatabase[mTreeRootExpression].GetXML(xml.OwnerDocument, "TreeRootExpression", this, processed));
xml.AppendChild((mTreeRootExpression as BaseClassIfc).GetXML(xml.OwnerDocument, "TreeRootExpression", this, processed));
}
}
public partial class IfcCShapeProfileDef : IfcParameterizedProfileDef

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

@ -246,7 +246,7 @@ namespace GeometryGym.Ifc
public partial class IfcDistributionPort : IfcPort
{
//internal IfcFlowDirectionEnum mFlowDirection = IfcFlowDirectionEnum.NOTDEFINED; //: OPTIONAL IfcFlowDirectionEnum;
//internal IfcDistributionPortTypeEnum mPredefinedType = IfcDistributionPortTypeEnum.NOTDEFINED; // IFC4 : OPTIONAL IfcDistributionPortTypeEnum;
//private IfcDistributionPortTypeEnum mPredefinedType = IfcDistributionPortTypeEnum.NOTDEFINED; // IFC4 : OPTIONAL IfcDistributionPortTypeEnum;
//internal IfcDistributionSystemEnum mSystemType = IfcDistributionSystemEnum.NOTDEFINED;// IFC4 : OPTIONAL IfcDistributionSystemEnum;
internal override void ParseXml(XmlElement xml)
{

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

@ -148,7 +148,7 @@ namespace GeometryGym.Ifc
XmlElement element = xml.OwnerDocument.CreateElement("HasOpenings", mDatabase.mXmlNamespace);
foreach (IfcRelVoidsElement voids in mHasOpenings)
{
if (voids.mIndex != host.mIndex)
if (voids != host)
element.AppendChild(voids.GetXML(xml.OwnerDocument, "", this, processed));
}
if (element.HasChildNodes)

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

@ -121,7 +121,7 @@ namespace GeometryGym.Ifc
{
IfcClosedShell s = mDatabase.ParseXml<IfcClosedShell>(cn as XmlElement);
if (s != null)
addVoid(s);
Voids.Add(s);
}
}
}

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

@ -69,7 +69,7 @@ namespace GeometryGym.Ifc
if (!double.IsNaN(mPrecision))
xml.SetAttribute("Precision", mPrecision.ToString());
if (mWorldCoordinateSystem != null)
xml.AppendChild(mDatabase[mWorldCoordinateSystem.Index].GetXML(xml.OwnerDocument, "WorldCoordinateSystem", this, processed));
xml.AppendChild((mWorldCoordinateSystem as BaseClassIfc).GetXML(xml.OwnerDocument, "WorldCoordinateSystem", this, processed));
if (mTrueNorth != null)
xml.AppendChild(TrueNorth.GetXML(xml.OwnerDocument, "TrueNorth", this, processed));
}
@ -139,7 +139,7 @@ namespace GeometryGym.Ifc
XmlElement element = xml.OwnerDocument.CreateElement("Elements", mDatabase.mXmlNamespace);
xml.AppendChild(element);
foreach (IfcGeometricSetSelect el in mElements)
element.AppendChild(mDatabase[el.Index].GetXML(xml.OwnerDocument, "", this, processed));
element.AppendChild((el as BaseClassIfc).GetXML(xml.OwnerDocument, "", this, processed));
}
}
public partial class IfcGradientCurve

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

@ -55,8 +55,8 @@ namespace GeometryGym.Ifc
base.SetXML(xml, host, processed);
xml.SetAttribute("Name", Name);
setAttribute(xml, "Version", Version);
if (mPublisher > 0)
xml.AppendChild(mDatabase[mPublisher].GetXML(xml.OwnerDocument, "Publisher", this, processed));
if (mPublisher != null)
xml.AppendChild((mPublisher as BaseClassIfc).GetXML(xml.OwnerDocument, "Publisher", this, processed));
//VersionDate
setAttribute(xml, "Location", Location);
setAttribute(xml, "Description", Description);

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

@ -364,7 +364,7 @@ namespace GeometryGym.Ifc
{
base.SetXML(xml, host, processed);
xml.AppendChild(convert(xml.OwnerDocument, mValueComponent, "ValueComponent", mDatabase.mXmlNamespace));
xml.AppendChild(mDatabase[mUnitComponent].GetXML(xml.OwnerDocument, "UnitComponent", this, processed));
xml.AppendChild((mUnitComponent as BaseClassIfc).GetXML(xml.OwnerDocument, "UnitComponent", this, processed));
}
}
public partial class IfcMetric : IfcConstraint
@ -382,15 +382,15 @@ namespace GeometryGym.Ifc
if (string.Compare(name, "DataValue") == 0)
{
if(child.HasChildNodes)
mDataValueValue = extractValue(child.FirstChild);
if (mDataValueValue == null)
mDataValue = extractValue(child.FirstChild) as IfcMetricValueSelect;
if (mDataValue == null)
{
BaseClassIfc baseClass = mDatabase.ParseXml<BaseClassIfc>(child as XmlElement);
IfcMetricValueSelect metric = baseClass as IfcMetricValueSelect;
if (metric != null)
DataValue = metric;
else
mDataValueValue = extractValue(child as XmlNode);
mDataValue = extractValue(child as XmlNode);
}
}
else if (string.Compare(name, "ReferencePath") == 0)
@ -402,11 +402,11 @@ namespace GeometryGym.Ifc
base.SetXML(xml, host, processed);
xml.SetAttribute("BenchMark", mBenchMark.ToString().ToLower());
setAttribute(xml, "ValueSource", ValueSource);
if (mDataValue > 0)
xml.AppendChild(mDatabase[mDataValue].GetXML(xml.OwnerDocument, "DataValue", this, processed));
else if(mDataValueValue != null)
xml.AppendChild(convert(xml.OwnerDocument, mDataValueValue, "DataValue", mDatabase.mXmlNamespace));
if(mReferencePath > 0)
if (mDataValue is BaseClassIfc o)
xml.AppendChild(o.GetXML(xml.OwnerDocument, "DataValue", this, processed));
else if(mDataValue is IfcValue val)
xml.AppendChild(convert(xml.OwnerDocument, val, "DataValue", mDatabase.mXmlNamespace));
if(mReferencePath != null)
xml.AppendChild(ReferencePath.GetXML(xml.OwnerDocument, "ReferencePath", this, processed));
}
}

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

@ -115,7 +115,7 @@ namespace GeometryGym.Ifc
XmlElement element = xml.OwnerDocument.CreateElement("HasAssignments", mDatabase.mXmlNamespace);
foreach (IfcRelAssigns rap in mHasAssignments)
{
if (rap.mIndex != host.mIndex)
if (rap != host)
element.AppendChild(rap.GetXML(xml.OwnerDocument, "", this, processed));
}
if (element.HasChildNodes)
@ -277,7 +277,7 @@ namespace GeometryGym.Ifc
XmlElement element = xml.OwnerDocument.CreateElement("HasFillings", mDatabase.mXmlNamespace);
foreach (IfcRelFillsElement fills in mHasFillings)
{
if (fills.mIndex != host.mIndex)
if (fills != host)
element.AppendChild(fills.GetXML(xml.OwnerDocument, "", this, processed));
}
if (element.HasChildNodes)

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

@ -97,7 +97,7 @@ namespace GeometryGym.Ifc
if (string.Compare(name, "MiddleNames") == 0)
{
foreach (XmlNode cn in child.ChildNodes)
AddMiddleName(cn.InnerText);
MiddleNames.Add(cn.InnerText);
}
else if (string.Compare(name, "Roles", true) == 0)
{
@ -788,7 +788,7 @@ namespace GeometryGym.Ifc
base.SetXML(xml, host, processed);
setAttribute(xml, "MapProjection", MapProjection);
setAttribute(xml, "MapZone", MapZone);
if (mMapUnit > 0)
if (mMapUnit != null)
xml.AppendChild(MapUnit.GetXML(xml.OwnerDocument, "MapUnit", this, processed));
}
}
@ -833,8 +833,8 @@ namespace GeometryGym.Ifc
xml.AppendChild(convert(xml.OwnerDocument, mUpperBoundValue, "UpperBoundValue", mDatabase.mXmlNamespace));
if (mLowerBoundValue != null)
xml.AppendChild(convert(xml.OwnerDocument, mLowerBoundValue, "LowerBoundValue", mDatabase.mXmlNamespace));
if (mUnit > 0)
xml.AppendChild(mDatabase[mUnit].GetXML(xml.OwnerDocument, "Unit", this, processed));
if (mUnit != null)
xml.AppendChild((mUnit as BaseClassIfc).GetXML(xml.OwnerDocument, "Unit", this, processed));
if (mSetPointValue != null)
xml.AppendChild(convert(xml.OwnerDocument, mSetPointValue, "SetPointValue", mDatabase.mXmlNamespace));
}
@ -848,8 +848,8 @@ namespace GeometryGym.Ifc
xml.AppendChild(convert(xml.OwnerDocument, mUpperBoundValue, "UpperBoundValue", mDatabase.mXmlNamespace));
if (mLowerBoundValue != null)
xml.AppendChild(convert(xml.OwnerDocument, mLowerBoundValue, "LowerBoundValue", mDatabase.mXmlNamespace));
if(mUnit > 0)
xml.AppendChild(mDatabase[mUnit].GetXML(xml.OwnerDocument, "Unit", this, processed));
if(mUnit != null)
xml.AppendChild((mUnit as BaseClassIfc).GetXML(xml.OwnerDocument, "Unit", this, processed));
if (mSetPointValue != null)
xml.AppendChild(convert(xml.OwnerDocument, mSetPointValue, "SetPointValue", mDatabase.mXmlNamespace));
}
@ -966,7 +966,7 @@ namespace GeometryGym.Ifc
XmlElement element = xml.OwnerDocument.CreateElement("EnumerationValues", mDatabase.mXmlNamespace);
foreach (IfcValue value in mEnumerationValues)
element.AppendChild(convert(xml.OwnerDocument, value, "", mDatabase.mXmlNamespace));
if (mEnumerationReference > 0)
if (mEnumerationReference != null)
element.AppendChild(EnumerationReference.GetXML(xml.OwnerDocument, "EnumerationReference", this, processed));
}
}
@ -1040,7 +1040,7 @@ namespace GeometryGym.Ifc
else if (string.Compare(name, "IsDefinedBy") == 0)
{
foreach (IfcRelDefinesByTemplate r in mDatabase.ParseXMLList<IfcRelDefinesByTemplate>(child))
r.AddRelated(this);
r.RelatedPropertySets.Add(this);
}
else if (string.Compare(name, "DefinesOccurrence") == 0)
{

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

@ -184,7 +184,7 @@ namespace GeometryGym.Ifc
setAttribute(xml, "InstanceName", InstanceName);
if (mListPositions.Count > 0)
xml.SetAttribute("ListPositions", String.Join(" ", mListPositions));
if (mInnerReference > 0)
if (mInnerReference != null)
xml.AppendChild(InnerReference.GetXML(xml.OwnerDocument, "InnerReference", this, processed));
}
}
@ -336,7 +336,7 @@ namespace GeometryGym.Ifc
{
base.SetXML(xml, host, processed);
if (host != mRelatingProduct)
xml.AppendChild(mDatabase[mRelatingProduct.Index].GetXML(xml.OwnerDocument, "RelatingProduct", this, processed));
xml.AppendChild((mRelatingProduct as BaseClassIfc).GetXML(xml.OwnerDocument, "RelatingProduct", this, processed));
}
}
@ -368,7 +368,7 @@ namespace GeometryGym.Ifc
XmlElement element = xml.OwnerDocument.CreateElement("RelatedObjects", mDatabase.mXmlNamespace);
xml.AppendChild(element);
foreach (IfcDefinitionSelect r in related)
element.AppendChild(mDatabase[r.Index].GetXML(xml.OwnerDocument, "", this, processed));
element.AppendChild((r as BaseClassIfc).GetXML(xml.OwnerDocument, "", this, processed));
}
}
public partial class IfcRelAssociatesClassification : IfcRelAssociates
@ -425,7 +425,7 @@ namespace GeometryGym.Ifc
internal override void SetXML(XmlElement xml, BaseClassIfc host, Dictionary<string, XmlElement> processed)
{
base.SetXML(xml, host, processed);
xml.AppendChild(mDatabase[mRelatingDocument].GetXML(xml.OwnerDocument, "RelatingDocument", this, processed));
xml.AppendChild((mRelatingDocument as BaseClassIfc).GetXML(xml.OwnerDocument, "RelatingDocument", this, processed));
}
}
public partial class IfcRelAssociatesLibrary
@ -472,7 +472,7 @@ namespace GeometryGym.Ifc
internal override void SetXML(XmlElement xml, BaseClassIfc host, Dictionary<string, XmlElement> processed)
{
base.SetXML(xml, host, processed);
xml.AppendChild(mDatabase[mRelatingMaterial].GetXML(xml.OwnerDocument, "RelatingMaterial", this, processed));
xml.AppendChild((mRelatingMaterial as BaseClassIfc).GetXML(xml.OwnerDocument, "RelatingMaterial", this, processed));
}
}
public partial class IfcRelAssociatesProfileDef : IfcRelAssociates
@ -568,7 +568,7 @@ namespace GeometryGym.Ifc
{
IfcPropertySetDefinition p = mDatabase.ParseXml<IfcPropertySetDefinition>(cn as XmlElement);
if (p != null)
AddRelated(p);
RelatedPropertySets.Add(p);
}
}
else if (string.Compare(name, "RelatingTemplate") == 0)

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

@ -115,7 +115,7 @@ namespace GeometryGym.Ifc
base.SetXML(xml, host, processed);
xml.SetAttribute("SectionType", mSectionType.ToString().ToLower());
xml.AppendChild(StartProfile.GetXML(xml.OwnerDocument, "StartProfile", this, processed));
if(mEndProfile > 0)
if(mEndProfile != null)
xml.AppendChild(EndProfile.GetXML(xml.OwnerDocument, "EndProfile", this, processed));
}
}
@ -344,12 +344,12 @@ namespace GeometryGym.Ifc
xml.SetAttribute("TemplateType", mTemplateType.ToString().ToLower());
setAttribute(xml, "PrimaryMeasureType", PrimaryMeasureType);
setAttribute(xml, "SecondaryMeasureType", SecondaryMeasureType);
if (mEnumerators > 0)
if (mEnumerators != null)
xml.AppendChild(Enumerators.GetXML(xml.OwnerDocument, "Enumerators", this, processed));
if (mPrimaryUnit > 0)
xml.AppendChild(mDatabase[mPrimaryUnit].GetXML(xml.OwnerDocument, "PrimaryUnit", this, processed));
if (mSecondaryUnit > 0)
xml.AppendChild(mDatabase[mSecondaryUnit].GetXML(xml.OwnerDocument, "SecondaryUnit", this, processed));
if (mPrimaryUnit != null)
xml.AppendChild((mPrimaryUnit as BaseClassIfc).GetXML(xml.OwnerDocument, "PrimaryUnit", this, processed));
if (mSecondaryUnit != null)
xml.AppendChild((mSecondaryUnit as BaseClassIfc).GetXML(xml.OwnerDocument, "SecondaryUnit", this, processed));
setAttribute(xml, "Expression", Expression);
if (mAccessState != IfcStateEnum.NOTDEFINED)
xml.SetAttribute("AccessState", mAccessState.ToString().ToLower());
@ -422,7 +422,7 @@ namespace GeometryGym.Ifc
if (!double.IsNaN(mRefElevation))
xml.SetAttribute("RefElevation", mRefElevation.ToString());
setAttribute(xml, "LandTitleNumber", LandTitleNumber);
if (mSiteAddress > 0)
if (mSiteAddress != null)
xml.AppendChild(SiteAddress.GetXML(xml.OwnerDocument, "SiteAddress", this, processed));
}
}
@ -612,8 +612,8 @@ namespace GeometryGym.Ifc
}
else
xml.SetAttribute("DestabilizingLoad", mDestabilizingLoad.ToString().ToLower());
if (mCausedBy > 0)
xml.AppendChild(mDatabase[mCausedBy].GetXML(xml.OwnerDocument, "CausedBy", this, processed));
if (mCausedBy != null)
xml.AppendChild(mCausedBy.GetXML(xml.OwnerDocument, "CausedBy", this, processed));
}
}
public abstract partial class IfcStructuralActivity : IfcProduct
@ -635,7 +635,7 @@ namespace GeometryGym.Ifc
internal override void SetXML(XmlElement xml, BaseClassIfc host, Dictionary<string, XmlElement> processed)
{
base.SetXML(xml, host, processed);
xml.AppendChild(mDatabase[mAppliedLoad].GetXML(xml.OwnerDocument, "AppliedLoad", this, processed));
xml.AppendChild(mAppliedLoad.GetXML(xml.OwnerDocument, "AppliedLoad", this, processed));
xml.SetAttribute("GlobalOrLocal", mGlobalOrLocal.ToString().ToLower());
if (mAssignedToStructuralItem != null)
xml.AppendChild(mAssignedToStructuralItem.GetXML(xml.OwnerDocument, "AssignedToStructuralItem", this, processed));
@ -681,21 +681,21 @@ namespace GeometryGym.Ifc
if (mPredefinedType != IfcAnalysisModelTypeEnum.NOTDEFINED)
xml.SetAttribute("PredefinedType", mPredefinedType.ToString().ToLower());
if (mOrientationOf2DPlane > 0)
xml.AppendChild(mDatabase[mOrientationOf2DPlane].GetXML(xml.OwnerDocument, "OrientationOf2DPlane", this, processed));
if (mOrientationOf2DPlane != null)
xml.AppendChild(mOrientationOf2DPlane.GetXML(xml.OwnerDocument, "OrientationOf2DPlane", this, processed));
if (mLoadedBy.Count > 0)
{
XmlElement element = xml.OwnerDocument.CreateElement("LoadedBy", mDatabase.mXmlNamespace);
xml.AppendChild(element);
foreach (int item in mLoadedBy)
element.AppendChild(mDatabase[item].GetXML(xml.OwnerDocument, "", this, processed));
foreach (var item in mLoadedBy)
element.AppendChild(item.GetXML(xml.OwnerDocument, "", this, processed));
}
if (mHasResults.Count > 0)
{
XmlElement element = xml.OwnerDocument.CreateElement("HasResults", mDatabase.mXmlNamespace);
xml.AppendChild(element);
foreach (int item in mHasResults)
element.AppendChild(mDatabase[item].GetXML(xml.OwnerDocument, "", this, processed));
foreach (var item in mHasResults)
element.AppendChild(item.GetXML(xml.OwnerDocument, "", this, processed));
}
if (mSharedPlacement != null)
xml.AppendChild(SharedPlacement.GetXML(xml.OwnerDocument, "SharedPlacement", this, processed));
@ -716,8 +716,8 @@ namespace GeometryGym.Ifc
internal override void SetXML(XmlElement xml, BaseClassIfc host, Dictionary<string, XmlElement> processed)
{
base.SetXML(xml, host, processed);
if (mAppliedCondition > 0)
xml.AppendChild(mDatabase[mAppliedCondition].GetXML(xml.OwnerDocument, "AppliedCondition", this, processed));
if (mAppliedCondition != null)
xml.AppendChild((mAppliedCondition as BaseClassIfc).GetXML(xml.OwnerDocument, "AppliedCondition", this, processed));
}
}
public abstract partial class IfcStructuralConnectionCondition : BaseClassIfc //ABSTRACT SUPERTYPE OF (ONEOF (IfcFailureConnectionCondition ,IfcSlippageConnectionCondition));
@ -734,7 +734,7 @@ namespace GeometryGym.Ifc
setAttribute(xml, "Name", Name);
}
}
public partial class IfcStructuralCurveAction : IfcStructuralAction // IFC4 SUPERTYPE OF(IfcStructuralLinearAction)
public partial class IfcStructuralCurveAction
{
internal override void ParseXml(XmlElement xml)
{
@ -1062,7 +1062,7 @@ namespace GeometryGym.Ifc
{
base.SetXML(xml, host, processed);
xml.AppendChild(SweptCurve.GetXML(xml.OwnerDocument, "SweptCurve", this, processed));
if (mPosition > 0)
if (mPosition != null)
xml.AppendChild(Position.GetXML(xml.OwnerDocument, "Position", this, processed));
}
}

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

@ -105,9 +105,9 @@ namespace GeometryGym.Ifc
setAttribute(xml, "Identifier", Identifier);
setAttribute(xml, "Name", Name);
setAttribute(xml, "Description", Description);
if (mUnit > 0)
xml.AppendChild(mDatabase[mUnit].GetXML(xml.OwnerDocument, "Unit", this, processed));
if (mReferencePath > 0)
if (mUnit != null)
xml.AppendChild((mUnit as BaseClassIfc).GetXML(xml.OwnerDocument, "Unit", this, processed));
if (mReferencePath != null)
xml.AppendChild(ReferencePath.GetXML(xml.OwnerDocument, "ReferencePath",this,processed));
}
}
@ -457,12 +457,12 @@ namespace GeometryGym.Ifc
{
string name = child.Name;
if (string.Compare(name, "IfcParameterValue-wrapper") == 0)
result.mIfcParameterValue = double.Parse(child.InnerText);
result.ParameterValue = double.Parse(child.InnerText);
else if (string.Compare(name, "IfcCartesianPoint") == 0)
{
IfcCartesianPoint p = db.ParseXml<IfcCartesianPoint>(child as XmlElement);
if (p != null)
result.mIfcCartesianPoint = p.mIndex;
result.CartesianPoint = p;
}
}
return result;
@ -470,14 +470,14 @@ namespace GeometryGym.Ifc
internal XmlElement getXML(XmlDocument doc, string name, Dictionary<string, XmlElement> processed, DatabaseIfc db)
{
XmlElement result = doc.CreateElement(name, db.mXmlNamespace);
if (!double.IsNaN(mIfcParameterValue))
if (!double.IsNaN(ParameterValue))
{
XmlElement element = doc.CreateElement("IfcParameterValue-wrapper", db.mXmlNamespace);
element.InnerText = mIfcParameterValue.ToString();
element.InnerText = ParameterValue.ToString();
result.AppendChild(element);
}
if (mIfcCartesianPoint > 0)
result.AppendChild(db[mIfcCartesianPoint].GetXML(doc, "", null, processed));
if (CartesianPoint != null)
result.AppendChild(CartesianPoint.GetXML(doc, "", null, processed));
return result;
}
}

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

@ -85,7 +85,7 @@ namespace GeometryGym.Ifc
XmlElement element = xml.OwnerDocument.CreateElement("Units", mDatabase.mXmlNamespace);
xml.AppendChild(element);
foreach (IfcUnit unit in Units)
element.AppendChild(mDatabase[unit.Index].GetXML(xml.OwnerDocument, "", this, processed));
element.AppendChild((unit as BaseClassIfc).GetXML(xml.OwnerDocument, "", this, processed));
}
}
public partial class IfcUShapeProfileDef : IfcParameterizedProfileDef

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

@ -31,18 +31,16 @@ namespace GeometryGym.STEP
public partial interface ISTEPEntity
{
int Index { get; }
int StepId { get; }
string StepClassName { get; }
}
[Serializable]
public abstract partial class STEPEntity
{
[NonSerialized] internal int mIndex = 0;
[NonSerialized] internal int mStepId = 0;
[NonSerialized] internal List<string> mComments = new List<string>();
public int Index { get { return mIndex; } private set { mIndex = value; } }
public int StepId { get { return mIndex; } private set { mIndex = value; } }
public int StepId { get { return mStepId; } private set { mStepId = value; } }
protected static ConcurrentDictionary<string, Type> mSTEPTypes = new ConcurrentDictionary<string, Type>();
protected static ConcurrentDictionary<string, ConstructorInfo> mConstructors = new ConcurrentDictionary<string, ConstructorInfo>();
@ -66,7 +64,7 @@ namespace GeometryGym.STEP
foreach (string c in mComments)
comment += "/* " + c + " */\r\n";
}
return comment + (mIndex > 0 ? "#" + StepId + "= " : "") + StepClassName.ToUpper() + "(";
return comment + (mStepId > 0 ? "#" + StepId + "= " : "") + StepClassName.ToUpper() + "(";
}
protected string StepLineSuffix()
{

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

@ -48,29 +48,29 @@ namespace GeometryGym.STEP
public int LastKey() { return mObjects.Count == 0 ? 0 : mObjects.Last().Key; }
public int NextObjectRecord { set { mNextBlank = value; } }
public virtual T this[int index]
public virtual T this[int stepId]
{
get
{
T result = null;
mObjects.TryGetValue(index, out result);
mObjects.TryGetValue(stepId, out result);
return result;
}
set
{
if (value == null)
{
if (mObjects.ContainsKey(index))
mObjects.Remove(index);
if (index < mNextBlank && index > 0)
mNextBlank = index;
if (mObjects.ContainsKey(stepId))
mObjects.Remove(stepId);
if (stepId < mNextBlank && stepId > 0)
mNextBlank = stepId;
return;
}
mObjects[index] = value;
if (index == mNextBlank)
mObjects[stepId] = value;
if (stepId == mNextBlank)
mNextBlank = mNextBlank + 1;
value.mIndex = index;
value.mStepId = stepId;
}
}
internal void appendObject(T o) { this[NextBlank()] = o; }

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

@ -196,7 +196,7 @@ namespace GeometryGym.STEP
else
return "#" + link;
}
public static string ObjToLinkString(ISTEPEntity obj) { return obj == null ? "$" : "#" + obj.Index; }
public static string ObjToLinkString(ISTEPEntity obj) { return obj == null ? "$" : "#" + obj.StepId; }
public static string ListLinksToString(List<int> links)
{
if (links.Count == 0)

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

@ -22,7 +22,6 @@
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<Prefer32Bit>false</Prefer32Bit>
<LangVersion>6</LangVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
@ -32,27 +31,6 @@
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<Prefer32Bit>false</Prefer32Bit>
<LangVersion>6</LangVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
<DebugSymbols>true</DebugSymbols>
<OutputPath>bin\x64\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<DebugType>full</DebugType>
<PlatformTarget>x64</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
<OutputPath>bin\x64\Release\</OutputPath>
<DefineConstants>TRACE;IFCMODEL IFCPARSE IFCEXPORTONLY GGDLL RHCOMM NOLISTS NOTREEVIEW NOFORMS</DefineConstants>
<Optimize>true</Optimize>
<DebugType>pdbonly</DebugType>
<PlatformTarget>x64</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<ItemGroup>
<Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">

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

@ -90,7 +90,7 @@ namespace GeometryGym.Ifc
}
public partial class IfcAxis1Placement : IfcPlacement
{
internal Vector3d AxisVector { get { return (mAxis > 0 ? Axis.Vector3d : Vector3d.XAxis); } }
internal Vector3d AxisVector { get { return (mAxis != null ? Axis.Vector3d : Vector3d.XAxis); } }
}
public partial class IfcAxis2Placement2D : IfcPlacement, IfcAxis2Placement
{

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

@ -77,16 +77,16 @@ namespace GeometryGym.Ifc
internal virtual Transform getScaleTransform() { return double.IsNaN(mScale) ? Rhino.Geometry.Transform.Identity : Rhino.Geometry.Transform.Scale(Point3d.Origin, mScale); }
protected virtual Transform vecsTransform()
{
Vector3d vx = new Vector3d(1, 0, 0), vy = new Vector3d(0, 1, 0);
Vector3d vx = Vector3d.XAxis, vy = Vector3d.YAxis;
Transform tr = Rhino.Geometry.Transform.Identity;
if (mAxis1 > 0)
if (mAxis1 != null)
{
vx = Axis1.Vector3d;
tr.M00 = vx.X;
tr.M10 = vx.Y;
tr.M20 = vx.Z;
}
if (mAxis2 > 0)
if (mAxis2 != null)
{
vy = Axis2.Vector3d;
}
@ -115,7 +115,7 @@ namespace GeometryGym.Ifc
}
public partial class IfcCartesianTransformationOperator3D
{
internal Vector3d Axis3Vector { get { return (mAxis3 > 0 ? Axis3.Vector3d : Vector3d.ZAxis); } }
internal Vector3d Axis3Vector { get { return (mAxis3 != null ? Axis3.Vector3d : Vector3d.ZAxis); } }
protected override Transform vecsTransform()
{
Transform tr = base.vecsTransform();