Пример #1
0
        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);
        }
Пример #2
0
        /// <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);
        }
Пример #3
0
        /// <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);
        }
Пример #4
0
        /// <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);
        }
Пример #5
0
        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()));
            }
        }
Пример #6
0
        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 ) );
        }
Пример #7
0
        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()));
             }
        }
Пример #8
0
        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);
        }
Пример #9
0
        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);
            }
        }