public static NodeMigrationData Migrate_0630_to_0700(NodeMigrationData data) { NodeMigrationData migratedData = new NodeMigrationData(data.Document); XmlElement oldNode = data.MigratedNodes.ElementAt(0); string oldNodeId = MigrationManager.GetGuidFromXmlElement(oldNode); XmlElement dsRevitNode = MigrationManager.CreateFunctionNodeFrom(oldNode); MigrationManager.SetFunctionSignature(dsRevitNode, "RevitNodes.dll", "Solid.ByBlend", "Solid.ByBlend@Curve[][]"); migratedData.AppendNode(dsRevitNode); string dsRevitNodeId = MigrationManager.GetGuidFromXmlElement(dsRevitNode); XmlElement createListNode = MigrationManager.CreateNode(data.Document, "DSCoreNodesUI.CreateList", "Create List"); migratedData.AppendNode(createListNode); createListNode.SetAttribute("inputcount", "2"); string createListNodeId = MigrationManager.GetGuidFromXmlElement(createListNode); //create and reconnect the connecters PortId oldInPort0 = new PortId(oldNodeId, 0, PortType.INPUT); XmlElement connector0 = data.FindFirstConnector(oldInPort0); PortId oldInPort1 = new PortId(oldNodeId, 1, PortType.INPUT); XmlElement connector1 = data.FindFirstConnector(oldInPort1); PortId newInPort0 = new PortId(createListNodeId, 0, PortType.INPUT); PortId newInPort1 = new PortId(createListNodeId, 1, PortType.INPUT); data.ReconnectToPort(connector0, newInPort0); data.ReconnectToPort(connector1, newInPort1); data.CreateConnector(createListNode, 0, dsRevitNode, 0); return migratedData; }
public static NodeMigrationData Migrate_0630_to_0700(NodeMigrationData data) { NodeMigrationData migrationData = new NodeMigrationData(data.Document); // Create DSFunction node XmlElement oldNode = data.MigratedNodes.ElementAt(0); var newNode = MigrationManager.CreateFunctionNodeFrom(oldNode); MigrationManager.SetFunctionSignature(newNode, "ProtoGeometry.dll", "Plane.ByOriginNormal", "Plane.ByOriginNormal@Point,Vector"); migrationData.AppendNode(newNode); string newNodeId = MigrationManager.GetGuidFromXmlElement(newNode); //append asVector Node XmlElement pointAsVector0 = MigrationManager.CreateFunctionNode( data.Document, oldNode, 1, "ProtoGeometry.dll", "Point.AsVector", "Point.AsVector"); migrationData.AppendNode(pointAsVector0); string pointAsVector0Id = MigrationManager.GetGuidFromXmlElement(pointAsVector0); // Update connectors PortId oldInPort0 = new PortId(newNodeId, 0, PortType.Input); PortId oldInPort1 = new PortId(newNodeId, 1, PortType.Input); PortId pToV = new PortId(pointAsVector0Id, 0, PortType.Input); XmlElement connector0 = data.FindFirstConnector(oldInPort0); XmlElement connector1 = data.FindFirstConnector(oldInPort1); data.ReconnectToPort(connector0, pToV); data.ReconnectToPort(connector1, oldInPort0); data.CreateConnector(pointAsVector0, 0, newNode, 1); return migrationData; }
public static NodeMigrationData Migrate_0630_to_0700(NodeMigrationData data) { NodeMigrationData migratedData = new NodeMigrationData(data.Document); XmlElement oldNode = data.MigratedNodes.ElementAt(0); string oldNodeId = MigrationManager.GetGuidFromXmlElement(oldNode); //create the node itself XmlElement dsRevitNode = MigrationManager.CreateFunctionNodeFrom(oldNode); MigrationManager.SetFunctionSignature(dsRevitNode, "RevitNodes.dll", "FamilyInstance.ByPoint", "FamilyInstance.ByPoint@FamilySymbol,Point"); migratedData.AppendNode(dsRevitNode); string dsRevitNodeId = MigrationManager.GetGuidFromXmlElement(dsRevitNode); //create and reconnect the connecters PortId oldInPort0 = new PortId(oldNodeId, 0, PortType.INPUT); XmlElement connector0 = data.FindFirstConnector(oldInPort0); PortId oldInPort1 = new PortId(oldNodeId, 1, PortType.INPUT); XmlElement connector1 = data.FindFirstConnector(oldInPort1); PortId newInPort0 = new PortId(dsRevitNodeId, 0, PortType.INPUT); PortId newInPort1 = new PortId(dsRevitNodeId, 1, PortType.INPUT); data.ReconnectToPort(connector0, newInPort1); data.ReconnectToPort(connector1, newInPort0); return migratedData; }
public static NodeMigrationData Migrate_0630_to_0700(NodeMigrationData data) { NodeMigrationData migrationData = new NodeMigrationData(data.Document); XmlElement oldNode = data.MigratedNodes.ElementAt(0); string oldNodeId = MigrationManager.GetGuidFromXmlElement(oldNode); // Create nodes XmlElement referencePoint = MigrationManager.CreateFunctionNodeFrom(oldNode); MigrationManager.SetFunctionSignature(referencePoint, "RevitNodes.dll", "ReferencePoint.ByPoint", "ReferencePoint.ByPoint@Point"); migrationData.AppendNode(referencePoint); string referencePointId = MigrationManager.GetGuidFromXmlElement(referencePoint); XmlElement pointAtParameter = MigrationManager.CreateFunctionNode( data.Document, oldNode, 0, "RevitNodes.dll", "Face.PointAtParameter", "Face.PointAtParameter@double,double"); migrationData.AppendNode(pointAtParameter); string pointAtParameterId = MigrationManager.GetGuidFromXmlElement(pointAtParameter); XmlElement uvU = MigrationManager.CreateFunctionNode( data.Document, oldNode, 1, "ProtoGeometry.dll", "UV.U", "UV.U"); migrationData.AppendNode(uvU); string uvUId = MigrationManager.GetGuidFromXmlElement(uvU); XmlElement uvV = MigrationManager.CreateFunctionNode( data.Document, oldNode, 2, "ProtoGeometry.dll", "UV.V", "UV.V"); migrationData.AppendNode(uvV); string uvVId = MigrationManager.GetGuidFromXmlElement(uvV); // Update connectors PortId oldInPort0 = new PortId(oldNodeId, 0, PortType.INPUT); PortId oldInPort1 = new PortId(oldNodeId, 1, PortType.INPUT); PortId papInPort0 = new PortId(pointAtParameterId, 0, PortType.INPUT); PortId uvUInPort0 = new PortId(uvUId, 0, PortType.INPUT); XmlElement connector0 = data.FindFirstConnector(oldInPort0); XmlElement connector1 = data.FindFirstConnector(oldInPort1); XmlElement connectorUv = null; if (connector1 != null) { connectorUv = MigrationManager.CreateFunctionNodeFrom(connector1); data.CreateConnector(connectorUv); } if (connectorUv != null) { PortId uvVInPort0 = new PortId(uvVId, 0, PortType.INPUT); data.ReconnectToPort(connectorUv, uvVInPort0); } data.ReconnectToPort(connector0, papInPort0); data.ReconnectToPort(connector1, uvUInPort0); data.CreateConnector(uvU, 0, pointAtParameter, 1); data.CreateConnector(uvV, 0, pointAtParameter, 2); data.CreateConnector(pointAtParameter, 0, referencePoint, 0); return migrationData; }
public static NodeMigrationData Migrate_0630_to_0700(NodeMigrationData data) { // This migration assumes that the first input of the old node is // always an XYZ and never a Transform. NodeMigrationData migrationData = new NodeMigrationData(data.Document); // Create DSFunction node XmlElement oldNode = data.MigratedNodes.ElementAt(0); string oldNodeId = MigrationManager.GetGuidFromXmlElement(oldNode); var newNode = MigrationManager.CreateFunctionNodeFrom(oldNode); MigrationManager.SetFunctionSignature(newNode, "ProtoGeometry.dll", "Arc.ByCenterPointRadiusAngle", "Arc.ByCenterPointRadiusAngle@Point,double,double,double,Vector"); migrationData.AppendNode(newNode); string newNodeId = MigrationManager.GetGuidFromXmlElement(newNode); // Create new nodes XmlElement zAxisNode = MigrationManager.CreateFunctionNode( data.Document, oldNode, 0, "ProtoGeometry.dll", "Vector.ZAxis", "Vector.ZAxis"); migrationData.AppendNode(zAxisNode); string zAxisNodeId = MigrationManager.GetGuidFromXmlElement(zAxisNode); XmlElement toDegreeNodeStart = MigrationManager.CreateFunctionNode( data.Document, oldNode, 1, "DSCoreNodes.dll", "Math.RadiansToDegrees", "Math.RadiansToDegrees@double"); migrationData.AppendNode(toDegreeNodeStart); string toDegreeNodeStartId = MigrationManager.GetGuidFromXmlElement(toDegreeNodeStart); XmlElement toDegreeNodeEnd = MigrationManager.CreateFunctionNode( data.Document, oldNode, 2, "DSCoreNodes.dll", "Math.RadiansToDegrees", "Math.RadiansToDegrees@double"); migrationData.AppendNode(toDegreeNodeEnd); string toDegreeNodeEndId = MigrationManager.GetGuidFromXmlElement(toDegreeNodeEnd); PortId oldInPort2 = new PortId(oldNodeId, 2, PortType.INPUT); XmlElement connector2 = data.FindFirstConnector(oldInPort2); PortId oldInPort3 = new PortId(oldNodeId, 3, PortType.INPUT); XmlElement connector3 = data.FindFirstConnector(oldInPort3); PortId toDegreeNodeStartPort = new PortId(toDegreeNodeStartId, 0, PortType.INPUT); PortId toDegreeNodeEndPort = new PortId(toDegreeNodeEndId, 0, PortType.INPUT); // Update connectors data.ReconnectToPort(connector2, toDegreeNodeStartPort); data.ReconnectToPort(connector3, toDegreeNodeEndPort); data.CreateConnector(toDegreeNodeStart, 0, newNode, 2); data.CreateConnector(toDegreeNodeEnd, 0, newNode, 3); data.CreateConnector(zAxisNode, 0, newNode, 4); return migrationData; }
public static NodeMigrationData Migrate_0630_to_0700(NodeMigrationData data) { NodeMigrationData migratedData = new NodeMigrationData(data.Document); XmlElement oldNode = data.MigratedNodes.ElementAt(0); string oldNodeId = MigrationManager.GetGuidFromXmlElement(oldNode); //create the node itself XmlElement dsRevitNode = MigrationManager.CreateFunctionNodeFrom(oldNode); MigrationManager.SetFunctionSignature(dsRevitNode, "RevitNodes.dll", "FaceAnalysisDisplay.ByViewFacePointsAndValues", "FaceAnalysisDisplay.ByViewFacePointsAndValues@var,FaceReference,double[][],double[]"); migratedData.AppendNode(dsRevitNode); string dsRevitNodeId = MigrationManager.GetGuidFromXmlElement(dsRevitNode); XmlElement documentNode = MigrationManager.CreateFunctionNode( data.Document, oldNode, 0, "RevitNodes.dll", "Document.Current", "Document.Current"); migratedData.AppendNode(documentNode); XmlElement activeViewNode = MigrationManager.CreateFunctionNode( data.Document, oldNode, 1, "RevitNodes.dll", "Document.ActiveView", "Document.ActiveView"); migratedData.AppendNode(activeViewNode); //create and reconnect the connecters PortId oldInPort0 = new PortId(oldNodeId, 0, PortType.Input); XmlElement connector0 = data.FindFirstConnector(oldInPort0); PortId oldInPort1 = new PortId(oldNodeId, 1, PortType.Input); XmlElement connector1 = data.FindFirstConnector(oldInPort1); PortId oldInPort2 = new PortId(oldNodeId, 2, PortType.Input); PortId oldInPort3 = new PortId(oldNodeId, 3, PortType.Input); XmlElement connector3 = data.FindFirstConnector(oldInPort3); PortId newInPort1 = new PortId(dsRevitNodeId, 1, PortType.Input); PortId newInPort2 = new PortId(dsRevitNodeId, 2, PortType.Input); PortId newInPort3 = new PortId(dsRevitNodeId, 3, PortType.Input); data.ReconnectToPort(connector0, newInPort3); data.ReconnectToPort(connector1, newInPort2); data.ReconnectToPort(connector3, newInPort1); data.RemoveFirstConnector(oldInPort2); data.CreateConnector(documentNode, 0, activeViewNode, 0); data.CreateConnector(activeViewNode, 0, dsRevitNode, 0); return migratedData; }
public static NodeMigrationData Migrate_0630_to_0700(NodeMigrationData data) { NodeMigrationData migrationData = new NodeMigrationData(data.Document); XmlElement oldNode = data.MigratedNodes.ElementAt(0); string oldNodeId = MigrationManager.GetGuidFromXmlElement(oldNode); // Create DSFunction node XmlElement newNode = MigrationManager.CreateFunctionNodeFrom(oldNode); MigrationManager.SetFunctionSignature(newNode, "RevitNodes.dll", "StructuralFraming.ByCurveLevelUpVectorAndType", "StructuralFraming.ByCurveLevelUpVectorAndType@Curve,Level,Vector,StructuralType,FamilySymbol"); migrationData.AppendNode(newNode); string newNodeId = MigrationManager.GetGuidFromXmlElement(newNode); // Create new nodes XmlElement one = MigrationManager.CreateCodeBlockNodeModelNode( data.Document, oldNode, 0, "1"); migrationData.AppendNode(one); string oneId = MigrationManager.GetGuidFromXmlElement(one); XmlElement level = MigrationManager.CreateFunctionNode( data.Document, oldNode, 1, "RevitNodes.dll", "Level.ByElevation", "Level.ByElevation@double"); migrationData.AppendNode(level); string levelId = MigrationManager.GetGuidFromXmlElement(level); // Assume that structural framing created by 0.6.3 is always Beam XmlElement beam = MigrationManager.CreateFunctionNode( data.Document, oldNode, 2, "RevitNodes.dll", "StructuralType.Beam", "StructuralType.Beam"); migrationData.AppendNode(beam); string beamId = MigrationManager.GetGuidFromXmlElement(beam); // Update connectors PortId oldInPort0 = new PortId(oldNodeId, 0, PortType.Input); PortId oldInPort1 = new PortId(oldNodeId, 1, PortType.Input); XmlElement connector0 = data.FindFirstConnector(oldInPort0); XmlElement connector1 = data.FindFirstConnector(oldInPort1); PortId newInPort0 = new PortId(newNodeId, 0, PortType.Input); PortId newInPort4 = new PortId(newNodeId, 4, PortType.Input); data.CreateConnector(one, 0, level, 0); data.CreateConnector(level, 0, newNode, 1); data.CreateConnector(beam, 0, newNode, 3); data.ReconnectToPort(connector0, newInPort4); data.ReconnectToPort(connector1, newInPort0); return migrationData; }
public static NodeMigrationData Migrate_0630_to_0700(NodeMigrationData data) { NodeMigrationData migrationData = new NodeMigrationData(data.Document); // Create DSFunction node XmlElement oldNode = data.MigratedNodes.ElementAt(0); var newNode = MigrationManager.CreateFunctionNodeFrom(oldNode); MigrationManager.SetFunctionSignature(newNode, "ProtoGeometry.dll", "PolySurface.LocateSurfacesByLine", "PolySurface.LocateSurfacesByLine@Line"); migrationData.AppendNode(newNode); string newNodeId = MigrationManager.GetGuidFromXmlElement(newNode); // Create new nodes XmlElement polySurface = MigrationManager.CreateFunctionNode( data.Document, oldNode, 0, "ProtoGeometry.dll", "PolySurface.BySolid", "*****@*****.**"); migrationData.AppendNode(polySurface); string polySurfaceId = MigrationManager.GetGuidFromXmlElement(polySurface); // Update connectors PortId oldInPort0 = new PortId(newNodeId, 0, PortType.INPUT); XmlElement connector0 = data.FindFirstConnector(oldInPort0); PortId polySurfaceInPort0 = new PortId(polySurfaceId, 0, PortType.INPUT); data.ReconnectToPort(connector0, polySurfaceInPort0); data.CreateConnector(polySurface, 0, newNode, 0); return migrationData; }
public static NodeMigrationData Migrate_0630_to_0700(NodeMigrationData data) { NodeMigrationData migrationData = new NodeMigrationData(data.Document); // Create DSFunction node XmlElement oldNode = data.MigratedNodes.ElementAt(0); var converterNode = MigrationManager.CreateFunctionNodeFrom(oldNode); MigrationManager.SetFunctionSignature(converterNode, "DSCoreNodes.dll", "Math.DegreesToRadians", "Math.DegreesToRadians@double"); migrationData.AppendNode(converterNode); string converterNodeId = MigrationManager.GetGuidFromXmlElement(converterNode); // Create new node XmlElement acosNode = MigrationManager.CreateFunctionNode( data.Document, "DSCoreNodes.dll", "Math.Acos", "Math.Acos@double"); migrationData.AppendNode(acosNode); string acosNodeId = MigrationManager.GetGuidFromXmlElement(acosNode); // Update connectors PortId oldInPort0 = new PortId(converterNodeId, 0, PortType.INPUT); PortId newInPortAcos = new PortId(acosNodeId, 0, PortType.INPUT); XmlElement connector0 = data.FindFirstConnector(oldInPort0); data.ReconnectToPort(connector0, newInPortAcos); data.CreateConnector(acosNode, 0, converterNode, 0); return migrationData; }
public static NodeMigrationData Migrate_0630_to_0700(NodeMigrationData data) { NodeMigrationData migratedData = new NodeMigrationData(data.Document); XmlElement oldNode = data.MigratedNodes.ElementAt(0); string oldNodeId = MigrationManager.GetGuidFromXmlElement(oldNode); //create the node itself XmlElement newNode = MigrationManager.CreateFunctionNodeFrom(oldNode); MigrationManager.SetFunctionSignature(newNode, "ProtoGeometry.dll", "Surface.ByLoft", "[email protected][]"); migratedData.AppendNode(newNode); string newNodeId = MigrationManager.GetGuidFromXmlElement(newNode); PortId oldInPort0 = new PortId(oldNodeId, 0, PortType.INPUT); data.RemoveFirstConnector(oldInPort0); PortId oldInPort1 = new PortId(oldNodeId, 1, PortType.INPUT); XmlElement connector1 = data.FindFirstConnector(oldInPort1); PortId newInPort0 = new PortId(newNodeId, 0, PortType.INPUT); data.ReconnectToPort(connector1, newInPort0); PortId oldInPort2 = new PortId(oldNodeId, 2, PortType.INPUT); data.RemoveFirstConnector(oldInPort2); return migratedData; }
public static NodeMigrationData Migrate_0630_to_0700(NodeMigrationData data) { NodeMigrationData migrationData = new NodeMigrationData(data.Document); // Create DSFunction node XmlElement oldNode = data.MigratedNodes.ElementAt(0); var newNode = MigrationManager.CreateFunctionNodeFrom(oldNode); MigrationManager.SetFunctionSignature(newNode, "ProtoGeometry.dll", "Geometry.Transform", "Geometry.Transform@CoordinateSystem,CoordinateSystem"); migrationData.AppendNode(newNode); string newNodeId = MigrationManager.GetGuidFromXmlElement(newNode); // Create new node XmlElement identityCoordinateSystem = MigrationManager.CreateFunctionNode( data.Document, oldNode, 0, "ProtoGeometry.dll", "CoordinateSystem.Identity", "CoordinateSystem.Identity"); migrationData.AppendNode(identityCoordinateSystem); // Update connectors PortId oldInPort1 = new PortId(newNodeId, 1, PortType.INPUT); PortId newInPort2 = new PortId(newNodeId, 2, PortType.INPUT); XmlElement connector1 = data.FindFirstConnector(oldInPort1); data.ReconnectToPort(connector1, newInPort2); data.CreateConnector(identityCoordinateSystem, 0, newNode, 1); return migrationData; }
public static NodeMigrationData Migrate_0630_to_0700(NodeMigrationData data) { NodeMigrationData migratedData = new NodeMigrationData(data.Document); XmlElement oldNode = data.MigratedNodes.ElementAt(0); string oldNodeId = MigrationManager.GetGuidFromXmlElement(oldNode); //create the node itself XmlElement dsRevitNode = MigrationManager.CreateFunctionNodeFrom(oldNode); MigrationManager.SetFunctionSignature(dsRevitNode, "RevitNodes.dll", "Form.ByLoftingCurveElements", "Form.ByLoftingCurveElements@CurveElement[],bool"); migratedData.AppendNode(dsRevitNode); string dsRevitNodeId = MigrationManager.GetGuidFromXmlElement(dsRevitNode); //create and reconnect the connecters PortId oldInPort0 = new PortId(oldNodeId, 0, PortType.INPUT); XmlElement connector0 = data.FindFirstConnector(oldInPort0); PortId oldInPort1 = new PortId(oldNodeId, 1, PortType.INPUT); XmlElement connector1 = data.FindFirstConnector(oldInPort1); PortId newInPort0 = new PortId(dsRevitNodeId, 0, PortType.INPUT); PortId newInPort1 = new PortId(dsRevitNodeId, 1, PortType.INPUT); data.ReconnectToPort(connector0, newInPort1); data.ReconnectToPort(connector1, newInPort0); // Add default values foreach (XmlNode child in oldNode.ChildNodes) { var newChild = child.Clone() as XmlElement; switch (newChild.GetAttribute("index")) { case "0": newChild.SetAttribute("index", "1"); dsRevitNode.AppendChild(newChild); break; default: break; } } return migratedData; }
public static NodeMigrationData Migrate_0630_to_0700(NodeMigrationData data) { NodeMigrationData migrationData = new NodeMigrationData(data.Document); // Create DSFunction node XmlElement oldNode = data.MigratedNodes.ElementAt(0); var newNode = MigrationManager.CreateFunctionNodeFrom(oldNode); MigrationManager.SetFunctionSignature(newNode, "ProtoGeometry.dll", "Point.ByCylindricalCoordinates", "Point.ByCylindricalCoordinates@CoordinateSystem,double,double,double"); migrationData.AppendNode(newNode); string newNodeId = MigrationManager.GetGuidFromXmlElement(newNode); // Create new node XmlElement identityCoordinateSystem = MigrationManager.CreateFunctionNode( data.Document, oldNode, 0, "ProtoGeometry.dll", "CoordinateSystem.Identity", "CoordinateSystem.Identity"); migrationData.AppendNode(identityCoordinateSystem); XmlElement converterNode = MigrationManager.CreateFunctionNode( data.Document, oldNode, 1, "DSCoreNodes.dll", "Math.RadiansToDegrees", "Math.RadiansToDegrees@double"); migrationData.AppendNode(converterNode); string converterNodeId = MigrationManager.GetGuidFromXmlElement(converterNode); // Update connectors PortId oldInPort0 = new PortId(newNodeId, 0, PortType.INPUT); PortId oldInPort1 = new PortId(newNodeId, 1, PortType.INPUT); PortId newInPort3 = new PortId(newNodeId, 3, PortType.INPUT); PortId converterInPort = new PortId(converterNodeId, 0, PortType.INPUT); XmlElement connector0 = data.FindFirstConnector(oldInPort0); XmlElement connector1 = data.FindFirstConnector(oldInPort1); data.ReconnectToPort(connector0, newInPort3); data.ReconnectToPort(connector1, converterInPort); data.CreateConnector(converterNode, 0, newNode, 1); data.CreateConnector(identityCoordinateSystem, 0, newNode, 0); // Add default values foreach (XmlNode child in oldNode.ChildNodes) newNode.AppendChild(child.Clone()); return migrationData; }
public static NodeMigrationData Migrate_0630_to_0700(NodeMigrationData data) { NodeMigrationData migratedData = new NodeMigrationData(data.Document); XmlElement oldNode = data.MigratedNodes.ElementAt(0); string oldNodeId = MigrationManager.GetGuidFromXmlElement(oldNode); //create the node itself XmlElement dsRevitNode = MigrationManager.CreateFunctionNodeFrom(oldNode); MigrationManager.SetFunctionSignature(dsRevitNode, "RevitNodes.dll", "AxonometricView.ByEyePointAndTarget", "AxonometricView.ByEyePointAndTarget@Point,Point,var,string,bool"); migratedData.AppendNode(dsRevitNode); string dsRevitNodeId = MigrationManager.GetGuidFromXmlElement(dsRevitNode); //create and reconnect the connecters PortId oldInPort0 = new PortId(oldNodeId, 0, PortType.Input); XmlElement connector0 = data.FindFirstConnector(oldInPort0); PortId oldInPort1 = new PortId(oldNodeId, 1, PortType.Input); XmlElement connector1 = data.FindFirstConnector(oldInPort1); PortId oldInPort2 = new PortId(oldNodeId, 2, PortType.Input); XmlElement connector2 = data.FindFirstConnector(oldInPort2); PortId oldInPort3 = new PortId(oldNodeId, 3, PortType.Input); XmlElement connector3 = data.FindFirstConnector(oldInPort3); PortId oldInPort4 = new PortId(oldNodeId, 4, PortType.Input); XmlElement connector4 = data.FindFirstConnector(oldInPort4); PortId newInPort0 = new PortId(dsRevitNodeId, 0, PortType.Input); PortId newInPort1 = new PortId(dsRevitNodeId, 1, PortType.Input); PortId newInPort2 = new PortId(dsRevitNodeId, 2, PortType.Input); PortId newInPort3 = new PortId(dsRevitNodeId, 3, PortType.Input); PortId newInPort4 = new PortId(dsRevitNodeId, 4, PortType.Input); data.ReconnectToPort(connector0, newInPort0); data.ReconnectToPort(connector1, newInPort1); data.ReconnectToPort(connector2, newInPort3); data.ReconnectToPort(connector3, newInPort2); data.ReconnectToPort(connector4, newInPort4); return migratedData; }
public static NodeMigrationData Migrate_0630_to_0700(NodeMigrationData data) { NodeMigrationData migratedData = new NodeMigrationData(data.Document); XmlElement oldNode = data.MigratedNodes.ElementAt(0); string oldNodeId = MigrationManager.GetGuidFromXmlElement(oldNode); //create the node itself XmlElement distanceToPoint = MigrationManager.CreateFunctionNodeFrom(oldNode); MigrationManager.SetFunctionSignature(distanceToPoint, "ProtoGeometry.dll", "Geometry.DistanceTo", "*****@*****.**"); migratedData.AppendNode(distanceToPoint); string distanceToPointId = MigrationManager.GetGuidFromXmlElement(distanceToPoint); XmlElement point1 = MigrationManager.CreateFunctionNode( data.Document, "ProtoGeometry.dll", "ReferencePoint.Point", "ReferencePoint.Point"); migratedData.AppendNode(point1); string point1Id = MigrationManager.GetGuidFromXmlElement(point1); XmlElement point2 = MigrationManager.CreateFunctionNode( data.Document, "ProtoGeometry.dll", "ReferencePoint.Point", "ReferencePoint.Point"); migratedData.AppendNode(point2); string point2Id = MigrationManager.GetGuidFromXmlElement(point2); PortId oldInPort0 = new PortId(oldNodeId, 0, PortType.INPUT); XmlElement connector0 = data.FindFirstConnector(oldInPort0); PortId oldInPort1 = new PortId(oldNodeId, 1, PortType.INPUT); XmlElement connector1 = data.FindFirstConnector(oldInPort1); PortId newInPort0 = new PortId(point1Id, 0, PortType.INPUT); PortId newInPort1 = new PortId(point2Id, 0, PortType.INPUT); data.ReconnectToPort(connector0, newInPort0); data.ReconnectToPort(connector1, newInPort1); data.CreateConnector(point1, 0, distanceToPoint, 0); data.CreateConnector(point2, 0, distanceToPoint, 1); return migratedData; }
public static NodeMigrationData Migrate_0630_to_0700(NodeMigrationData data) { NodeMigrationData migrationData = new NodeMigrationData(data.Document); // Create DSFunction node XmlElement oldNode = data.MigratedNodes.ElementAt(0); var newNode = MigrationManager.CreateFunctionNodeFrom(oldNode); MigrationManager.SetFunctionSignature(newNode, "ProtoGeometry.dll", "Line.ByStartPointEndPoint", "Line.ByStartPointEndPoint@Point,Point"); migrationData.AppendNode(newNode); string newNodeId = MigrationManager.GetGuidFromXmlElement(newNode); // Update connectors PortId oldInPort0 = new PortId(newNodeId, 0, PortType.INPUT); PortId oldInPort1 = new PortId(newNodeId, 1, PortType.INPUT); PortId newInPort0 = new PortId(newNodeId, 0, PortType.INPUT); XmlElement connector0 = data.FindFirstConnector(oldInPort0); XmlElement connector1 = data.FindFirstConnector(oldInPort1); data.ReconnectToPort(connector1, newInPort0); if (connector1 != null) { // Create new node only when the old node is connected to a normal vector XmlElement translateNode = MigrationManager.CreateFunctionNode( data.Document, "ProtoGeometry.dll", "Geometry.Translate", "*****@*****.**"); migrationData.AppendNode(translateNode); string translateNodeId = MigrationManager.GetGuidFromXmlElement(translateNode); // Update connectors PortId newInPortTranslate1 = new PortId(translateNodeId, 1, PortType.INPUT); string nodeOriginId = connector1.GetAttribute("start").ToString(); data.CreateConnector(translateNode, 0, newNode, 1); data.CreateConnectorFromId(nodeOriginId, 0, translateNodeId, 0); data.ReconnectToPort(connector0, newInPortTranslate1); } return migrationData; }
public static NodeMigrationData Migrate_0630_to_0700(NodeMigrationData data) { NodeMigrationData migratedData = new NodeMigrationData(data.Document); XmlElement oldNode = data.MigratedNodes.ElementAt(0); string oldNodeId = MigrationManager.GetGuidFromXmlElement(oldNode); //create the node itself XmlElement dsRevitNode = MigrationManager.CreateFunctionNodeFrom(oldNode); MigrationManager.SetFunctionSignature(dsRevitNode, "RevitNodes.dll", "Wall.ByCurveAndHeight", "Wall.ByCurveAndHeight@Curve,double,Level,WallType"); migratedData.AppendNode(dsRevitNode); string dsRevitNodeId = MigrationManager.GetGuidFromXmlElement(dsRevitNode); //create and reconnect the connecters PortId oldInPort0 = new PortId(oldNodeId, 0, PortType.INPUT); XmlElement connector0 = data.FindFirstConnector(oldInPort0); PortId oldInPort1 = new PortId(oldNodeId, 1, PortType.INPUT); XmlElement connector1 = data.FindFirstConnector(oldInPort1); PortId oldInPort2 = new PortId(oldNodeId, 2, PortType.INPUT); XmlElement connector2 = data.FindFirstConnector(oldInPort2); PortId oldInPort3 = new PortId(oldNodeId, 3, PortType.INPUT); XmlElement connector3 = data.FindFirstConnector(oldInPort3); PortId newInPort0 = new PortId(dsRevitNodeId, 0, PortType.INPUT); PortId newInPort1 = new PortId(dsRevitNodeId, 1, PortType.INPUT); PortId newInPort2 = new PortId(dsRevitNodeId, 2, PortType.INPUT); PortId newInPort3 = new PortId(dsRevitNodeId, 3, PortType.INPUT); data.ReconnectToPort(connector0, newInPort0); data.ReconnectToPort(connector1, newInPort2); data.ReconnectToPort(connector2, newInPort3); data.ReconnectToPort(connector3, newInPort1); return migratedData; }
public static NodeMigrationData Migrate_0630_to_0700(NodeMigrationData data) { NodeMigrationData migratedData = new NodeMigrationData(data.Document); XmlElement oldNode = data.MigratedNodes.ElementAt(0); string oldNodeId = MigrationManager.GetGuidFromXmlElement(oldNode); //create the node itself XmlElement dsRevitNode = MigrationManager.CreateFunctionNode( data.Document, "RevitNodes.dll", "StructuralFraming.ByCurveLevelUpVectorAndType", "StructuralFraming.ByCurveLevelUpVectorAndType@Curve,Level,Vector,StructuralType,FamilySymbol"); migratedData.AppendNode(dsRevitNode); string dsRevitNodeId = MigrationManager.GetGuidFromXmlElement(dsRevitNode); //create and reconnect the connecters PortId oldInPort0 = new PortId(oldNodeId, 0, PortType.INPUT); XmlElement connector0 = data.FindFirstConnector(oldInPort0); PortId oldInPort1 = new PortId(oldNodeId, 1, PortType.INPUT); XmlElement connector1 = data.FindFirstConnector(oldInPort1); PortId oldInPort2 = new PortId(oldNodeId, 2, PortType.INPUT); XmlElement connector2 = data.FindFirstConnector(oldInPort2); PortId newInPort0 = new PortId(dsRevitNodeId, 0, PortType.INPUT); //PortId newInPort1 = new PortId(dsRevitNodeId, 1, PortType.INPUT); PortId newInPort2 = new PortId(dsRevitNodeId, 2, PortType.INPUT); PortId newInPort3 = new PortId(dsRevitNodeId, 3, PortType.INPUT); //PortId newInPort4 = new PortId(dsRevitNodeId, 4, PortType.INPUT); data.ReconnectToPort(connector0, newInPort3); data.ReconnectToPort(connector1, newInPort0); data.ReconnectToPort(connector2, newInPort2); return migratedData; }
public static NodeMigrationData Migrate_0630_to_0700(NodeMigrationData data) { NodeMigrationData migrationData = new NodeMigrationData(data.Document); // Create DSFunction node XmlElement oldNode = data.MigratedNodes.ElementAt(0); var newNode = MigrationManager.CreateFunctionNodeFrom(oldNode); MigrationManager.SetFunctionSignature(newNode, "ProtoGeometry.dll", "Line.ByStartPointEndPoint", "Line.ByStartPointEndPoint@Point,Point"); newNode.SetAttribute("lacing", "Shortest"); migrationData.AppendNode(newNode); string newNodeId = MigrationManager.GetGuidFromXmlElement(newNode); // Create new nodes XmlElement reverse = MigrationManager.CreateFunctionNode( data.Document, oldNode, 0, "DSCoreNodes.dll", "List.Reverse", "List.Reverse@var[]..[]"); migrationData.AppendNode(reverse); string reverseId = MigrationManager.GetGuidFromXmlElement(reverse); XmlElement rest = MigrationManager.CreateFunctionNode( data.Document, oldNode, 1, "DSCoreNodes.dll", "List.RestOfItems", "List.RestOfItems@var[]..[]"); migrationData.AppendNode(rest); // Update connectors PortId oldInPort0 = new PortId(newNodeId, 0, PortType.INPUT); XmlElement connector0 = data.FindFirstConnector(oldInPort0); PortId reverseInPort0 = new PortId(reverseId, 0, PortType.INPUT); data.ReconnectToPort(connector0, reverseInPort0); data.CreateConnector(reverse, 0, newNode, 0); data.CreateConnector(reverse, 0, rest, 0); data.CreateConnector(rest, 0, newNode, 1); return migrationData; }
public static NodeMigrationData Migrate_0700_to_0730(NodeMigrationData data) { var migrationData = new NodeMigrationData(data.Document); var oldNode = data.MigratedNodes.ElementAt(0); var sunSettingNode = MigrationManager.CloneAndChangeName( oldNode, "DSRevitNodesUI.SunSettings", "SunSettings.Current"); var sunSettingsNodeId = Guid.NewGuid().ToString(); sunSettingNode.SetAttribute("guid", sunSettingsNodeId); migrationData.AppendNode(sunSettingNode); var sunPathNode = MigrationManager.CreateFunctionNodeFrom(oldNode); MigrationManager.SetFunctionSignature( sunPathNode, "RevitNodes.dll", "SunSettings.SunDirection", "SunSettings.SunDirection@var"); migrationData.AppendNode(sunPathNode); migrationData.CreateConnector(sunSettingNode, 0, sunPathNode, 0); var oldConnector = data.FindFirstConnector( new PortId(MigrationManager.GetGuidFromXmlElement(oldNode), 0, PortType.OUTPUT)); if (oldConnector != null) { migrationData.ReconnectToPort( oldConnector, new PortId( MigrationManager.GetGuidFromXmlElement(sunPathNode), 0, PortType.OUTPUT)); } return migrationData; }
public static NodeMigrationData Migrate_0630_to_0700(NodeMigrationData data) { NodeMigrationData migratedData = new NodeMigrationData(data.Document); XmlElement oldNode = data.MigratedNodes.ElementAt(0); string oldNodeId = MigrationManager.GetGuidFromXmlElement(oldNode); //create the node itself XmlElement dsListNode = MigrationManager.CreateFunctionNodeFrom(oldNode); MigrationManager.SetFunctionSignature(dsListNode, "", "ForEach", "__ForEach@_FunctionObject,var[]..[]"); migratedData.AppendNode(dsListNode); string dsListNodeId = MigrationManager.GetGuidFromXmlElement(dsListNode); //create and reconnect the connecters PortId oldInPort0 = new PortId(oldNodeId, 0, PortType.INPUT); XmlElement connector0 = data.FindFirstConnector(oldInPort0); PortId oldInPort1 = new PortId(oldNodeId, 1, PortType.INPUT); XmlElement connector1 = data.FindFirstConnector(oldInPort1); PortId newInPort0 = new PortId(dsListNodeId, 0, PortType.INPUT); PortId newInPort1 = new PortId(dsListNodeId, 1, PortType.INPUT); data.ReconnectToPort(connector0, newInPort1); data.ReconnectToPort(connector1, newInPort0); return migratedData; }
public static NodeMigrationData Migrate_0630_to_0700(NodeMigrationData data) { NodeMigrationData migrationData = new NodeMigrationData(data.Document); XmlElement oldNode = data.MigratedNodes.ElementAt(0); string oldNodeId = MigrationManager.GetGuidFromXmlElement(oldNode); XmlElement newNode = MigrationManager.CloneAndChangeType(oldNode, "DSCore.Filter"); newNode.SetAttribute("nickname", "Filter"); string newNodeId = MigrationManager.GetGuidFromXmlElement(newNode); PortId oldOutputPort = new PortId(oldNodeId, 0, PortType.OUTPUT); PortId newOutputPort = new PortId(newNodeId, 1, PortType.OUTPUT); if (data.FindConnectors(oldOutputPort) != null) foreach (XmlElement connector in data.FindConnectors(oldOutputPort)) data.ReconnectToPort(connector, newOutputPort); PortId oldInPort0 = new PortId(oldNodeId, 0, PortType.INPUT); XmlElement connector0 = data.FindFirstConnector(oldInPort0); PortId oldInPort1 = new PortId(oldNodeId, 1, PortType.INPUT); XmlElement connector1 = data.FindFirstConnector(oldInPort1); PortId newInPort0 = new PortId(newNodeId, 0, PortType.INPUT); PortId newInPort1 = new PortId(newNodeId, 1, PortType.INPUT); data.ReconnectToPort(connector0, newInPort1); data.ReconnectToPort(connector1, newInPort0); migrationData.AppendNode(newNode); return migrationData; }
public static NodeMigrationData Migrate_0630_to_0700(NodeMigrationData data) { NodeMigrationData migrationData = new NodeMigrationData(data.Document); // Create DSFunction node XmlElement oldNode = data.MigratedNodes.ElementAt(0); var newNode = MigrationManager.CreateFunctionNodeFrom(oldNode); MigrationManager.SetFunctionSignature(newNode, "DSCoreNodes.dll", "List.Sublists", "List.Sublists@var[]..[],var[]..[],int"); migrationData.AppendNode(newNode); string newNodeId = MigrationManager.GetGuidFromXmlElement(newNode); // Create code block node string rangesString = "{0}"; foreach (XmlNode childNode in oldNode.ChildNodes) { if (childNode.Name.Equals(typeof(string).FullName)) rangesString = "{" + childNode.Attributes[0].Value + "};"; } XmlElement codeBlockNode = MigrationManager.CreateCodeBlockNodeModelNode( data.Document, rangesString); migrationData.AppendNode(codeBlockNode); string codeBlockNodeId = MigrationManager.GetGuidFromXmlElement(codeBlockNode); // Update connectors for (int idx = 0; true; idx++) { PortId oldInPort = new PortId(newNodeId, idx + 2, PortType.INPUT); PortId newInPort = new PortId(codeBlockNodeId, idx, PortType.INPUT); XmlElement connector = data.FindFirstConnector(oldInPort); if (connector == null) break; data.ReconnectToPort(connector, newInPort); } PortId oldInPort1 = new PortId(newNodeId, 1, PortType.INPUT); PortId newInPort2 = new PortId(newNodeId, 2, PortType.INPUT); XmlElement connector1 = data.FindFirstConnector(oldInPort1); data.ReconnectToPort(connector1, newInPort2); data.CreateConnector(codeBlockNode, 0, newNode, 1); return migrationData; }
public static NodeMigrationData Migrate_0630_to_0700(NodeMigrationData data) { NodeMigrationData migratedData = new NodeMigrationData(data.Document); XmlElement oldNode = data.MigratedNodes.ElementAt(0); string oldNodeId = MigrationManager.GetGuidFromXmlElement(oldNode); //create the node itself XmlElement dsCoreNode = MigrationManager.CreateFunctionNodeFrom(oldNode); MigrationManager.SetFunctionSignature(dsCoreNode, "DSCoreNodes.dll", "List.TakeEveryNthItem", "List.TakeEveryNthItem@var[]..[],int,int"); foreach (XmlNode child in oldNode.ChildNodes) { dsCoreNode.AppendChild(child.CloneNode(true)); } migratedData.AppendNode(dsCoreNode); string dsCoreNodeId = MigrationManager.GetGuidFromXmlElement(dsCoreNode); //create and reconnect the connecters PortId oldInPort0 = new PortId(oldNodeId, 0, PortType.INPUT); XmlElement connector0 = data.FindFirstConnector(oldInPort0); PortId oldInPort1 = new PortId(oldNodeId, 1, PortType.INPUT); XmlElement connector1 = data.FindFirstConnector(oldInPort1); PortId newInPort0 = new PortId(dsCoreNodeId, 0, PortType.INPUT); PortId newInPort1 = new PortId(dsCoreNodeId, 1, PortType.INPUT); data.ReconnectToPort(connector0, newInPort1); data.ReconnectToPort(connector1, newInPort0); return migratedData; }
public static NodeMigrationData Migrate_0630_to_0700(NodeMigrationData data) { NodeMigrationData migratedData = new NodeMigrationData(data.Document); XmlElement oldNode = data.MigratedNodes.ElementAt(0); string oldNodeId = MigrationManager.GetGuidFromXmlElement(oldNode); XmlElement applyNode = MigrationManager.CreateFunctionNodeFrom(oldNode); MigrationManager.SetFunctionSignature(applyNode, "", "Apply", "Apply@_FunctionObject,var[]..[]"); migratedData.AppendNode(applyNode); string applyNodeId = MigrationManager.GetGuidFromXmlElement(applyNode); int numberOfArgs = oldNode.ChildNodes.Count; string numberOfArgsString = numberOfArgs.ToString(); XmlElement createListNode = MigrationManager.CreateNode(data.Document, "DSCoreNodesUI.CreateList", "Create List"); migratedData.AppendNode(createListNode); createListNode.SetAttribute("inputcount", numberOfArgsString); string createListNodeId = MigrationManager.GetGuidFromXmlElement(createListNode); //create and reconnect the connecters while (numberOfArgs > 0) { PortId oldInPort = new PortId(oldNodeId, numberOfArgs, PortType.INPUT); XmlElement connector = data.FindFirstConnector(oldInPort); PortId newInPort = new PortId(createListNodeId, numberOfArgs - 1, PortType.INPUT); data.ReconnectToPort(connector, newInPort); numberOfArgs--; } data.CreateConnector(createListNode, 0, applyNode, 1); return migratedData; }
public static NodeMigrationData Migrate_0630_to_0700(NodeMigrationData data) { NodeMigrationData migratedData = new NodeMigrationData(data.Document); XmlElement oldNode = data.MigratedNodes.ElementAt(0); string oldNodeId = MigrationManager.GetGuidFromXmlElement(oldNode); //create the node itself XmlElement dsCoreNode = MigrationManager.CreateFunctionNodeFrom(oldNode); MigrationManager.SetFunctionSignature(dsCoreNode, "DSCoreNodes.dll", "List.Slice", "List.Slice@var[]..[],int,int,int"); migratedData.AppendNode(dsCoreNode); string dsCoreNodeId = MigrationManager.GetGuidFromXmlElement(dsCoreNode); XmlElement codeBlockNode = MigrationManager.CreateCodeBlockNodeModelNode( data.Document,"1;"); migratedData.AppendNode(codeBlockNode); //create and reconnect the connecters PortId oldInPort0 = new PortId(oldNodeId, 0, PortType.INPUT); XmlElement connector0 = data.FindFirstConnector(oldInPort0); PortId oldInPort1 = new PortId(oldNodeId, 1, PortType.INPUT); XmlElement connector1 = data.FindFirstConnector(oldInPort1); PortId oldInPort2 = new PortId(oldNodeId, 2, PortType.INPUT); XmlElement connector2 = data.FindFirstConnector(oldInPort2); PortId newInPort0 = new PortId(dsCoreNodeId, 0, PortType.INPUT); PortId newInPort1 = new PortId(dsCoreNodeId, 1, PortType.INPUT); PortId newInPort2 = new PortId(dsCoreNodeId, 2, PortType.INPUT); data.ReconnectToPort(connector0, newInPort1); data.ReconnectToPort(connector1, newInPort2); data.ReconnectToPort(connector2, newInPort0); data.CreateConnector(codeBlockNode, 0, dsCoreNode, 3); return migratedData; }
public static NodeMigrationData Migrate_0630_to_0700(NodeMigrationData data) { NodeMigrationData migrationData = new NodeMigrationData(data.Document); XmlElement oldNode = data.MigratedNodes.ElementAt(0); string nodeId = MigrationManager.GetGuidFromXmlElement(oldNode); PortId inPort0 = new PortId(nodeId, 0, PortType.INPUT); PortId inPort1 = new PortId(nodeId, 1, PortType.INPUT); XmlElement connector0 = data.FindFirstConnector(inPort0); XmlElement connector1 = data.FindFirstConnector(inPort1); XmlElement newNode = MigrationManager.CreateFunctionNodeFrom(oldNode); migrationData.AppendNode(newNode); if (connector0 == null) { // If there is no key, migrate to List.MinimumItem MigrationManager.SetFunctionSignature(newNode, "DSCoreNodes.dll", "List.MinimumItem", "List.MinimumItem@var[]..[]"); PortId newInPort1 = new PortId(nodeId, 1, PortType.INPUT); data.ReconnectToPort(connector1, inPort0); return migrationData; } // If there is key, migrate to FunctionObject.ds MinimumItemByKey MigrationManager.SetFunctionSignature(newNode, "", "MinimumItemByKey", "MinimumItemByKey@var[]..[],_FunctionObject"); // Update connectors data.ReconnectToPort(connector0, inPort1); data.ReconnectToPort(connector1, inPort0); return migrationData; }
public static NodeMigrationData Migrate_0630_to_0700(NodeMigrationData data) { var migrationData = new NodeMigrationData(data.Document); // Create DSFunction node XmlElement oldNode = data.MigratedNodes.ElementAt(0); var newNode = MigrationManager.CreateFunctionNodeFrom(oldNode); MigrationManager.SetFunctionSignature(newNode, "ProtoGeometry.dll", "Geometry.Intersect", "Geometry.Intersect@Geometry"); migrationData.AppendNode(newNode); string newNodeId = MigrationManager.GetGuidFromXmlElement(newNode); var oldInPort0 = new PortId(newNodeId, 0, PortType.INPUT); var connector0 = data.FindFirstConnector(oldInPort0); var oldInPort1 = new PortId(newNodeId, 1, PortType.INPUT); var connector1 = data.FindFirstConnector(oldInPort1); data.ReconnectToPort(connector0, oldInPort0); data.ReconnectToPort(connector1, oldInPort1); // reconnect output port at 1 to 0 var oldXYZOut = new PortId(newNodeId, 1, PortType.OUTPUT); var newXyzOut = new PortId(newNodeId, 0, PortType.OUTPUT); var xyzConnects = data.FindConnectors(oldXYZOut); xyzConnects.ToList().ForEach(x => data.ReconnectToPort(x, newXyzOut)); // get u parm if (connector0 != null) { var crvInputNodeId = connector0.Attributes["start"].Value; var crvInputIndex = int.Parse(connector0.Attributes["start_index"].Value); // make parm at point node var parmAtPt = MigrationManager.CreateFunctionNode( data.Document, "ProtoGeometry.dll", "Curve.ParameterAtPoint", "Curve.ParameterAtPoint@Point"); migrationData.AppendNode(parmAtPt); var parmAtPtId = MigrationManager.GetGuidFromXmlElement(parmAtPt); // connect output of project to parm at pt data.CreateConnectorFromId(crvInputNodeId, crvInputIndex, parmAtPtId, 0); data.CreateConnector(newNode, 0, parmAtPt, 1); // reconnect remaining output ports to new nodes var newTOut = new PortId(parmAtPtId, 0, PortType.OUTPUT); var oldTOut = new PortId(newNodeId, 2, PortType.OUTPUT); var oldTConnectors = data.FindConnectors(oldTOut); oldTConnectors.ToList().ForEach(x => data.ReconnectToPort(x, newTOut)); } // get v parm if (connector1 != null) { var crvInputNodeId = connector1.Attributes["start"].Value; var crvInputIndex = int.Parse(connector1.Attributes["start_index"].Value); // make parm at point node var parmAtPt = MigrationManager.CreateFunctionNode( data.Document, "ProtoGeometry.dll", "Curve.ParameterAtPoint", "Curve.ParameterAtPoint@Point"); migrationData.AppendNode(parmAtPt); var parmAtPtId = MigrationManager.GetGuidFromXmlElement(parmAtPt); // connect output of project to parm at pt data.CreateConnectorFromId(crvInputNodeId, crvInputIndex, parmAtPtId, 0); data.CreateConnector(newNode, 0, parmAtPt, 1); // reconnect remaining output ports to new nodes var newTOut = new PortId(parmAtPtId, 0, PortType.OUTPUT); var oldTOut = new PortId(newNodeId, 3, PortType.OUTPUT); var oldTConnectors = data.FindConnectors(oldTOut); oldTConnectors.ToList().ForEach(x => data.ReconnectToPort(x, newTOut)); } return migrationData; }
public static NodeMigrationData Migrate_0630_to_0700(NodeMigrationData data) { NodeMigrationData migrationData = new NodeMigrationData(data.Document); XmlElement oldNode = data.MigratedNodes.ElementAt(0); string oldNodeId = MigrationManager.GetGuidFromXmlElement(oldNode); // Create nodes XmlElement newNode = MigrationManager.CreateFunctionNodeFrom(oldNode); MigrationManager.SetFunctionSignature(newNode, "DSCoreNodes.dll", "List.Slice", "List.Slice@var[]..[],int,int,int"); migrationData.AppendNode(newNode); string newNodeId = MigrationManager.GetGuidFromXmlElement(newNode); XmlElement plus = MigrationManager.CreateFunctionNode(data.Document, oldNode, 0, "", "+", "+@,"); migrationData.AppendNode(plus); string plusId = MigrationManager.GetGuidFromXmlElement(plus); // Update connectors PortId oldInPort0 = new PortId(oldNodeId, 0, PortType.INPUT); PortId oldInPort1 = new PortId(oldNodeId, 1, PortType.INPUT); PortId oldInPort2 = new PortId(oldNodeId, 2, PortType.INPUT); XmlElement connector0 = data.FindFirstConnector(oldInPort0); XmlElement connector1 = data.FindFirstConnector(oldInPort1); XmlElement connector2 = data.FindFirstConnector(oldInPort2); PortId newInPort0 = new PortId(newNodeId, 0, PortType.INPUT); PortId newInPort1 = new PortId(newNodeId, 1, PortType.INPUT); PortId plusInPort1 = new PortId(plusId, 1, PortType.INPUT); if (connector0 != null) { string startId = connector0.GetAttribute("start"); data.CreateConnectorFromId(startId, 0, plusId, 0); } data.ReconnectToPort(connector0, newInPort1); data.ReconnectToPort(connector1, plusInPort1); data.ReconnectToPort(connector2, newInPort0); data.CreateConnector(plus, 0, newNode, 2); // Add default value XmlElement defaultValue = data.Document.CreateElement("PortInfo"); defaultValue.SetAttribute("index", "3"); defaultValue.SetAttribute("default", "True"); newNode.AppendChild(defaultValue); return migrationData; }
public static NodeMigrationData Migrate_0630_to_0700(NodeMigrationData data) { NodeMigrationData migrationData = new NodeMigrationData(data.Document); XmlElement oldNode = data.MigratedNodes.ElementAt(0); string oldNodeId = MigrationManager.GetGuidFromXmlElement(oldNode); XmlElement newNode = MigrationManager.CloneAndChangeName(oldNode, "DSCore.Map", "List.Map"); string newNodeId = MigrationManager.GetGuidFromXmlElement(newNode); PortId oldInPort0 = new PortId(oldNodeId, 0, PortType.INPUT); XmlElement connector0 = data.FindFirstConnector(oldInPort0); PortId oldInPort1 = new PortId(oldNodeId, 1, PortType.INPUT); XmlElement connector1 = data.FindFirstConnector(oldInPort1); PortId newInPort0 = new PortId(newNodeId, 0, PortType.INPUT); PortId newInPort1 = new PortId(newNodeId, 1, PortType.INPUT); data.ReconnectToPort(connector0, newInPort1); data.ReconnectToPort(connector1, newInPort0); migrationData.AppendNode(newNode); return migrationData; }