Message 1 of 5
Get schema from PipeFittingAndAccessoryPressureDropData
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
Hi, I want to create a schema from PipeFittingAndAccessoryPressureDropData, but it is not shown in the Revit Lookup. What's missing?
Here is the code.
Hola,Quiero crear un esquema a partir de PipeFittingAndAccessoryPressureDropData,pero no se muestra en el Revit Lookup.Que falta?.
Aqui esta el codigo.
public static class PipeSchemaBuildingUtility
{
internal static readonly Guid LongEquivSchemaGuid = new Guid("60610463-b1b8-4a93-bbea-4591a02d4e5d");
public static readonly string fieldLongEquiv = "TestPresion";
internal static Schema BuildSchema(Guid schemaGuid, int version)
{
SchemaBuilder sb = new SchemaBuilder(schemaGuid);
sb.SetReadAccessLevel((AccessLevel)1);
sb.SetWriteAccessLevel((AccessLevel)1);
sb.SetVendorId("ASDK");
sb.SetDocumentation("Version" + version.ToString());
if (schemaGuid.Equals(LongEquivSchemaGuid))
{
sb.SetSchemaName("TestElementPresion");
sb.AddSimpleField(fieldLongEquiv, typeof(string));
}
return sb.Finish();
}
}
public class ElementPipePressureDropServerDB : IPipeFittingAndAccessoryPressureDropServer
{
public bool Calculate(PipeFittingAndAccessoryPressureDropData data)
{
if (data == null)
{
return false;
}
string str = string.Empty;
var f = data.GetPresureDropItems();
foreach (var item in f)
{
str = UnitUtils.ConvertFromInternalUnits(item.Coefficient, UnitTypeId.Millimeters).ToString();
}
Entity entity = new Entity(this.GetDataSchema());
entity.Set<string>(PipeSchemaBuildingUtility.fieldLongEquiv, str);
data.SetDefaultEntity(entity);
return true;
}
public Schema GetDataSchema() => Schema.Lookup(PipeSchemaBuildingUtility.LongEquivSchemaGuid) ?? PipeSchemaBuildingUtility.BuildSchema(PipeSchemaBuildingUtility.LongEquivSchemaGuid, 1);
public string GetDescription()
{
return "Show Presion";
}
public string GetName()
{
return "Presion";
}
public Guid GetServerId()
{
return new Guid("ce513edc-a61a-480e-bcc5-e02628b4ff8a");
}
public ExternalServiceId GetServiceId()
{
return ExternalServices.BuiltInExternalServices.PipeFittingAndAccessoryPressureDropService;
}
public string GetVendorId()
{
return "RL";
}
public bool IsApplicable(PipeFittingAndAccessoryPressureDropData data)
{
return true;
}
}
public class ServerApp : IExternalDBApplication
{
public ExternalDBApplicationResult OnShutdown(ControlledApplication application)
{
return ExternalDBApplicationResult.Succeeded;
}
public ExternalDBApplicationResult OnStartup(ControlledApplication application)
{
AddPipeFittingAndAccessoryPressureDropServers();
return ExternalDBApplicationResult.Succeeded;
}
private void AddPipeFittingAndAccessoryPressureDropServers()
{
MultiServerService service = ExternalServiceRegistry
.GetService(ExternalServices.BuiltInExternalServices.PipeFittingAndAccessoryPressureDropService) as MultiServerService;
if (service == null)
return;
List<Guid> activeServerIds = new List<Guid>();
ElementPipePressureDropServerDB PerdidasTablePipe = new ElementPipePressureDropServerDB();
if (PerdidasTablePipe != null)
{
service.AddServer(PerdidasTablePipe);
}
activeServerIds.AddRange(service.GetActiveServerIds());
service.SetActiveServers(activeServerIds);
}
}
<?xml version="1.0" encoding="utf-8"?>
<RevitAddIns>
<AddIn Type="DBApplication">
<Name>DBApplication FitingDBSchema</Name>
<Assembly>FitingDBSchema.dll</Assembly>
<FullClassName>FitingDBSchema.ServerApp</FullClassName>
<ClientId>b65818c3-d7e5-4550-941f-a2db974216a4</ClientId>
<VendorId>RL</VendorId>
<VendorDescription>RL, http://thebuildingcoder.typepad.com</VendorDescription>
</AddIn>
</RevitAddIns>
Developer Advocacy and Support +