<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Create properties in custom category in .NET Forum</title>
    <link>https://forums.autodesk.com/t5/net-forum/create-properties-in-custom-category/m-p/12486186#M20067</link>
    <description>&lt;P&gt;Firstly,&amp;nbsp;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/2034868"&gt;@marcin.sachs&lt;/a&gt;&amp;nbsp;' reply has nothing to do with the OP's question.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;PropertySetData APIs are from AecPropDataMgd.dll, which only available for AutoCAD's AEC verticals (Arch, MEP, C3D..), not for vanilla AutoCAD. The DLL is located in "C:\....\AutoCAD 202x]ACA" folder (again, if you use plain AutoCAD, there is no "....\ACA" folder).&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Tue, 09 Jan 2024 15:24:11 GMT</pubDate>
    <dc:creator>norman.yuan</dc:creator>
    <dc:date>2024-01-09T15:24:11Z</dc:date>
    <item>
      <title>Create properties in custom category</title>
      <link>https://forums.autodesk.com/t5/net-forum/create-properties-in-custom-category/m-p/9385059#M20064</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I'm new in autocad development.&lt;/P&gt;&lt;P&gt;I've create an arx with custom object (wrapped for C# use)&lt;/P&gt;&lt;P&gt;I would like to add properties (in custom category)&amp;nbsp; in property set, I saw the example asdkOPMNet but&lt;/P&gt;&lt;P&gt;it does not create custom category.&lt;/P&gt;&lt;P&gt;how can I implement this for C# ?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank,&lt;/P&gt;&lt;P&gt;Sorry for my english.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 18 Mar 2020 15:39:45 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/create-properties-in-custom-category/m-p/9385059#M20064</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2020-03-18T15:39:45Z</dc:date>
    </item>
    <item>
      <title>Re: Create properties in custom category</title>
      <link>https://forums.autodesk.com/t5/net-forum/create-properties-in-custom-category/m-p/9642261#M20065</link>
      <description>&lt;P&gt;Hi,&lt;BR /&gt;What do you mean by "Custom category"? - property set?&lt;BR /&gt;Please see my code below. I created custom property for polyline:&lt;/P&gt;&lt;LI-CODE lang="csharp"&gt;internal static void CreateSteelBeamPropertySetDefinition()
        {
            string propertySetName = "SteelBeam";
            var database = Application.DocumentManager.MdiActiveDocument.Database;
            Document doc = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument;
            Editor ed = doc.Editor;
            var PolylineClassName = RXObject.GetClass(typeof(Polyline)).Name;
            //try
            //{
            var dictionaryPropertyDataFormat = new DictionaryPropertyDataFormat(database);
            var propertySetDefinition = new PropertySetDefinition();

            using (Transaction transaction1 = database.TransactionManager.StartTransaction())
            {
                propertySetDefinition.SetToStandard(database);
                propertySetDefinition.SubSetDatabaseDefaults(database);
                propertySetDefinition.Description = "Property Set Definition for Steel Beam";
                propertySetDefinition.AlternateName = propertySetName;
                propertySetDefinition.IsLocked = false;
                propertySetDefinition.IsVisible = true;
                propertySetDefinition.IsWriteable = true;
                
                var filters = new StringCollection();
                filters.Add(PolylineClassName);
                propertySetDefinition.SetAppliesToFilter(filters, false);

                //var automaticPropertyDefinition = new PropertyDefinition();

                var  propDef = new PropertyDefinition();

                propDef.SetToStandard(database);
                propDef.SubSetDatabaseDefaults(database);
                propDef.Name = "Prefix";
                propDef.Description = "Prefix of steel beam";
                propDef.IsVisible = true;
                propDef.IsReadOnly = false;
                propDef.FormatId = dictionaryPropertyDataFormat.GetAt("Standard");     
                propertySetDefinition.Definitions.Add(propDef);
                propertySetDefinition.SetDisplayOrder(propDef, 1);

                propDef = new PropertyDefinition();
                propDef.SetToStandard(database);
                propDef.SubSetDatabaseDefaults(database);
                propDef.Name = "Name";
                propDef.Description = "Name of steel beam";
                propDef.IsVisible = true;
                propDef.IsReadOnly = false;
                propDef.FormatId = dictionaryPropertyDataFormat.GetAt("Standard");
                propertySetDefinition.Definitions.Add(propDef);
                propertySetDefinition.SetDisplayOrder(propDef, 2);

                propDef = new PropertyDefinition();
                propDef.SetToStandard(database);
                propDef.SubSetDatabaseDefaults(database);
                propDef.Name = "Style";
                propDef.Description = "Style of steel beam";
                propDef.IsVisible = true;
                propDef.IsReadOnly = false;
                propDef.FormatId = dictionaryPropertyDataFormat.GetAt("Standard");
                propertySetDefinition.Definitions.Add(propDef);
                propertySetDefinition.SetDisplayOrder(propDef, 3);

                propDef = new PropertyDefinition();
                propDef.SetToStandard(database);
                propDef.SubSetDatabaseDefaults(database);
                propDef.Name = "Length2";
                propDef.Description = "Length of steel beam";
                propDef.IsVisible = false;
                propDef.IsReadOnly = true;
                propDef.FormatId = dictionaryPropertyDataFormat.GetAt("Standard");
                propDef.SetAutomaticData(PolylineClassName, "Length");
                propertySetDefinition.Definitions.Add(propDef);
                propertySetDefinition.SetDisplayOrder(propDef, 4);

                propDef = new PropertyDefinition();
                propDef.SetToStandard(database);
                propDef.SubSetDatabaseDefaults(database);
                propDef.Name = "WeightPerMetre";
                propDef.Description = "Weight per metre";
                propDef.IsVisible = true;
                propDef.IsReadOnly = false;
                propDef.FormatId = dictionaryPropertyDataFormat.GetAt("Standard");
                propertySetDefinition.Definitions.Add(propDef);
                propertySetDefinition.SetDisplayOrder(propDef, 5);

                var dictionaryPropertySetDefinitions = new DictionaryPropertySetDefinitions(database);
                if (dictionaryPropertySetDefinitions.Has(propertySetName, transaction1))
                {
                    return;
                }

                dictionaryPropertySetDefinitions.AddNewRecord(propertySetName, propertySetDefinition);
                transaction1.AddNewlyCreatedDBObject(propertySetDefinition, true);
                transaction1.Commit();
            }
            using (Transaction transaction2 = database.TransactionManager.StartTransaction())
            {
                propertySetDefinition = transaction2.GetObject(propertySetDefinition.ObjectId, OpenMode.ForWrite) as PropertySetDefinition;
                var formulaPropertyDefinition = new PropertyDefinitionFormula();
                formulaPropertyDefinition.SetToStandard(database);
                formulaPropertyDefinition.SubSetDatabaseDefaults(database);
                formulaPropertyDefinition.Name = "Length";
                formulaPropertyDefinition.Description = "RESULT = [Length2]/1000";
                formulaPropertyDefinition.IsVisible = true;
                propertySetDefinition.Definitions.Add(formulaPropertyDefinition);
                propertySetDefinition.SetDisplayOrder(formulaPropertyDefinition, 6);
                formulaPropertyDefinition.SetFormulaString("RESULT = [Length2]/1000");
                formulaPropertyDefinition.DataItems[0].FormatId = dictionaryPropertyDataFormat.GetAt("2 Decimal");
                formulaPropertyDefinition.FormatId = dictionaryPropertyDataFormat.GetAt("2 Decimal");
                transaction2.Commit();
            }
        }&lt;/LI-CODE&gt;&lt;P&gt;usage:&lt;/P&gt;&lt;LI-CODE lang="csharp"&gt;DictionaryPropertySetDefinitions dictPropSetDef = new DictionaryPropertySetDefinitions(db);
                if (!dictPropSetDef.Has("SteelBeam", acTrans))
                {
                    CreateSteelBeamPropertySetDefinition();

                }&lt;/LI-CODE&gt;</description>
      <pubDate>Sat, 18 Jul 2020 09:49:27 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/create-properties-in-custom-category/m-p/9642261#M20065</guid>
      <dc:creator>marcin.sachs</dc:creator>
      <dc:date>2020-07-18T09:49:27Z</dc:date>
    </item>
    <item>
      <title>Re: Create properties in custom category</title>
      <link>https://forums.autodesk.com/t5/net-forum/create-properties-in-custom-category/m-p/12485948#M20066</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;what is the dlls that should be refrenced to access the&amp;nbsp;PropertySetDefinition&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 09 Jan 2024 14:07:21 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/create-properties-in-custom-category/m-p/12485948#M20066</guid>
      <dc:creator>Ta7a</dc:creator>
      <dc:date>2024-01-09T14:07:21Z</dc:date>
    </item>
    <item>
      <title>Re: Create properties in custom category</title>
      <link>https://forums.autodesk.com/t5/net-forum/create-properties-in-custom-category/m-p/12486186#M20067</link>
      <description>&lt;P&gt;Firstly,&amp;nbsp;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/2034868"&gt;@marcin.sachs&lt;/a&gt;&amp;nbsp;' reply has nothing to do with the OP's question.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;PropertySetData APIs are from AecPropDataMgd.dll, which only available for AutoCAD's AEC verticals (Arch, MEP, C3D..), not for vanilla AutoCAD. The DLL is located in "C:\....\AutoCAD 202x]ACA" folder (again, if you use plain AutoCAD, there is no "....\ACA" folder).&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 09 Jan 2024 15:24:11 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/create-properties-in-custom-category/m-p/12486186#M20067</guid>
      <dc:creator>norman.yuan</dc:creator>
      <dc:date>2024-01-09T15:24:11Z</dc:date>
    </item>
    <item>
      <title>Re: Create properties in custom category</title>
      <link>https://forums.autodesk.com/t5/net-forum/create-properties-in-custom-category/m-p/12486533#M20068</link>
      <description>&lt;P&gt;See the docs for the &lt;A href="https://help.autodesk.com/view/OARX/2023/ENU/?guid=OARX-RefGuide-IAcPiCategorizeProperties" target="_blank" rel="noopener"&gt;IAcPiCategorizeProperties&lt;/A&gt; class&lt;/P&gt;</description>
      <pubDate>Tue, 09 Jan 2024 17:52:18 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/create-properties-in-custom-category/m-p/12486533#M20068</guid>
      <dc:creator>ActivistInvestor</dc:creator>
      <dc:date>2024-01-09T17:52:18Z</dc:date>
    </item>
  </channel>
</rss>

