Stream(ArrayList data, PointElementReference ptElemRef) { data.Add(new Snoop.Data.ClassSeparator(typeof(PointElementReference))); PointOnEdge ptOnEdge = ptElemRef as PointOnEdge; if (ptOnEdge != null) { Stream(data, ptOnEdge); return; } PointOnEdgeEdgeIntersection ptOnEdgeEdgeInt = ptElemRef as PointOnEdgeEdgeIntersection; if (ptOnEdgeEdgeInt != null) { Stream(data, ptOnEdgeEdgeInt); return; } PointOnEdgeFaceIntersection ptOnEdgeFaceInt = ptElemRef as PointOnEdgeFaceIntersection; if (ptOnEdgeFaceInt != null) { Stream(data, ptOnEdgeFaceInt); return; } PointOnFace ptOnFace = ptElemRef as PointOnFace; if (ptOnFace != null) { Stream(data, ptOnFace); return; } //PointOnSketch ptOnSketch = ptElemRef as PointOnSketch; //if (ptOnSketch != null) { // Stream(data, ptOnSketch); // return; //} //PointRelativeToPoint ptRelToPt = ptElemRef as PointRelativeToPoint; //if (ptRelToPt != null) { // Stream(data, ptRelToPt); // return; //} }
public override Value Evaluate(FSharpList <Value> args) { var inputItem = ((Value.Container)args[0]).Item; Reference r = (inputItem is Reference) ? (Reference)inputItem : ((CurveElement)inputItem).GeometryCurve.Reference; double len = ((Value.Number)args[1]).Item; bool isNormalized = ((Value.Number)args[2]).Item == 1; bool isBeginning = ((Value.Number)args[3]).Item == 1; PointLocationOnCurve plc = new PointLocationOnCurve(isNormalized ? PointOnCurveMeasurementType.NormalizedSegmentLength : PointOnCurveMeasurementType.SegmentLength, len, isBeginning ? PointOnCurveMeasureFrom.Beginning : PointOnCurveMeasureFrom.End); PointElementReference edgePoint = this.UIDocument.Application.Application.Create.NewPointOnEdge(r, plc); ReferencePoint p; if (this.Elements.Any()) { Element e; if (dynUtils.TryGetElement(this.Elements[0], typeof(ReferencePoint), out e)) { p = e as ReferencePoint; p.SetPointElementReference(edgePoint); } else { p = this.UIDocument.Document.FamilyCreate.NewReferencePoint(edgePoint); this.Elements[0] = p.Id; } } else { p = this.UIDocument.Document.FamilyCreate.NewReferencePoint(edgePoint); this.Elements.Add(p.Id); } return(Value.NewContainer(p)); }
public override Value Evaluate(FSharpList <Value> args) { Reference r = ((CurveElement)((Value.Container)args[0]).Item).GeometryCurve.Reference; double t = ((Value.Number)args[1]).Item; //Autodesk.Revit.DB..::.PointElementReference //Autodesk.Revit.DB..::.PointOnEdge //Autodesk.Revit.DB..::.PointOnEdgeEdgeIntersection //Autodesk.Revit.DB..::.PointOnEdgeFaceIntersection //Autodesk.Revit.DB..::.PointOnFace //Autodesk.Revit.DB..::.PointOnPlane PointLocationOnCurve plc = new PointLocationOnCurve(PointOnCurveMeasurementType.NormalizedCurveParameter, t, PointOnCurveMeasureFrom.Beginning); PointElementReference edgePoint = this.UIDocument.Application.Application.Create.NewPointOnEdge(r, plc); ReferencePoint p; if (this.Elements.Any()) { Element e; if (dynUtils.TryGetElement(this.Elements[0], typeof(ReferencePoint), out e)) { p = e as ReferencePoint; p.SetPointElementReference(edgePoint); } else { p = this.UIDocument.Document.FamilyCreate.NewReferencePoint(edgePoint); this.Elements[0] = p.Id; } } else { p = this.UIDocument.Document.FamilyCreate.NewReferencePoint(edgePoint); this.Elements.Add(p.Id); } return(Value.NewContainer(p)); }
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); } }
Stream(ArrayList data, PointElementReference ptElemRef) { data.Add(new Snoop.Data.ClassSeparator(typeof(PointElementReference))); PointOnEdge ptOnEdge = ptElemRef as PointOnEdge; if (ptOnEdge != null) { Stream(data, ptOnEdge); return; } PointOnEdgeEdgeIntersection ptOnEdgeEdgeInt = ptElemRef as PointOnEdgeEdgeIntersection; if (ptOnEdgeEdgeInt != null) { Stream(data, ptOnEdgeEdgeInt); return; } PointOnEdgeFaceIntersection ptOnEdgeFaceInt = ptElemRef as PointOnEdgeFaceIntersection; if (ptOnEdgeFaceInt != null) { Stream(data, ptOnEdgeFaceInt); return; } PointOnFace ptOnFace = ptElemRef as PointOnFace; if (ptOnFace != null) { Stream(data, ptOnFace); return; } //PointOnSketch ptOnSketch = ptElemRef as PointOnSketch; //if (ptOnSketch != null) { // Stream(data, ptOnSketch); // return; //} //PointRelativeToPoint ptRelToPt = ptElemRef as PointRelativeToPoint; //if (ptRelToPt != null) { // Stream(data, ptRelToPt); // return; //} }