Um Programmgesteuert einen Cube zu erzeugen gibt es ein gutes Beispiel im MSDN.
http://msdn2.microsoft.com/en-us/library/ms345091.aspx
Nur wie Parent Child Hierarchien zu definieren sind wird nicht erwähnt.
Dazu sind 2 Schritte nötig:
) Parent und Key als Attribut anlegen
) Bei dem Parent Attribut Usage auf "Parent" stellen
*) Attribute Hierarchie beim Parent atkivieren
Vor allem der letzte Schritt war für mich beim ersten Versuch nicht offensichtlich.
Hier der code (basierend auf dem beispiel):
attr = dim.Attributes.Add("Person");
attr.Usage = AttributeUsage.Key;
attr.OrderBy = OrderBy.Name;
attr.KeyColumns.Add(CreateDataItem(db.DataSourceViews[0], "DimPerson", "PersonKey"));
attr.NameColumn = CreateDataItem(db.DataSourceViews[0], "DimPerson", "PersonName");
attr = dim.Attributes.Add("Parent");
attr.KeyColumns.Add(CreateDataItem(db.DataSourceViews[0], "Dim Person", "ListPrice"));
attr.AttributeHierarchyEnabled = true;
attr.Usage = AMO.AttributeUsage.Parent;