SampleListIfcSTEPEntity
Overview
This programming manual in C# offers a practical demonstration of how to create an list of the Entity in a model.

Sample code
For example:
| Name | Value |
|---|---|
| EntityName | IfcColumn |
var app = new Beaver.BcadApplication();
var doc = app.ActiveDocument;
if (doc == null)
doc = app.Documents.Add();
var stp = doc.STEPDocument;
List<List<string>>GetAttributeRecs(STEPEntity entity)
{
var lists =new List<List<string>>();
{
var list =new List<string>(); {
list.Add(string.Format("ENTITY {0}", entity.Name));
list.Add("");
list.Add("");
list.Add("");
list.Add("");
list.Add("");
list.Add("");
}
lists.Add(list);
}
foreach (var attrDesc in entity.AttrDescs) {
var list =new List<string>(); {
list.Add("");
list.Add(attrDesc.Name);
list.Add(attrDesc.TypeName);
list.Add(attrDesc.IsAggregates.ToString());
list.Add(attrDesc.IsOptional.ToString());
list.Add(attrDesc.TypeString);
list.Add(attrDesc.Description);
}
lists.Add(list);
}
if (entity.InvAttrDescs.Count>0){
{
var list =new List<string>(); {
list.Add("INVERSE");
list.Add("");
list.Add("");
list.Add("");
list.Add("");
list.Add("");
list.Add("");
}
lists.Add(list);
}
foreach (var invAttrDesc in entity.InvAttrDescs) {
var list =new List<string>(); {
list.Add("");
list.Add(invAttrDesc.Name);
list.Add(invAttrDesc.TypeName);
list.Add(invAttrDesc.IsAggregates.ToString());
list.Add(invAttrDesc.IsOptional.ToString());
list.Add(invAttrDesc.TypeString);
list.Add(invAttrDesc.Description);
}
lists.Add(list);
}
}
foreach (var baseEntity in entity.BaseEntities) {
var baseLists = GetAttributeRecs(baseEntity);
foreach (var baseList in baseLists)
lists.Add(baseList);
}
return lists;
}
var header = new List<string>(); {
header.Add("Entity");
header.Add("Name");
header.Add("TypeName");
header.Add("IsAggregates");
header.Add("IsOptional");
header.Add("TypeString");
header.Add("Description");
}
m_gridView.Rows.Clear();
m_gridView.Columns.Clear();
m_gridView.ColumnCount = header.Count;
for (int i = 0; i < m_gridView.ColumnCount; i++) {
m_gridView.Columns[i].HeaderText = header[i];
m_gridView.Columns[i].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
}
var entity = stp.Entities.FindEntity(Config.kInstance.EntityName);
if (entity == null) {
throw new Exception(string.Format("Unable to find entity \"{0}\"", Config.kInstance.EntityName));
}
var recs = GetAttributeRecs(entity);
foreach (var rec in recs)
m_gridView.Rows.Add(rec.ToArray());