// Token: 0x0600026D RID: 621 RVA: 0x0000FCE0 File Offset: 0x0000DEE0 private void SetValuesFromFabricType(Document doc, FabricSheetType type, int wireIndex) { bool flag = type.IsCustom(); if (flag) { this._wireItem = type.GetWireItem(wireIndex, this.Direction); FabricWireType fabricWireType = doc.GetElement(this._wireItem.WireType) as FabricWireType; this.BendDiameter = fabricWireType.BendDiameter; this.WireDiameter = fabricWireType.WireDiameter; this.Length = this._wireItem.WireLength; Material material = doc.GetElement(type.Material) as Material; double value = 500.0; double defValue = value.NperMM2ToRevitYieldStrength(); this.SteelQuality = (((material != null) ? material.GetMinimumYieldStress(defValue).RevitYieldStrengthToNperMM2().ToString() : null) ?? value.ToString()); } else { this._wireItem = null; this.BendDiameter = 0.0; double num; double num2; type.getDiameters(out num, out num2); this.WireDiameter = ((this.Direction == null) ? num : num2); this.Length = (this.EndPoint - this.StartPoint).length(); } }
//TF private void Stream(ArrayList data, FabricSheetType fabricST) { data.Add(new Snoop.Data.ClassSeparator(typeof(FabricSheetType))); data.Add(new Snoop.Data.ElementId("Material", fabricST.Material, m_app.ActiveUIDocument.Document)); data.Add(new Snoop.Data.Double("Overall Length", fabricST.OverallLength)); data.Add(new Snoop.Data.Double("Overall Width", fabricST.OverallWidth)); data.Add(new Snoop.Data.Double("Sheet Mass", fabricST.SheetMass)); data.Add(new Snoop.Data.CategorySeparator("Major Direction")); data.Add(new Snoop.Data.ElementId("Wire Type", fabricST.MajorDirectionWireType, m_app.ActiveUIDocument.Document)); data.Add(new Snoop.Data.Double("End Overhang", fabricST.MajorEndOverhang)); data.Add(new Snoop.Data.Double("Lap Splice Length", fabricST.MajorLapSpliceLength)); data.Add(new Snoop.Data.String("Layout Pattern", fabricST.MajorLayoutPattern.ToString())); data.Add(new Snoop.Data.Double("Number of Wires", fabricST.MajorNumberOfWires)); data.Add(new Snoop.Data.Double("Reinforcement Area", fabricST.MajorReinforcementArea)); data.Add(new Snoop.Data.Double("Spacing", fabricST.MajorSpacing)); data.Add(new Snoop.Data.Double("Start Overhang", fabricST.MajorStartOverhang)); data.Add(new Snoop.Data.CategorySeparator("Minor Direction")); data.Add(new Snoop.Data.ElementId("Wire Type", fabricST.MinorDirectionWireType, m_app.ActiveUIDocument.Document)); data.Add(new Snoop.Data.Double("End Overhang", fabricST.MinorEndOverhang)); data.Add(new Snoop.Data.Double("Lap Splice Length", fabricST.MinorLapSpliceLength)); data.Add(new Snoop.Data.String("Layout Pattern", fabricST.MinorLayoutPattern.ToString())); data.Add(new Snoop.Data.Double("Number of Wires", fabricST.MinorNumberOfWires)); data.Add(new Snoop.Data.Double("Reinforcement Area", fabricST.MinorReinforcementArea)); data.Add(new Snoop.Data.Double("Spacing", fabricST.MinorSpacing)); data.Add(new Snoop.Data.Double("Start Overhang", fabricST.MinorStartOverhang)); }
private static void GetFabricSheetParams(FabricSheet sheet, out string steelGrade, out double meshLength, out double meshWidth, out double longitudinalBarNominalDiameter, out double transverseBarNominalDiameter, out double longitudinalBarCrossSectionArea, out double transverseBarCrossSectionArea, out double longitudinalBarSpacing, out double transverseBarSpacing) { steelGrade = String.Empty; meshLength = sheet.CutOverallLength; meshWidth = sheet.CutOverallWidth; longitudinalBarNominalDiameter = 0.0; transverseBarNominalDiameter = 0.0; longitudinalBarCrossSectionArea = 0.0; transverseBarCrossSectionArea = 0.0; longitudinalBarSpacing = 0.0; transverseBarSpacing = 0.0; if (sheet == null) { return; } Document doc = sheet.Document; Element fabricSheetTypeElem = doc?.GetElement(sheet.GetTypeId()); FabricSheetType fabricSheetType = fabricSheetTypeElem as FabricSheetType; steelGrade = NamingUtil.GetOverrideStringValue(sheet, "SteelGrade", null); Element majorFabricWireTypeElem = doc?.GetElement(fabricSheetType?.MajorDirectionWireType); FabricWireType majorFabricWireType = (majorFabricWireTypeElem == null) ? null : (majorFabricWireTypeElem as FabricWireType); if (majorFabricWireType != null) { longitudinalBarNominalDiameter = UnitUtil.ScaleLength(majorFabricWireType.WireDiameter); double localRadius = longitudinalBarNominalDiameter / 2.0; longitudinalBarCrossSectionArea = localRadius * localRadius * Math.PI; } Element minorFabricWireTypeElem = doc?.GetElement(fabricSheetType?.MinorDirectionWireType); FabricWireType minorFabricWireType = (minorFabricWireTypeElem == null) ? null : (minorFabricWireTypeElem as FabricWireType); if (minorFabricWireType != null) { transverseBarNominalDiameter = UnitUtil.ScaleLength(minorFabricWireType.WireDiameter); double localRadius = transverseBarNominalDiameter / 2.0; transverseBarCrossSectionArea = localRadius * localRadius * Math.PI; } longitudinalBarSpacing = UnitUtil.ScaleLength(fabricSheetType.MajorSpacing); transverseBarSpacing = UnitUtil.ScaleLength(fabricSheetType.MinorSpacing); }
// Token: 0x06000238 RID: 568 RVA: 0x0000F724 File Offset: 0x0000D924 internal override void WriteToPXML(ItSteel steelBlock, ICollection <ExportReinfData> exportedElements) { ItSteelExt itSteelExt = new ItSteelExt(); itSteelExt.type = "01"; itSteelExt.Info = CNCDataBase.paddedInt5(this.Count) + " " + this.Weight.ToString("000.000", CultureInfo.InvariantCulture); FabricSheetType sheetType = SteelGroupElementMeshBase.GetSheetType(base.FabricSheet.Element); itSteelExt.SheetType = (((sheetType != null) ? sheetType.Name : null) ?? string.Empty); itSteelExt.Count = this.Count; itSteelExt.Weight = Math.Round(this.Weight, 3); steelBlock.steelExtList.Add(itSteelExt); exportedElements.Add(new ExportReinfData { Id = base.FabricSheet.Id, ExportedAs = ExportReinfData.ExportType.AsExtIron }); }
private void GetFabricSheetParams(FabricSheet sheet) { if (sheet == null) { return; } MeshLength = sheet.CutOverallLength; MeshWidth = sheet.CutOverallWidth; if (sheet == null) { return; } Document doc = sheet.Document; Element fabricSheetTypeElem = doc?.GetElement(sheet.GetTypeId()); FabricSheetType fabricSheetType = fabricSheetTypeElem as FabricSheetType; SteelGrade = NamingUtil.GetOverrideStringValue(sheet, "SteelGrade", null); Element majorFabricWireTypeElem = doc?.GetElement(fabricSheetType?.MajorDirectionWireType); FabricWireType majorFabricWireType = (majorFabricWireTypeElem == null) ? null : (majorFabricWireTypeElem as FabricWireType); if (majorFabricWireType != null) { LongitudinalBarNominalDiameter = UnitUtil.ScaleLength(majorFabricWireType.WireDiameter); double localRadius = LongitudinalBarNominalDiameter / 2.0; LongitudinalBarCrossSectionArea = localRadius * localRadius * Math.PI; } Element minorFabricWireTypeElem = doc?.GetElement(fabricSheetType?.MinorDirectionWireType); FabricWireType minorFabricWireType = (minorFabricWireTypeElem == null) ? null : (minorFabricWireTypeElem as FabricWireType); if (minorFabricWireType != null) { TransverseBarNominalDiameter = UnitUtil.ScaleLength(minorFabricWireType.WireDiameter); double localRadius = TransverseBarNominalDiameter / 2.0; TransverseBarCrossSectionArea = localRadius * localRadius * Math.PI; } LongitudinalBarSpacing = UnitUtil.ScaleLength(fabricSheetType.MajorSpacing); TransverseBarSpacing = UnitUtil.ScaleLength(fabricSheetType.MinorSpacing); }
// Token: 0x06000235 RID: 565 RVA: 0x0000F570 File Offset: 0x0000D770 internal new static SteelGroupElementMeshSFS GetInstance(RevitElement <FabricSheet> fabricSheet, ItMachineDataBase.CNCElementData cncElementData, ItGeMatrix3d matWcsToPalette) { bool flag = fabricSheet.IsInvalid() || SteelGroupElementMeshBase.IsCFS(fabricSheet); SteelGroupElementMeshSFS result; if (flag) { result = null; } else { FabricSheetType sheetType = SteelGroupElementMeshBase.GetSheetType(fabricSheet.Element); SteelGroupElementMeshSFS steelGroupElementMeshSFS = new SteelGroupElementMeshSFS(cncElementData, matWcsToPalette); steelGroupElementMeshSFS.FabricSheet = fabricSheet; steelGroupElementMeshSFS.Host = fabricSheet.Element.getHostingPart(); bool flag2 = steelGroupElementMeshSFS.Host == null; if (flag2) { result = null; } else { steelGroupElementMeshSFS.FabricArea = (fabricSheet.Document.GetElement(fabricSheet.Element.FabricAreaOwnerId) as FabricArea); SteelGroupElement steelGroupElement = steelGroupElementMeshSFS; RevitElement <FabricArea> fabricArea = steelGroupElementMeshSFS.FabricArea; steelGroupElement.Data = (((fabricArea != null) ? fabricArea.load <ItReinforcement>(null, false) : null) ?? SteelGroupElement.GetEmptyData(steelGroupElementMeshSFS)); steelGroupElementMeshSFS.WireItemsMajor = steelGroupElementMeshSFS.getWireItems(fabricSheet.Element, 0, sheetType).ToList <WireItem>(); steelGroupElementMeshSFS.WireItemsMinor = steelGroupElementMeshSFS.getWireItems(fabricSheet.Element, (WireDistributionDirection)1, sheetType).ToList <WireItem>(); steelGroupElementMeshSFS._type = 1; steelGroupElementMeshSFS.Count = 1; steelGroupElementMeshSFS.Weight = SteelGroupElementMeshSFS.GetWeight(fabricSheet.Element); steelGroupElementMeshSFS._name = fabricSheet.Element.Name; steelGroupElementMeshSFS._typeId = fabricSheet.Element.GetTypeId(); steelGroupElementMeshSFS.MatWcsToPalette = ItGeMatrix3d.kIdentity; steelGroupElementMeshSFS.PosPalette = ItGePoint3d.kOrigin; steelGroupElementMeshSFS.SetMinMaxZ(); steelGroupElementMeshSFS.SetGroup(); result = steelGroupElementMeshSFS; } } return(result); }
// Token: 0x0600026C RID: 620 RVA: 0x0000FBF0 File Offset: 0x0000DDF0 public WireItem(Document doc, Curve curve, FabricSheetType type, int wireIndex, WireDistributionDirection direction, SteelGroupElementMeshBase parentMesh) { this._curve = curve; this.Direction = direction; this.ParentMesh = parentMesh; this.StartPoint = curve.GetEndPoint(0).asPoint(); this.EndPoint = curve.GetEndPoint(1).asPoint(); this.StartPoint.transformBy(parentMesh.MatWcsToPalette); this.EndPoint.transformBy(parentMesh.MatWcsToPalette); this.status = WireItem.Status.RelativeToWorld; this.SetValuesFromFabricType(doc, type, wireIndex); this.NumberOfIrons = 1; this.Pitch = 0; this.Angle = this.getAngle(); this.ArticleNumber = "Rodstock"; this.AutomaticProduction = 0; this.SpacerType = 0; this.SpacerStartPoint = 0; this.SpacerPitch = 0; this.Bending = 0; this.Spacers = 0; this.WeldingPoints = 0; }
/// <summary> /// Exports an element as an IfcReinforcingMesh. /// </summary> /// <param name="exporterIFC">The ExporterIFC object.</param> /// <param name="element">The element.</param> /// <param name="geometryElement">The geometry element.</param> /// <param name="productWrapper">The ProductWrapper.</param> /// <returns>True if exported successfully, false otherwise.</returns> public static bool ExportFabricSheet(ExporterIFC exporterIFC, FabricSheet sheet, GeometryElement geometryElement, ProductWrapper productWrapper) { if (sheet == null || geometryElement == null) { return(false); } Document doc = sheet.Document; IFCFile file = exporterIFC.GetFile(); using (IFCTransaction tr = new IFCTransaction(file)) { using (IFCPlacementSetter placementSetter = IFCPlacementSetter.Create(exporterIFC, sheet, null, null, ExporterUtil.GetBaseLevelIdForElement(sheet))) { using (IFCExtrusionCreationData ecData = new IFCExtrusionCreationData()) { ecData.SetLocalPlacement(placementSetter.GetPlacement()); ElementId categoryId = CategoryUtil.GetSafeCategoryId(sheet); ElementId materialId = ElementId.InvalidElementId; ParameterUtil.GetElementIdValueFromElementOrSymbol(sheet, BuiltInParameter.MATERIAL_ID_PARAM, out materialId); double scale = exporterIFC.LinearScale; string guid = GUIDUtil.CreateGUID(sheet); IFCAnyHandle ownerHistory = exporterIFC.GetOwnerHistoryHandle(); string revitObjectType = exporterIFC.GetFamilyName(); string name = NamingUtil.GetNameOverride(sheet, revitObjectType); string description = NamingUtil.GetDescriptionOverride(sheet, null); string objectType = NamingUtil.GetObjectTypeOverride(sheet, revitObjectType); IFCAnyHandle localPlacement = ecData.GetLocalPlacement(); string elementTag = NamingUtil.CreateIFCElementId(sheet); string steelGrade = NamingUtil.GetOverrideStringValue(sheet, "SteelGrade", null); double?meshLength = sheet.CutOverallLength; double?meshWidth = sheet.CutOverallWidth; Element fabricSheetTypeElem = doc.GetElement(sheet.GetTypeId()); FabricSheetType fabricSheetType = (fabricSheetTypeElem == null) ? null : (fabricSheetTypeElem as FabricSheetType); double longitudinalBarNominalDiameter = 0.0; double transverseBarNominalDiameter = 0.0; double longitudinalBarCrossSectionArea = 0.0; double transverseBarCrossSectionArea = 0.0; double longitudinalBarSpacing = 0.0; double transverseBarSpacing = 0.0; if (fabricSheetType != null) { Element majorFabricWireTypeElem = doc.GetElement(fabricSheetType.MajorDirectionWireType); FabricWireType majorFabricWireType = (majorFabricWireTypeElem == null) ? null : (majorFabricWireTypeElem as FabricWireType); if (majorFabricWireType != null) { longitudinalBarNominalDiameter = majorFabricWireType.WireDiameter * scale; double localRadius = longitudinalBarNominalDiameter / 2.0; longitudinalBarCrossSectionArea = localRadius * localRadius * Math.PI; } Element minorFabricWireTypeElem = doc.GetElement(fabricSheetType.MinorDirectionWireType); FabricWireType minorFabricWireType = (minorFabricWireTypeElem == null) ? null : (minorFabricWireTypeElem as FabricWireType); if (minorFabricWireType != null) { transverseBarNominalDiameter = minorFabricWireType.WireDiameter * scale; double localRadius = transverseBarNominalDiameter / 2.0; transverseBarCrossSectionArea = localRadius * localRadius * Math.PI; } longitudinalBarSpacing = fabricSheetType.MajorSpacing * scale; transverseBarSpacing = fabricSheetType.MinorSpacing * scale; } IList <IFCAnyHandle> bodyItems = new List <IFCAnyHandle>(); IList <Curve> wireCenterlines = sheet.GetWireCenterlines(WireDistributionDirection.Major); foreach (Curve wireCenterline in wireCenterlines) { IFCAnyHandle bodyItem = CreateSweptDiskSolid(exporterIFC, file, wireCenterline, longitudinalBarNominalDiameter); if (!IFCAnyHandleUtil.IsNullOrHasNoValue(bodyItem)) { bodyItems.Add(bodyItem); } } wireCenterlines = sheet.GetWireCenterlines(WireDistributionDirection.Minor); foreach (Curve wireCenterline in wireCenterlines) { IFCAnyHandle bodyItem = CreateSweptDiskSolid(exporterIFC, file, wireCenterline, transverseBarNominalDiameter); if (!IFCAnyHandleUtil.IsNullOrHasNoValue(bodyItem)) { bodyItems.Add(bodyItem); } } IFCAnyHandle shapeRep = (bodyItems.Count > 0) ? RepresentationUtil.CreateAdvancedSweptSolidRep(exporterIFC, sheet, categoryId, exporterIFC.Get3DContextHandle("Body"), bodyItems, null) : null; IList <IFCAnyHandle> shapeReps = null; if (shapeRep != null) { shapeReps = new List <IFCAnyHandle>(); shapeReps.Add(shapeRep); } IFCAnyHandle prodRep = (shapeReps != null) ? IFCInstanceExporter.CreateProductDefinitionShape(file, null, null, shapeReps) : null; IFCAnyHandle fabricSheet = IFCInstanceExporter.CreateReinforcingMesh(file, guid, ownerHistory, name, description, objectType, localPlacement, prodRep, elementTag, steelGrade, meshLength, meshWidth, longitudinalBarNominalDiameter, transverseBarNominalDiameter, longitudinalBarCrossSectionArea, transverseBarCrossSectionArea, longitudinalBarSpacing, transverseBarSpacing); ElementId fabricAreaId = sheet.FabricAreaOwnerId; if (fabricAreaId != ElementId.InvalidElementId) { HashSet <IFCAnyHandle> fabricSheets = null; if (!ExporterCacheManager.FabricAreaHandleCache.TryGetValue(fabricAreaId, out fabricSheets)) { fabricSheets = new HashSet <IFCAnyHandle>(); ExporterCacheManager.FabricAreaHandleCache[fabricAreaId] = fabricSheets; } fabricSheets.Add(fabricSheet); } productWrapper.AddElement(sheet, fabricSheet, placementSetter.GetLevelInfo(), ecData, true); CategoryUtil.CreateMaterialAssociation(exporterIFC, fabricSheet, materialId); } } tr.Commit(); return(true); } }
// Token: 0x06000197 RID: 407 RVA: 0x0000B1A4 File Offset: 0x000093A4 internal new static SteelGroupElementMeshCFS GetInstance(RevitElement <FabricSheet> fabricSheet, ItMachineDataBase.CNCElementData cncElementData, ItGeMatrix3d matWcsToPalette) { bool flag = fabricSheet.IsInvalid() || !SteelGroupElementMeshBase.IsCFS(fabricSheet); SteelGroupElementMeshCFS result; if (flag) { result = null; } else { FabricSheetType sheetType = SteelGroupElementMeshBase.GetSheetType(fabricSheet.Element); SteelGroupElementMeshCFS steelGroupElementMeshCFS = new SteelGroupElementMeshCFS(cncElementData, matWcsToPalette); steelGroupElementMeshCFS.FabricSheet = fabricSheet; steelGroupElementMeshCFS.Host = fabricSheet.Element.getHostingPart(); bool flag2 = steelGroupElementMeshCFS.Host == null; if (flag2) { result = null; } else { steelGroupElementMeshCFS.FabricArea = (fabricSheet.Document.GetElement(fabricSheet.Element.FabricAreaOwnerId) as FabricArea); SteelGroupElement steelGroupElement = steelGroupElementMeshCFS; RevitElement <FabricArea> fabricArea = steelGroupElementMeshCFS.FabricArea; steelGroupElement.Data = (((fabricArea != null) ? fabricArea.load <ItReinforcement>(null, false) : null) ?? SteelGroupElement.GetEmptyData(steelGroupElementMeshCFS)); steelGroupElementMeshCFS._cfsName = sheetType.Name; steelGroupElementMeshCFS.WireItemsMajor = steelGroupElementMeshCFS.getWireItems(fabricSheet.Element, (WireDistributionDirection)0, sheetType).ToList <WireItem>(); steelGroupElementMeshCFS.WireItemsMinor = steelGroupElementMeshCFS.getWireItems(fabricSheet.Element, (WireDistributionDirection)1, sheetType).ToList <WireItem>(); ItGeBoundBlock3d itGeBoundBlock3d = SteelGroupElementMeshCFS.sheetLocalExtents(steelGroupElementMeshCFS.WireItemsMajor, steelGroupElementMeshCFS.WireItemsMinor); bool flag3 = itGeBoundBlock3d == null; if (flag3) { result = null; } else { steelGroupElementMeshCFS.PosPalette = itGeBoundBlock3d.minPoint; steelGroupElementMeshCFS._maxLength = itGeBoundBlock3d.length; steelGroupElementMeshCFS._maxWidth = itGeBoundBlock3d.width; steelGroupElementMeshCFS._toTurn = 0; steelGroupElementMeshCFS._stopOnTurn = 0; steelGroupElementMeshCFS._matType = 0; steelGroupElementMeshCFS.WireItemsMajor.ForEach(delegate(WireItem item) { item.transformToSteelmat(); }); steelGroupElementMeshCFS.WireItemsMinor.ForEach(delegate(WireItem item) { item.transformToSteelmat(); }); bool flag4 = steelGroupElementMeshCFS.Data.LayerPosition == PosReinfLayer.Undefined; if (flag4) { steelGroupElementMeshCFS.SetLayerPositionFromCFS(); } steelGroupElementMeshCFS.SetMinMaxZ(); steelGroupElementMeshCFS.SetGroup(); result = steelGroupElementMeshCFS; } } } return(result); }
/// <summary> /// Exports an element as an IfcReinforcingMesh. /// </summary> /// <param name="exporterIFC">The ExporterIFC object.</param> /// <param name="element">The element.</param> /// <param name="geometryElement">The geometry element.</param> /// <param name="productWrapper">The ProductWrapper.</param> /// <returns>True if exported successfully, false otherwise.</returns> public static bool ExportFabricSheet(ExporterIFC exporterIFC, FabricSheet sheet, GeometryElement geometryElement, ProductWrapper productWrapper) { if (sheet == null || geometryElement == null) { return(false); } // Check the intended IFC entity or type name is in the exclude list specified in the UI Common.Enums.IFCEntityType elementClassTypeEnum = Common.Enums.IFCEntityType.IfcReinforcingMesh; if (ExporterCacheManager.ExportOptionsCache.IsElementInExcludeList(elementClassTypeEnum)) { return(false); } Document doc = sheet.Document; IFCFile file = exporterIFC.GetFile(); using (IFCTransaction tr = new IFCTransaction(file)) { // Check for containment override IFCAnyHandle overrideContainerHnd = null; ElementId overrideContainerId = ParameterUtil.OverrideContainmentParameter(exporterIFC, sheet, out overrideContainerHnd); using (PlacementSetter placementSetter = PlacementSetter.Create(exporterIFC, sheet, null, null, overrideContainerId, overrideContainerHnd)) { using (IFCExtrusionCreationData ecData = new IFCExtrusionCreationData()) { ecData.SetLocalPlacement(placementSetter.LocalPlacement); ElementId categoryId = CategoryUtil.GetSafeCategoryId(sheet); ElementId materialId = ElementId.InvalidElementId; ParameterUtil.GetElementIdValueFromElementOrSymbol(sheet, BuiltInParameter.MATERIAL_ID_PARAM, out materialId); string guid = GUIDUtil.CreateGUID(sheet); IFCAnyHandle ownerHistory = ExporterCacheManager.OwnerHistoryHandle; string revitObjectType = NamingUtil.GetFamilyAndTypeName(sheet); IFCAnyHandle localPlacement = ecData.GetLocalPlacement(); string steelGrade = NamingUtil.GetOverrideStringValue(sheet, "SteelGrade", null); double?meshLength = sheet.CutOverallLength; double?meshWidth = sheet.CutOverallWidth; Element fabricSheetTypeElem = doc.GetElement(sheet.GetTypeId()); FabricSheetType fabricSheetType = (fabricSheetTypeElem == null) ? null : (fabricSheetTypeElem as FabricSheetType); double longitudinalBarNominalDiameter = 0.0; double transverseBarNominalDiameter = 0.0; double longitudinalBarCrossSectionArea = 0.0; double transverseBarCrossSectionArea = 0.0; double longitudinalBarSpacing = 0.0; double transverseBarSpacing = 0.0; if (fabricSheetType != null) { Element majorFabricWireTypeElem = doc.GetElement(fabricSheetType.MajorDirectionWireType); FabricWireType majorFabricWireType = (majorFabricWireTypeElem == null) ? null : (majorFabricWireTypeElem as FabricWireType); if (majorFabricWireType != null) { longitudinalBarNominalDiameter = UnitUtil.ScaleLength(majorFabricWireType.WireDiameter); double localRadius = longitudinalBarNominalDiameter / 2.0; longitudinalBarCrossSectionArea = localRadius * localRadius * Math.PI; } Element minorFabricWireTypeElem = doc.GetElement(fabricSheetType.MinorDirectionWireType); FabricWireType minorFabricWireType = (minorFabricWireTypeElem == null) ? null : (minorFabricWireTypeElem as FabricWireType); if (minorFabricWireType != null) { transverseBarNominalDiameter = UnitUtil.ScaleLength(minorFabricWireType.WireDiameter); double localRadius = transverseBarNominalDiameter / 2.0; transverseBarCrossSectionArea = localRadius * localRadius * Math.PI; } longitudinalBarSpacing = UnitUtil.ScaleLength(fabricSheetType.MajorSpacing); transverseBarSpacing = UnitUtil.ScaleLength(fabricSheetType.MinorSpacing); } ISet <IFCAnyHandle> bodyItems = new HashSet <IFCAnyHandle>(); IList <Curve> wireCenterlines = sheet.GetWireCenterlines(WireDistributionDirection.Major); foreach (Curve wireCenterline in wireCenterlines) { IFCAnyHandle bodyItem = GeometryUtil.CreateSweptDiskSolid(exporterIFC, file, wireCenterline, longitudinalBarNominalDiameter, null); if (!IFCAnyHandleUtil.IsNullOrHasNoValue(bodyItem)) { bodyItems.Add(bodyItem); } } wireCenterlines = sheet.GetWireCenterlines(WireDistributionDirection.Minor); foreach (Curve wireCenterline in wireCenterlines) { IFCAnyHandle bodyItem = GeometryUtil.CreateSweptDiskSolid(exporterIFC, file, wireCenterline, transverseBarNominalDiameter, null); if (!IFCAnyHandleUtil.IsNullOrHasNoValue(bodyItem)) { bodyItems.Add(bodyItem); } } IFCAnyHandle shapeRep = (bodyItems.Count > 0) ? RepresentationUtil.CreateAdvancedSweptSolidRep(exporterIFC, sheet, categoryId, exporterIFC.Get3DContextHandle("Body"), bodyItems, null) : null; IList <IFCAnyHandle> shapeReps = null; if (shapeRep != null) { shapeReps = new List <IFCAnyHandle>(); shapeReps.Add(shapeRep); } IFCAnyHandle prodRep = (shapeReps != null) ? IFCInstanceExporter.CreateProductDefinitionShape(file, null, null, shapeReps) : null; IFCAnyHandle fabricSheet = IFCInstanceExporter.CreateReinforcingMesh(exporterIFC, sheet, guid, ownerHistory, localPlacement, prodRep, steelGrade, meshLength, meshWidth, longitudinalBarNominalDiameter, transverseBarNominalDiameter, longitudinalBarCrossSectionArea, transverseBarCrossSectionArea, longitudinalBarSpacing, transverseBarSpacing); IFCExportInfoPair exportInfo = new IFCExportInfoPair(IFCEntityType.IfcReinforcingMesh); ElementId fabricAreaId = sheet.FabricAreaOwnerId; if (fabricAreaId != ElementId.InvalidElementId) { HashSet <IFCAnyHandle> fabricSheets = null; if (!ExporterCacheManager.FabricAreaHandleCache.TryGetValue(fabricAreaId, out fabricSheets)) { fabricSheets = new HashSet <IFCAnyHandle>(); ExporterCacheManager.FabricAreaHandleCache[fabricAreaId] = fabricSheets; } fabricSheets.Add(fabricSheet); } productWrapper.AddElement(sheet, fabricSheet, placementSetter.LevelInfo, ecData, true, exportInfo); CategoryUtil.CreateMaterialAssociation(exporterIFC, fabricSheet, materialId); } } tr.Commit(); return(true); } }
Stream(ArrayList data, ElementType sym) { data.Add(new Snoop.Data.ClassSeparator(typeof(ElementType))); // no data at this level yet AnnotationSymbolType annoType = sym as AnnotationSymbolType; if (annoType != null) { Stream(data, annoType); return; } AreaReinforcementType areaReinforcementType = sym as AreaReinforcementType; if (areaReinforcementType != null) { Stream(data, areaReinforcementType); return; } AreaTagType areaTagType = sym as AreaTagType; if (areaTagType != null) { Stream(data, areaTagType); return; } BeamSystemType beamSystemType = sym as BeamSystemType; if (beamSystemType != null) { Stream(data, beamSystemType); return; } DimensionType dimType = sym as DimensionType; if (dimType != null) { Stream(data, dimType); return; } //TF FabricSheetType fabricST = sym as FabricSheetType; if (fabricST != null) { Stream(data, fabricST); return; } FabricWireType fabricWT = sym as FabricWireType; if (fabricWT != null) { Stream(data, fabricWT); return; } //TFEND GroupType groupType = sym as GroupType; if (groupType != null) { Stream(data, groupType); return; } HostObjAttributes hostAtt = sym as HostObjAttributes; if (hostAtt != null) { Stream(data, hostAtt); return; } InsertableObject insObj = sym as InsertableObject; if (insObj != null) { Stream(data, insObj); return; } LevelType levelType = sym as LevelType; if (levelType != null) { Stream(data, levelType); return; } LineAndTextAttrSymbol lineAndTextAttr = sym as LineAndTextAttrSymbol; if (lineAndTextAttr != null) { Stream(data, lineAndTextAttr); return; } LoadTypeBase loadTypeBase = sym as LoadTypeBase; if (loadTypeBase != null) { Stream(data, loadTypeBase); return; } MEPBuildingConstruction mepBldConst = sym as MEPBuildingConstruction; if (mepBldConst != null) { Stream(data, mepBldConst); return; } PathReinforcementType pathReinforcementType = sym as PathReinforcementType; if (pathReinforcementType != null) { Stream(data, pathReinforcementType); return; } RebarBarType rebarBarType = sym as RebarBarType; if (rebarBarType != null) { Stream(data, rebarBarType); return; } RebarCoverType rebarCoverType = sym as RebarCoverType; if (rebarCoverType != null) { Stream(data, rebarCoverType); return; } RebarHookType rebarHookType = sym as RebarHookType; if (rebarHookType != null) { Stream(data, rebarHookType); return; } RebarShape rebarShape = sym as RebarShape; if (rebarShape != null) { Stream(data, rebarShape); return; } RoomTagType roomTagType = sym as RoomTagType; if (roomTagType != null) { Stream(data, roomTagType); return; } SpaceTagType spaceTagType = sym as SpaceTagType; if (spaceTagType != null) { Stream(data, spaceTagType); return; } TrussType trussType = sym as TrussType; if (trussType != null) { Stream(data, trussType); return; } DistributionSysType distSysType = sym as DistributionSysType; if (distSysType != null) { Stream(data, distSysType); return; } MEPCurveType mepCurType = sym as MEPCurveType; if (mepCurType != null) { Stream(data, mepCurType); return; } FluidType fluidType = sym as FluidType; if (fluidType != null) { Stream(data, fluidType); return; } PipeScheduleType pipeSchedType = sym as PipeScheduleType; if (pipeSchedType != null) { Stream(data, pipeSchedType); return; } VoltageType voltType = sym as VoltageType; if (voltType != null) { Stream(data, voltType); return; } WireType wireType = sym as WireType; if (wireType != null) { Stream(data, wireType); return; } ModelTextType modelTxtType = sym as ModelTextType; if (modelTxtType != null) { Stream(data, modelTxtType); return; } }
// Token: 0x060001BB RID: 443 RVA: 0x0000BDF4 File Offset: 0x00009FF4 public static bool IsCFS(RevitElement <FabricSheet> sheet) { FabricSheetType sheetType = SteelGroupElementMeshBase.GetSheetType(sheet.Element); return(sheetType.IsCustom()); }
// Token: 0x060001B9 RID: 441 RVA: 0x0000BD48 File Offset: 0x00009F48 public IEnumerable <WireItem> getWireItems(FabricSheet sheet, WireDistributionDirection direction, FabricSheetType type) { bool flag = sheet == null || type == null; IEnumerable <WireItem> result; if (flag) { result = new List <WireItem>(); } else { Document doc = sheet.Document; List <Curve> source = sheet.GetWireCenterlines(direction).ToList <Curve>(); IEnumerable <WireItem> enumerable = source.Select((Curve curve, int index) => new WireItem(doc, curve, type, index, direction, this)); result = enumerable; } return(result); }