// =================================================================
        //  (5.1.2) set the visibility of the solid not to show in coarse
        // =================================================================
        public void changeVisibility(Extrusion pSolid)
        {
            // set the visibility of the model not to shown in coarse.
            //
            FamilyElementVisibility pVis = new FamilyElementVisibility(FamilyElementVisibilityType.Model);

            pVis.IsShownInCoarse = false;

            pSolid.SetVisibility(pVis);
        }
        /// <summary>
        /// The method is used to create a FamilyElementVisibility instance
        /// </summary>
        /// <returns>FamilyElementVisibility instance</returns>
        private FamilyElementVisibility CreateVisibility()
        {
            FamilyElementVisibility familyElemVisibility = new FamilyElementVisibility(FamilyElementVisibilityType.Model);

            familyElemVisibility.IsShownInCoarse     = true;
            familyElemVisibility.IsShownInFine       = true;
            familyElemVisibility.IsShownInMedium     = true;
            familyElemVisibility.IsShownInFrontBack  = true;
            familyElemVisibility.IsShownInLeftRight  = true;
            familyElemVisibility.IsShownInPlanRCPCut = false;
            return(familyElemVisibility);
        }
Exemple #3
0
        public GeometryVisibility(FamilyElementVisibility fev)
        {
            VisibleInLowLeveL    = fev.IsShownInCoarse;
            VisibleInMiddleLevel = fev.IsShownInMedium;
            VisibleInHighLevel   = fev.IsShownInFine;
            VisibleFrontBack     = fev.IsShownInFrontBack;
            VisibleLeftRight     = fev.IsShownInLeftRight;
            VisibleTopBottom     = fev.IsShownInTopBottom;
            VisibleOnPlans       = fev.IsShownInPlanRCPCut;
            VisibleOnlyWhenCut   = fev.IsShownOnlyWhenCut;

            VisibilityType = Enum.GetName(typeof(FamilyElementVisibilityType), fev.VisibilityType);
        }
        Stream(ArrayList data, FamilyElementVisibility famElemVisib)
        {
            data.Add(new Snoop.Data.ClassSeparator(typeof(FamilyElementVisibility)));

            data.Add(new Snoop.Data.Bool("Is shown in Coarse", famElemVisib.IsShownInCoarse));
            data.Add(new Snoop.Data.Bool("Is shown in Fine", famElemVisib.IsShownInFine));
            data.Add(new Snoop.Data.Bool("Is shown in FrontBack", famElemVisib.IsShownInFrontBack));
            data.Add(new Snoop.Data.Bool("Is shown in LeftRight", famElemVisib.IsShownInLeftRight));
            data.Add(new Snoop.Data.Bool("Is shown in Medium", famElemVisib.IsShownInMedium));
            data.Add(new Snoop.Data.Bool("Is shown in PlanRCPCut", famElemVisib.IsShownInPlanRCPCut));
            data.Add(new Snoop.Data.Bool("Is shown in TopBottom", famElemVisib.IsShownInTopBottom));
            data.Add(new Snoop.Data.Bool("Is shown only when cut", famElemVisib.IsShownOnlyWhenCut));
            data.Add(new Snoop.Data.String("Visibility type", famElemVisib.VisibilityType.ToString()));
        }
        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.Architecture.BoundarySegment boundSeg = e.ObjToSnoop as Autodesk.Revit.DB.Architecture.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;
            }

            //TFEND

            if (Utils.IsSupportedType(e.ObjToSnoop) && e.ObjToSnoop != null)
            {
                Utils.StreamWithReflection(snoopCollector.Data(), e.ObjToSnoop.GetType(), e.ObjToSnoop);
            }
        }
        // =====================================================================
        //  (5.1.1) create simple line objects to be displayed in coarse level
        // =====================================================================
        public void addLineObjects()
        {
            //
            // define a simple L-shape detail line object
            //
            //  0
            //   +        h = height
            //   |        (we also want to draw a vertical line here at point 1)
            // d |
            //   +-----+
            //  1       2
            //      w
            //

            // sizes
            double w = mmToFeet(600.0);  // modified to match reference plane. otherwise, alignment won't work.
            double d = mmToFeet(600.0);
            double h = mmToFeet(4000.0); // distance between Lower and Upper Ref Level.
            double t = mmToFeet(50.0);   // slight offset for visbility

            // define vertices
            //
            XYZ[] pts = new XYZ[] { new XYZ((-w / 2.0) + t, d / 2.0, 0.0), new XYZ((-w / 2.0) + t, (-d / 2.0) + t, 0.0), new XYZ(w / 2.0, (-d / 2.0) + t, 0.0) };
            XYZ   ptH = new XYZ((-w / 2.0) + t, (-d / 2.0) + t, h); // this is for vertical line.

            //
            // (2) create a sketch plane
            //
            // we need to know the template. If you look at the template (Metric Column.rft) and "Front" view,
            // you will see "Reference Plane" at "Lower Ref. Level". We are going to create a sketch plane there.
            // findElement() is a helper function that find an element of the given type and name.  see below.
            // Note: we did the same in creating a profile.
            //
            ReferencePlane pRefPlane = findElement(typeof(ReferencePlane), "Reference Plane") as ReferencePlane;
            //SketchPlane pSketchPlane = _doc.FamilyCreate.NewSketchPlane(pRefPlane.Plane);  // Revit 2013
            //SketchPlane pSketchPlane = SketchPlane.Create(_doc, pRefPlane.Plane);  // Revit 2014
            SketchPlane pSketchPlane = SketchPlane.Create(_doc, pRefPlane.GetPlane()); // Revit 2016

            // for vertical line, we draw a straight vertical line at the point[1]
            XYZ normal = new XYZ(1.0, 0.0, 0.0);
            //Plane pGeomPlaneH = _app.Create.NewPlane( normal, pts[1] ); // Revit 2016
            Plane pGeomPlaneH = Plane.CreateByNormalAndOrigin(normal, pts[1]); // Revit 2017
                                                                               //SketchPlane pSketchPlaneH = _doc.FamilyCreate.NewSketchPlane(pGeomPlaneH);  // Revit 2013
            SketchPlane pSketchPlaneH = SketchPlane.Create(_doc, pGeomPlaneH); // Revit 2014

            // (3) create line objects: two symbolic curves on a plan and one model curve representing a column like a vertical stick.
            //
            // Revit 2013
            //Line geomLine1 = _app.Create.NewLine(pts[0], pts[1], true);
            //Line geomLine2 = _app.Create.NewLine(pts[1], pts[2], true);
            //Line geomLineH = _app.Create.NewLine(pts[1], ptH, true);

            // Revit 2014
            Line geomLine1 = Line.CreateBound(pts[0], pts[1]);
            Line geomLine2 = Line.CreateBound(pts[1], pts[2]);
            //Line geomLineH = _app.Create.NewLine(pts[1], ptH, true); // Revit 2013
            Line geomLineH = Line.CreateBound(pts[1], ptH);

            SymbolicCurve pLine1 = _doc.FamilyCreate.NewSymbolicCurve(geomLine1, pSketchPlane);
            SymbolicCurve pLine2 = _doc.FamilyCreate.NewSymbolicCurve(geomLine2, pSketchPlane);

            ModelCurve pLineH = _doc.FamilyCreate.NewModelCurve(geomLineH, pSketchPlaneH); // this is vertical line

            // set the visibilities of two lines to coarse only
            //
            FamilyElementVisibility pVis = new FamilyElementVisibility(FamilyElementVisibilityType.ViewSpecific);

            pVis.IsShownInFine   = false;
            pVis.IsShownInMedium = false;

            pLine1.SetVisibility(pVis);
            pLine2.SetVisibility(pVis);

            FamilyElementVisibility pVisH = new FamilyElementVisibility(FamilyElementVisibilityType.Model);

            pVisH.IsShownInFine   = false;
            pVisH.IsShownInMedium = false;

            pLineH.SetVisibility(pVisH);
        }
        // =================================================================
        //  (5.1.2) set the visibility of the solid not to show in coarse
        // =================================================================
        public void changeVisibility(Extrusion pSolid)
        {
            // set the visibility of the model not to shown in coarse.
            //
            FamilyElementVisibility pVis = new FamilyElementVisibility(FamilyElementVisibilityType.Model);
            pVis.IsShownInCoarse = false;

            pSolid.SetVisibility(pVis);
        }
        // =====================================================================
        //  (5.1.1) create simple line objects to be displayed in coarse level
        // =====================================================================
        public void addLineObjects()
        {
            //
            // define a simple L-shape detail line object
            //
            //  0
            //   +        h = height
            //   |        (we also want to draw a vertical line here at point 1)
            // d |
            //   +-----+
            //  1       2
            //      w
            //

            // sizes
            double w = mmToFeet(600.0); // modified to match reference plane. otherwise, alignment won't work.
            double d = mmToFeet(600.0);
            double h = mmToFeet(4000.0); // distance between Lower and Upper Ref Level.
            double t = mmToFeet(50.0); // slight offset for visbility

            // define vertices
            //
            XYZ[] pts = new XYZ[] { new XYZ((-w / 2.0) + t, d / 2.0, 0.0), new XYZ((-w / 2.0) + t, (-d / 2.0) + t, 0.0), new XYZ(w / 2.0, (-d / 2.0) + t, 0.0) };
            XYZ ptH = new XYZ((-w / 2.0) + t, (-d / 2.0) + t, h);  // this is for vertical line.

            //
            // (2) create a sketch plane
            //
            // we need to know the template. If you look at the template (Metric Column.rft) and "Front" view,
            // you will see "Reference Plane" at "Lower Ref. Level". We are going to create a sketch plane there.
            // findElement() is a helper function that find an element of the given type and name.  see below.
            // Note: we did the same in creating a profile.
            //
            ReferencePlane pRefPlane = findElement(typeof(ReferencePlane), "Reference Plane") as ReferencePlane;
            //SketchPlane pSketchPlane = _doc.FamilyCreate.NewSketchPlane(pRefPlane.Plane);  // Revit 2013
            //SketchPlane pSketchPlane = SketchPlane.Create(_doc, pRefPlane.Plane);  // Revit 2014
            SketchPlane pSketchPlane = SketchPlane.Create(_doc, pRefPlane.GetPlane());  // Revit 2016

            // for vertical line, we draw a straight vertical line at the point[1] 
            XYZ normal = new XYZ(1.0, 0.0, 0.0);
            Plane pGeomPlaneH = _app.Create.NewPlane(normal, pts[1]);
            //SketchPlane pSketchPlaneH = _doc.FamilyCreate.NewSketchPlane(pGeomPlaneH);  // Revit 2013
            SketchPlane pSketchPlaneH = SketchPlane.Create(_doc, pGeomPlaneH);  // Revit 2014

            // (3) create line objects: two symbolic curves on a plan and one model curve representing a column like a vertical stick.
            //
            // Revit 2013
            //Line geomLine1 = _app.Create.NewLine(pts[0], pts[1], true);
            //Line geomLine2 = _app.Create.NewLine(pts[1], pts[2], true);
            //Line geomLineH = _app.Create.NewLine(pts[1], ptH, true);

            // Revit 2014
            Line geomLine1 = Line.CreateBound(pts[0], pts[1]);
            Line geomLine2 = Line.CreateBound(pts[1], pts[2]);
            //Line geomLineH = _app.Create.NewLine(pts[1], ptH, true); // Revit 2013
            Line geomLineH = Line.CreateBound(pts[1], ptH);

            SymbolicCurve pLine1 = _doc.FamilyCreate.NewSymbolicCurve(geomLine1, pSketchPlane);
            SymbolicCurve pLine2 = _doc.FamilyCreate.NewSymbolicCurve(geomLine2, pSketchPlane);

            ModelCurve pLineH = _doc.FamilyCreate.NewModelCurve(geomLineH, pSketchPlaneH); // this is vertical line

            // set the visibilities of two lines to coarse only
            //
            FamilyElementVisibility pVis = new FamilyElementVisibility(FamilyElementVisibilityType.ViewSpecific);
            pVis.IsShownInFine = false;
            pVis.IsShownInMedium = false;

            pLine1.SetVisibility(pVis);
            pLine2.SetVisibility(pVis);

            FamilyElementVisibility pVisH = new FamilyElementVisibility(FamilyElementVisibilityType.Model);
            pVisH.IsShownInFine = false;
            pVisH.IsShownInMedium = false;

            pLineH.SetVisibility(pVisH);
        }
      Stream(ArrayList data, FamilyElementVisibility famElemVisib)
      {
         data.Add(new Snoop.Data.ClassSeparator(typeof(FamilyElementVisibility)));

         data.Add(new Snoop.Data.Bool("Is shown in Coarse", famElemVisib.IsShownInCoarse));
         data.Add(new Snoop.Data.Bool("Is shown in Fine", famElemVisib.IsShownInFine));
         data.Add(new Snoop.Data.Bool("Is shown in FrontBack", famElemVisib.IsShownInFrontBack));
         data.Add(new Snoop.Data.Bool("Is shown in LeftRight", famElemVisib.IsShownInLeftRight));
         data.Add(new Snoop.Data.Bool("Is shown in Medium", famElemVisib.IsShownInMedium));
         data.Add(new Snoop.Data.Bool("Is shown in PlanRCPCut", famElemVisib.IsShownInPlanRCPCut));
         data.Add(new Snoop.Data.Bool("Is shown in TopBottom", famElemVisib.IsShownInTopBottom));
         data.Add(new Snoop.Data.Bool("Is shown only when cut", famElemVisib.IsShownOnlyWhenCut));
         data.Add(new Snoop.Data.String("Visibility type", famElemVisib.VisibilityType.ToString()));
      }
Exemple #10
0
 /// <summary>
 /// The method is used to create a FamilyElementVisibility instance
 /// </summary>
 /// <returns>FamilyElementVisibility instance</returns>
 private FamilyElementVisibility CreateVisibility()
 {
     FamilyElementVisibility familyElemVisibility = new FamilyElementVisibility(FamilyElementVisibilityType.Model);
     familyElemVisibility.IsShownInCoarse = true;
     familyElemVisibility.IsShownInFine = true;
     familyElemVisibility.IsShownInMedium = true;
     familyElemVisibility.IsShownInFrontBack = true;
     familyElemVisibility.IsShownInLeftRight = true;
     familyElemVisibility.IsShownInPlanRCPCut = false;
     return familyElemVisibility;
 }