/// <summary> /// Wrap input geometry into module cages. /// </summary> /// <param name="DA">The DA object can be used to retrieve data from /// input parameters and to store data in output parameters.</param> protected override void SolveInstance(IGH_DataAccess DA) { var sourceNameRaw = new ModuleName(); var sourceConnectorParam = new ConnectorIndex(); var targetNameRaw = new ModuleName(); var targetConnectorParam = new ConnectorIndex(); if (!DA.GetData(0, ref sourceNameRaw)) { return; } if (!DA.GetData(1, ref sourceConnectorParam)) { return; } var sourceConnector = sourceConnectorParam.Index; if (!DA.GetData(2, ref targetNameRaw)) { return; } if (!DA.GetData(3, ref targetConnectorParam)) { return; } var targetConnector = targetConnectorParam.Index; var sourceName = sourceNameRaw.Name; var targetName = targetNameRaw.Name; if (Config.RESERVED_CHARS.Any(chars => sourceName.Contains(chars)) || Config.RESERVED_CHARS.Any(chars => targetName.Contains(chars))) { AddRuntimeMessage(GH_RuntimeMessageLevel.Error, "Input text contains " + "a forbidden content: :, ->, = or newline."); return; } var rule = new Rule(sourceName, sourceConnector, targetName, targetConnector); if (!rule.IsValid) { AddRuntimeMessage(GH_RuntimeMessageLevel.Error, rule.IsValidWhyNot); return; } DA.SetData(0, rule); }
/// <summary> /// Wrap input geometry into module cages. /// </summary> /// <param name="DA">The DA object can be used to retrieve data from /// input parameters and to store data in output parameters.</param> protected override void SolveInstance(IGH_DataAccess DA) { var module = new Module(); var sourceConnectorParam = new ConnectorIndex(); var targetName = Config.OUTER_MODULE_NAME; if (!DA.GetData(0, ref module)) { return; } if (!DA.GetData(1, ref sourceConnectorParam)) { return; } var connectorIndex = sourceConnectorParam.Index; if (connectorIndex >= module.Connectors.Count) { AddRuntimeMessage(GH_RuntimeMessageLevel.Error, "Module \"" + module.Name + "\" does not have Connector " + connectorIndex + "."); return; } if (module == null || !module.IsValid) { AddRuntimeMessage(GH_RuntimeMessageLevel.Error, "The Module is null or invalid."); return; } var connector = module.Connectors[(int)connectorIndex]; var oppositeDirection = connector.Direction.ToFlipped(); var rule = new Rule(module.Name, (uint)connectorIndex, targetName, oppositeDirection.DirectionToSingleModuleConnectorIndex()); if (!rule.IsValid) { AddRuntimeMessage(GH_RuntimeMessageLevel.Error, rule.IsValidWhyNot); } DA.SetData(0, rule); }
/// <summary> /// Wrap input geometry into module cages. /// </summary> /// <param name="DA">The DA object can be used to retrieve data from /// input parameters and to store data in output parameters.</param> protected override void SolveInstance(IGH_DataAccess DA) { var moduleNameRaw = new ModuleName(); var sourceConnectorParam = new ConnectorIndex(); if (!DA.GetData(0, ref moduleNameRaw)) { return; } var moduleName = moduleNameRaw.Name; if (!DA.GetData(1, ref sourceConnectorParam)) { return; } var connectorIndex = sourceConnectorParam.Index; var rule = new Rule(moduleName, connectorIndex, Config.INDIFFERENT_TAG); DA.SetData(0, rule); }