protected override void TrySolveInstance(IGH_DataAccess DA)
        {
            DB.Category parent = null;
            if (!DA.GetData("Category", ref parent))
            {
                return;
            }

            if (parent.Parent is object)
            {
                DA.SetDataList("SubCategories", null);
            }
            else
            {
                using (var subCategories = parent.SubCategories)
                {
                    var doc           = parent.Document();
                    var SubCategories = new HashSet <int>(subCategories.Cast <DB.Category>().Select(x => x.Id.IntegerValue));

                    if (parent.Id.IntegerValue == (int)DB.BuiltInCategory.OST_Stairs)
                    {
                        SubCategories.Add((int)DB.BuiltInCategory.OST_StairsStringerCarriage);
                    }

                    if (parent.Id.IntegerValue == (int)DB.BuiltInCategory.OST_Walls)
                    {
                        SubCategories.Add((int)DB.BuiltInCategory.OST_StackedWalls);
                    }

                    DA.SetDataList("SubCategories", SubCategories.Select(x => new Types.Category(doc, new DB.ElementId(x))));
                }
            }
        }
Beispiel #2
0
        protected override void TrySolveInstance(IGH_DataAccess DA)
        {
            DB.Category parent = null;
            if (!DA.GetData("Parent", ref parent))
            {
                return;
            }

            string newSubcatName = default;

            if (!DA.GetData("Name", ref newSubcatName))
            {
                return;
            }

            // find existing subcat if exists
            var newSubcat = parent.SubCategories.Cast <DB.Category>().
                            Where(x => x.Name == newSubcatName).
                            FirstOrDefault();

            // if not found, create one
            if (newSubcat is null && newSubcatName != string.Empty)
            {
                var doc = parent.Document();
                StartTransaction(doc);

                using (var categories = doc.Settings.Categories)
                    newSubcat = categories.NewSubcategory(parent, newSubcatName);
            }

            // return data to DA
            DA.SetData("SubCategory", newSubcat);
        }
Beispiel #3
0
        protected override void SolveInstance(IGH_DataAccess DA)
        {
            DB.Category category = null;
            if (!DA.GetData("Category", ref category))
            {
                return;
            }

            var doc = category?.Document();

            DA.SetData("LineWeight [projection]", category?.GetLineWeight(DB.GraphicsStyleType.Projection));
            DA.SetData("LineWeight [cut]", category?.GetLineWeight(DB.GraphicsStyleType.Cut));
            DA.SetData("LineColor", category?.LineColor.ToRhino());
            DA.SetData("LinePattern [projection]", doc?.GetElement(category.GetLinePatternId(DB.GraphicsStyleType.Projection)));
            DA.SetData("LinePattern [cut]", doc?.GetElement(category.GetLinePatternId(DB.GraphicsStyleType.Cut)));
            DA.SetData("Material", category?.Material);
            DA.SetData("Cuttable", category?.IsCuttable);
        }
Beispiel #4
0
 public Category(DB.Category category)             : base(category.Document(), category.Id)
 {
 }