예제 #1
0
        /// <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);
        }
예제 #2
0
        /// <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);
        }
예제 #3
0
        /// <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);
        }