Civil 3D API - Minha lista de correções ou adições

Segue o mail que enviei ao Augusto, da Autodesk:


Baseado na minha experinecia com a api do civil 3d 2012


PipeNetworks

corrigir o erro ao definir estilo de uma Part qualquer:


Dim obj As Part
Dim styleId As ObjectID
'...
obj.StyleId = styleId 'erro


O mesmo para RefSurfaceId, se o id da superficie for nulo:

obj.RefSurfaceId = ObjectId.Null

causa erro


falta o na API .NET o método SwapPartFamilyAndSize da API COM


>obj.PartData.GetAllDataFields

não devolve todas as Fields que o equivalente da API COM


Não há nenhum método ou propriedade nas estruturas que devolva a área de contribuição ou talvegue mesmo que associemos o CatchmentArea à estrutura



Ah, aproveitando, aqui está acontecendo algo estranho:

se referencio uma pipenetwork de outro desenho, via DataShortCut e projeto os elementos num profileview, ao salvar o arquivo, fechar a ebrir novamente, as projeções somem, mesmo com o SP1 instalado.


E ainda:
O campo Description dos tubos e estruturas que deveria ser somente leitura neste caso (DataShortCut ), não é

Se defino um valor diferente daquele que está no desenho de origem, ao sincronizar, a edição é perdida

Também o estilo, reference surface e referece alignment. Se coloco um diferente, ao reabrir o desenho, as edições se perdem


Alinhamentos:

Propriedade que informe a forma que o alinhamento mostra os PIs (aba "Point of Intersection" do "alignment properties")

Método que devolva os PIs, reais ou calculados

A função:

_ALIN.GetStationSet(StationTypes.Major Or StationTypes.Minor, 100, 20)


Devolve stations em posições não inteiras se o alinnhamento tiver Station Equation.

Exemplo: se defino uma station equation onde:

a estaca "5+00" passa a ser "5+10"

com station index = 20 (no brasil é 20...)

(station back=100, station ahead=110) por exemplo,

a função me retorna estacas: ...80, 100, 120, 140...

mas eu creio que deveria retornar ...80,100, 110, 130...


Ou seja, uma lista que formatada coma função GetStationStringWithEquations, devolvesse sempre valores "cheios",exemplo: "5+00", "6+00"... e não "5+10"



Implementar as propriedades Length, StartPoint, StarStation, etc na classe AlignmentSubEntity,

já que AlignmentSubEntityArc, AlignmentSubEntityLine, AlignmentSubEntitySpiral as implementam

se implementar em
AlignmentEntity também, melhor ainda



Ah, estas propriedades falharam algumas vezes com AlignmentSubEntitySpiral...



Corridor

Dim st As CodeSetStyle = ....

For Each s As CodeSetStyleItem In st
'faz algo
Next

só itera sobre os Points, não lista os links nem as shapes


API para acessar as Slope Pattern e as surfaces boundaries


bs.BaselineRegions.AddRegion deveria aceitar startstation e endstation

só é possivel definir a assembly e o nome


>Dim bsr As BaselineRegion

bsr.StartStation e bsr.EndStation deveriam ser read/write,mas são readonly


também não dá pra definir os target da assemply aplicada



Assemblies

faltam labels para elas, nem que seja pra mostrar só no nome....



Sample Line Group

Dim slg as SampleLineGroup...


Falta um método/função equivalente ao

slg.GetTotalVolumeResultDataForMaterialList

que liste os materiais individualmente



tentei com:

Dim guidMaterialList As System.Guid = slg.GetMappingGuid(materialListName)

Dim guidCorte As System.Guid = slg.GetMaterialGuid(guidMaterialList , "corte")

slg.GetTotalVolumeResultDataForMaterialList(guidCorte)



mas isso dá erro. pois só aceita :

slg.GetTotalVolumeResultDataForMaterialList(guidMaterialList)



o que achei estranho, pois ate onde eu testei, so pode ter um material list na sample line group :

For Each r As Autodesk.Civil.QTO.DatabaseServices.QTOSectionalResult In _
slg.GetTotalVolumeResultDataForMaterialList(guidCorte).GetResultsAlongSampleLines
'como obter a estaca???
Next


a classe QTOSectionalResult não implementa uma forma de devolver a estaca.


em nenhuma das classes do QTO dá pra obter os fatores (Cut, Fill, Refill)



SectionView

Faltam as propriedades ElevationMax, ElevationMin equivalentes às dos profileview

e também OffsetLeft e OffsetRight, equivalentes ao StartStation e EndStation do profileview


Labels:
uma propriedade equivalente ao FeatureId, para labels que tem componentes reference text.
exemplo:
label de alinhamento, que tem reference text para profile.


como setar/obter qual é o ObjectID do profile associado?



Profile

apesar de poder mudar a propriedade Station dos PVI, seria interessante um método que aplicasse um deltaa todos os PVI ao mesmo tempo. Isso possibilitaria "atrazar" ou "adiantar" o greide projetado em relação aoestaqueamento do alinhamento, resolvendo o problema de mudar o Reference Station do alinnhamento.


no mais é isso

se me ocorrer mais alguma coisa e mando

até!!!


Este foi o email, Augusto, obrigado pela atenção!! E você, o que precisa da API que não conseguiu, ou não encontrou?

2 comentários:

  1. Boa Neyton, desse jeito vou acabar migrando para o powercivil

    ResponderExcluir
  2. hehehe, também não é assim!!!

    falhas sempre vão ocorrer e dos itens que listei, a maioria é adição

    ResponderExcluir