Stream(ArrayList data, RebarContainerItem rbci) { data.Add(new Snoop.Data.ClassSeparator(typeof(RebarContainerItem))); data.Add(new Snoop.Data.ElementId("RebarContainerItem shape", rbci.RebarShapeId, m_app.ActiveUIDocument.Document)); // data.Add(new Snoop.Data.Object("Distribution path", rbci.GetDistributionPath())); // data.Add(new Snoop.Data.Enumerable("GetCenterlineCurves(false, false, false)", rbci.GetCenterlineCurves(false, false, false))); data.Add(new Snoop.Data.String("LayoutRule", rbci.LayoutRule.ToString())); if (rbci.LayoutRule != RebarLayoutRule.Single) { data.Add(new Snoop.Data.Double("Distribution path length", rbci.ArrayLength)); data.Add(new Snoop.Data.Int("Quantity", rbci.Quantity)); data.Add(new Snoop.Data.Int("NumberOfBarPositions", rbci.NumberOfBarPositions)); data.Add(new Snoop.Data.Double("MaxSpacing", rbci.MaxSpacing)); data.Add(new Snoop.Data.Bool("BarsOnNormalSide", rbci.BarsOnNormalSide)); } // data.Add(new Snoop.Data.String("ScheduleMark", rbci.ScheduleMark)); data.Add(new Snoop.Data.Double("Volume", rbci.Volume)); data.Add(new Snoop.Data.Double("TotalLength", rbci.TotalLength)); // data.Add(new Snoop.Data.Object("Normal", rbci.Normal)); // Bending data data.Add(new Snoop.Data.Object("Bending Data", rbci.GetBendData())); // Hook information addHookInformation2rebarContainerItem(ref data, rbci, 0); addHookInformation2rebarContainerItem(ref data, rbci, 1); }
/// <summary> /// Create the reinforcement at the bottom of beam /// </summary> /// <returns>true if the creation is successful, otherwise false</returns> public bool FillBottomItems(RebarContainer cont) { // get the geometry information of the bottom reinforcement RebarGeometry geomInfo = m_geometry.GetBottomRebar(); // create the container item RebarContainerItem item = PlaceContainerItem(cont, m_bottomType, null, null, geomInfo, RebarHookOrientation.Left, RebarHookOrientation.Left); return(null != item); }
/// <summary> /// Create the reinforcement at the top of beam /// </summary> /// <returns>true if the creation is successful, otherwise false</returns> private bool FillTopItems(RebarContainer cont) { // create all kinds of top reinforcement according to the TopRebarLocation foreach (TopRebarLocation location in Enum.GetValues(typeof(TopRebarLocation))) { RebarContainerItem item = FillTopItem(cont, location); //judge whether the top reinforcement creation is successful if (null == item) { return(false); } } return(true); }
/// <summary> /// A wrap function which used to create the reinforcement. /// </summary> /// <param name="rebarType">The element of RebarBarType</param> /// <param name="startHook">The element of start RebarHookType</param> /// <param name="endHook">The element of end RebarHookType</param> /// <param name="geomInfo">The goemetry information of the rebar</param> /// <param name="startOrient">An Integer defines the orientation of the start hook</param> /// <param name="endOrient">An Integer defines the orientation of the end hook</param> /// <returns></returns> protected RebarContainerItem PlaceContainerItem(RebarContainer cont, RebarBarType rebarType, RebarHookType startHook, RebarHookType endHook, RebarGeometry geomInfo, RebarHookOrientation startOrient, RebarHookOrientation endOrient) { Autodesk.Revit.DB.XYZ normal = geomInfo.Normal; // the direction of reinforcement distribution IList <Curve> curves = geomInfo.Curves; // the shape of the reinforcement curves RebarContainerItem item = cont.AppendItemFromCurves(RebarStyle.Standard, rebarType, startHook, endHook, normal, curves, startOrient, endOrient, false, true); if (2 < geomInfo.RebarNumber && 0 < geomInfo.RebarSpacing) { item.SetLayoutAsNumberWithSpacing(geomInfo.RebarNumber, geomInfo.RebarSpacing, true, true, true); } return(item); }
private void addHookInformation2rebarContainerItem(ref ArrayList data, RebarContainerItem rebar, int end) { if (end != 0 && end != 1) { return; } ElementId hookId = rebar.GetHookTypeId(end); if (hookId != null && hookId != ElementId.InvalidElementId) { data.Add(new Snoop.Data.CategorySeparator("HookType at end: " + end.ToString())); data.Add(new Snoop.Data.ElementId("Hook Type", hookId, m_app.ActiveUIDocument.Document)); data.Add(new Snoop.Data.String("HookOrientation", rebar.GetHookOrientation(end).ToString())); } }
private void Stream( ArrayList data, RebarContainerItem rebarContainerItem ) { data.Add( new Snoop.Data.ClassSeparator( typeof( RebarContainerItem ) ) ); data.Add( new Snoop.Data.Double( "Array Length", rebarContainerItem.ArrayLength ) ); data.Add( new Snoop.Data.Bool( "Bars On Normal Side", rebarContainerItem.BarsOnNormalSide ) ); data.Add( new Snoop.Data.Int( "Base Finishing Turns", rebarContainerItem.BaseFinishingTurns ) ); data.Add( new Snoop.Data.Object( "Bend Data", rebarContainerItem.GetBendData() ) ); data.Add( new Snoop.Data.Object( "Distribution Path", rebarContainerItem.GetDistributionPath() ) ); data.Add( new Snoop.Data.Object( "Hook Orientation [0]", rebarContainerItem.GetHookOrientation( 0 ) ) ); data.Add( new Snoop.Data.Object( "Hook Orientation [1]", rebarContainerItem.GetHookOrientation( 1 ) ) ); data.Add( new Snoop.Data.Double( "Height", rebarContainerItem.Height ) ); data.Add( new Snoop.Data.Bool( "Include First Bar", rebarContainerItem.IncludeFirstBar ) ); data.Add( new Snoop.Data.Bool( "Include Last Bar", rebarContainerItem.IncludeLastBar ) ); data.Add( new Snoop.Data.Object( "Layout Rule", rebarContainerItem.LayoutRule ) ); data.Add( new Snoop.Data.Double( "Max Spacing", rebarContainerItem.MaxSpacing ) ); data.Add( new Snoop.Data.Double( "Multiplanar Depth", rebarContainerItem.MultiplanarDepth ) ); data.Add( new Snoop.Data.Xyz( "Normal", rebarContainerItem.Normal ) ); data.Add( new Snoop.Data.Int( "Number Of Bar Positions", rebarContainerItem.NumberOfBarPositions ) ); data.Add( new Snoop.Data.Double( "Pitch", rebarContainerItem.Pitch ) ); data.Add( new Snoop.Data.Int( "Quantity", rebarContainerItem.Quantity ) ); data.Add( new Snoop.Data.Int( "Top Finishing Turns", rebarContainerItem.TopFinishingTurns ) ); data.Add( new Snoop.Data.Double( "Total Length", rebarContainerItem.TotalLength ) ); data.Add( new Snoop.Data.Double( "Volume", rebarContainerItem.Volume ) ); }
private void addHookInformation2rebarContainerItem(ref ArrayList data, RebarContainerItem rebar, int end) { if (end != 0 && end != 1) return; ElementId hookId = rebar.GetHookTypeId(end); if (hookId != null && hookId != ElementId.InvalidElementId) { data.Add(new Snoop.Data.CategorySeparator("HookType at end: " + end.ToString())); data.Add(new Snoop.Data.ElementId("Hook Type", hookId, m_app.ActiveUIDocument.Document)); data.Add(new Snoop.Data.String("HookOrientation", rebar.GetHookOrientation(end).ToString())); } }
private void Stream(ArrayList data, RebarContainerItem rbci) { data.Add(new Snoop.Data.ClassSeparator(typeof(RebarContainerItem))); data.Add(new Snoop.Data.ElementId("RebarContainerItem shape", rbci.RebarShapeId, m_app.ActiveUIDocument.Document)); // data.Add(new Snoop.Data.Object("Distribution path", rbci.GetDistributionPath())); // data.Add(new Snoop.Data.Enumerable("GetCenterlineCurves(false, false, false)", rbci.GetCenterlineCurves(false, false, false))); data.Add(new Snoop.Data.String("LayoutRule", rbci.LayoutRule.ToString())); if (rbci.LayoutRule != RebarLayoutRule.Single) { data.Add(new Snoop.Data.Double("Distribution path length", rbci.ArrayLength)); data.Add(new Snoop.Data.Int("Quantity", rbci.Quantity)); data.Add(new Snoop.Data.Int("NumberOfBarPositions", rbci.NumberOfBarPositions)); data.Add(new Snoop.Data.Double("MaxSpacing", rbci.MaxSpacing)); data.Add(new Snoop.Data.Bool("BarsOnNormalSide", rbci.BarsOnNormalSide)); } // data.Add(new Snoop.Data.String("ScheduleMark", rbci.ScheduleMark)); data.Add(new Snoop.Data.Double("Volume", rbci.Volume)); data.Add(new Snoop.Data.Double("TotalLength", rbci.TotalLength)); // data.Add(new Snoop.Data.Object("Normal", rbci.Normal)); // Bending data data.Add(new Snoop.Data.Object("Bending Data", rbci.GetBendData())); // Hook information addHookInformation2rebarContainerItem(ref data, rbci, 0); addHookInformation2rebarContainerItem(ref data, rbci, 1); }
CollectEvent(object sender, CollectorEventArgs e) { // cast the sender object to the SnoopCollector we are expecting Collector snoopCollector = sender as Collector; if (snoopCollector == null) { Debug.Assert(false); // why did someone else send us the message? return; } // see if it is a type we are responsible for Color color = e.ObjToSnoop as Color; if (color != null) { Stream(snoopCollector.Data(), color); return; } LayoutRule layoutRule = e.ObjToSnoop as LayoutRule; if (layoutRule != null) { Stream(snoopCollector.Data(), layoutRule); return; } FormatOptions formatOptions = e.ObjToSnoop as FormatOptions; if (formatOptions != null) { Stream(snoopCollector.Data(), formatOptions); return; } CurtainGrid curtainGrid = e.ObjToSnoop as CurtainGrid; if (curtainGrid != null) { Stream(snoopCollector.Data(), curtainGrid); return; } CurtainCell curtainCell = e.ObjToSnoop as CurtainCell; if (curtainCell != null) { Stream(snoopCollector.Data(), curtainCell); return; } RebarHostData rebarHostData = e.ObjToSnoop as RebarHostData; if (rebarHostData != null) { Stream(snoopCollector.Data(), rebarHostData); return; } Leader leader = e.ObjToSnoop as Leader; if (leader != null) { Stream(snoopCollector.Data(), leader); return; } AreaVolumeSettings areaSettings = e.ObjToSnoop as AreaVolumeSettings; if (areaSettings != null) { Stream(snoopCollector.Data(), areaSettings); return; } ViewSheetSetting viewSheetSetting = e.ObjToSnoop as ViewSheetSetting; if (viewSheetSetting != null) { Stream(snoopCollector.Data(), viewSheetSetting); return; } Autodesk.Revit.UI.Events.DialogBoxData dlgBoxData = e.ObjToSnoop as Autodesk.Revit.UI.Events.DialogBoxData; if (dlgBoxData != null) { Stream(snoopCollector.Data(), dlgBoxData); return; } Construction construct = e.ObjToSnoop as Construction; if (construct != null) { Stream(snoopCollector.Data(), construct); return; } FamilyElementVisibility famElemVisib = e.ObjToSnoop as FamilyElementVisibility; if (famElemVisib != null) { Stream(snoopCollector.Data(), famElemVisib); return; } FamilyManager famManager = e.ObjToSnoop as FamilyManager; if (famManager != null) { Stream(snoopCollector.Data(), famManager); return; } FamilyParameter famParam = e.ObjToSnoop as FamilyParameter; if (famParam != null) { Stream(snoopCollector.Data(), famParam); return; } FamilyType famType = e.ObjToSnoop as FamilyType; if (famType != null) { Stream(snoopCollector.Data(), famType); return; } MEPSpaceConstruction mepSpaceConstuct = e.ObjToSnoop as MEPSpaceConstruction; if (mepSpaceConstuct != null) { Stream(snoopCollector.Data(), mepSpaceConstuct); return; } BuildingSiteExportOptions bldSiteExpOptions = e.ObjToSnoop as BuildingSiteExportOptions; if (bldSiteExpOptions != null) { Stream(snoopCollector.Data(), bldSiteExpOptions); return; } DGNExportOptions dgnExpOptions = e.ObjToSnoop as DGNExportOptions; if (dgnExpOptions != null) { Stream(snoopCollector.Data(), dgnExpOptions); return; } DWFExportOptions dwfExpOptions = e.ObjToSnoop as DWFExportOptions; if (dwfExpOptions != null) { Stream(snoopCollector.Data(), dwfExpOptions); return; } DWGExportOptions dwgExpOptions = e.ObjToSnoop as DWGExportOptions; if (dwgExpOptions != null) { Stream(snoopCollector.Data(), dwgExpOptions); return; } DWGImportOptions dwgImpOptions = e.ObjToSnoop as DWGImportOptions; if (dwgImpOptions != null) { Stream(snoopCollector.Data(), dwgImpOptions); return; } FBXExportOptions fbxExpOptions = e.ObjToSnoop as FBXExportOptions; if (fbxExpOptions != null) { Stream(snoopCollector.Data(), fbxExpOptions); return; } TrussMemberInfo trussInfo = e.ObjToSnoop as TrussMemberInfo; if (trussInfo != null) { Stream(snoopCollector.Data(), trussInfo); return; } VertexIndexPair vertIndPair = e.ObjToSnoop as VertexIndexPair; if (vertIndPair != null) { Stream(snoopCollector.Data(), vertIndPair); return; } PointElementReference ptElemRef = e.ObjToSnoop as PointElementReference; if (ptElemRef != null) { Stream(snoopCollector.Data(), ptElemRef); return; } Autodesk.Revit.DB.BoundarySegment boundSeg = e.ObjToSnoop as Autodesk.Revit.DB.BoundarySegment; if (boundSeg != null) { Stream(snoopCollector.Data(), boundSeg); return; } PointLocationOnCurve ptLocOnCurve = e.ObjToSnoop as PointLocationOnCurve; if (ptLocOnCurve != null) { Stream(snoopCollector.Data(), ptLocOnCurve); return; } Entity entity = e.ObjToSnoop as Entity; if (entity != null) { Stream(snoopCollector.Data(), entity); return; } Field field = e.ObjToSnoop as Field; if (field != null) { Stream(snoopCollector.Data(), field); return; } ExtensibleStorageField storeagefield = e.ObjToSnoop as ExtensibleStorageField; if (storeagefield != null) { Stream(snoopCollector.Data(), storeagefield); return; } IList <Autodesk.Revit.DB.BoundarySegment> boundSegs = e.ObjToSnoop as IList <Autodesk.Revit.DB.BoundarySegment>; if (boundSegs != null) { Stream(snoopCollector.Data(), boundSegs); return; } if (e.ObjToSnoop is KeyValuePair <String, String> ) { KeyValuePair <String, String> stringspair = (KeyValuePair <String, String>)e.ObjToSnoop; Stream(snoopCollector.Data(), stringspair); return; } Schema schema = e.ObjToSnoop as Schema; if (schema != null) { Stream(snoopCollector.Data(), schema); return; } ElementId elemId = e.ObjToSnoop as ElementId; if (elemId != null) { Stream(snoopCollector.Data(), elemId); return; } PlanViewRange plvr = e.ObjToSnoop as PlanViewRange; if (plvr != null) { Stream(snoopCollector.Data(), plvr); return; } //TF RebarConstraintsManager rbcm = e.ObjToSnoop as RebarConstraintsManager; if (rbcm != null) { Stream(snoopCollector.Data(), rbcm); return; } RebarConstrainedHandle rbch = e.ObjToSnoop as RebarConstrainedHandle; if (rbch != null) { Stream(snoopCollector.Data(), rbch); return; } RebarConstraint rbc = e.ObjToSnoop as RebarConstraint; if (rbc != null) { Stream(snoopCollector.Data(), rbc); return; } RebarContainerItem rbcontItem = e.ObjToSnoop as RebarContainerItem; if (rbcontItem != null) { Stream(snoopCollector.Data(), rbcontItem); return; } //TFEND RebarBendData bendData = e.ObjToSnoop as RebarBendData; if (bendData != null) { Stream(snoopCollector.Data(), bendData); return; } if (Utils.IsSupportedType(e.ObjToSnoop) && e.ObjToSnoop != null) { Utils.StreamWithReflection(snoopCollector.Data(), e.ObjToSnoop.GetType(), e.ObjToSnoop); } }