public override string ToString() { return(IfcReal.AsPart21(_theValue)); //string str = _theValue.ToString(); //if (str.IndexOfAny(new[] {'.', 'E', 'e'}) == -1) str += "."; //return str; }
public override void Parse(int propIndex, IPropertyValue value, int[] nestedIndex) { switch (propIndex) { case 0: case 1: case 2: case 3: base.Parse(propIndex, value, nestedIndex); return; case 4: _position = (IfcCartesianPoint)(value.EntityVal); return; case 5: _radius = value.RealVal; return; case 6: _constantAttenuation = value.RealVal; return; case 7: _distanceAttenuation = value.RealVal; return; case 8: _quadricAttenuation = value.RealVal; return; default: throw new XbimParserException(string.Format("Attribute index {0} is out of range for {1}", propIndex + 1, GetType().Name.ToUpper())); } }
public override void IfcParse(int propIndex, IPropertyValue value) { switch (propIndex) { case 0: case 1: case 2: case 3: base.IfcParse(propIndex, value); break; case 4: _Position = (IfcCartesianPoint)value.EntityVal; break; case 5: _Radius = value.RealVal; break; case 6: _ConstantAttenuation = value.RealVal; break; case 7: _DistanceAttenuation = value.RealVal; break; case 8: _QuadricAttenuation = value.RealVal; break; default: this.HandleUnexpectedAttribute(propIndex, value); break; } }
public IfcLightSourcePositional(IfcLabel?__Name, IfcColourRgb __LightColour, IfcNormalisedRatioMeasure?__AmbientIntensity, IfcNormalisedRatioMeasure?__Intensity, IfcCartesianPoint __Position, IfcPositiveLengthMeasure __Radius, IfcReal __ConstantAttenuation, IfcReal __DistanceAttenuation, IfcReal __QuadricAttenuation) : base(__Name, __LightColour, __AmbientIntensity, __Intensity) { this._Position = __Position; this._Radius = __Radius; this._ConstantAttenuation = __ConstantAttenuation; this._DistanceAttenuation = __DistanceAttenuation; this._QuadricAttenuation = __QuadricAttenuation; }
/// <summary> /// set IfcValue to IfcText or IfcReal /// </summary> /// <param name="value"></param> /// <returns></returns> private IfcValue SetValue(string value) { IfcValue ifcValue; double test; if (double.TryParse(value, out test)) { ifcValue = new IfcReal(test); } else { ifcValue = new IfcText(value); } return(ifcValue); }
public IfcLightSourceSpot(IfcLabel?__Name, IfcColourRgb __LightColour, IfcNormalisedRatioMeasure?__AmbientIntensity, IfcNormalisedRatioMeasure?__Intensity, IfcCartesianPoint __Position, IfcPositiveLengthMeasure __Radius, IfcReal __ConstantAttenuation, IfcReal __DistanceAttenuation, IfcReal __QuadricAttenuation, IfcDirection __Orientation, IfcReal?__ConcentrationExponent, IfcPositivePlaneAngleMeasure __SpreadAngle, IfcPositivePlaneAngleMeasure __BeamWidthAngle) : base(__Name, __LightColour, __AmbientIntensity, __Intensity, __Position, __Radius, __ConstantAttenuation, __DistanceAttenuation, __QuadricAttenuation) { this.Orientation = __Orientation; this.ConcentrationExponent = __ConcentrationExponent; this.SpreadAngle = __SpreadAngle; this.BeamWidthAngle = __BeamWidthAngle; }
/// <summary> /// Add the properties to the row object /// </summary> /// <param name="row">COBieAttributeRow holding the data</param> private void AddAttribute(COBieAttributeRow row) { //need a sheet and a row to be able to attach property to an object if ((ValidateString(row.RowName)) && (ValidateString(row.SheetName))) { switch (row.SheetName.ToLower()) { case "facility": //set list if first time if (IfcBuildings == null) { IfcBuildings = Model.Instances.OfType <IfcBuilding>(); } if (!((CurrentObject is IfcBuilding) && (CurrentObject.Name == row.RowName))) { CurrentObject = IfcBuildings.Where(b => b.Name.ToString().ToLower() == row.RowName.ToLower()).FirstOrDefault(); } break; case "floor": if (IfcBuildingStoreys == null) { IfcBuildingStoreys = Model.Instances.OfType <IfcBuildingStorey>(); } if (!((CurrentObject is IfcBuildingStorey) && (CurrentObject.Name == row.RowName))) { CurrentObject = IfcBuildingStoreys.Where(b => b.Name.ToString().ToLower() == row.RowName.ToLower()).FirstOrDefault(); } break; case "space": if (IfcSpaces == null) { IfcSpaces = Model.Instances.OfType <IfcSpace>(); } if (!((CurrentObject is IfcSpace) && (CurrentObject.Name == row.RowName))) { CurrentObject = IfcSpaces.Where(b => b.Name.ToString().ToLower() == row.RowName.ToLower()).FirstOrDefault(); } break; case "type": if (IfcTypeObjects == null) { IfcTypeObjects = Model.Instances.OfType <IfcTypeObject>(); } if (!((CurrentObject is IfcTypeObject) && (CurrentObject.Name == row.RowName))) { CurrentObject = IfcTypeObjects.Where(b => b.Name.ToString().ToLower() == row.RowName.ToLower()).FirstOrDefault(); } break; case "spare": if (IfcConstructionProductResources == null) { IfcConstructionProductResources = Model.Instances.OfType <IfcConstructionProductResource>(); } if (!((CurrentObject is IfcConstructionProductResource) && (CurrentObject.Name == row.RowName))) { CurrentObject = IfcConstructionProductResources.Where(b => b.Name.ToString().ToLower() == row.RowName.ToLower()).FirstOrDefault(); } break; case "component": if (IfcElements == null) { IfcElements = Model.Instances.OfType <IfcElement>(); } if (!((CurrentObject is IfcElement) && (CurrentObject.Name == row.RowName))) { CurrentObject = IfcElements.Where(b => b.Name.ToString().ToLower() == row.RowName.ToLower()).FirstOrDefault(); } break; case "zone": if (IfcZones == null) { IfcZones = Model.Instances.OfType <IfcZone>(); } if (!((CurrentObject is IfcZone) && (CurrentObject.Name == row.RowName))) { CurrentObject = IfcZones.Where(b => b.Name.ToString().ToLower() == row.RowName.ToLower()).FirstOrDefault(); } break; default: CurrentObject = null; break; } if (CurrentObject != null) { if (ValidateString(row.Name)) { IfcPropertySet ifcPropertySet = CheckIfExistOnMerge(row.ExtObject, row.ExtIdentifier); if (ifcPropertySet == null) { return; } //Set Description string description = ""; if (ValidateString(row.Description)) { description = row.Description; } if ((ValidateString(row.Value)) && row.Value.Contains(":") && row.Value.Contains("(") && row.Value.Contains(")") )//only if we have a IfcPropertyTableValue defined by COBieDataAttributeBuilder { AddPropertyTableValue(ifcPropertySet, row.Name, description, row.Value, row.AllowedValues, row.Unit); } else if ((ValidateString(row.AllowedValues)) && //row.Value.Contains(":") && can be single value (row.AllowedValues.Contains(":") || row.AllowedValues.Contains(",") ) )//have a IfcPropertyEnumeratedValue { IfcValue[] ifcValues = GetValueArray(row.Value); IfcValue[] ifcValueEnums = GetValueArray(row.AllowedValues); IfcUnit ifcUnit = GetIfcUnit(row.Unit); AddPropertyEnumeratedValue(ifcPropertySet, row.Name, description, ifcValues, ifcValueEnums, ifcUnit); } else { IfcValue ifcValue; double number; if (double.TryParse(row.Value, out number)) { ifcValue = new IfcReal((double)number); } else if (ValidateString(row.Value)) { ifcValue = new IfcLabel(row.Value); } else { ifcValue = new IfcLabel(""); } IfcUnit ifcUnit = GetIfcUnit(row.Unit); AddPropertySingleValue(ifcPropertySet, row.Name, description, ifcValue, ifcUnit); } //Add Category**** if (ValidateString(row.Category)) { SetCategory(ifcPropertySet, row.Category); } //****************Note need this as last call Add OwnerHistory************* if (ifcPropertySet != null) { //Add Created By, Created On and ExtSystem to Owner History. SetUserHistory(ifcPropertySet, row.ExtSystem, row.CreatedBy, row.CreatedOn); } //****************Note need SetOwnerHistory above to be last call, as XBim changes to default on any property set or changed, cannot use edit context as property set used more than once per row****** } else { #if DEBUG Console.WriteLine("Failed to create attribute. No name : {0} value {1}", row.Name, row.ExtObject); #endif } } else { #if DEBUG Console.WriteLine("Failed to create attribute. No object found to add too {0} value {1}", row.Name, row.ExtObject); #endif } } else { #if DEBUG Console.WriteLine("Failed to create attribute. No sheet or row name {0} value {1}", row.Name, row.ExtObject); #endif } }
public IfcSpecularRoughness(string value) { _theValue = IfcReal.ToDouble(value); }
public override string ToString() { return(IfcReal.AsPart21(_theValue)); }
//coroutine for background initializing IEnumerator YieldingWork() { GameObject Togo = GameObject.Find("Tablet_UI"); bool workDone = false; yield return(null); while (!workDone) { Debug.Log("Coro starts: "); // Do Work... yield return null; Physics.IgnoreLayerCollision(8, 9);//noclid with player //Architect Taging foreach (var IFCDoor in model.Instances.OfType <IIfcDoor>()) { var objects = Resources.FindObjectsOfTypeAll <GameObject>().Where(obj => obj.name == IFCDoor.EntityLabel.ToString()); try { foreach (GameObject goo in objects) { goo.tag = "Arch"; goo.layer = 9;//noclid layer for door/space must have collider for raycast } } catch { } yield return(null); } foreach (var IFCSpace in model.Instances.OfType <IIfcSpace>()) { IfcValue CoolingLoad, HeatingLoad, LightingLoad, PowerLoad, CoolingLoad_pa, HeatingLoad_pa, LightingLoad_pa, PowerLoad_pa; CoolingLoad = HeatingLoad = LightingLoad = PowerLoad = CoolingLoad_pa = HeatingLoad_pa = LightingLoad_pa = PowerLoad_pa = new IfcReal(); bool isSpace = false; Sorting_IFCSpace mySpace = new Sorting_IFCSpace(); IEnumerable <IfcRelDefinesByProperties> relations = IFCSpace.IsDefinedBy.OfType <IfcRelDefinesByProperties>(); foreach (IfcRelDefinesByProperties rel in relations) { IfcPropertySet pSet = rel.RelatingPropertyDefinition as IfcPropertySet; if (pSet == null) { continue; } foreach (IfcProperty prop in pSet.HasProperties) { IfcPropertySingleValue singleVal = prop as IfcPropertySingleValue; if (singleVal == null) { continue; } switch (singleVal.Name) { case "Reference": if (singleVal.NominalValue.ToString().Contains("Space")) { isSpace = true; } break; case "Calculated Cooling Load": CoolingLoad = singleVal.NominalValue; break; case "Calculated Heating Load": HeatingLoad = singleVal.NominalValue; break; case "Specified Lighting Load": LightingLoad = singleVal.NominalValue; break; case "Specified Power Load": PowerLoad = singleVal.NominalValue; break; case "Calculated Cooling Load per area": CoolingLoad_pa = singleVal.NominalValue; break; case "Calculated Heating Load per area": HeatingLoad_pa = singleVal.NominalValue; break; case "Specified Lighting Load per area": LightingLoad_pa = singleVal.NominalValue; break; case "Specified Power Load per area": PowerLoad_pa = singleVal.NominalValue; break; default: break; } } } var objects = Resources.FindObjectsOfTypeAll <GameObject>().Where(obj => obj.name == IFCSpace.EntityLabel.ToString()); if (!isSpace) { try { foreach (GameObject goo in objects) { goo.SetActive(false); } } catch { } } else { try { SpaceList.Add(new Sorting_IFCSpace(IFCSpace.Name, IFCSpace.EntityLabel, CoolingLoad, HeatingLoad, LightingLoad, PowerLoad, CoolingLoad_pa, HeatingLoad_pa, LightingLoad_pa, PowerLoad_pa)); foreach (GameObject goo in objects) { goo.tag = "XRay"; goo.layer = 9; goo.GetComponent <MeshRenderer>().enabled = false; } } catch { } } yield return(null); } foreach (var IFCprop in model.Instances.OfType <IIfcCurtainWall>()) { var objects = Resources.FindObjectsOfTypeAll <GameObject>().Where(obj => obj.name == IFCprop.EntityLabel.ToString()); try { foreach (GameObject goo in objects) { goo.tag = "Arch"; } } catch { } yield return(null); } foreach (var IFCprop in model.Instances.OfType <IIfcChimney>()) { var objects = Resources.FindObjectsOfTypeAll <GameObject>().Where(obj => obj.name == IFCprop.EntityLabel.ToString()); try { foreach (GameObject goo in objects) { goo.tag = "Arch"; } } catch { } yield return(null); } foreach (var IFCprop in model.Instances.OfType <IIfcRoof>()) { var objects = Resources.FindObjectsOfTypeAll <GameObject>().Where(obj => obj.name == IFCprop.EntityLabel.ToString()); try { foreach (GameObject goo in objects) { goo.tag = "Arch"; } } catch { } yield return(null); } foreach (var IFCprop in model.Instances.OfType <IIfcWall>()) { var objects = Resources.FindObjectsOfTypeAll <GameObject>().Where(obj => obj.name == IFCprop.EntityLabel.ToString()); try { foreach (GameObject goo in objects) { goo.tag = "Arch"; } } catch { } yield return(null); } foreach (var IFCprop in model.Instances.OfType <IIfcWindow>()) { var objects = Resources.FindObjectsOfTypeAll <GameObject>().Where(obj => obj.name == IFCprop.EntityLabel.ToString()); try { foreach (GameObject goo in objects) { goo.tag = "Arch"; } } catch { } yield return(null); } foreach (var IFCprop in model.Instances.OfType <IIfcPlate>()) { var objects = Resources.FindObjectsOfTypeAll <GameObject>().Where(obj => obj.name == IFCprop.EntityLabel.ToString()); try { foreach (GameObject goo in objects) { goo.tag = "Arch"; } } catch { } yield return(null); } foreach (var IFCprop in model.Instances.OfType <IIfcFurniture>()) { var objects = Resources.FindObjectsOfTypeAll <GameObject>().Where(obj => obj.name == IFCprop.EntityLabel.ToString()); try { foreach (GameObject goo in objects) { goo.tag = "Arch"; } } catch { } yield return(null); } foreach (var IFCprop in model.Instances.OfType <IIfcMember>()) { var objects = Resources.FindObjectsOfTypeAll <GameObject>().Where(obj => obj.name == IFCprop.EntityLabel.ToString()); try { foreach (GameObject goo in objects) { goo.tag = "Arch"; } } catch { } yield return(null); } foreach (var IFCprop in model.Instances.OfType <IIfcBuildingElementProxy>()) { var objects = Resources.FindObjectsOfTypeAll <GameObject>().Where(obj => obj.name == IFCprop.EntityLabel.ToString()); try { foreach (GameObject goo in objects) { goo.tag = "Arch"; } } catch { } yield return(null); } foreach (var IFCprop in model.Instances.OfType <IIfcShadingDevice>()) { var objects = Resources.FindObjectsOfTypeAll <GameObject>().Where(obj => obj.name == IFCprop.EntityLabel.ToString()); try { foreach (GameObject goo in objects) { goo.tag = "Arch"; } } catch { } yield return(null); } //MEP Taging foreach (var IFCprop in model.Instances.OfType <IIfcDistributionElement>()) { var objects = Resources.FindObjectsOfTypeAll <GameObject>().Where(obj => obj.name == IFCprop.EntityLabel.ToString()); try { foreach (GameObject goo in objects) { goo.tag = "MEP"; } } catch { } yield return(null); } //Lighting is part of MEP component, to overwrite MEP to Arch here for Arch's Convience foreach (var IFCProduct in model.Instances.OfType <IIfcLightFixture>()) { var objects = Resources.FindObjectsOfTypeAll <GameObject>().Where(obj => obj.name == IFCProduct.EntityLabel.ToString()); try { foreach (GameObject goo in objects) { goo.tag = "Arch_light"; //because the name change, can't reference them with name later to tag them. Light lt = goo.AddComponent <Light>(); lt.range = 10f; lt.shadows = LightShadows.Hard; lt.intensity = .5f; goo.GetComponent <Light>().enabled = false; } } catch { } yield return(null); } //Structual Taging foreach (var IFCprop in model.Instances.OfType <IIfcBeam>()) { var objects = Resources.FindObjectsOfTypeAll <GameObject>().Where(obj => obj.name == IFCprop.EntityLabel.ToString()); try { foreach (GameObject goo in objects) { goo.tag = "Stru"; } } catch { } yield return(null); } foreach (var IFCprop in model.Instances.OfType <IIfcFooting>()) { var objects = Resources.FindObjectsOfTypeAll <GameObject>().Where(obj => obj.name == IFCprop.EntityLabel.ToString()); try { foreach (GameObject goo in objects) { goo.tag = "Stru"; } } catch { } yield return(null); } foreach (var IFCprop in model.Instances.OfType <IIfcColumn>()) { var objects = Resources.FindObjectsOfTypeAll <GameObject>().Where(obj => obj.name == IFCprop.EntityLabel.ToString()); try { foreach (GameObject goo in objects) { goo.tag = "Stru"; } } catch { } yield return(null); } foreach (var IFCprop in model.Instances.OfType <IIfcSlab>()) { var objects = Resources.FindObjectsOfTypeAll <GameObject>().Where(obj => obj.name == IFCprop.EntityLabel.ToString()); try { foreach (GameObject goo in objects) { goo.tag = "Stru"; } } catch { } yield return(null); } foreach (var IFCprop in model.Instances.OfType <IIfcRailing>()) { var objects = Resources.FindObjectsOfTypeAll <GameObject>().Where(obj => obj.name == IFCprop.EntityLabel.ToString()); try { foreach (GameObject goo in objects) { goo.tag = "Stru"; } } catch { } yield return(null); } foreach (var IFCprop in model.Instances.OfType <IIfcRamp>()) { var objects = Resources.FindObjectsOfTypeAll <GameObject>().Where(obj => obj.name == IFCprop.EntityLabel.ToString()); try { foreach (GameObject goo in objects) { goo.tag = "Stru"; } } catch { } yield return(null); } foreach (var IFCprop in model.Instances.OfType <IIfcStair>()) { var objects = Resources.FindObjectsOfTypeAll <GameObject>().Where(obj => obj.name == IFCprop.EntityLabel.ToString()); try { foreach (GameObject goo in objects) { goo.tag = "Stru"; } } catch { } yield return(null); } foreach (var IFCprop in model.Instances.OfType <IIfcStairFlight>()) { var objects = Resources.FindObjectsOfTypeAll <GameObject>().Where(obj => obj.name == IFCprop.EntityLabel.ToString()); try { foreach (GameObject goo in objects) { goo.tag = "Stru"; } } catch { } yield return(null); } foreach (var IFCprop in model.Instances.OfType <IIfcCovering>()) { var objects = Resources.FindObjectsOfTypeAll <GameObject>().Where(obj => obj.name == IFCprop.EntityLabel.ToString()); try { foreach (GameObject goo in objects) { goo.tag = "Stru"; } } catch { } yield return(null); } foreach (var IFCprop in model.Instances.OfType <IIfcSite>()) { var objects = Resources.FindObjectsOfTypeAll <GameObject>().Where(obj => obj.name == IFCprop.EntityLabel.ToString()); try { foreach (GameObject goo in objects) { goo.tag = "Stru"; } } catch { } yield return(null); } foreach (var IFCprop in model.Instances.OfType <IIfcPile>()) { var objects = Resources.FindObjectsOfTypeAll <GameObject>().Where(obj => obj.name == IFCprop.EntityLabel.ToString()); try { foreach (GameObject goo in objects) { goo.tag = "Stru"; } } catch { } yield return(null); } foreach (var IFCprop in model.Instances.OfType <IIfcRampFlight>()) { var objects = Resources.FindObjectsOfTypeAll <GameObject>().Where(obj => obj.name == IFCprop.EntityLabel.ToString()); try { foreach (GameObject goo in objects) { goo.tag = "Stru"; } } catch { } yield return(null); } Togo.transform.Find("Filter_Arch").GetComponent <Toggle>().interactable = true; Togo.transform.Find("Filter_MEP").GetComponent <Toggle>().interactable = true; Togo.transform.Find("Filter_Stru").GetComponent <Toggle>().interactable = true; Togo.transform.Find("Switch_Day").GetComponent <Toggle>().interactable = true; Togo.transform.Find("Filter_Space").GetComponent <Toggle>().interactable = true; Togo.transform.Find("Switch_Light").GetComponent <Toggle>().interactable = true; Togo.transform.Find("Dropdown_SpaceSorting").GetComponent <Dropdown>().interactable = true; workDone = true; //Go taging completes } if (workDone) { Debug.Log("Coro completes in " + Time.time); } }
public IfcSpecularExponent(string val) { _theValue = IfcReal.ToDouble(val); }
internal static void WriteEntity(this IPersistIfcEntity entity, TextWriter tw, byte[] propertyData) { tw.Write(string.Format("#{0}={1}", entity.EntityLabel, entity.GetType().Name.ToUpper())); BinaryReader br = new BinaryReader(new MemoryStream(propertyData)); P21ParseAction action = (P21ParseAction)br.ReadByte(); bool comma = false; //the first property XbimParserState parserState = new XbimParserState(entity); while (action != P21ParseAction.EndEntity) { switch (action) { case P21ParseAction.BeginList: tw.Write("("); break; case P21ParseAction.EndList: tw.Write(")"); break; case P21ParseAction.BeginComplex: tw.Write("&SCOPE"); break; case P21ParseAction.EndComplex: tw.Write("ENDSCOPE"); break; case P21ParseAction.SetIntegerValue: if (comma) { tw.Write(","); } comma = true; tw.Write(br.ReadInt64().ToString()); break; case P21ParseAction.SetHexValue: if (comma) { tw.Write(","); } comma = true; tw.Write(Convert.ToString(br.ReadInt64(), 16)); break; case P21ParseAction.SetFloatValue: if (comma) { tw.Write(","); } comma = true; tw.Write(IfcReal.AsPart21(br.ReadDouble())); break; case P21ParseAction.SetStringValue: if (comma) { tw.Write(","); } comma = true; tw.Write(br.ReadString()); break; case P21ParseAction.SetEnumValue: if (comma) { tw.Write(","); } comma = true; tw.Write("." + br.ReadString() + "."); break; case P21ParseAction.SetBooleanValue: if (comma) { tw.Write(","); } comma = true; tw.Write(br.ReadBoolean() ? ".T." : ".F."); break; case P21ParseAction.SetNonDefinedValue: if (comma) { tw.Write(","); } comma = true; tw.Write("$"); break; case P21ParseAction.SetOverrideValue: if (comma) { tw.Write(","); } comma = true; tw.Write("*"); break; case P21ParseAction.SetObjectValueUInt16: if (comma) { tw.Write(","); } comma = true; tw.Write("#" + br.ReadUInt16().ToString()); break; case P21ParseAction.SetObjectValueInt32: if (comma) { tw.Write(","); } comma = true; tw.Write("#" + br.ReadInt32().ToString()); break; case P21ParseAction.SetObjectValueInt64: if (comma) { tw.Write(","); } comma = true; tw.Write("#" + br.ReadInt64().ToString()); break; case P21ParseAction.BeginNestedType: if (comma) { tw.Write(","); } comma = false; tw.Write(br.ReadString() + "("); break; case P21ParseAction.EndNestedType: comma = true; tw.Write(")"); break; case P21ParseAction.EndEntity: tw.Write(");"); break; case P21ParseAction.NewEntity: comma = false; tw.Write("("); break; default: throw new Exception("Invalid Property Record #" + entity.EntityLabel + " EntityType: " + entity.GetType().Name); } action = (P21ParseAction)br.ReadByte(); } tw.WriteLine(); }