ListDefinition

ListDefinition

Alexey.Terno
Advocate Advocate
1,276 Views
1 Reply
Message 1 of 2

ListDefinition

Alexey.Terno
Advocate
Advocate

How can I add a ListDefinition with my custom string items?

I have try this code:

 

Db.ListDefinition listdef = new Db.ListDefinition();

ObjectId listdefid;

using (OpenCloseTransaction trans = db.TransactionManager.StartOpenCloseTransaction())
{
    listdefid = db.AddDBObject(listdef);
    trans.AddNewlyCreatedDBObject(listdef, true);

    listdef.AddListItem("fisrt");
    listdef.AddListItem("second");
    listdef.AddListItem("555");
                
    trans.Commit();
}

PropertyDefinition propDefManual2 = new PropertyDefinition();
propDefManual2.SetToStandard(db);
propDefManual2.SubSetDatabaseDefaults(db);
propDefManual2.Name = "ManualPropList";
propDefManual2.Description = "Manual property List";
propDefManual2.DataType = Autodesk.Aec.PropertyData.DataType.List;
propDefManual2.ListDefinitionId = listdef.Id;
propDefManual2.DefaultData = "555";

propSetDef.Definitions.Add(PropDefManual2);

I can see my properties:props.png

 

 

But this list don't shown in the list definition area:no_list.png

 

 

0 Likes
Accepted solutions (1)
1,277 Views
1 Reply
Reply (1)
Message 2 of 2

Alexey.Terno
Advocate
Advocate
Accepted solution

Need to add two lines:

listdefid = db.AddDBObject(listdef);
trans.AddNewlyCreatedDBObject(listdef, true);
             
Db.DictionaryListDefinition dict0 = new Db.DictionaryListDefinition(db);
dict0.AddNewRecord("MyList", listdef);

listdef.AppliesToAll = true;
listdef.AddListItem("fisrt");
listdef.AddListItem("second");
listdef.AddListItem("555");