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 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", "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 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 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); string oldNodeId = MigrationManager.GetGuidFromXmlElement(oldNode); var newNode = MigrationManager.CreateFunctionNodeFrom(oldNode); MigrationManager.SetFunctionSignature(newNode, "ProtoGeometry.dll", "Line.ByStartPointDirectionLength", "Line.ByStartPointDirectionLength@Point,Vector,double"); 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); PortId pToV0 = new PortId(pointAsVector0Id, 0, PortType.INPUT); PortId oldInPort1 = new PortId(newNodeId, 1, PortType.INPUT); XmlElement connector1 = data.FindFirstConnector(oldInPort1); data.ReconnectToPort(connector1, pToV0); 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); 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", "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 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"); 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_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 migrationData = new NodeMigrationData(data.Document); // Create DSFunction nodes XmlElement oldNode = data.MigratedNodes.ElementAt(0); var newNode = MigrationManager.CreateFunctionNodeFrom(oldNode); MigrationManager.SetFunctionSignature(newNode, "ProtoGeometry.dll", "CoordinateSystem.XYPlane", "CoordinateSystem.XYPlane"); migrationData.AppendNode(newNode); string newNodeId = MigrationManager.GetGuidFromXmlElement(newNode); var csNode = MigrationManager.CreateFunctionNode(data.Document, oldNode, 0, "ProtoGeometry.dll", "CoordinateSystem.Identity", "CoordinateSystem.Identity"); migrationData.AppendNode(csNode); string csNodeId = MigrationManager.GetGuidFromXmlElement(csNode); // Create connector data.CreateConnector(csNode, 0, newNode, 0); 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 migrationData = new NodeMigrationData(data.Document); XmlElement oldNode = data.MigratedNodes.ElementAt(0); // Create nodes var vectorAsPoint = MigrationManager.CreateFunctionNodeFrom(oldNode); MigrationManager.SetFunctionSignature(vectorAsPoint, "ProtoGeometry.dll", "Vector.AsPoint", "Vector.AsPoint"); migrationData.AppendNode(vectorAsPoint); XmlElement sunPathNode = MigrationManager.CloneAndChangeName( oldNode, "DSRevitNodesUI.SunPathDirection", "SunPath Direction"); sunPathNode.SetAttribute("guid", System.Guid.NewGuid().ToString()); sunPathNode.SetAttribute("x", (System.Convert.ToDouble(oldNode.GetAttribute("x")) - 230).ToString()); migrationData.AppendNode(sunPathNode); // Update connectors data.CreateConnector(sunPathNode, 0, vectorAsPoint, 0); 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 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.GetItemAtIndex", "List.GetItemAtIndex@var[]..[],int"); migratedData.AppendNode(dsCoreNode); string dsCoreNodeId = MigrationManager.GetGuidFromXmlElement(dsCoreNode); XmlElement stringJoinNode = MigrationManager.CreateVarArgFunctionNode( data.Document, oldNode, 1, "DSCoreNodes.dll", "String.Join", "String.Join@string,string[]", "2"); migratedData.AppendNode(stringJoinNode); string stringJoinNodeId = MigrationManager.GetGuidFromXmlElement(stringJoinNode); XmlElement cbn = MigrationManager.CreateCodeBlockNodeModelNode( data.Document, oldNode, 2, "0"); migratedData.AppendNode(cbn); string cbnId = MigrationManager.GetGuidFromXmlElement(cbn); //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(stringJoinNodeId, 0, PortType.INPUT); PortId newInPort1 = new PortId(stringJoinNodeId, 1, PortType.INPUT); data.ReconnectToPort(connector0, newInPort1); data.ReconnectToPort(connector1, newInPort0); data.CreateConnector(stringJoinNode, 0, dsCoreNode, 0); data.CreateConnector(cbn, 0, dsCoreNode, 1); // Add default values foreach (XmlNode child in oldNode.ChildNodes) { var newChild = child.Clone() as XmlElement; if (newChild.GetAttribute("index") == "1") newChild.SetAttribute("index", "0"); stringJoinNode.AppendChild(newChild); } 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", "Curve.PointAtParameter", "Curve.PointAtParameter@double"); migrationData.AppendNode(newNode); string newNodeId = MigrationManager.GetGuidFromXmlElement(newNode); XmlElement curveNode = MigrationManager.CreateFunctionNode( data.Document, oldNode, 0, "RevitNodes.dll", "Element.Geometry", "Element.Geometry"); migrationData.AppendNode(curveNode); string curveNodeId = MigrationManager.GetGuidFromXmlElement(curveNode); // Update connectors PortId oldInPort0 = new PortId(newNodeId, 0, PortType.INPUT); PortId oldInPort1 = new PortId(newNodeId, 1, PortType.INPUT); PortId curveNodePort = new PortId(curveNodeId, 0, PortType.INPUT); XmlElement connector0 = data.FindFirstConnector(oldInPort0); XmlElement connector1 = data.FindFirstConnector(oldInPort1); data.ReconnectToPort(connector0, oldInPort1); data.ReconnectToPort(connector1, curveNodePort); data.CreateConnector(curveNode, 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); string oldNodeId = MigrationManager.GetGuidFromXmlElement(oldNode); var newNode = MigrationManager.CreateFunctionNodeFrom(oldNode); MigrationManager.SetFunctionSignature(newNode, "ProtoGeometry.dll", "Curve.PointAtDistance", "Autodesk.DesignScript.Geometry.Curve.PointAtDistance@double"); newNode.SetAttribute("lacing", "CrossProduct"); migrationData.AppendNode(newNode); string newNodeId = MigrationManager.GetGuidFromXmlElement(newNode); // Create new node XmlElement curveNode = MigrationManager.CreateFunctionNode( data.Document, oldNode, 0, "RevitNodes.dll", "CurveElement.Curve", "CurveElement.Curve"); migrationData.AppendNode(curveNode); string curveNodeId = MigrationManager.GetGuidFromXmlElement(curveNode); XmlElement codeBlockNode = MigrationManager.CreateCodeBlockNodeModelNode(data.Document, oldNode, 1, ""); codeBlockNode.SetAttribute("CodeText", "0..curve.Length..#count;"); migrationData.AppendNode(codeBlockNode); string codeBlockNodeId = MigrationManager.GetGuidFromXmlElement(codeBlockNode); // Update connectors 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 curveNodePort = new PortId(curveNodeId, 0, PortType.INPUT); PortId codeBlockNodePort = new PortId(codeBlockNodeId, 1, PortType.INPUT); data.ReconnectToPort(connector0, curveNodePort); data.ReconnectToPort(connector1, codeBlockNodePort); data.CreateConnector(curveNode, 0, newNode, 0); data.CreateConnector(curveNode, 0, codeBlockNode, 0); data.CreateConnector(codeBlockNode, 0, newNode, 1); 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, "ProtoGeometry.dll", "Vector.AsPoint", "Vector.AsPoint"); migrationData.AppendNode(newNode); XmlElement normalized = MigrationManager.CreateFunctionNode( data.Document, oldNode, 0, "ProtoGeometry.dll", "Vector.Normalized", "Vector.Normalized@Vector"); migrationData.AppendNode(normalized); XmlElement vectorNode = MigrationManager.CreateFunctionNode( data.Document, oldNode, 1, "ProtoGeometry.dll", "Vector.ByTwoPoints", "Vector.ByTwoPoints@Point,Point"); migrationData.AppendNode(vectorNode); string vectorNodeId = MigrationManager.GetGuidFromXmlElement(vectorNode); // 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(vectorNodeId, 0, PortType.INPUT); PortId newInPort1 = new PortId(vectorNodeId, 1, PortType.INPUT); data.ReconnectToPort(connector0, newInPort0); data.ReconnectToPort(connector1, newInPort1); data.CreateConnector(vectorNode, 0, normalized, 0); data.CreateConnector(normalized, 0, newNode, 0); 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 codeBlockNode = MigrationManager.CreateCodeBlockNodeFrom(oldNode); codeBlockNode.SetAttribute("CodeText", "radius = Math.Sqrt(p.X*p.X + p.Y*p.Y);\n" + "rotation = Math.DegreesToRadians\n" + "(Math.Atan(p.Y/p.X));\n" + "offset = p.Z;"); codeBlockNode.SetAttribute("nickname", "XYZ to Polar Coordinates"); // Add default values foreach (XmlNode child in oldNode.ChildNodes) { var newChild = child.Clone() as XmlElement; switch (newChild.GetAttribute("index")) { case "0": PortId oldInPort0 = new PortId(oldNodeId, 0, PortType.INPUT); XmlElement connector0 = data.FindFirstConnector(oldInPort0); if (connector0 != null) break; XmlElement cbn0 = MigrationManager.CreateCodeBlockNodeModelNode( data.Document, oldNode, 0, "Point.ByCoordinates(1,0,0);"); migrationData.AppendNode(cbn0); data.CreateConnector(cbn0, 0, codeBlockNode, 0); break; default: break; } } migrationData.AppendNode(codeBlockNode); return migrationData; }
public static NodeMigrationData Migrate_0630_to_0700(NodeMigrationData data) { NodeMigrationData migrationData = new NodeMigrationData(data.Document); // Create nodes XmlElement oldNode = data.MigratedNodes.ElementAt(0); var newNode = MigrationManager.CreateFunctionNodeFrom(oldNode); MigrationManager.SetFunctionSignature(newNode, "ProtoGeometry.dll", "Vector.Dot", "Vector.Dot@Vector"); migrationData.AppendNode(newNode); string newNodeId = MigrationManager.GetGuidFromXmlElement(newNode); XmlElement pointAsVector0 = MigrationManager.CreateFunctionNode( data.Document, oldNode, 0, "ProtoGeometry.dll", "Point.AsVector", "Point.AsVector"); migrationData.AppendNode(pointAsVector0); string pointAsVector0Id = MigrationManager.GetGuidFromXmlElement(pointAsVector0); XmlElement pointAsVector1 = MigrationManager.CreateFunctionNode( data.Document, oldNode, 1, "ProtoGeometry.dll", "Point.AsVector", "Point.AsVector"); migrationData.AppendNode(pointAsVector1); string pointAsVector1Id = MigrationManager.GetGuidFromXmlElement(pointAsVector1); // Update connectors PortId oldInPort0 = new PortId(newNodeId, 0, PortType.INPUT); PortId oldInPort1 = new PortId(newNodeId, 1, PortType.INPUT); XmlElement connector0 = data.FindFirstConnector(oldInPort0); XmlElement connector1 = data.FindFirstConnector(oldInPort1); PortId pointAsVector0InPort0 = new PortId(pointAsVector0Id, 0, PortType.INPUT); PortId pointAsVector1InPort0 = new PortId(pointAsVector1Id, 0, PortType.INPUT); PortId vectorDotInPort0 = new PortId(newNodeId, 0, PortType.INPUT); data.ReconnectToPort(connector0, pointAsVector0InPort0); data.ReconnectToPort(connector1, pointAsVector1InPort0); data.CreateConnector(pointAsVector0, 0, newNode, 0); data.CreateConnector(pointAsVector1, 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.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) { 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); var newNode = MigrationManager.CreateFunctionNodeFrom(oldNode); MigrationManager.SetFunctionSignature(newNode, "DSCoreNodes.dll", "Math.DegreesToRadians", "Math.DegreesToRadians@double"); migrationData.AppendNode(newNode); XmlElement numberNode = MigrationManager.CreateNode(data.Document, "Dynamo.Nodes.DoubleInput", "Number"); // Get attributes from old child node XmlElement newChild = data.Document.CreateElement("System.Double"); foreach (XmlNode attr in oldNode.FirstChild.Attributes) { if (attr.Name.Equals("value")) newChild.SetAttribute("value", attr.Value); } numberNode.AppendChild(newChild); migrationData.AppendNode(numberNode); data.CreateConnector(numberNode, 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 pointAdd = MigrationManager.CreateFunctionNodeFrom(oldNode); MigrationManager.SetFunctionSignature(pointAdd, "ProtoGeometry.dll", "Point.Add", "Point.Add@Vector"); migrationData.AppendNode(pointAdd); string pointAddId = MigrationManager.GetGuidFromXmlElement(pointAdd); // Create new nodes XmlElement vectorDiff = MigrationManager.CreateFunctionNode( data.Document, oldNode, 0, "ProtoGeometry.dll", "Vector.ByTwoPoints", "Vector.ByTwoPoints@Point,Point"); migrationData.AppendNode(vectorDiff); string vectorDiffId = MigrationManager.GetGuidFromXmlElement(vectorDiff); XmlElement geometryScale = MigrationManager.CreateFunctionNode( data.Document, oldNode, 1, "ProtoGeometry.dll", "Geometry.Scale", "Geometry.Scale@double"); migrationData.AppendNode(geometryScale); string geometryScaleId = MigrationManager.GetGuidFromXmlElement(geometryScale); // Update connectors PortId oldInPort0 = new PortId(pointAddId, 0, PortType.INPUT); PortId oldInPort1 = new PortId(pointAddId, 1, PortType.INPUT); PortId oldInPort2 = new PortId(pointAddId, 2, PortType.INPUT); XmlElement connector0 = data.FindFirstConnector(oldInPort0); XmlElement connector1 = data.FindFirstConnector(oldInPort1); XmlElement connector2 = data.FindFirstConnector(oldInPort2); PortId geometryScaleInPort1 = new PortId(geometryScaleId, 1, PortType.INPUT); PortId vectorDiffInPort0 = new PortId(vectorDiffId, 0, PortType.INPUT); PortId vectorDiffInPort1 = new PortId(vectorDiffId, 1, PortType.INPUT); data.ReconnectToPort(connector0, vectorDiffInPort1); data.ReconnectToPort(connector1, geometryScaleInPort1); data.ReconnectToPort(connector2, vectorDiffInPort0); data.CreateConnector(vectorDiff, 0, geometryScale, 0); data.CreateConnector(geometryScale, 0, pointAdd, 1); if (connector2 != null) { string baseInputId = connector2.GetAttribute("start").ToString(); data.CreateConnectorFromId(baseInputId, 0, pointAddId, 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); 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 migrationData = new NodeMigrationData(data.Document); // Create nodes XmlElement oldNode = data.MigratedNodes.ElementAt(0); string oldNodeId = MigrationManager.GetGuidFromXmlElement(oldNode); var newNode = MigrationManager.CreateFunctionNodeFrom(oldNode); MigrationManager.SetFunctionSignature(newNode, "ProtoGeometry.dll", "Point.ByCoordinates", "Point.ByCoordinates@double,double,double"); migrationData.AppendNode(newNode); XmlElement codeBlockNode = MigrationManager.CreateCodeBlockNodeModelNode( data.Document, oldNode, 0, "Math.Average(pts.X);\nMath.Average(pts.Y);\nMath.Average(pts.Z);"); migrationData.AppendNode(codeBlockNode); string codeBlockNodeId = MigrationManager.GetGuidFromXmlElement(codeBlockNode); // Update connectors PortId oldInPort0 = new PortId(oldNodeId, 0, PortType.INPUT); XmlElement connector0 = data.FindFirstConnector(oldInPort0); PortId cbnInPort0 = new PortId(codeBlockNodeId, 0, PortType.INPUT); data.ReconnectToPort(connector0, cbnInPort0); data.CreateConnector(codeBlockNode, 0, newNode, 0); data.CreateConnector(codeBlockNode, 1, newNode, 1); data.CreateConnector(codeBlockNode, 2, newNode, 2); 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 migrationData = new NodeMigrationData(data.Document); // Create DSFunction node XmlElement oldNode = data.MigratedNodes.ElementAt(0); var geometryScale = MigrationManager.CreateFunctionNodeFrom(oldNode); MigrationManager.SetFunctionSignature(geometryScale, "ProtoGeometry.dll", "Geometry.Scale", "Geometry.Scale@double"); migrationData.AppendNode(geometryScale); // Create new node XmlElement minusOne = MigrationManager.CreateCodeBlockNodeModelNode( data.Document, oldNode, 0, "-1"); migrationData.AppendNode(minusOne); // Update connectors data.CreateConnector(minusOne, 0, geometryScale, 1); return migrationData; }