// ================================================================= // (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); }
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.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); }
/// <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; }